Java Fundamentals. Herman Tolle. Program Teknologi Informasi & Ilmu Komputer UNIVERSITAS BRAWIJAYA

dokumen-dokumen yang mirip
Java Fundamentals. Herman Tolle. Program Teknologi Informasi & Ilmu Komputer UNIVERSITAS BRAWIJAYA

Java Fundamentals. Herman Tolle. Program Teknologi Informasi & Ilmu Komputer UNIVERSITAS BRAWIJAYA

ENKAPSULASI PEMROGRAMAN LANJUT. Dr. Eng. Herman Tolle. Teknik Informatika PTIIK UB Semester Genap 2015/2016

KONSTRUKTOR PEMROGRAMAN LANJUT. Dr. Eng. Herman Tolle, ST., MT. Sistem Informasi FILKOM UB Semester Genap 2016/2017

KONSEP CLASS & OBJEK pada Object Oriented Programming

ENKAPSULASI Data Hiding

1. Konsep Pemrograman dan Paradigmanya: 2. Teknologi Java dan Perangkat Pemrograman: 3. Konsep Dasar Pemrograman Berorientasi Objek:

Kelas dan Objek. Oleh : Agus Priyanto, M.Kom

Memahami Sintaks dan Grammar Bahasa Java. Swing, GUI Component, Event Handling, Pengembangan Aplikasi GUI

ENKAPSULASI. 1. Kompetensi Setelah kegiatan perkuliahan selesai, mahasiswa diharapkan dapat:

DESIGN SYSTEM WITH UML

HP:

Teknik Informatika S1

Encapsulation (Encapsulasi) Minggu 5 Pemrograman Berorientasi Objek Alfa Faridh Suni

Paradigma Pemrograman Berorientasi Objek

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN JAVA 2

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN 2

Tabel 1. Instruksi untuk menampilkan teks No. Bahasa Pemrograman Instruksi 1. Pascal WRITE ( Bahasa pemrograman itu mudah );

Introduction Object Oriented Analysis & Design. Chapter I

KARAKTERISTIK PEMROGRAMAN BERORIENTASI OBJEK (OOP) Pemrograman berorientasi Objek mempunyai karakterisitik sebagai berikut:

MODUL 3 PEWARISAN TUJUAN DASAR TEORI

ABSTRACTION, ENCAPSULATION, INHERITANCE & POLYMORPHISM

NASKAH UTAMA ULANGAN AKHIR SEMESTER GANJIL TAHUN PELAJARAN 2013/2014

Pemrograman Berorientasi. Class dan Obyek 2

Teknik Informatika S1

Modul II Object Oriented Programming

MODUL 1 PENGENALAN OOP

PEMROGRAMAN JAVA. Yoannita, S.Kom. Class & Method sederhana Konsep Pemrograman Berorientasi Objek. Company LOGO

Polymorphism. Oleh : Agus Priyanto, M.Kom

Bahasa Pemograman II. Object Oriented Programming

VISUAL BASIC Pengenalan VB NET

MINGGU IV : PEMROGRAMAN BERORIENTASI OBJEK

Object Oriented Programming 1

Dasar-Dasar OOP di Java

KONSEP OOP: PEWARISAN / INHERITANCE

CLASS PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM JOGJAKARTA

Class & Object 2. Imam Fahrur Rozi

KONSEP OOP: PEWARISAN / INHERITANCE

Pemrograman Lanjut. Class dan Object. Aryo Pinandito, ST, M.MT Team Teaching Pemrograman Lanjut

Konsep Pemrograman Berorientasi Obyek. Maria Ulfah S Nurochman

PEMROGRAMAN BERORIENTASI OBJEK

Class & Object 2 ~Praktikum~ Imam Fahrur Rozi

Paradigma Pemrograman Berorientasi Objek

[Lanjutan] Nurochman

Praktikum 6 Class Design (Encapsulation)

Inheritance (Pewarisan) Pengertian dasar inheritance

PENGHITUNGAN JARI-JARI PADA OBJEK LINGKARAN DALAM BAHASA JAVA

Praktikum. PBO (Kelas K) Oleh : MOHAMMAD SHOLIKIN

Dasar-Dasar OOP di Java

Review Bahasa Pemrograman Java Konsep OOP N I K O I B R A H I M, M I T F A K U L T A S T E K N O L O G I I N F O R M A S I

PRAKTIKUM 3 KONSTRUKTOR DAN OVERLOADING

Bab 8. Dasar-Dasar OOP

BAB 1 PEMROGRAMAN BERORIENTASI OBJEK

BAB II TEORI DAN KONSEP PEMROGRAMAN BERBASIS OBJECT

PRAKTIKUM OBJECT ORIENTED PROGRAMING

MODUL 1. Class, Object, Constructor dan Method

Method / Fungsi / Sub Program

PERTEMUAN 11 KONSEP PEMROGRAMAN BERORIENTASI OBJEK

Pemrograman I. By : Sri Rezeki Candra Nursari SKS

Pemrograman I. By : Sri Rezeki Candra Nursari SKS

Pertemuan 2 (2) : Membuat Class dan mengakses Anggota Class

E-Book PEMROGRAMAN BERORIENTASI OBJEK. Disusun Oleh: Arfian Hidayat, S.Kom

MODUL 1. CLASS, OBJECT, CONSTRUCTOR DAN METHOD

BAB 1 PENGENALAN PEMROGRAMAN BERORIENTASI OBJEK

Object Oriented Analysis and Design -Pendahuluan- Nisa ul Hafidhoh

Bahasa Pemrograman :: Polimorfism and Abstraction

Modul Bahasa Pemrograman 1

Jobsheet 09. Overloading and Overriding Method

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

Inheritance dan Kata Kunci static

Praktikum 3 Konsep Class, Attribute dan Method

Bahasa Pemrograman 2.

UJIAN TENGAH SEMESTER GENAP TA 2011/2012

INTRODUCTION OBJECT ORIENTED ANALYSIS & DESIGN

KONSEP OBJEK ORIENTASI PROGRAM

UNIVERSITAS GUNADARMA

LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA PENGENALAN OBJECT ORIENTED PROGRAMMING

I. Tujuan Instruksional Umum Mengenal konsep dasar berorientasi objek Memahami dan dapat mengimplementasikan Kelas dan Objek pada java.

Pertemuan 11 Object Oriented Program

IKG2I4 / Software Project I

LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA FAKULTAS ILMU KOMPUTER UNIVERSITAS BRAWIJAYA

Membuat dan Menggunakan Class

INSTALL JAVA. 2. Kemudian akan muncul tampilan dalam bentuk rar. Klik ganda pada jdk-7u45-windows- i586.exe, seperti gambar berikut :

subclass class manapun private default protected public package yang sama

UML (Unified Modelling Language)

Konsep Pemrograman Berbasis Obyek

BAB VII. CLASS DAN OBJECT

Pemrograman Berorientasi

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN 2

INTERAKSI ANTAR OBJECT

Pemrograman Lanjut Jurusan S1 Teknik Informatika. 9/17/2012 Ratno

Pemrograman I. By : Sri Rezeki Candra Nursari SKS

PEMROGRAMAN BERORIENTASI OBJEK

KONSEP Pemrograman Berorientasi Objek KARMILASARI

Modul 4: Lebih Dalam lagi tentang Class, Objek dan Method

A. TUJUAN PEMBELAJARAN. 1. Menerapkan konsep enkapsulasi pada class 2. Mendeklarasikan suatu constructor

UJIAN TENGAH SEMESTER GENAP TA 2011/2012

Bahasa Pemrograman 2.

I. Tujuan Instruksional Umum Komunikasi antar objek pada kelas yang berbeda Memahami berbagai macam modifier dan karakteristiknya II.

OVERLOADING, CONSTRUCTOR DAN DESTRUCTOR. Dewi Sartika, M.Kom

Transkripsi:

Java Fundamentals Herman Tolle http://hermantolle.com/class Program Teknologi Informasi & Ilmu Komputer UNIVERSITAS BRAWIJAYA

1.3 Konsep Dasar Pemrograman Berorientasi Objek Class, Object, Method, Attribute

Berorientasi Objek? Attribute: Topi, Baju, Jaket, Tas Punggung, Tangan, Kaki, Mata Behavior: Cara Jalan ke Depan Cara Jalan Mundur Cara Belok ke Kiri Cara Memanjat

Berorientasi Objek? Attribute (State): Ban, Stir, Pedal Rem, Pedal Gas, Warna, Tahun Produksi Behavior: Cara Menghidupkan Mesin Cara Manjalankan Mobil Cara Memundurkan Mobil Attribute Variable(Member) Behavior Method(Fungsi)

Perbedaan Class dan Object Class: konsep dan deskripsi dari sesuatu Class mendeklarasikan method yang dapat digunakan (dipanggil) oleh object Object: instance dari class, bentuk (contoh) nyata dari class Object memiliki sifat independen dan dapat digunakan untuk memanggil method Contoh Class dan Object: Class: mobil Object: mobilnya pak Joko, mobilku, mobil berwarna merah

Perbedaan Class dan Object Class seperti cetakan kue, dimana kue yg dihasilkan dari cetakan kue itu adalah object Warna kue bisa bermacam-macam meskipun berasal dari cetakan yang sama (object memiliki sifat independen)

Class = Method + Variable Class Sepeda gir kecepatan variable tampilkan kecepatan ubah gir method

Object = Method + Variable yg Memiliki Nilai Object Sepedaku gir = 3 kecepatan = 10km/jam tampilkan kecepatan () kecepatan = 10 km/jam ubah gir (2) gir = 5 instance variable instance method

Attribute Variable yang mengitari class, dengan nilai datanya bisa ditentukan di object Variable digunakan untuk menyimpan nilai yang nantinya akan digunakan pada program Variable memiliki jenis (tipe), nama dan nilai Name, age, dan weight adalah atribute (variabel) dari class Person

Membuat Class, Object dan Memanggil Atribut public class Mobil { String warna; int tahunproduksi; public class MobilBeraksi{ public static void main(string[] args){ // Membuat object Mobil mobilku = new Mobil(); Mobil.java MobilBeraksi.java /* memanggil atribut dan memberi nilai */ mobilku.warna = "Hitam"; mobilku.tahunproduksi = 2006; System.out.println("Warna: " + mobilku.warna); System.out.println("Tahun: " + mobilku.tahunproduksi);

Latihan: Membuat Program dg Netbeans 1. Buka Netbeans IDE 2. Ikuti langkah berikut

Method Method adalah urutan instruksi yang mengakses data dari object Method melakukan: 1. Manipulasi data 2. Perhitungan matematika 3. Memonitor kejadian dari suatu event

Method

Membuat dan Memanggil Method public class Mobil2{ String warna; int tahunproduksi; Mobil2.java void printmobil(){ System.out.println("Warna: " + warna); System.out.println("Tahun: " + tahunproduksi); public class Mobil2Beraksi{ public static void main(string[] args){ Mobil2 mobilku = new Mobil2(); Mobil2Beraksi.java mobilku.warna = "Hitam"; mobilku.tahunproduksi = 2006; mobilku.printmobil();

Latihan Buat class Handphone, masukkan dalam package hp Class Handphone berisi empat method di bawah: 1. hidupkan() 2. lakukanpanggilan() 3. kirimsms() 4. matikan() Isi masing-masing method dengan tampilan status menggunakan System.out.println() Buat class HandphoneBeraksi, dan panggil method-method diatas dalam class tersebut

Latihan: Hasil Tampilan Handphone hidup Kring, kring, kring panggilan dilakukan Dung, dung sms berhasil terkirim Handphone mati

public class Handphone{ void hidupkan(){ System.out.println(" Handphone hidup"); void lakukanpanggilan(){ System.out.println( Kring.. Kring.. Kring.. Panggilan dilakukan!"); // lanjutkan method yang lainnya public class HandphoneBeraksi{ public static void main(string[] args){ Handphone telponku = new Handphone(); telponku.hidupkan(); telponku.lakukanpanggilan(); telponku.kirimsms(); telponku.matikan(); Handphone.java handphoneberaksi.java

Latihan Kelas Handphone pada contoh sebelumnya dikembangkan dengan menambahkan: Atribut: hidup [tipe: boolean] dan jumlahpulsa [double] Method: isipulsa(jumlah: double), cekpulsa() Update method lakukanpanggilan() dan kirimsms() dengan menambahkan statemen seleksi untuk mengecek bahwa handphone dalam status hidup dan jumlah pulsa > 0 Update method hidupkan() dan matikan() untuk merubah status hidup.

DIAGRAM CLASS PEMODELAN CLASS

Diagram Class Digunakan untuk mendefiniskan sebuah kelas / memodelkan kelas NAMA CLASS Daftar Atribut Daftar Method Handphone -hidup: boolean; -jumlahpulsa: double +hidupkan(); +lakukanpanggilan(); +kirimsms(); +matikan(); +isipulsa(jumlah:double); +cekpulsa();

Visibility Attributes normally should be private, methods invoked by clients should be public Visibility markers in UML A plus sign (+) indicates public visibility A minus sign (-) indicates private visibility A sharp sign (#) indicates protected visibility

Contoh: Class Segitiga Buat class Segitiga yang menyimpan informasi alas dan tinggi, dan menyimpan hasil perhitungan luas dan keliling Atribut: tinggi, alas, keliling, luas Method: hitungluas(), hitungkeliling(), cetakluas(), cetak Keliling() Dalam kasus-kasus di OOP, nilai (variable) yang diketahui akan di-set sebagai atribut yang public, sementara nilai yang diperoleh dari hasil perhitungan diset private (hanya bisa diakses dari dalam fungsi tersebut)

TUGAS Buat Diagram Class dan implementasi Program dalam bentuk Class dan Program penggunaan Class tersebut Pilihan Topik Handphone untuk browsing Handphone untuk chatting TV (pilih channel tv, set volume) Radio (pilih stasiun radio, set volume)

KONSTRUKTOR

Konstruktor -1- Method yang digunakan untuk memberi nilai awal pada saat object diciptakan Dipanggil secara otomatis ketika new digunakan untuk membuat instan class Sifat konstruktor: Nama konstruktor sama dengan nama class Tidak memiliki nilai balik dan tidak boleh ada kata kunci void

Konstruktor -2- public class Mobil { String warna; int tahunproduksi; public Mobil(String warna, int tahunproduksi){ this.warna = warna; this.tahunproduksi = tahunproduksi; public void info(){ System.out.println("Warna: " + warna); System.out.println("Tahun: " + tahunproduksi); public class MobilKonstruktor{ public static void main(string[] args){ Mobil mobilku = new Mobil( Merah, 2003); mobilku.info(); Mobil.java MobilKonstruktor.java

Kata Kunci this Digunakan pada pembuatan class dan digunakan untuk menyatakan object sekarang public class Mobil{ String warna; int tahunproduksi; public class Mobil{ String warna; int tahunproduksi; void isidata(string awarna, int atahunproduksi){ void isidata(string warna, int tahunproduksi){ warna = awarna; this.warna = warna; tahunproduksi = atahunproduksi; this.tahunproduksi = tahunproduksi;

Latihan 1. Buat class Bank Buat konstruktor class Bank dengan parameter: saldo Buat method: simpanuang, ambiluang, dan getsaldo 2. Buat class BankBeraksi, tetapkan saldo awal lewat konstruktur Rp. 100000, jalankan 3 method di atas, dan tampilkan proses sebagai berikut: Selamat Datang di Bank ABC Saldo saat ini: Rp. 100000 Simpan uang: Rp. 500000 Saldo saat ini: Rp. 600000 Ambil uang: Rp. 150000 Saldo saat ini: Rp. 450000

public class Bank { double saldo; Bank(double S) { this.saldo = S; System.out.println( Selamat Datang di Bank ABC ); this.ceksaldo(); void ceksaldo() { System.out.println( Saldo saat ini Rp +saldo); void AmbilUang(double S) { if (this.saldo-s>=0) { this.saldo -= S; System.out.println( Ambil Uang Rp +S); else System.out.println( Saldo tidak mencukupi ); this.ceksaldo(); void SimpanUang(double S) { this.saldo += S; System.out.println( Simpan Uang Rp +S); this.ceksaldo();

Public class BankBeraksi { Bank rekeningku = new Bank(100000); ceksaldo(); SimpanUang(50000); AmbilUang(150000); ceksaldo();

OVERLOADING KONSTRUKTOR

Overloading terhadap konstruktor merupakan suatu mekanisme pembuatan konstruktor yang memiliki bentuk lebih dari satu. Pembeda antara satu konstruktor dengan konstruktor yang lain berupa jumlah parameter atau tipe parameter.

class mobil { private String warna; private int tahun; public mobil(string warna, int tahun) // konstruktor-1 { this.warna = warna; this.tahun = tahun; { public mobil() // konstruktor-2 public void info() { System.out.println("Warna mobil saya : "+ this.warna); System.out.println("Dibuat tahun : "+ this.tahun); public class konstruktor1 { public static void main (String[] args) { mobil mobilku = new mobil("silver",2008); mobilku.info(); mobil mobilmu = new mobil(); mobilmu.info(); mobil mobilnya = new mobil( White",2005); mobilnya.info();

ABSTRAKSI & ENKAPSULASI

Abstraction Cara kita melihat suatu sistem dalam bentuk yang lebih sederhana, yaitu sebagai suatu kumpulan subsistem (object) yang saling berinteraksi. Mobil adalah kumpulan sistem pengapian, sistem kemudi, sistem pengereman Alat meng-abstraksikan sesuatu adalah class Object bersifat modularity. Object dapat ditulis dan dimaintain terpisah (independen) dari object lain

Encapsulation Mekanisme menyembunyikan suatu proses dan data dalam sistem untuk menghindari interferensi, dan menyederhanakan penggunaan proses itu sendiri Tongkat transmisi (gigi) pada mobil Tombol on/off/pengaturan suhu pada AC Class access level (public, protected, private) adalah implementasi dari konsep encapsulation Enkapsulasi data dapat dilakukan dengan cara: 1. mendeklarasikan instance variable sebagai private 2. mendeklarasikan method yang sifatnya public untuk mengakses variable tersebut

Encapsulation dan Access Modifier Modifier Dalam Class yang Sama Dalam Package yang Sama Dalam SubClass Dalam Package Lain private tanpa tanda protected public

Encapsulation Enkapsulasi data juga dapat dilakukan dengan cara: 1. mendeklarasikan instance variable sebagai private 2. mendeklarasikan method yang sifatnya public untuk mengakses variable tersebut

Diagram Class BANK private Saldo: double; Bank (double S); public AmbilUang(double S); public SimpanUang(double S); public ceksaldo(double S);

Contoh public class Bank { private double saldo; Bank(double S) { this.saldo = S; System.out.println( Selamat Datang di Bank ABC ); this.ceksaldo(); public void ceksaldo() { System.out.println( Saldo saat ini Rp +saldo); void AmbilUang(double S) { if (this.saldo-s>=0) { this.saldo -= S; System.out.println( Ambil Uang Rp +S); else System.out.println( Saldo tidak mencukupi ); this.ceksaldo(); void SimpanUang(double S) { this.saldo += S; System.out.println( Simpan Uang Rp +S); this.ceksaldo();

Latihan Buat Diagram Class dan implementasi Program dalam bentuk Class dan penggunaan Kelas tersebut. Studi Kasus: Menghitung gaji harian PT. XYZ dengan ketentuan : Gaji pokok karyawan Rp. 2000/jam Bila karyawan bekerja lebih dari 7 jam/hari maka kelebihannya dihitung lembur yang besarnya 1.5 dari gaji pokok Untuk karyawan yang bekerja 8 jam/hari atau lebih akan mendapat tambahan uang makan sebesar Rp. 3500 Karyawan yang bekerja 9 jam/hari atau lebih akan mendapat uang transport lembur sebesar Rp. 4000 Input : NIP, Nama, Jumlah jam kerja Output : NIP, Nama, Gaji pokok, Lembur, Uang makan, Transport lembur, Take Home Pay (total gaji diterima)

Diagram Class PEGAWAI Nama: string; NIP: string; gajipokok, lembur, uangmakan, transport: double; jumlahjamkerja: integer; pegawai(nama, NIP); pegawai(nama, NIP, jamkerja); void setjamkerja(); void hitunggajiharian(); void cetakpenghasilan(); fungsi setjamkerja() untuk mengakses (memberi nilai) atribut jumlahjamkerja; Business process perhitungan gaji dilakukan dalam fungsi hitunggajiharian(), sekaligus untuk mengakses atribut lain. Fungsi cetakpenghasilan() untuk menampilkan isi dari atribut-atribut yang ada

TUGAS Set Setiap Atribut dari kelas tersebut adalah private Set setiap method dari kelas tersebut adalah public Selesaikan latihan sebelumnya, rampungkan sebagai sebuah tugas (Soal, Jawaban, Diagram Class, Source Code, Screenshot) Buat implementasi class Pegawai untuk kasus minimal 2 orang pegawai dengan jam kerja berbeda

Referensi 1. Sharon Zakhour et al, The Java Tutorial Fourth Edition, http://java.sun.com/docs/books/tutorial 2. Cay Horstmann, Big Java: Earl Objects 5 th Edition, John Wiley & Sons, 2013 3. Deitel & Deitel, Java Howto Program 9 th Edition, Prentice Hall, 2012 4. Richard M. Reese, Oracle Certified Associate Java SE 7 Programmer Study Guide, Packt Publishing, 2012 5. Walter Savitch, Absolute Java 5 th Edition, Pearson Education, 2013 6. Mark Allen Weiss, Data Structures and Algorithm Analysis in Java 3 rd Edition, Pearson Education, 2012 7. Anany Levitin, Introduction to the Design and Analysis of Algorithms 3 rd Edition, Pearson Education, 2012 8. Ying Bai, Practical Database Programming with Java, John Wiley & Sons, 2011

Referensi Slide presentasi ini dimodifikasi dari slide yang diperoleh dari website: romisatriowahono.net karya Bapak Romi Satrio Wahono