Modul Praktikum

Pemrograman Berorientasi Objek
Versi 1.0

Oleh:

Puji Hartono, ST

Materi: 1. Kelas dan Objek 2. Pewarisan 3. Polymorfisme 4. Pengkapsulan 5. Interface 6. Pemaketan

Copyleft 2003 by Puji Hartono, ST

makan. Analogi kelas dan objek seperti rancangan model rumah dan pembangunan rumah-rumah. Teori Singkat Dalam paradigma pemrograman berorientasi objek dikenal kelas dan objek.nama = n. Kelas manusia mempunyai atribut : nama. Selain itu kelas manusia juga mempunyai metodh: tampilkanNama.java” */ public class manusia { public String nama. Pembuatan objek dari kelas dengan instantiasi Sebagai contoh kita ambil kelas manusia...println("Kerja.. Tujuan Praktikan diharapkan dapat: 1. } public String tampilkanNama() { return nama. public manusia(String n) { this.out. Membuat kelas dengan beberapa variabel/atribut dan metodh 2. Kasus diatas diimplementasikan dalam bahasa Java sebagai berikut /* Disimpan dalam file “manusia.").."). } } . } public void kerja() { System.. nyam.out. Kelas merupakan blue print dari objek-objek yang akan dibuat.. kerja.. Kelas dan Objek A.. nyam.(1) Modul 1. adapun proses pembuatan objek dari kelas dikenal dengan instantiasi..kerjaaa. Kelas instantiasi Objek Gambar 1.println("Nyam. Menginstantiasi kelas menjadi objek B. } public void makan() { System..

} } Hasil eksekusi terhadap class andi adalah sebagai berikut: Nama= Andi Nyam. Metodh Abstrak Metodh abstract adalah metodh yang belum mempunyai implementasi. makan.. kemudian jalankan objekobjek yang telah Anda buat ! . 2. Praktikum 1. nyam.println("Nama= "+ andi.tampilkanNama()). naik motor.. System. minum.. tampilkanNpm. nyam. C. olahRaga. andi. seperti contoh dibawah ini: abstact void BerangkatKerja().java” */ class andi { public static void main(String arg[]) { manusia andi= new manusia("Andi"). naik angkot.. naik mobil atau dengan cara lainnya.. yang /* Disimpan dalam file “andi.out. Buatlah kelas mahasiswa dengan atribut/variabel= nama dan npm dan mempunyai metodh: tampilkanNama. belajar. Buatlah 3 objek untuk menginstantiasi kelas mahasiswa dengan atribut nama dan npm Anda sendiri dan 2 teman Anda dan mengimplementasikan beberapa metodh yang telah Anda definisikan dalam kelas mahasiswa..makan(). Kompile file kelas mahasiswa dan objek-objek yang telah Anda buat. Pendefinisian metodh abstrak adalah dengan menambahkan keyword abstract.(2) Adapun kode untuk menginstantiasi kelas manusia menjadi objek Andi mengimplementasikan metodh: tampilkanNama dan makan adalah sebagai berikut. Pada metodh abstract ini tidak didefinisikan/implementasi metodh BerangkatKerja tersebut (misalkan apakah jalan kaki.

java” */ class tentara extends manusia { public String pangkat. You lose. } public void kerja() { System."). Memahami dan mengimplementasikan konsep pewarisan 4. public tentara(String n. String p) { super(n). tentara. Tujuan Praktikan diharapkan dapat: 3..out.pangkat= p. /* Disimpan dalam file “programmer. } public void bersantai() { System..").. Memahami dan mengimplementasikan this dan super sesuai kebutuhan 5. this. } public String tampilkanPangkat() .println("Game over. Pewarisan A.out.(3) Modul 2. } } /* Disimpan dalam file “tentara. Pewarisan adalah salah satu cara untuk menggunakan kode-kode yang telah dibuat sebelumnya.java” */ public class programmer extends manusia { public programmer(String n) { super(n). Sebagai contoh kelas manusia diturunkan menjadi kelas: programmer. Teori Singkat Salah satu kelebihan pemrograman berorientasi objek adalah penggunaan ulang kode-kode yang telah dibuat.println("Tak…Tak…Klik. Memahami dan mengimplementasikan metodh overriding B.

.. Tak.Tak.. Dor. akan tetapi dia tidak mewarisi konstruktor-konstruktornya sehingga ketika andi makan maka dia makan dengan metodh dari parentclassnya (manusia). dia makan dengan metodh warisan dari kelas manusia. “ bukan “Kerja….. } } Keyword super digunakan untuk memanggil metodh yang ada pada baseclass. Game over. Dor.bersantai(). System. dia kerja dengan metodh baru yang didefinisikan khusus pada kelas programmer (“Tak…Tak…Klik. kemudian dia kerja dengan metodh khusus kelas programmer dan terakhir dia bersantai juga dengan metodh khusus kelas programmer. /* Disimpan dalam file “andi. .println("Nama= "+ andi. Kelas turunan akan mewariskan atribut-atribut dan metodh-metodh parentclassnya/baseclass.kerja().out. nyam.makan()... } public void kerja() { System. Setelah Objek andi memberitahu namanya.. andi.tampilkanNama()). setelah dia makan lalu kerja dan terakhir dia bersantai dengan komputernya sehingga implementasi dengan kode javanya. You lose. } } Kalau dieksekusi class Andi akan menghasilkan Nama= Andi Nyam.out.(4) { return pangkat...java” */ class andi { public static void main(String arg[]) { programmer andi= new programmer("Andi").... Akan tetapi ketika dia kerja.. sedangkan this menunjukkan/mereferensi pada objek terkini Andi adalah seorang programmer keturunan manusia. inilah yang disebut dengan metodh overriding.Klik. andi. nyam... andi..kerjaaa…”).").println("Dor.

Baik dilakukan oleh kelasnya sendiri maupun oleh anak cucu kelasnya. } } Dalam kasus badu....Zzzzzzz”). selain badu mewarisi atribut nama dari manusia. Buatlah 2 objek untuk menginstantiasi kelas pecinta alam dengan atribut nama dan npm Anda sendiri dan 1 teman Anda dengan mengimplementasikan beberapa metodh yang telah Anda definisikan dalam kelas kelasnya.out.println(“Zzz. Praktikum 1.tampilkanPangkat()). Suatu saat dia ditanya atasannya nama dan pangkatnya.out. Kompile file kelas pecinta alam dan objek-objek yang telah Anda buat.out. maka kode javanya : /* Disimpan dalam file “badu.Zzzzzzz”). bahkan mengoverride metodh yang ada pada parentclassnya.println(“Zzz. kemudian jalankan objek-objek yang telah Anda buat ! . badu. Metodh Final Metodh final adalah metodh yang tidak bisa dioverride oleh subclassnya. Jadi dalam pewarisan. C. badu.makan().java” */ public class badu { public static void main(String arg[]) { tentara badu= new tentara("Badu". Badu adalah seorang tentara berpangkat kopral keturunan manusia.tampilkanNama()). Dengan cara seperti ini maka kita mendefinisikan bahwa metodh tidur adalah dengan cara System.(5) Lainhalnya dengan Andi. Pendefinisian metodh final dengan cara menambahkan keyword final didepan definisi metodh tersebut. kemudian dia disuruh makan dan kemudian diperintah untuk kerja..out. System.kerja(). System. Buatlah turunan dari kelas mahasiswa yang telah Anda buat pada modul 1 menjadi kelas: Pecinta alam dan buatlah atribut dan metodh-metodhnya masing-masing sebanyak 2 buah 2. System.Zzzz.Zzzz.println("Pangkat= "+ badu. sebagai tentara dia mempunyai atribut pangkat.println("Nama= "+ badu. seperti pada contoh berikut Public final void tidur(). kita bisa menambah atribut-atribut baru dan juga bisa menambahkan metodh-metodh baru."Kopral").

Memahami dan mengimplementasikan polymorfisme B.Ciiit.. Badu sang tentara dan Dedi sang sopir diperintahkan untuk bekerja. } } Dedi adalah seorang sopir keturunan manusia. /* Disimpan dalam file “dedi. dedi.println("Ngung...java” */ public class dedi { public static void main(String arg[]) { sopir dedi= new sopir("Dedi").. Sebagai contoh kita tambah lagi turunan dari manusia yaitu kelas sopir.."). System.tampilkanNama()).out.println("Nama= "+ dedi.out. Ngung. untuk menginstantiasi objek dedi ditunjukkan dalam kode berikut. Kelas sopir diimplementasikan dalam java /* Disimpan dalam file “sopir. dedi.. Polymorfisme A. Teori Singkat Salah satu pilar Pemrograman Berorientasi Objek adalah polymorfisme yaitu kemampuan beberapa objek bertipe sama bereaksi secara berbeda terhadap “pesan” yang sama. Ngung.makan().. Tujuan Praktikan diharapkan dapat: 1.java” */ public class sopir extends manusia { public sopir(String n) { super(n).(6) Modul 3. } } Kemudian Andi sang programmer. } public void kerja() { System.kerja(). apa reaksinya? .

i<3. Dor.. C. Message sama yang dikirimkan ke objek berbeda akan menghasilkan hasil yang berbeda. Buatlah kelas Rohis yang merupakan kelas turunan dari mahasiswa dan buatlah metodhmetodhnya.. profesi[2]=new sopir("Dedi").."Kopral"). 2.java” */ public class pekerja { public static void main(String args[]) { manusia[] profesi= new manusia[3].... Dor… Ngung. Ngung.. profesi[1]=new tentara("Badu". i++) { profesi[i].. 3.Ciiit. perhatikan kode java berikut! /* Disimpan dalam file “pekerja. Ngung.. inilah yang disebut polymorfisme.kerja().. Panggilllah objek yang telah Anda buat pada kelas pecinta alam dan rohis untuk bekerja sehingga tampil efek-efek polymorfisme . Buatlah 1 objek untuk menginstantiasi kelas rohis dan mengimplementasikan beberapa metodh yang telah Anda definisikan dalam kelas rohis.. } } } Hasil eksekusi para pekerja adalah sebagai berikut: Tak…Tak…Klik.. profesi[0]=new programmer("Andii"). Praktikum 1.. for (int i=0.(7) Untuk melihat reaksi masing-masing. Dor.

println("Kerja.println("Dor…bruk. } public void kerja() { System. Teori Singkat Pilar terakhir dari 3 pilar Pemrograman Berorientasi Objek adalah pengkapsulan. Perhatikan kelas manusia dibawah ini! /* Disimpan dalam file “manusia. Pengkapsulan A. } private void bunuhDiri() { System. dimana pengembang software dapat menyembunyikan detail suatu objek. Memahami kegunaan pengaturan hak akses dalam pengembangan aplikasi B. } } Andi adalah objek bentukan dari kelas manusia . kerjaaa.. Memahami dan menggunakan dengan benar hak akses public. serta kelas-kelas dalam satu paket.")...out. Hak akses public memungkinkan semua kelas mengaksesnya. public manusia(String n) { this. nyam.").out..nama = n.out.. } public void makan() { System."). nyam...println("Nyam... Tujuan Praktikan diharapkan dapat: 1.java” */ class manusia { public String nama... hak akses protected hanya diberikan kepada kelasnya sendiri dan turunannya.. protected dan private 2. sedangkan private hanya boleh diakses oleh kelasnya sendiri. } public String tampilkanNama() { return nama.(8) Modul 4.

System. Tambahkan pada kelas andi untuk memanggil metodh bunuh diri. ulangi praktikum no 1.println("Nama= "+ andi. andi.tampilkanNama()). Kompile dan jalankan kelas manusia dan andi! 2. Apa yang terjadi? Jelaskan! .out.(9) /* Disimpan dalam file “andi.makan(). Praktikum 1.java” */ class andi { public static void main(String arg[]) { manusia andi= new manusia("Andi"). Ubah hak akses makan dari public menjadi protected dan ulangi praktikum nomor 1! Apa yang terjadi? Jelaskan! 3. } } Apa yang terjadi jika hak akses private diakses oleh kelas lain? C.

Memahami konsep pewarisan ganda 2. burung { } Perhatikan contoh berikut: /* Disimpan dalam file "superman. Kemudian kelas superman diinstantiasi menjadi objek bernama bejo. Teori Singkat Untuk membuat suatu kelas dapat kita turunkan dengan pewarisan field-field dan metodh pada base classnya. Contoh pewarisan ganda yang tidak benar dalam Java class superman extends programmer.burung { public public public public } void void void void memrogram(){}. dia juga ahli menggunakan senjata layaknya tentara. tentara. Tujuan Praktikan diharapkan dapat: 1. buangKotoran(){}. void buangKotoran(). } interface burung { void terbang(). Memahami konsep interface 3. Dalam Java tidak dikenal pewarisan ganda. } class superman implements programmer. Interface A. terbang(){}.tentara. sehingga digunakan interface. contoh kode program javanya sebagai berikut: . Mengimplementasikan Interface pada Java untuk melakukan pewarisan ganda (10 ) C. } interface tentara { void menembak(). Bagaimana kita membuat kelas yang menurunkan sifat dari beberapa base class? misalkan kita akan membuat kelas superman yang dia bisa membuat program layaknya programmer. menembak(){}.java" */ interface programmer { void memrogram(). bahkan dia bisa terbang seperti elang (keturunan binatang)? Caranya adalah dengan pewarisan ganda.Modul 5.

dor"). { System."). { System... } bj. } bj.. membuat soal ujian dsb.. selain itu bejo tidak berminat untuk mengimplementasikan metodh buangKotorang dari interface burung (misalnya karena burung biasa membuang kotorang di sembarang tempat)..println("Implementasi memrogram .tik").out.println("Implementasi menembak ..out. misalnya sebagai dosen dia wajib mengajar.out..java" */ public class bejo { public static void main(String arg[]) { superman bj= new superman().menembak().dor.(11 ) /* Disimpan dalam file "bejo. Buatlah kelas mahasiswaSuper dengan menggunakan interface mahasiswa.. dan kemudian instantiasi menjadi objek dengan nama sesuai nama Anda atlit.. Praktikum 1. cara menembaknya bagaimana dan cara terbangnya seperti apa)....println("Implementasi terbang. { System. akan tetapi cara mengajarnya dan membuat soalnya dilakukan terserah masing-masing dosen (tidak ditentukan dalam kontrak kerja) C. bj.memrogram(). . Jadi interface dapat dianalogikan seperti menandatangani kontrak kerja.tak.Zap.. wiraswasta.terbang(). } } } Dalam kode diatas bejo menentukan sendiri cara mengimplementasi beberapa metodh dari interface yang telah didefiniskan dalam kelas superman (misalkan cara memrogramnya bagaimana..

. misalkan kelas programmerC. sehingga mungkin saja dalam penamaan kelas terjadi persamaan. /* Disimpan dalam “programmer/programmerC.java” */ package programmer. hal ini akan membuat struktur program menjadi rumit kalau tidak dikelola dengan baik. Terhindar dari konflik penamaan. programmerJava.. Misalkan saja dalam membuat program kita menggunakan/mengimport kelas dari luar yang dibuat oleh programmer lain. dosenEtika."). Memahami dan mengimplementasikan pemaketan 2. Dengan menunjukkan nama lengkap paket/kelasnya maka tidak akan terjadi konflik penamaan 2. tentunya kita mencari dalam paket tentara-bukan paket dosen. Teratur.out. Untuk itu kelas-kelas disimpan dalam paket-paket tertentu. public class programmerC { public programmerC() { } public void kerja() { System. } } /* Disimpan dalam file “programmer/programmerJava. Pemaketan A. kopasus.Modul 6. Sementara marinir.println("Implementasi metodh bersantai Programmer . Paket tentara terdapat marinir. Paket programmer terdiri dari kelas programmerC dan programmerJava. Dengan struktur demikian. . programmerPHP berada/disimpan dalam paket programmer.println("Implementasi metodh kerja Programmer C . kopasus. maka akan mempermudah ketika ketika kita akan menggunakan/mengimport kelas. paskhas.out. Memahami dan menggunakan kelas yang terdapat dalam paket tertentu (12 ) B. dosenKalkulus. paskhas berada dalam paket tentara. misalkan saja kita akan mengimport kelas kopasus. Keuntungan pengaturan program dalam nama paketpaket adalah: 1. Teori Singkat Ketika kelas-kelas yang dibuat semakin banyak dan semakin banyak. Misalkan paket dosen terdapat kelas dosenPBO. Tujuan Praktikan diharapkan dapat: 1. ").java” */ package programmer. Sebagai contoh kita akan membuat 2 paket: paket programmer dan paket tentara. } public void bersantai() { System.

out... public class kopasus { public kopasus() { } public void kerja() { System.println("Implementasi metodh kerja kopasus ..println("Implementasi metodh bersantai Programmer Java.java” */ package tentara. ").println("Implementasi metodh kerja Programmer Java . } public void bersantai() { System.java” */ package tentara. } } Sedangkan paket tentara terdapat kelas AngkatanDarat dan AngkatanLaut..").out. /* Disimpan dalam file “tentara/kopasus.out.println("Implementasi metodh bersantai kopasus").. } public void bersantai() { System.").(13 ) public class programmerJava { public programmerJava() { } public void kerja() { System. } } Kalau dieksekusi class Andi akan menghasilkan /* Disimpan dalam file “tentara/marinir. public class marinir { public marinir() { } public void kerja() { .out.

"). frame.. frame. final JLabel label = new JLabel("Java is Ok Sir")..out. } } .kerja().setVisible(true).println("Implementasi metodh bersantai marinir . /* Disimpan dalam file "ahmed. } } Mengimport kelas Untuk dapat mengimport kelas digunakan keyword import [nama paketnya].out.println("Implementasi metodh kerja marinir .").java" */ import javax.swing.programmerC. ahmed. /* Disimpan dalam file "JavaOk. frame.*. Implementasi metodh kerja Programmer C .add(label).java" */ import programmer. } } sehingga hasil eksekusinya adalah. class ahmed { public static void main(String arg[]) { programmerC ahmed= new programmerC(). misalkan untuk membuat windows bisa digunakan/import paket awt dan swing.System..getContentPane().pack(). Banyak sekali kelas-kelas yang telah dibuat oleh Sun yang dapat kita gunakan... } (14 ) public void bersantai() { System. public class JavaOk { public static void main(String[] args) { JFrame frame = new JFrame("Java?"). Sebagai contoh instantiasi kelas programmerJava dalam paket programmer menjadi objek ahmed.

Buatlah paket mahasiswa yang isinya kelas IF. wiraswasta atau yang lainnya dan buat metodhnya. kelas MI. Instantiasi sebuah objek dan beri nama dengan nama Orang tua Anda yang mengimport dari paket orangTuaSiswa . nelayan. 3. Instantiasi sebuah objek dan beri nama dengan nama Anda yang mengimport dari paket mahasiswa 4.(15 ) yang akan menampilkan hasi sebagai berikut: C. Buatlah paket orangTua Siswa yang isinya kelas petani. Praktikum 1. kelas SI dan buat metodhmetodhnya 2.

bat dengan menyeting PATH dan CLASSPATH nya.Lampiran.. konfigurasilah (16 ) file SET PATH=%PATH%.java” Prompt:\javac tes.java 2."C:\JDK\lib" Pada setting PATH dimaksudkan agar file-file executable di direktori ”C:\JDK\bin” bisa dijalankan dari seluruh direktori kerja.class Prompt:\Java tes Baca manual/dokumentasi programnya untuk keterangan selengkapnya! . autoexec.C:\JDK\bin SET CLASSPATH=. Perintah-Perintah Dasar 1. Pada setting CLASSPATH dimaksudkan agar class-class yang ada di “C:\JDK\lib” bisa diimport dari seluruh direktori kerja. Menjalankan class (hasil kompilasi) Prompt:\Java [-option] nama class Option boleh ada dan boleh juga tidak Contoh untuk menjalankan tes. Konfigurasi PATH dan Penggunaan Java Konfigurasi PATH dan CLASSPATH Setelah Java Development Kit terinstall (misalkan di C:\JDK). Mengkompile file java Prompt:\javac [option] [source file] Option boleh ada dan boleh juga tidak Contoh: Untuk mengkompile file “tes.