Oleh: Wahyu Nurjaya Wk, S.T., M.Kom. MEMBUAT MEMBUAT MEMBUAT MEMBUAT KELAS PEWARISAN POLIMORFIS INTERFACE Buat Proyek baru, klik menu file new project. Pada choose project, pilih java pada kotak categories, lalu pilih java apllication pada kotak pilihan project. Klik next, untuk melanjutkan proses ke langkah name and location. Pada isian project name ketik ProyekMembuatKelas. Untuk isian project location, sesuaikan dengan Folder yang telah Anda buat untuk menyimpan semua proyek Anda (klik browse). Pilih create main class, pilih set as main project untuk menentukan proyek ini sebagai proyek aktif. Klik Finish. Buat kelas baru (kelas Titik). Klik kanan pada ProyekMembuatKelas new java class. Pada jendela new java class, isi class name dengan nama Titik, klik Finish. Sunting dan lengkapi kelas Titik dengan program berikut ini: public class Titik{ private int x; private int y; public Titik(){ x=0; y=0; } public Titik(int valueX, int valueY){ x=valueX; y=valueY; } public void setX(int value){ x=value; } public int getX(){ return x; } public void setY(int value){ y=value; } public int getY(){ return y; } public String getKoordinat(){ return “(“ + x + “, “ + y + “)”; } } • private int x: manunjukkan kalau kelas ini memiliki properti x yang bertipe integer (idem private int y). • public Titik() adalah konstruktor dari kelas Titik ini. Jika tidak ada parameter maka nilai x = 0 dan y = 0. • public Titik(int valueX, int valueY) adalah konstruktor dari kelas Titik ini. Parameter valueX dan valueY merupakan nilai x dan nilai y. misal Titik t1 = new Titik(10,5) berarti nilai x = 10, nilai y = 5. • public void setX(int value), untuk mengisi properti x. • public void setY(int value), untuk mengisi properti y. • public int getX(), untuk mendapatkan nilai properti x. • public int getY(), untuk mendapatkan nilai properti y. • public String getKoordinat(), untuk mendapatkan string yang berisi koordinat, seperti contoh: “(10, 5)”. Masuk ke kelas main.java, tambahkan program berikut: public class Main{ /** * @param args the command line arguments */ } public class static void main(String[] args){ //TODO code application logic here Titik t1 = new Titik(); System.out.println(“Menampilkan Info kelas Titik===“); System.out.println(t1.getKoordinat()); } • Titik t1 = new Titik(); adalah perintah untuk membuat penciptaan kelas (instance) dari Titik. Sehingga dapat dikatakan bahwa t1 adalah instance dari kelas Titik. • Ketika ada statement new Titik(), maka kelas titik akan menjalankan metode/fungsi konstruktor/pembentuknya. Dalam hal ini kelas Titik akan menjalankan metode public Titik(), sehingga nilai x dan y akan diisi dengan 0. ini karena ada perintah x=0, y=0. • System.out.println adalah untuk menampilkan pesan pada jendela output. • System.out.println(t1.getKoordinat()) adalah menampilkan sebuah informasi dari pemanggilan metode getKoordinat() oleh kelas Titik, sehingga akan menghasilkan nilai koordinat x dan y sekarang. Kompilasi Program, terlihat bahwa nilai x dan y masih kosong. Modifikasi kelas Main.java, pada metode main ubah menjadi sebagai berikut: Titik t1 = new Titik(); t1.setX(10); t1.setY(5); System.out.println(“Menampilkan Info Kelas Titik===“); System.out.println(t1.getKoordinat()); Disini Anda menambahkan t1.setX(10); t1.setY(5), ini menandakan metode setX() dan setY() dipanggil untuk mengisi nilai x = 10 dan nilai y = 5. Kompilasi ulang, apa keluarannya? Tentunya sudah berubah menjadi (10, 5). selanjutnya bagaimana cara agar konstruktor public Titik (int valueX, int valueY) dijalankan, karena dari contoh tadi hanya menggunakan konstruktor public Titik() saja. Untuk itu edit kembali Main.java dengan menambahkan program berikut, sehingga akan terlihat perbedaan penggunaannya. Titik t1 = new Titik(); t1.setX(10); t1.setY(5); System.out.println(“Menampilkan Info Kelas Titik=t1=“); System.out.println(t1.getKoordinat()); Titik t2 = new Titik(8,2); System.out.println(“Menampilkan Info Kelas Titik=t2=“); System.out.println(t2.getKoordinat()); Perhatikan cetak tebal, adalah kode yang diedit. Perhatikan t2 yang menggunakan new Titik(8,2); hal ini mengakibatkan konstruktor yang dipanggil adalah public Titik(int valueX, int valueY) sehingga langsung mengisi nilai x dan nilai y sesuai dengan parameter pemanggilannya. Kompilasi kembali, apa yang akan dihasilkan? Tanpa adanya pewarisan program kita tidak dapat dikatakan object oriented. Pewarisan memudahkan kita dalam manajemen dan penanganan perawatan, tidak perlu menulis ulang program. Bisa mewarisi kemampuan kelas induknya/parent. Lakukan copy ProyekMembuatKelas (ini adalah salah satu kehandalan NetBeans) menjadi ProyekMembuatPewarisan, dengan cara klik kanan ProyekMembuatKelas Copy…, klik tombol copy untuk mengakhiri. Tutup semua ProyekMembuatKelas, yang aktif ProyekMembuatPewarisan. Ubah dulu paket ProyekMembuatKelas menjadi ProyekMembuatPewarisan, dengan refactoring, klik kanan paket ProyekMembuatKelasRefactorRename. Ubah nama paket ProyekMembuatKelas menjadi ProyekMembuatPewarisan. Klik tombol Refactor. Lakukan clean and build, kemudian ubah Main Class proyek ini. Dengan cara: klik kanan proyekProperties, sehingga muncul jendela Project Properties – ProyekMembuatPewarisan lalu pada kotak Categories pilih Run. Pada isian Main Class, klik tombol browse… untuk memilih kelas utama menjadi ProyekMembuatPewarisan.Main, klik Select Main Class, untuk memilih dan menutup jendelanya. Sehingga pada jendela project properties, Main Class berganti menjadi ProyekMembuatPewarisan.Main, lalu klik OK. Untuk memastikannya lakukan kompilasi dan jalankan program. Kalo sudah benar Anda lanjutkan. Buat kelas baru pada paket ProyekMembuatPewarisan, dengan cara klik paket ProyekMembuatPewarisanNewJava Class…, beri nama kelasnya Garis. Sunting kelas garis menjadi sebagai berikut: public class Garis extends Titik{ private Titik titikAwal; private Titik titikAkhir; public Garis(){ titikAwal = new Titik(); titikAkhir = new Titik(); } public Garis(Titik t1, Titik t2){ titikAwal=t1; titikAkhir=t2; } public void SetTitikAwal(Titik value){ titikAwal=value; } public Titik getTitikAwal(){ return titikAwal; } public void SetTitikAkhir(Titik value){ titikAkhir=value; } public Titik getTitikAkhir(){ return titikAkhir; } public double getPanjang(){ double x1=titikAwal.getX(); double y1=titikAwal.getY(); double x2=titikAkhir.getX(); double y2=titikAkhir.getY(); double hasil; hasil = (Math.pow( (x2-x1), 2) ) + (Math.pow( (y2-y1), 2)); } } public hasil = Math.sqrt(hasil); return hasil; class Garis extends Titik, kode ini menunjukkan bahwa kelas Garis adalah diturunkan dari kelas Titik. Selanjutnya kelas Garis memiliki kemampuan khusus yang tidak dimiliki oleh nenek moyang sebelumnya. Selanjutnya edit metode main pada kelas Main.java menjadi: public static void main(String[] args){ //TO DO code application logic here } Garis grs1 = new Garis(); grs1.SetTitikAwal(new Titik(2,2)); grs1.SetTitikAkhir(new Titik(2,8)); System.out.println(“Menampilkan Info Kelas Garis=grs1=”); System.out.println(grs1.getTitikAwal().getKoordinat()); System.out.println(grs1.getTitikAkhir().getKoordinat()); System.out.println(“Panjang = “ + grs1.getPanjang()); Lakukan clean and build, lalu jalankan program, perhatikan apa hasilnya? Apa yang dimaksud dengan Folimorfis? Buat contohnya min 1 contoh! Apa yang dimaksud dengan Interface? Buat contohnya min 1 contoh! Dibuat dalam bentuk Hard Copy, dikumpulkan pada Hari Rabu, 13 Oktober 2010. Dikerjakan Individu.