Lab. Common Computing – Universitas Trunojoyo Madura
Praktikum Pemrograman Berbasis Object (PBO) [MODUL]
Ganjil 2012/2013 1/34
Lab. CC – Universitas Trunojoyo Madura
Daftar Isi Daftar Isi ............................................................................................................................. 2 KONTRAK PRAKTIKUM ................................................................................................ 3 MODUL 1 KELAS DAN OBJEK ..................................................................................... 7 MODUL 2 POLYMORPHISM ....................................................................................... 13 MODUL 3 INHERITANCE (PEWARISAN) ................................................................. 19 MODUL 4 Pengkapsulan................................................................................................. 23 MODUL 5 INTERFACE .................................................................................................. 26 MODUL 6 PACKAGE .................................................................................................... 31
2/34
Lab. CC – Universitas Trunojoyo Madura
KONTRAK PRAKTIKUM Nama Mata Kuliah Kode Mata Praktikum SKS Mata Kuliah Prasyarat Dosen Penanggung Jawab Semester / Th Ajaran Hari Pertemuan / Jam Tempat Pertemuan Computing
: Praktikum Pemrograman Berbasis Objek : TKC 129 :1 : Pemrograman Berbasis Objek : Ery Setiyawan : Genap / 2011-2012 : Sesuai Jadwal Praktikum : Lab. Common
Gambaran Umum : Praktikum ini merupakan praktek dari mata kuliah Pemrograman Berbasis Objek yang meliputi Class dan Object, Polymorfisme, enkapsulaption, inheritence, interface dan Package. Pada praktikum ini mahasiswa melakukan pemrograman penggunaan Class dan inheritence Class yang banyak digunakan untuk pemecahan permasalahan dalam pemrograman. Praktikum disertai dengan latihan-latihan menyelesaikan permasalahan dengan deklarasi dan penggunaan Class yang tepat. Mahasiswa diharapkan dapat: Menyelesaikan masalah dengan menggunakan konsep OOP yang akan dijalankan oleh komputer, kemudian mengimplementasikannya menjadi sebuah program komputer Merepresentasikan data yang digunakan dalam pemrograman OOP (baik data input atau data output) dengan deklarasi dan penggunaan Class yang tepat. Mengetahui & membandingkan macam-macam deklarasi class, penggunaan class, dan sifat kelebihan OOP yang digunakan dalam permasalahan pemrograman yang diselesaikannya.
Tujuan Pembelajaran Praktimum Mahasiswa mengerti konsep OOP (Object Oriented Programming) / Pemrograman Berbasis Objek dan dapat menerapkannya dalam bahasa pemrograman Java Rumusan kompetensi Dasar 1. Mahasiswa memahami Class dan Objeck 2. Mahasiswa memahami Polymorfisme 3. Mahasiswa memahami Encapsulaption 4. Mahasiswa memahami Inheritence 5. Mahasiswa memahami Interface dan pemanfaatannya 6. Mahasiswa memahami Package dan pemanfaatannya
3/34
Lab. CC – Universitas Trunojoyo Madura
Referensi / Bahan Bacaan 1. “Java for Dummies”, Barry Burd, Wiley Publishing, 2007 2. “Java 6 in 21 Days”, Rogers Cadenhead, SAMS, 2007 3. Rangsang Purnama, Tuntunan Pemrograman Java Jilid 2, Prestasi Pustaka, 2003 4. Jim Keogh and Mario Giannini, OOP Demystified: A Self-Teaching Guide, McGraw-Hill/Osborne, Ch. 4, 2004 5. Knudsen Jonathan, Niemeyer Pat, Learning Java™, 2nd Edition, O’Reilly, July 2002. 6. Horstmann C, Java Concepts 5th Edition, Barkeley: John Wiley & Sons, Inc 381, 387, 397, 2005. 7. Lervik E, Java the UML Way, Trondheim: John Wiley & Sons, Inc 372, 2002 8. Savitch W, Absolute Java Second Edition: Addison Wesley 315, 2005
Alur bagi peserta praktikum : 1. Sebelum Pelaksanaan Praktikum, ada Pre Test 2. Pada Tiap Sesi Pelaksanaan Praktikum: a. Peserta praktikum
menerima
dan kemudian
mempelajari
modul
praktikum. b. Peserta praktikum mengerjakan tugas pendahuluan yang diberikan. c. Peserta praktikum melakukan asistensi tugas pendahuluan tersebut. Asistensi ini digunakan sebagai bagi asisten untuk menilai kesiapan peserta juga berfungsi sebagai ajang diskusi peserta praktikum atas kesuliatan yang dialaminya. d. Peserta Praktikum melakukan implementasi Tugas Praktikum di kelas/ e. Peserta praktikum mendemokan implementasi pada asisten. Penilaian yang dilakukan oleh asisten bersifat WISIWYG (What I see Is What You Get) 3. Pada akhir pelaksanaan seluruh sesi praktikum, ada Posttest, berupa test program.
Tugas NO KRITERIA 1 Jenis Tugas 2
Tujuan
3
Jadwal Pengumpulan
4
Keluaran Tugas
4/34
INDIVIDU 1. Pre Test 2. Post Test 1. Mahasiswa memahami Konsep Struktu Data
KELOMPOK 1. Tugas Pendahuluan 2. Tugas Sesi Praktikum Mampu menyelesaikan masalah yang diberikan dengan program
1. Diawal Praktikum 2. Diakhir Praktikum 1. Program + Penjelasan
1. Di Awal Sesi Praktikum 2. Di akhir sesi praktikum 1. Program 2. Listing Program beserta penjelasan
Lab. CC – Universitas Trunojoyo Madura
Bobot Prosentase Penilaian Praktikum : 1. Pre Test 5% 2. Pelaksanaan Praktikum – 6 Sesi / Modul a. Tugas pendahuluan 15% b. Kehadiran dan tugas praktikum 35% c. Asistensi dan laporan praktikum 35% 3. Posttest + Laporan resmi 10%
Form Nilai Praktikum : Pemrograman Berbasis Objek Sem/Th Ajaran : Genap 2011/2012
Asdos :
Kelas : A
Modul 1 NAMA
Modul 2
Modul 3
Modul 4
Modul 5
Modul 6
Rata-rata
Pretest
Posttest Nilai Nilai + Lapres Akhir Huruf Akhir
No
NRP
n1
n2
n3
n1
n2
n3
n1
n2
n3
n1
n2
n3
n1
n2
n3
n1
n2
n3
1
010041110000
34
85
80
78
85
83
84
83
82
78
85
80
76
83
79
76
85
78
74 84,33 80,33 77,67
78
77,45
2
008041110010
27
83
78
79
85
79
72
81
75
75
84
77
74
85
70
71
84
72
71 83,67 75,17 73,67
65
72,49
B
3
010041110005
65
87
85
88
86
85
87
85
87
86
86
88
87
87
78
79
86
78
77 86,17 83,50 84,00
83
83,10
A
4
010041110009
57
85
80
78
84
82
83
84
78
80
85
80
79
84
72
73
85
74
73 84,50 77,67 77,67
73
77,19
B+
5
010041110007
46
85
79
78
85
83
85
85
80
78
84
78
80
83
74
76
84
77
75 84,33 78,50 78,67
78
77,76
B+
6
010041110009
45
85
79
78
85
83
83
85
78
79
83
79
78
85
75
75
83
76
75 84,33 78,33 78,00
78
77,42
B+
n1
n2
n3
7
Presentase Nilai Kegiatan Pre Test Tugas Pendahulua Kehadiran + Tugas Asistensi + Lapora Posttest + Lapres
% 5% 15% 35% 35% 10%
KET pre test n1 n2 n3 post test
Nilai Point Range A 4 > 80 B+ 3,5 >75 – 80 B 3 >70 – 75 C+ 2,5 > 65 – 70 C 2 >60 – 65 D 1 50 - 60 E 0 < 50 Catatan : Range Nilai bisa berubah sesuai dengan kondisi kelas
Peraturan Praktikum : 1. Praktikan harus menghadiri setiap sesi praktiku, tidak hadir tanpa keterangan akan menyebabkan hak menjadi praktikan gugur (nilai E). 2. Tugas pendahuluan diserahkan sebelum praktikum dimulai. 3. Laporan praktikum dianggap sah apabila praktikan telah melakukan asistensi sesuai dengan materi praktikum.
5/34
Lab. CC – Universitas Trunojoyo Madura
B+
4. Laporan resmi adalah gabungan dari semua laporan praktikum tiap sesi. 5. Perbuatan Plagiat / Copy –Paste / Mencontoh sangat dilarang. Jika ada indikasi, akan di beri nilai E.
Lain – Lain
Pengumuman : jullev.com Pertanyaan :
[email protected] Ketua Koordinator Asisten Praktikum / HP : Bahasa Pemrograman : Java Tool o Net Beans o Eclipse o Jeliot, dll
6/34
Lab. CC – Universitas Trunojoyo Madura
MODUL 1 KELAS DAN OBJEK I. TEORI DASAR 1. Class dan Object Perbedaan Class dan Object Pada dunia perangkat lunak, sebuah obyek adalah sebuah komponen perangkat lunak yang stukturnya mirip dengan obyek pada dunia nyata. Setiap obyek dibangun dari sekumpulan data (atribut) yang disebut variabel untuk menjabarkan karakteristik khusus dari obyek, dan juga terdiri dari sekumpulan method yang menjabarkan tingkah laku dari obyek. Bisa tikatakan bahwa obyek adalah sebuah perangkat lunak yang berisi sekumpulan variabel dan method yg berhubungan. Variabel dan method dalam obyek Java secara formal diketahui sebagai variabel instance dan method instance. Hal ini dilakukan untuk membedakan dari variabel class dan method class, dimana akan dibahas kemudian. Class adalah sturktur dasar dari OOP. Class terdiri dari dua tipe dari anggota dimana disebut dengan field (attribut/properti) dan method. Field merupakan tipe data yang didefinisikan oleh class, sementara method merupakan operasi. Sebuah obyek adalah sebuah instance (keturunan) dari class. Untuk dapat membedakanantara class dan obyek, mari kita mendiskusikan beberapa contoh berikut ini. Kita memiliki sebuah class mobil dimana dapat digunakan untuk medefinisikan beberapa obyek mobil. Pada tabel dibawah, mobil A dan mobil B adalah obyek dari class mobil. Class memiliki field nomor, plat, warna, manufaktur dan kecepatan yang diisi dengan nilai pada obyek mobil A dan mobil B. Mobil juga dapat berakselerasi, berbelok dan melakukan rem. Ketika diinisialisi, setiap obyek mendapat satu set variabel yang
baru.
Bagaimanapun, implementasi dari method dibagi diantara objek pada class yang sama. Class menyediakan keuntungan dari reusability. Programmer perangkat lunak dapat menggunakan sebuah kelas beberapa kali untuk membuat banyak objek.
Instansiasi Class Untuk membuat sebuah objek atau sebuah instance pada sebuah class. Kita menggunakan operator new. Sebagai contoh, jika anda ingin membuat instance dari class string, kita menggunakan kode berikut : String str2 = new String(“Hello world!”);
7/34
Lab. CC – Universitas Trunojoyo Madura
Ini juga sama dengan, String str2 = "Hello"; Variabel Class dan Variabel Method Selain dari variabel instance, kita juga memungkinkan untuk mendefinisikan variabel dari class, yang nantinya variabel ini dimiliki oleh class. Ini berarti variabel ini dapat memiliki nilai yang sama untuk semua objek pada class yang sama. Mereka juga disebut static member variables. 2. Method Apakah Method itu dan mengapa menggunakan Method? Di dalam Java, kita dapat mendefinisikan banyak method yang akan kita panggil dari method yang berbeda. Sebuah method adalah bagian-bagian kode yang dapat dipanggil oleh program utama atau dari method lainnya untuk menjalankan fungsi yang spesifik. Berikut adalah karakteristik dari method : 1. dapat mengembalikan satu nilai atau tidak sama sekali 2. dapat diterima beberapa parameter yang dibutuhkan atau tidak ada parameter sama sekali. Parameter bisa juga disebut sebagai argumen dari fungsi 3. setelah method telah selesai dieksekusi, dia akan kembali pada method yang memanggilnya. Sekarang mengapa kita butuh untuk membuat banyak method? Mengapa kita tidak menuliskan semua kode pada sebuah method? Hal ini karena penyelesaian masalah yang sangat efektif adalah memecah masalah-masalah tersebut menjadi beberapa bagian. Kita juga dapat melakukan hal ini di Java dengan membuat method untuk mengatasi bagian tertentu dari masalah. Sebuah permasalahan dapat dipecah-pecah menjadi beberapa bagian kecil. Hal ini sangat baik sekali untuk membuat program yang sangat besar.
/* Disimpan dalam file “Manusia.java” */ //Class Deklarasi public class manusia { //Variabel public String nama; //Konstruktor public manusia(String n) {
8/34
Lab. CC – Universitas Trunojoyo Madura
this.nama = n; } //Method public String tampilkanNama() { return nama; } public void belajar() { System.out.println("Belajar PBO, Matematika, Fisiki "); } public void kerja() { System.out.println("Kerja...kerjaaa..."); } }
Adapun contoh kode untuk menginstantiasi kelas manusia menjadi objek Andi yang mengimplementasikan metodh: tampilkanNama dan makan adalah sebagai berikut. /* Disimpan dalam file “budi.java” */ class budi { public static void main(String arg[]) { manusia budi= new manusia("Budi"); System.out.println("Nama= "+ budi.tampilkanNama()); budi.belajar(); } }
Hasil eksekusi terhadap class budi adalah sebagai berikut: Nama= Budi Belajar PBO, Matematika, Fisiki
II.
TUGAS PENDAHULUAN Buatlah program menggunakan class dan objek dengan nama motor.java, jika program di jalankan hasilnya seperti di bawah ini : Object “motor-1” : Merk : Yamaha Pemilik : Pak Darmawan Object “motor-2” : Merk : Honda
9/34
Lab. CC – Universitas Trunojoyo Madura
Pemilik : Pak Nasiruddin
III. KEGIATAN PRAKTIKUM Buatlah kelas mahasiswa dengan atribut/variablel = nama dan npm dan mempunyai metodh: tampilkanNama, tampilkanNpm, belajar, olahRaga, makan, minum.
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
IV. TUGAS AKHIR Buat program dengan nama televOOP.java dengan spesifikasi sebagai berikut : Class : Televisi Object : Televisiku Attribute -
Merek
-
Tipe
-
Ukuran
-
Tombol volume
-
Tombol Channel
Method -
Menyalakan TV
-
Memindahkan Channel
-
Membesarkan volume
-
Mematikan Televisi
Hasil : Merek Televisi : Samsung Tipe Televisi : LCD TV Ukuran Televisi : 52 inchi Saat ini televisi sudah on..... Channel berpindah Volume bertambah besar. Press any key to continue . . .
10/34
Lab. CC – Universitas Trunojoyo Madura
V. CATATAN
11/34
Lab. CC – Universitas Trunojoyo Madura
Referensi [1] Rangsang Purnama, Tuntunan Pemrograman Java Jilid 2, Prestasi Pustaka, 2003.
12/34
Lab. CC – Universitas Trunojoyo Madura
MODUL 2 POLYMORPHISM I.
Teori Metode disebut polimorfis jika aksi yang dilakukan oleh suatu metode berbeda-beda
tergantung pada objek aktual pada saat metode itu dijalankan. Polimorfisme adalah salah satu fitur utama dalam pemrograman berorientasi objek. Sebagai contoh, sebuah class induk dengan nama Student mempunyai subclass StudentGrad, dan ditambahkan class lain dengan nama StudentInfo.
Gambar 1 : Class Student dan subclass nya Dari gambar diatas class StudentInfo digambarkan mempunyai hubungan polymorfisme dengan class StudentGrad dan tentunya dengan class induk dari StudentGrad yaitu class induk Student..
II.
Prepraktikum 1. Keuntungan apa yang bisa didapat dengan Polymorphism? 2. Bagaimana hubungan antar teknik overloading dengan Polymorphism?
III.
Kegiatan Praktikum Pada gambar 1 kita membuat tiga object class dengan nama Student, subclass
StudentGrad dan class StudentInfo. Class Student mempunyai method Write yang digunakan
untuk
melewatkan argumen
untuk
kemudian
ditampilkan
menggunakan method Display.
class Student { public void Write(int ID, int Grad, String Fname, String Lname) { m_ID = ID;
13/34
Lab. CC – Universitas Trunojoyo Madura
dengan
m_Graduation = Grad; m_First = Fname; m_Last = Lname; } public void Display(){ System.out.println( "Student: " + m_ID + " " + m_First + " " + m_Last + " Graduated: " + m_Graduation); } private int m_ID, m_Graduation; private String m_First; private String m_Last; }
Subclass Student dengan nama StudentGrad berisi sintaks untuk menampilkan info kelulusan. Polimorfisme terjadi antara kedua class StudentGrad dan Student dimana pada kedua class mempunyai dua dua method yang sama tetapi mempunyai bentuk yang berbeda sesuai dengan object yang digunakan untuk memanggilnya, yaitu Write() dan Display(); class StudentGrad extends Student { public void Write(int ID, int Grad, String Fname, String Lname, int yrGrad, String unSch, String major) { super.Write(ID, Grad, Fname, Lname); m_UndergradSchool = unSch; m_Major = major; m_Grad = Grad; YearGraduated = yrGrad; } public void Display(){ super.Display(); System.out.println(" Graduated: " + m_Grad + " " + m_UndergradSchool + " " + m_Major + " " + YearGraduated); } private Integer YearGraduated,m_Grad; private String m_UndergradSchool; private String m_Major; }
Class lain yaitu StudentInfo yang digunakan untuk memasukan agumen ke kedua methd pada masing-masing class Student dan StudentGrad. class StudentInfo { public static void main (String args[]) { StudentGrad myStudent = new StudentGrad(); myStudent.Write(10, 1,"Bob","Smith", 2000,"Columbia University","CS"); myStudent.Display(); } }
14/34
Lab. CC – Universitas Trunojoyo Madura
IV.
Tugas Akhir 1. Kucing, Ayam, dan Anjing merupakan makhluk hidup yang masuk kategori hewan, tiap hewan pasti mempunyai identitas baik itu berupa tipe hewan dan suaranya.
Gambar 2 : Class Hewan dan subclass nya
Potongan sintaks bisa dituliskan seperti dbawah ini: class Hewan { private String tipe; public Hewan(String tipe){ this.tipe = tipe; } public String toString(){ return "Ini adalah "+tipe; } public void bersuara(){ } }
Sintaks class polimorfisme import java.util.Random; class Polimorfisme{ public static void main(String args[]){ Hewan[] hewannya = { new Anjing("Broni", "Herder"), new Kucing("Kiti", "Persia"), new Ayam("Toki", "Buras") }; Hewan pilihHewan; Random pilih = new Random(); for (int i = 0; i<5 ; i++){ pilihHewan = hewannya[pilih.nextInt(hewannya.length)]; System.out.println("\nPilihan Anda:\n" + pilihHewan); pilihHewan.bersuara(); } } }
15/34
Lab. CC – Universitas Trunojoyo Madura
Sintaks class Anjing class Anjing extends Hewan{ //sintaks private object public Anjing(String nama){ //sintaks menampilkan nama } public Anjing(String nama, String jenis){ //sintaks menampilkan nama dan jenis hewan } public void bersuara(){ //sintaks menampilkan suara hewan } public String toString(){ return super.toString()+"/nIni adalah "+jenis+" bernama "+nama; } }
Lanjutkan potongan kode program diatas sampai muncul output seperti di bawah ini: Pilihan Anda: Ini adalah Ayam Ini adalah Buras bernama Toki Kukuruyuk petok petok Pilihan Anda: Ini adalah Kucing Ini adalah Persia bernama Kiti Meong meong meong Pilihan Anda: Ini adalah Ayam Ini adalah Buras bernama Toki Kukuruyuk petok petok Pilihan Anda: Ini adalah Anjing Ini adalah Herder bernama Broni Guk guk guk Pilihan Anda: Ini adalah Anjing Ini adalah Herder bernama Broni Guk guk guk
Pilihan diwakilkan dengan data array pada class polimorfisme.
16/34
Lab. CC – Universitas Trunojoyo Madura
V.
Catatan Praktikum
17/34
Lab. Pemrograman – Universitas Trunojoyo Madura
Referensi [1] Jim Keogh and Mario Giannini, OOP Demystified: A Self-Teaching Guide , McGraw-Hill/Osborne, Ch. 4, 2004.
18/34
Lab. CC – Universitas Trunojoyo Madura
MODUL 3 INHERITANCE (PEWARISAN) I. Teori Inheritance merupakan pewarisan atribut dan method pada sebuah class yang diperoleh dari class yang telah terdefinisi tersebut. Setiap subclass akan mewarisi state (variabel-variabel) dan behaviour (method-method) dari superclass-nya. Subclass kemudian dapat menambahkan state dan behaviour baru yang spesifik dan dapat pula memodifikasi (override) state dan behaviour yang diturunkan oleh superclass-nya. 1. Keuntungan dari inheritance adalah : Subclass menyediakan state/behaviour yang spesifik yang membedakannya dengan superclass, hal ini akan memungkinkan programmer Java untuk menggunakan ulang source code dari superclass yang telah ada. Programmer Java dapat mendefinisikan superclass khusus yang bersifat generik, yang disebut abstract class, untuk mendefinisikan class dengan behaviour dan state secara umum. 2. Istilah dalam inheritance yang perlu diperhatikan : Extends : Keyword ini harus kita tambahkan pada definisi class yang menjadi subclass. Superclass : Superclass digunakan untuk menunjukkan hirarki class yang berarti class dasar dari subclass/class anak. Subclass : Subclass adalah class anak atau turunan secara hirarki dari superclass. Super : Keyword ini digunakan untuk memanggil konstruktor dari superclass atau menjadi variabel yang mengacu pada superclass. Ada beberapa hal yang harus diingat ketika menggunakan pemanggil constuktor super:
II.
Prepraktikum 1. Apa yang perbedaan antara Induk Kelas dengan Kelas Turunan? 2. Jelaskan keyword super dan extends dalam Pewarisan?
III.
Kegiatan Praktikum
19/34
Lab. CC – Universitas Trunojoyo Madura
Pada bagian kegiatan praktikum ini, kita akan belajar membuat class yang dikelompokkan dalam package kemudian menggunakan package ini dari class lain. /*langkah ke-1: Membuat Class Rumah*/ class Rumah { private String a = " Rumahmewah "; public void info() { //System.out.println (" Dipanggil pada = "+this); System.out.println (" "); System.out.println (" Rumah = "+a); } } } /*langkah ke-2: Membuat Class rumahindah turunan dari Rumah*/ class rumahindah extends Rumah { private String b = " tombol alarm "; public void info() { System.out.println (" "); super.info(); System.out.println (" rumahindah = "+b); } }
/*langkah ke-3: Membuat Main Program dengan Nama Class TipeRumah */ public class TipeRumah { public static void main ( String[]args ) { Rumahindah C = new bertingkat(); C.info(); } }
IV.
Tugas Akhir 1. Buatlah program java untuk menurunkan 2 buah kelas turunan dari kelas induk yang berupa lingkaran dimana program ini dapat menghitung luas dan keliling lingkaran !
20/34
Lab. CC – Universitas Trunojoyo Madura
V.
Catatan Praktikum
21/34
Lab. CC – Universitas Trunojoyo Madura
Referensi [1] Knudsen Jonathan, Niemeyer Pat, Learning Java™, 2nd Edition, O’Reilly, July 2002. [2] Rangsang Purnama, Tuntunan Pemrograman Java Jilid 2,Prestasi Pustaka, 2003.
22/34
Lab. CC – Universitas Trunojoyo Madura
MODUL 4
Pengkapsulan
I. Teori Enkapsulasi adalah suatu cara untuk menyembunyikan informasi detail dari suatu class. Dua hal yang mendasar dalam enkapsulasi yakni : Information hiding , Interface to access data. Enkapsulasi menunjuk pada prinsip dari menyembunyikan desain atau mengimplementasikan
informasi
yang
tidak
sesuai
pada
object
yang
ada.
Menyembunyikan elemen dari penggunaan sebuah class dapat dilakukan dengan pembuatan anggota yang ingin Anda sembunyikan secara private. Hak akses public memungkinkan semua kelas mengaksesnya, hak akses protected hanya diberikan kepada kelasnya sendiri dan turunannya, serta kelas-kelas dalam satu paket. sedangkan private hanya boleh diakses oleh kelasnya sendiri.
II. Prepraktikum 1. Apa yang anda ketahui tentang Information hiding ? 2. Jelaskan tentang Interface to access data dalam konsep Pengkapsulan? 3. Jelaskan mengenai keyword public, protected dan private ?
III. Kegiatan Praktikum Perhatikan kelas manusia dibawah ini!
/* Disimpan dalam file “manusia.java” */ class manusia { public String nama; public manusia(String n) { this.nama = n; } public String tampilkanNama()
23/34
Lab. CC – Universitas Trunojoyo Madura
{ return nama; } public void makan() { System.out.println("Nyam... nyam... nyam..."); } public void kerja() { System.out.println("Kerja... kerjaaa..."); } private void bunuhDiri() { System.out.println("Dor…bruk..."); } } Andi adalah objek bentukan dari kelas manusia (9) /* Disimpan dalam file “andi.java” */ class andi { public static void main(String arg[]) { manusia andi= new manusia("Andi"); System.out.println("Nama= "+ andi.tampilkanNama()); andi.makan(); } }
Apa yang terjadi jika hak akses private diakses oleh kelas lain?
VI. Kompile dan jalankan kelas manusia dan andi! VII.
Ubah hak akses makan dari public menjadi protected dan ulangi praktikum nomor
1! Apayang terjadi? Jelaskan!
24/34
Lab. CC – Universitas Trunojoyo Madura
VIII. Tambahkan pada kelas andi untuk memanggil metodh bunuh diri, ulangi praktikum no 1. Apa yang terjadi? Jelaskan!
IV Tugas Akhir Diserahakan kepada asisten masing-masing untuk memberikan tugas akhir dan tugas tambahan.
25/34
Lab. CC – Universitas Trunojoyo Madura
MODUL 5 INTERFACE I. Teori Produktifitas dalam pemrograman dapat ditingkatkan antara lain dengan cara memaksimalkan kode yang dapat dimanfaatkan berulang kali (reusable code). Interface adalah struktur kode yang diawali kata kunci interface dan berisi bagian reusable code berupa abstract method atau konstanta. Semua method dalam interface secara otomatis memiliki visibilitas public. [1] Abstract method dalam interface dapat diimplementasikan dalam class dengan menggunakan kata kunci implements. Dalam java, satu class hanya dapat menjadi turunan dari satu class namun diperkenankan untuk dapat mengimplementasikan lebih dari satu interface. [2] Instance atau objek dapat dibentuk dengan memasangkan variabel bertipe class atau interface dengan referensi berupa pemanggilan constructor class. Casting dapat dilakukan untuk mengubah objek dari tipe superclass menjadi tipe subclass.
II.
Prepraktikum 1. Apa yang dimaksud dengan abstract method? 2. Apa yang dimaksud dengan overriding method? 3. Apa yang dimaksud dengan instansiasi?
III.
Kegiatan Praktikum Pada bagian kegiatan praktikum ini, kita akan belajar membuat interface dan
mengimplementasikannya dalam sebuah class. /*interface berisi abstract method atau method header*/ interface MyComparable { boolean greaterThan(Object obj); boolean lessThan(Object obj); boolean equal(Object obj); }
/*interface berisi konstanta*/ interface Constants { int min = 1000; int max = 9999; } /*class mengimplementasikan dua interface*/
26/34
Lab. CC – Universitas Trunojoyo Madura
class FourDigitsNumber implements Constants, MyComparable { private int value; public FourDigitsNumber(int initValue) { /*latihan 1: atur agar nilai yang diinputkan dalam constructor hanya berada di antara min – max */ } /*latihan 2: tambahkan method get untuk mengakses value*/ /*overriding method greaterThan*/ public boolean greaterThan(Object obj) { /*casting from superclass to subclass*/ FourDigitsNumber number = (FourDigitsNumber)obj; return ( value > number.getValue() ); } /*latihan 3: lengkapi overriding method interface*/ } /*Contoh penggunaan class*/ class ExInterface { public static void main(String [] args) { FourDigitsNumber number1 = new FourDigitsNumber(700); FourDigitsNumber number2 = new FourDigitsNumber(1700); FourDigitsNumber number3 = new FourDigitsNumber(70000); System.out.println(number1.getValue()); System.out.println(number2.getValue()); System.out.println(number3.getValue()); System.out.println(number1.greaterThan(number2)); System.out.println(number1.lessThan(number2)); System.out.println(number1.equal(number2)); /*latihan 4: modifikasi agar user dapat menginputkan data*/ } }
27/34
Lab. CC – Universitas Trunojoyo Madura
IV.
Tugas Akhir 1. Segitiga, Lingkaran dan Segiempat adalah bentuk geometri yang dapat dihitung luasnya. Gambarkan diagram hirarki class untuk kasus ini. Kemudian tulis kode program untuk class dan buat program sederhana untuk keperluan pengujian: atur array dengan elemen berisi referensi ke setiap bentuk geometri di atas, masukkan data ke dalamnya dan gunakan untuk memanggil method guna menghitung luas dari setiap bentuk geometri tersebut. 2. Buatlah sebuah interface dengan nama MtkDasar yang berisi dua buah method head atau abstract String tambah(int a, int b); String kurang(int a, int b);
Buatlah sebuah class dengan nama Pecahan yang terdiri dari: dua variabel bertipe int yaitu pembilang dan penyebut, sebuah constructor dengan dua parameter bertipe int, method set( ) / get( ), method toString( ). Pecahan harus mengimplementasikan interface MtkDasar. Buatlah sebuah class CobaPecahan yang berfungsi menguji class Pecahan.
28/34
Lab. CC – Universitas Trunojoyo Madura
V.
Catatan Praktikum
29/34
Lab. CC – Universitas Trunojoyo Madura
Referensi [1] Horstmann C, Java Concepts 5th Edition, Barkeley: John Wiley & Sons, Inc 381, 387, 397, 2005. [2] Lervik E, Java the UML Way, Trondheim: John Wiley & Sons, Inc 372, 2002.
30/34
Lab. CC – Universitas Trunojoyo Madura
MODUL 6 PACKAGE
I. Teori Package adalah cara Java untuk membuat suatu pustaka class. Kita dapat membuat package berisi sekumpulan class dan menggunakan package tersebut dalam class atau program lain tanpa memindah kumpulan class ke dalam direktori kerja. Untuk membuat package, letakkan beberapa file kode .java ke dalam direktori dan tambahkan kata kunci package di awal setiap file kode tersebut. Kemudian lakukan kompilasi sehingga dalam direktori terbentuk file class. Sebelum suatu package dapat diimport oleh class lain, tambahkan path dari package ke dalam CLASSPATH. [1]
II.
Prepraktikum 1. Bagaimana agar class dalam suatu package dapat digunakan? 2. Mana yang lebih dahulu ditulis, kata kunci package atau import? 3. Tanda separator apa yang digunakan untuk memisahkan antara nama package dengan nama class?
III.
Kegiatan Praktikum Pada bagian kegiatan praktikum ini, kita akan belajar membuat class yang
dikelompokkan dalam package kemudian menggunakan package ini dari class lain. /*langkah ke-1: MtkDasar.java dalam direktori matematika*/ package matematika; public interface MtkDasar { String tambah(int a, int b); String kurang(int a, int b); } /*langkah ke-2: Pecahan.java dalam direktori matematika*/ package matematika; public class Pecahan implements MtkDasar { private int pembilang, penyebut; public Pecahan(int a, int b) { /*latihan 1: atur agar penyebut 0 tidak diterima*/ } /*latihan 2: lengkapi overriding method
31/34
Lab. CC – Universitas Trunojoyo Madura
sesuai interface*/ public String toString() { /*latihan 3: output yg diharapkan
/ */ } } /*langkah ke-3: mengenalkan package dalam CLASSPATH untuk linux */ set CLASSPATH=/home//matematika:.
/*untuk windows*/ set CLASSPATH=c:\\matematika;. /*langkah ke-4: membuat class yang mengimport package matematika, letakkan file ini di luar direktori matematika */ import matematika.Pecahan; class CobaPecahan { public static void main(String [] args) { Pecahan pecahan1 = new Pecahan(1, 2); System.out.println("" + pecahan1 + " + 1/4 " + " = " + pecahan1.tambah(1, 4)); } /*latihan 4: modifikasi agar user dapat menginputkan data*/ }
IV.
Tugas Akhir 1. Modifikasilah kode program interface MtkDasar.java, dan Pecahan.java agar dapat menghasilkan return value berupa Object. 2. Lengkapi interface MtkDasar dengan kemampuan matematika dasar yang lain yaitu kali (untuk mengerjakan operasi perkalian), dan bagi (untuk mengerjakan operasi pembagian). Sesuaikan kedua class lain, Pecahan dan CobaPecahan.
32/34
Lab. CC – Universitas Trunojoyo Madura
V.
Catatan Praktikum
33/34
Lab. CC – Universitas Trunojoyo Madura
Referensi [1] Savitch W, Absolute Java Second Edition: Addison Wesley 315, 2005.
34/34
Lab. CC – Universitas Trunojoyo Madura