Modul 10, Praktikum : Algoritma dan Pemrograman 1
I.
Tujuan Instruksional Umum • Komunikasi antar objek pada kelas yang berbeda • Memahami berbagai macam modifier dan karakteristiknya
II.
Bahan Kajian Setelah kita berproses dalam belajar Algoritma dan pemrograman dengan Java ini, mulai dari tekik pemrograman dasar sampai pada teknik memogram secara modular dan objek oriented. Akhirnya kita sampai pembahasan pemrograman yang melibatkan lebih dari satu kelas. Pada pemrograman yang melibatkan banyak kelas ada beberapa bahasan yang perlu kita ketahui.
1.
Komunikasi Antar Objek Kita tidak dapat melakukan sesuatu terhadap kelas (kecuali untuk variabel dan method static), kita hanya dapat melakukan sesuatu terhadap objek tertentu dari kelas. Oleh sebab itu dibutuhkan intansiasi. Kita dapat mendefinisikan banyak kelas yang memiliki keterkaitan untuk mencapai solusi dari permasalahan yang ada. Contohnya adalah kita mendefinisikan kelas Mahasiswa dan Kelas Dosen. objek tersebut bisa saling berhubungan dalam rangka perwalian. Kita dapat dapat memanggil method atau property milik kelas Dosen dari kelas Mahasiswa, yaitu melaui objek atau variabel pemegang referensinya (keculai method dan property yang didefiniskan static). Kita dapat memperoleh banyak keuntungan dengan melibatkan banyak kelas. Hal ini terkait dengan keuntungan objek oriented yaitu enkapsulasi, pewarisan, polymorpishm, reuseable (akan dibahas pada mata kuliah lain)
2.
Akses Modifier Akses modifier merupakan akses kontrol yang dapat mengatur siapa saja yang dapat mengakses atau mengubah nilai dari suatu member dari objek. Untuk menentukan kontrol akses kita perlu menambahkan akses modifier tiap kali anda mendeklarasikan method, Kelas, property. Ada Empat akses modifier pada java yaitu Penerapan No
Modifier
Kelas
Var &Method
1
public
Ya
Ya
2
private
Tidak
Ya
3
default
Ya
Ya
4
protected
Tidak
Ya
Akses
Dapat dikases dimanapun : • kelas itu sendiri • Beda kelas satu paket • Beda kelas dan beda paket Hanya dikases oleh kelas itu sendiri Hanya dikases oleh : • kelas itu sendiri • Beda kelas dan satu paket Hanya dikases oleh : • kelas itu sendiri • Beda Kelas dan satu paket • Kelas-kelas turunanya *Tidak akan dibahas disini
Sangat disarankan semua property di set dengan modifier private
3.
Contoh Berikut contoh ilustrasi keterhungan antara Kelas dengan objek:
[if-unpas] 2010 @author : Hendra Komara, ST.
Page 1
Modul 10, Praktikum : Algoritma dan Pemrograman 1
package ac.ifunpas.ap1.praktikum.modul10.student; public class Student { private String npm; private int value; //Konstruktor public Student(){ npm = ""; value = 0; } String getNpm() { return npm; } void setNpm(String npm) { this.npm = npm; } int getValue() { return value; } void setValue(int value) { this.value = value; }
char getGrade() { if(value >= 85) return 'A'; else if (value >= 75)return 'B'; else if (value > 50) return 'C'; else if (value >= 35) return 'D'; else return 'E'; } }
Program di atas tidak dapat running karena tidak ada method main. Kita akan akan membuat method main agar kelas Student dapat running, tetapi pada kelas DemoStudent pada paket ac.ifunpas.ap1.praktikum.modul10.student; Berikut adalah kode untuk kelas DemoStudent: package ac.ifunpas.ap1.praktikum.modul10.student; public class DemoStudent { public static void test(){ Student stdn1; stdn1 = new Student(); stdn1.setNpm("10.403.101"); stdn1.setValue(70); System.out.print("Nilai dari : "+stdn1.getNpm()); System.out.print(" adalah : "+stdn1.getValue()); System.out.println(" ,Grade : "+stdn1.getGrade()); } public static void main(String[] args) { test(); } } [if-unpas] 2010 @author : Hendra Komara, ST.
Page 2
Modul 10, Praktikum : Algoritma dan Pemrograman 1
Sekarang coba buat kelas dengan nama DemoStudent dan isinyapun sama persis pada paket ac.ifunpas.ap1.praktikum.modul10 Perhatikan ternyata bisa dibuat intansiasi tetapi method dan property nya tidak bisa dikases. Itulah karakteristik dari modifier. Perhatikan ada keyword import itu menunjukan bahwa kelas DemoStudent menggunakan kelas lain yang berbeda paket.
[if-unpas] 2010 @author : Hendra Komara, ST.
Page 3
Modul 10, Praktikum : Algoritma dan Pemrograman 1
III. Instruksi Praktikum 1.
Latihan 1 Lenkapi program di bawah!
package a; public class Pulsa { private int hrgPulsa; private int menit; private int detik; private int jam; private int totWaktu; private int totHarga;
public Pulsa(int hrgPulsa){ /* * ........ */ } public void setWaktu(int jam, int menit, int detik){ /* * ....... */ } public int hitungPulsa() { totWaktu= (menit*60)+ detik; totHarga= totWaktu* hrgPulsa; }
int getMenit() { /* * ....... */ } int getDetik() { /* * ....... */ } int getJam() { /* * ....... */ } public int getHargaPulsa(){ return 0; } public int totalHarga(){ return 0; } } [if-unpas] 2010 @author : Hendra Komara, ST.
Page 4
Modul 10, Praktikum : Algoritma dan Pemrograman 1
package a; public class DemoPulsa { public static void main(String[] args) { /* * ............. */ } } Sehingga jika sudah tidak ada error dan kemudian di run, outputnya tampil seperti gambar di bawah ini :
2.
Latihan 2 Buatlah aplikasi layanan internet dari provider M4. Buat dalam Dua Kelas Yaitu M4Service M4ServiceDemo Kebijkan Provider: • Provider M4 menyediakan layanan harian. • Ada empat jenis layanan internet yaitu Unlimited, EmailSocnet, Socnet • Tarif dari tiap tipe layanan tersebut bisa berubah
dan
Requrentmen Aplikasi: • Aplikasi ini dapat menampilkan menampilkan daftar pelanggan beserta jenis layanan • Aplikasi ini dapat menghitung pendapatan perhari berdasarakan tipe dan secara keseluruhan • Aplikasi ini dapat mengetahui tingkat mayoritas penggunaan jenis layanan perhari
IV. Tugas Buat kelas dengan Nama Televisi dengan memilki property sdebagai berikut: • Deskripsi : Untuk menyimpan deskripsi dari televisi. Property ini hanya dapat diset pada saat pembuatan saja, dapat dibaca namun tidak bisa ubah • jumlahChannel : Untuk menyimpan banyaknya chanel. Property ini hanya dapat diset pada saat pembuatan saja, dapat dibaca namun tidak bisa ubah • channelAktif: untuk menyimpan nomor channel yang sedang aktif saat ini. Property ini dapat dibaca dan dirubah kapan saja • volume : untuk menyimpan besarnya volume yang sedang aktif saat ini. Property ini dapat dibaca dan dirubah kapan saja Televisi tersebut juga mendukung operasi sebagai berikut: • Mengganti channel yang sedang aktif. Jika nomor chanel yang diinginkan belum diset maka ada pemberitahuan. • Memilki layanan yang memberitahukan jika nomor channel diluar range yang ditentukan • Mengubah volume suara • Menampilkan deskripsi televise Asumsi: • Jumlah channel 10, yang ditetapkan pada saat pembuatan televisi
[if-unpas] 2010 @author : Hendra Komara, ST.
Page 5
Modul 10, Praktikum : Algoritma dan Pemrograman 1
•
channel yang sudah di tetapkan adalah 1 adalahTrans TV, 2 adalah RCTI, 3 adalah Metro TV, 4 MNCTV, 5 TVOn
Class Televisi yang dibuat harus dapat digunakan oleh program berikut: package ac.ifunpas.ap1.praktikum.modul10.tv.main; public class User { public static void main(String[] args) { Televisi tv = new Televisi("LCD Flat", 21, 10); System.out.println("Tv yang saya beli : "+tv.getDeskripsi()); tv.setChannelAktif(100); tv.setChannelAktif(2); tv.setChannelAktif(9); tv.setChannelAktif(4); tv.setVolume(7); } }
Dengan tampilan eksekusi: Tv yang saya Beli : LCD Flat, 21 inchi. Maaf Tv ini hanya memilki 10 channel. Pindah Channel ke : RCTI Channel yang anda inginkan belum diset. Pindah Channel ke : Metro TV Intensitas volume sekarang : 7
[if-unpas] 2010 @author : Hendra Komara, ST.
Page 6