BAB 1 PENGENALAN JAVA Topik pembahasan materi : Classpath Software Compile IDE Compile manual (command) Struktur java 1.1 Program di dalam JAVA Dalam bahasa pemrograman terdapat adanya proses kompilasi, yaitu proses menerjamahkan dari listing code yang biasanya tertulis di text editor menjadi sebuah file baru, sedangkan interpreter, yaitu sebuah proses menerjemahkan dari hasil file kompilasi menjadi file yang siap dieksekusi. Hal diatas dapat kami gambarkan dengan gambar dibawah ini : helloworld.cpp helloworld.java COMPILER My Program Hello World helloworld.exe helloworld.class INTERPETER 1.2 Software yang dibutuhkan Untuk membuat sebuah program java, minimal kita membutuhkan 2 buah software yaitu : - Java 2 SDK, Software Development Kit yang biasa disebut dengan JDK, Java Development Kit. - Text Editor, berfungsi untuk menuliskan code-code program, ada baiknya kita menggunakan IDE (Integrated Development Environtment), banyak macam bentuk text editor, seperti Netbeans, JCreator, Gel, Eclipse dan lainya. Untuk praktikum kali ini kita menggunakan IDE Netbeans. Lab Pemrograman & Rekayasa Perangkat Lunak 1 Selanjutnya dalam hal instalasi software JDK dan Netbeans, kami sudah menganggap anda mahir. Mungkin bila anda masih terdapat kesulitan dalam hal ini, dapat anda menanyakan ke instruktur atau ke teman anda. Kami hanya memberi cara bagaimana untuk men-setting classpath. Pengaturan classpath yaitu : Start – Klik Kanan pada My Computer – Properties – Tab Advanced – Environment Variable - System variable – path – edit Copykan alamat jdk (C:\Program Files\Java\jdk1.6.0_10\bin ) – ok – ok Lab Pemrograman & Rekayasa Perangkat Lunak 2 1.3 Compilasi dan Ekseskusi Manual (Command) Ketikan source code dibawah ini pada notepad bila anda memakai windows atau di Gedit bila anda menggunakan ubuntu. Bila anda sudah mengetikkan source code diatas, selanjutnya SAVE file tersebut dengan nama “first_time.java” dan bertipe “All Files (*.*)” Selanjutnya compile-lah menggunakan Command Prompt atau Terminal / Konsole, dengan perintah javac firts_time.javac dan menjalankan hasilnya dengan perintah java firts_time. Bila berhasil maka akan terlihat pada gambar dibawah ini : Lab Pemrograman & Rekayasa Perangkat Lunak 3 1.4 Compilasi menggunakan IDE Netbeans Netbeans merupakan text editor yang biasa digunakan untuk compile dan running bahasa pemrograman java, dengan Netbeans IDE kita lebih dimudahkan yaitu salah satunya dengan penggunaan tombol CTRL + SPACE, bila kita tidak hafal atau ragu dalam penulisan source code program java. Setelah memasukkan code program java, selanjutnya kita perlu meng-complile dan menjalankan program java dengan HotKey F9 untuk melakukan compile, dan HotKey F6 dan Shift+F6 untuk running (menjalankan). Setelah berhasil dengan apa yang anda praktekan pada kali ini. Cobalah untuk membuat program dari awal dan compile dengan menggunakan command (manual) dan yang menggunakan IDE Netbeans. Bila terdapat kesulitan dalam hal membuat Project, Compile dan Running file java anda dapat menanyanya kepada instruktur. 1.5 Struktur Java Bahasa pemrograman java merupakan turunan dari bahasa pemrograman C yang telah kita praktikumkan pada 2 semester kemarin, akan tetapi pada praktikum kali ini kami meng-orientasikan objek di bahasa pemrogramannya seperti penggunaan method, class, enkapsulasi. Lab Pemrograman & Rekayasa Perangkat Lunak 4 BAB 2 TIPE DATA, JAVA IDENTIFIER, CASTING Topik pembahasan materi : Tipe Data Java Identifier Casting Operator 2.1 Tipe Data Java mendefinisikan delapan tipe data sederhana : byte, short, int, long, char, float, double, dan boolean. Macam tipe data tersebut sudah tidak asing lagi bagi anda karena didalam praktikum struktur data dan alogritma sudah dijelaskan dengan baik. Mungkin dalam bab ini kami akan menjelaskan sedikit yang sering dipakai yaitu : - Integer : kelompok tipe data yang terdiri dari tipe data short, byte, int, dan long yang digunakan untuk mempresentasikan data-data yang bertipe bilangan bulat seperti : -2,0,90,1 dan sebagainya. - Floating-float : kelompok tipe data ini terdiri dari tipe float dan double yang digunakan untuk mempresentasikan data-data yang bertipe bilangan riil (mengandung pecahan) seperti : 12.5, -0.32, 20.492 dan sebagainya. - Karakter : kelompok tipe data ini terdiri dari tipe char, yang mempresentasikan dalam bentuk karakter alfanumerik dan symbol seperti : a, *, &, A, dll. - Boolean : kelompok tipe data ini digunakan untuk mempresentasikan nilai logika (true/false) 2.2 Java Identifier Identifier merupakan nama untuk class, variable, method, interface. Seperti bahasa pemrograman lainnya, java juga memiliki aturan – aturan yang harus kita patuhi dalam pemberian indentifier. Beberapa aturan – aturan pemberian identifier pada java(dalam hal ini sebagai contoh adalah variable) Penamaan variable pada java yang benar : Lab Pemrograman & Rekayasa Perangkat Lunak 5 Penamaan variable pada java yang salah : Identifier pada java bersifat case-sensitive, artinya perintah – perintah didalan java membedakan huruf kecil dengan huruf besar, mungkin lebih jelasnya bias dicoba source code dibawah ini : Selain hal diatas java memilki keywords, sebuah kata variable yang dipakai oleh java untuk fungsi dan tujuan masing – masing. Sehingga keywords tersebut tidak boleh sama dengan variable yang akan masuk dalam program kita. Keywords tersebut yaitu : 2.3 Casting Ada kalanya dalam kasus – kasus tertentu, kita perlu mengubah tipe data dari satu tipe tertentu ke tipe lainnya. Bila kedua tipe tersebut compatible, maka java akan mengkonversi secara otomatis. Contoh : kita sering memasukkan nilai bertipe int ke Lab Pemrograman & Rekayasa Perangkat Lunak 6 variable yang dideklarasikan dengan tipe long, namun bila keduanya tak compatible, maka kita perlu melakukan casting tehadap variable yang akan dikonversi tersebut. ada beberapa syntax lain yang dapat digunakan untuk mengubah String ke tipe data primitive : Compile dengan menggunakan TERMINAL…!!! Ketik source code diatas menggunakan notepad(windows) atau gedit(linux). Simpanlah dengan menggunakan nama command “LuasPersegiPanjang.java”, setelah “javac(spasi)LuasPersegiPanjang.java”. Lab Pemrograman & Rekayasa Perangkat Lunak itu compile Kemudian 7 jalankan menggunakan java(spasi)LuasPersegiPanjang(spasi)(inputan1)(spasi)(inputan2) 2.4 Operator Terdapat beberapa jenis operator, diantaranya operator aritmatika, penaikan dan penurunan, bitwise, boolean, relasi, pergeseran, penugasan, kombinasi, kondisi serta lainnya. Namun dalam praktikum kali ini kami hanya akan membahas tentang Operator logika, aritmatika dan relasional. 2.4.1 Operator Logika Merupakan salah satu jenis operator yang mengharuskan operannya bertipe Boolean (true atau false). Terdapat 4 operator logika, yaitu Operator Keterangan ! Operasi NOT || Operasi OR && Operasi AND ^ Operasi XOR Agar lebih mudah memahami operator ini, dapat dilihat tabel kebenaran logika untuk masing – masing operator. Table operator ! (NOT) : Operand 0 1 ! 1 0 Table operator && (AND) : Table operator || (OR) : Operand 1 Operand 2 0 0 0 1 1 0 1 1 | 0 1 1 1 Lab Pemrograman & Rekayasa Perangkat Lunak Operand 1 0 0 1 1 Operand 2 0 1 0 1 & 0 0 0 1 Table operator ^ (XOR) : Operand 1 0 0 1 1 Operand 2 0 1 0 1 ^ 0 1 1 0 8 Contoh lain : && Jika salah SATU kondisi SALAH, maka hasilnya SALAH || Jika salah SATU kondisi BENAR, maka hasilnya BENAR Table operator short circuit : Operator && || Operand 1 0 1 0 1 Operand 2 1 1 0 0 Operand n …1 …1 …0 …0 Hasil 0 1 1 0 2.4.2 Operator Aritmatika Merupakan operator – operator yang digunakan untuk melakukan perhitungan – perhitungan matematis seperti pernjumlahan, pengurangan, perkalian, dan pembagian. Table berikut dapat menunjukkan daftar operator yang termasuk ke dalam kelompok operator aritmatika. Operator + * / % ++ -- Keterangan Penjumlahan Pengurangan Perkalian Pembagian Modulus (sisa bagi) Increment (penambahan nilai dengan1) Decrement (penambahan nilai dengan1) Operand dari operator aritmatika harus bertipe numeric, sehingga anda tidak dapat menggunakannya pada tipe data Boolean. Sebagai pengecualian untuk tipe Char, anda masih dapat menggunakanya operasi tersebut karena sebenarnya, tipe char merupakan subset dari tipe data int. 2.4.3 Operator Relasional Merupakan operator yang menyatakan hubungan antara satu operand dengan operand lainnya yaitu : apakah sama dengan, tidak sama dengan, lebih besar, lebih kecil. Hasil yang diberikan dari hasil ini akan melibatkan operator relasional akan bernilai Boolean (true/false). Table berikut ini menunjukkan daftar operator relasional yang terdapat dalam java. Operator == != > Lab Pemrograman & Rekayasa Perangkat Lunak Keterangan Sama dengan Tidak sama dengan Lebih besar 9 < >= <= Lebih kecil Lebih besar sama dengan Lebih kecil sama dengan Operator == dan != dapat diterapkan pada tipe data apapun, baik numeric, karacter ataupun Boolean. Adapun keempat operator lainnya hanya dapat digunakan untuk lebih besar atau lebih kecil dari operand lainnya. Dari ketiga jenis operator yaitu Logika, Aritmatika, Relasional, mungkin dapat mudah di pahami dengan mencoba source code dibawah ini : Lab Pemrograman & Rekayasa Perangkat Lunak 10 BAB 3 OBJEK, KONSTRUKTOR & ENKAPSULASI Topik pembahasan materi : Rekursi Kelas & Object Konstruktor Method Enkapsulasi 3.1 Rekursi Dalam java, rekursi adalah proses pemanggilan method oleh dirinya sendiri secara langsung. Rekursi digunakan untuk menyederhanakan algoritma dari sesuatu proses perulangan untuk menyederhanakan algoritma dari suatu proses perulangan tertentu sehingga kode programnya akan lebih efisien. Berikut ini contoh program lengkap yang akan mendemostrasikan cara kerja dari rekursi. Lab Pemrograman & Rekayasa Perangkat Lunak 11 3.2 Kelas & Object 3.2.1 Kelas Kelas merupakan prototype/kerangka yang mendefinisikan variable – variable (data ) dan method – method (perilaku) umum dari suatu object tertentu. Contoh : KELAS MOBIL DATA warna, merk, tahun, nomor polisi METHOD system pengereman, persneling KELAS MANUSIA DATA ( ciri – ciri ) tinggi, berat badan, sidik jari METHOD ( perilaku ) cara berjalan, cara bersuara, cara marah Class dideklarasikan sebgai berikut : Class nama_class{ //deklarasi attribute //deklarasi method } Keterangan : Class merupakan kata kunci yang digunakan untuk mendeklarasikan suatu kelas Nama_class merupakan identifier,(tata cara penulisan identifier silahkan baca kembali modul bab 2 Attribute bisa berjumlah 0 atau lebih Method bisa berjumlah 0 atau lebih Lab Pemrograman & Rekayasa Perangkat Lunak 12 3.2.2 Object Pada saat mendefinisikan suatu kelas, kita hanya membuat tipe data baru bukan membuat objek baru. Untuk membuat objek baru dari tipe kelas yang telah didefinisikan, kita perlu melakukan dua tahap yaitu : Pertama, mendeklarasikan variable yang digunakan sebagai referensi ke objek dari kelas bersangkutan. Kedua, kita perlu menginstansiasi kelas dengan menggunakan operator new dan memasukkan instance-nya ke dalam variable referensi yang baru saja di deklarasikan. //medeklarasikan variable ke tipe manusia manusia tinggi; // melakukan instansiasi dan memasukkan referensi ke variable tinggi tinggi = new manusia(); ================================================ // cara lain membuat objek manusia Zakaria = new mahasiswa(); manusia Zakaria_a = new mahasiswa(“54”,”167”); zakaria dan zakaria_a merupakan objek dari kelas mahasiswa. Kata kunci new digunakan pemesanan memori yang untuk objek yang dibuat. Variable zakaria dan zakaria_a merupakan variable reference. make_object.java Compile source code diatas…amatilah..dan lihatlah hasilnya.. make_object2.java Lab Pemrograman & Rekayasa Perangkat Lunak 13 Selanjutnya buatlah file baru bernama make_object2.java dan disimpan ditempat yang sama. Compile dan running, amati dan lihat hasilnya.. Bila sampai disni anda masih belum memahaminya, tanyakanlah ke instruktur yang ada. Class, object, method, ini merupakan dasar dari OOP, sehingga bila anda sampai disini masih belum memahaminya..otomatis anda akan lebih kebingungan di bab – bab selanjutnya. 3.3 Method 3.3.1 Deklarasi Method Method adalah sekumpulan statement program yang disatukan menjadi sebuah subprogram atau fungsi, diawali dengan tanda “{“ diakhiri dengan tanda “}”. Deklarasi method dapat dituliskan sebagai berikut: Contoh : 3.3.2 Method Procedure Berikut ini merupakan method yang tidak mempunyai nilai balik Lab Pemrograman & Rekayasa Perangkat Lunak 14 3.3.3 Fungsi Merupakan method yang mempunyai nilai balik. Tipe adalah sembarang tipe data, bias tipe primitif ataupun tipe reference. Nilai yang dikembangkan sebagai hasil fungsi harus bertipe sama dengan tipe fungsi. Nilai itu sendiri biasa berupa data, ekspresi maupun variabel. 3.4 Konstruktor Merupakan method khusus yang didefinisikan didalam kelas dan akan dipanggil secara otomatis setiap kali terjadi instansiasi objek. Konstruktor itu sendiri berfungsi untuk melakukan inisialisasi nilai terhadap data-data yang terdapat pada kelas bersangkutan. Apabila kita tidak mendefinisikan default Konstruktor dalam kelas, maka secara otomatis java akan membuatkannya default Konstruktor,yaitu yang akan menginisialisasi semua data yang ada dengan nilai nol. Hal yang perlu di perhatikan pada saat mendefinisikan suatu Konstruktor kelas adalah tipe kembailan. Perlu diingat bahwa konstruktor tidak memiliki nilai kembalian. Selain itu konstruktor haruslah sama persis dengan nama kelas yang didefinisikan. Lab Pemrograman & Rekayasa Perangkat Lunak 15 public class Mahasiswa { private float ip; private String nama; private String NIM; public Siswa(String pNIM,String pNama,float pIP) { NIM = pNIM; nama=pNama; ip = pIP; } } Untuk lebih memahami tentang encapsulation dan konstruktor, coba buat program di bawah ini : Lab Pemrograman & Rekayasa Perangkat Lunak 16 3.4.1 Kata Kunci This Penggunaan kata kunci “this” terdiri dari 2 macam: • Untuk mengakses atribut dari dalam class Contoh: String nim; String nama; void setNim(String nim) { this.nim = nim; } Keterangan: “this.nim” mengacu pada atribut nim dari class Mahasiswa. Penggunaan this akan menghilangkan kerancuan antara atribut nim dan parameter nim. • Untuk memanggil konstruktor dari konstruktor lain Contoh: String nim; String nama; String alamat; Mahasiswa(String nim, String nama) { this.nim = nim; this.nama = nama; } Mahasiswa(String nim, String nama, String alamat){ this(nim, nama); //memanggil konstruktor pertama this.alamat = alamat; } Lab Pemrograman & Rekayasa Perangkat Lunak 17 Keterangan: “this(nim, nama)” berarti memanggil konstruktor “Mahasiswa(String nim, String nama)”. Hal ini sama artinya bila kita tuliskan “this.nim = nim” dan “this.nama = nama”. Untuk lebih memahami tentang this, coba buat program di bawah ini: Lab Pemrograman & Rekayasa Perangkat Lunak 18 3.5 Enkapsulasi Merupakan hak akses attribut dan/atau method pada class. Hak akses tersebut yaitu public, private, protected dan default. 3 tipe yang pertama harus dinyatakan secara eksplisit dengan keyword yang sesuai . Sedangkan yang keempat tanpa keyword yang merupakan default. Kemampuan hak akses dapat di jelaskan pada tabel berikut ini : Lab Pemrograman & Rekayasa Perangkat Lunak 19 BAB 4 FLOW CONTROL Topik pembahasan materi : Kondisi IF Kondisi Switch - Case Perulangan For Perulangan While Perulangan Do-While Kata kunci Break & Continue 4.1 Kondisi IF… Sintaks dari pernyataan seleksi kondisi if: if (condition/boolean exp) { statement1; } else if (condition/boolean exp) { statement2; } else { statement3; } Keterangan: Tanda kurung () yang mengapit kondisi/ boolean exp harus dituliskan (wajib) Statement dieksekusi bila kondisi bernilai true Bila statement lebih dari satu, maka semua statement ditulis dalam tanda {} 4.2 Kondisi Switch – Case switch (switch_expression) { case case_selector1: statement1; statement2; //block 1 . . . break; case case_selector2: statement1; statement2; //block 2 . . . break; default: statement1; statement2; //block n . . . break; } Lab Pemrograman & Rekayasa Perangkat Lunak 20 Keterangan: Switch_expression dapat berupa tipe byte, short, int, char Case_selector merupakan literal yang bertipe sama dengan switch_expression Break merupakan pernyataan untuk keluar dari blok switch dan melanjutkan eksekusi berikutnya Statement pada blok default dieksekusi bila semua case_selector tidak ada yang memenuhi nilai switch_expression 4.3 Perulangan For for (inisialisasi; kondisi; iterasi) { statement1; statement2; . . . } Keterangan: Inisialisasi merupakan inisialisasi nilai variabel yg digunakan untuk membuat perulangan. Inisialisasi dieksekusi hanya satu kali. Kondisi merupakan ekpresi boolean. Selama kondisi bernilai true maka statement dieksekusi. Pernyataan kondisi dieksekusi sebelum statement dieksekusi. Iterasi merupakan perubahan nilai variabel yang suatu saat harus menyebabkan kondisi bernilai false, sehingga perulangan berhenti. Iterasi dieksekusi setelah statement dieksekusi 4.4 Perulangan While while (condition) { statement1; statement2; . . . } Keterangan: Kondisi merupakan ekspresi boolean Selama kondisi bernilai true, maka statement dieksekusi Harus ada statement yang suatu saat menyebabkan kondisi bernilai false sehingga perulangan berhenti Lab Pemrograman & Rekayasa Perangkat Lunak 21 4.5 Perulangan Do-While do { statement1; statement2; . . . } while (condition); Keterangan: Statement dalam blok do‐while dieksekusi terlebih dahulu Bila kondisi bernilai true maka statement akan dieksekusi kembali hingga kondisi bernilai false Tanda “;” setelah kondisi harus dituliskan 4.6 Kata kunci Break & Continue Pernyataan break memiliki dua macam bentuk yaitu break tanpa label dan break berlabel. Break digunakan untuk keluar dari blok tempat ia berada atau keluar dari blok yang diberi label. Pernyataan continue juga memiliki dua macam bentuk yaitu continue tanpa label dan continue berlabel. continue digunakan untuk meneruskan statement dari awal perulangan serta mengabaikan statement antara continue dan akhir perulangan atau meneruskan statement pada blok yang diberi label. Untuk lebih memahami flow control di java, coba buat program di bawah ini: ***Tambahkan code berikut ini di atas nama class import java.io.IOException Lab Pemrograman & Rekayasa Perangkat Lunak 22 class IfElseName { public static void main (String args[]) throws IOException{ char firstInitial; System.out.print("Masukkan huruf awal nama Anda! : "); firstInitial = (char)System.in.read(); //baca inputan dari keyboard if ((firstInitial == 'a')||(firstInitial == 'A')){ System.out.println("Halo Asep...."); }else if ((firstInitial == 'b')||(firstInitial == 'B')){ System.out.println("Hai Budi!"); }else if ((firstInitial == 'c')||(firstInitial == 'C')){ System.out.println("Apa kabar Ciput?? :D "); }else{ System.out.println("Anda belum teridentifikasi ^_^)w"); } } } class SwitchName { public static void main (String args[]) throws IOException{ char firstInitial; System.out.println("Masukkan huruf awal nama anda: "); firstInitial = (char)System.in.read(); //baca inputan dari keyboard switch (firstInitial) { case 'a': System.out.println("Halo Asep"); case 'b': System.out.println("Hai Budi"); case 'c': System.out.println("Apa kabar Ciput???"); default: System.out.println("Anda belum teridentifikasi ^.^)w"); } } Jalankan program dan lihat hasilnya!! Coba tambahkan break; di setiap case!! ***Coba ganti code switch tersebut menjadi Lab Pemrograman & Rekayasa Perangkat Lunak 23 labelnya: while(firstInitial!='0') { switch (firstInitial) { case 'a': System.out.println("Halo Asep"); continue labelnya; case 'b': System.out.println("Hai Budi"); break labelnya; case 'c': System.out.println("Apa kabar Ciput????"); continue; default: System.out.println("Anda belum teridentifikasi ^.^)w"); break; } } Jalankan dan amati hasilnya!! Lab Pemrograman & Rekayasa Perangkat Lunak 24 BAB 5 PEMROGGRAMAN OBJEK Topik pembahasan materi : Overloading Inharitance Overridding Abstract Interface 5.1 Overloading Sepintas terdapat kemiripan antar overloading dengan overriding, namun kedua hal tersebut merupakan hal yang sangat berbeda. Override merupakan pendefinisan suatu method dalam kelas turunan yang memiliki nama dan parameter yang sama persis pada kelas induk. Akan tetapi pada kasus tertentu ada kalanya kita mendefinisikan sebuah method didalam kelas turunan yang namanya sama dengan nama method yang terdapat di kelas induknya, tapi parameternya berbeda. Hal inilah yang disebut dengan overload. Mungkin akan lebih jelas pada source code berikut ini : Lab Pemrograman & Rekayasa Perangkat Lunak 25 5.2 Inharitance Java mengizinkan kita untuk mendefinisikan suatu kelas yang bersifat generic. Selanjutnya, kelas tersebut dapat diturunkan lagi menjadi generic, kelas tersebut dapat diturunkan lagi menjadi kelas baru dengan sifat yang lebih spesifik. Kelas induk yang diturunkan disebut dengan superclass. BINATANG HERBIVORA KAMBING KERBAU CARNIVORA HARIMAU SINGA kelas binatang adalah superclass. Dari kelas Herbivora & Carnivora. Herbivora & Carnivora sendiri berperan sebagai subclass. Namun Herbivora dapat menjadi superclass dari subclass kambing & kerbau. Dan Carnivora dapat menjadi superclass dari subclass harimau & singa. Suatu superclass dapat tidak mewariskan sebagian member-nya kepada subclass-nya. Sejauh mana suatu member dapat diwariskan ke class lain,ataupun suatu member dapat diakses dari class lain, sangat berhubungan dengan access control (kontrol pengaksesan). Penciptaan class turunan(subclass) Untuk melakukan proses penurunan suatu kelas, diperlukan kata kunci extends Bentuk umum dari penggunaan kata kunci tersebut sebagai berikut: Lab Pemrograman & Rekayasa Perangkat Lunak 26 Kata kunci super Kata kunci super dipakai untuk merujuk pada member dari parent class, sebagaimana kata kunci this yang dipakai untuk merujuk pada member dari class itu sendiri. Adapun format penulisannya adalah sebagai berikut: super.x merujuk pada data member pada parent class super.tampilkanNilai( ) merujuk pada function member pada parent class super() merujuk pada konstruktor pada parent class Untuk lebih memahami kata kunci super, coba buat program di bawah ini : Lab Pemrograman & Rekayasa Perangkat Lunak 27 5.3 Overidding Mendefinisikan suatu method di dalam kelas turunan yang nama dan daftar parameternya sama persis dengan yang terdapat pada kelas induk, maka hal tersbut dikatakan telah melakukan override (mengesampingkan) method yang tersimpan dalam kelas induk. Bila kita melakukan pemanggilan method yang telah di-override melalui objek dari kelas turunan,maka yang di eksekusi adalah method yang terdapat di kelas turunan, BUKAN yang terdapat di kelas induk. dengan kata lain bila kita melakukan override terhadap method pada kelas induk, maka didalam kelas turunan method tersebut akan disembunyikan keberadaannya. Seperti pada source code dbawah ini : 5.4 Abstract Ada kalanya, pada kasus – kasus pemrograman tertentu, kita ingin medefinisikan sebuah kelas induk yang didalamnya terdapat deklarasi method yang tidak memerlukan implementasi sama sekali. Method-method tersebut selanjutnya baru akan diimplementasi oleh kelas – kelas turunannya. Method semacam ini dinamakan dengan method abstrak. Untuk mendeklarasikan suatu method menjadi method abstrak, kita perlu menambahkan kata kunci abstract didepan deklarasi method bersangkutan.berikut ini bentuk umum penulisan kodenya. Lab Pemrograman & Rekayasa Perangkat Lunak 28 Abstract tipe namaMethod(daftar-parameter); Kelas abstract tidak dapat diinstansiasi, dengan kata lain kita tidak diizinkan untuk membentuk objek dari suatu kelas abstract, apabila anda berusaha untuk memlakukan hal itu, maka akan terjadi kesalahan pada saat proses kompilasi program. 5.5 Interface Interface merupakan wadah dari sekumpulan method yang bersifat abstrak, atau tidak memiliki implementasi sama sekali. Dengan kata lain, semua method yang didefinisikan di dalam interface adalah method abstrak, method-method yang didefinisikan didalam interface tersebut baru akan diimplementasi oleh kelas-kelas yang mengimplementasikan interface bersangkutan. Jadi sebenarnya interface merupakan bentuk perluasan dari kelas abstrak. Lab Pemrograman & Rekayasa Perangkat Lunak 29 Lab Pemrograman & Rekayasa Perangkat Lunak 30 5.6 Polimorfisme Setelah mengetahui konsep override, mungkin anda akan bertanya, ”Apa kegunaan overriding ?”, jawabanya yaitu karena proses overriding dibentuk agar java dapat mendukung konsep polimorfisme. Lalu Apa itu polimorfisme..?, jawabnya polimorfisme adalah kemampuan suatu objek untuk mengungkap banyak hal melalui satu cara yang sama. Polimorfisme merupakan salah satu hal yang penting dalam konsep pemrograman berorientasi pada objek, sehingga polimorfisme mengizinkan kelas induk untuk mendefinisikan sebuah method yang umum untuk semua kelas turunannya dan selanjutnya kelas-kelas turunan dapat memperbarui implementasi dari method tersebut secara lebih spesifik sesuai dengan karakteristiknya masing – masing. Lab Pemrograman & Rekayasa Perangkat Lunak 31 Lab Pemrograman & Rekayasa Perangkat Lunak 32 BAB 6 Exception & Grahpical User Interface Topik pembahasan materi : Exception GUI 6.1 Exception Hal terburuk dan paling dihindari dalam dunia pemrograman adalah bug(kesalahan) pada saat eksekusi. Kesalahan tersebut disebut juga dengan eksepsi. Untuk mengatasi kesalahan tersebut, java menyediakan sebuah mekanisme penanganan kesalahan yang biasa disebut dengan exception-handling. Eksepsi yang disediakan oleh java yaitu : try, catch, throw, throws, dan finaly. 6.1.1 Try-Catch Pencegahan eksepsi bias ditanggulangi oelh kita sendiri, sebagai programmer. Untuk melakukan hal itu, kita perlukan mendefinisikan blok try-catch. Berikut ini adalah contoh penggunaan try-catch Lab Pemrograman & Rekayasa Perangkat Lunak 33 6.1.2 Throw Kita dapat membangkitkan eksepsi secara manual dengan cara menggunakan kata kunci throw. Berikut adalah contoh penggnaan throw Lab Pemrograman & Rekayasa Perangkat Lunak 34 6.1.3 Throws Jika sebuah method dapat menyebabkan sebuah exception namun tidak menangkapnya, maka digunakan keyword throws. 6.1.4 Finaly Pada kasus tertentu terkadang kita menggunakan hal semacam ini untuk memfinalisasi dengan menggunakan kata kunci finally. Untuk mengetahui cara kerjanya bisa dicoba source code dibawah ini. Lab Pemrograman & Rekayasa Perangkat Lunak 35 6.2 GUI – DB Sebuah aplikasi yang dibuat biasanya digunakan untuk memyimpan sebuah data penting. Hal itu dikarenakan bila pemakaian aplikasi tersebut menggunakan database untuk penyimpanannya. Banyak sekali software yang digunakan untuk menyimpan data / informasi seperti : MySQL, Oracle, Ms.SQL, dll Pada praktikum kali ini kita akam melakukan penyimpanan pada database MySQL dengan bantuan PhpMyAdmin yang semuanya terdapat pada software XAMPP. Untuk pengakses databasenya bisa dibuka Browsernya seperti Mozilla Firefox ataupun Internet Explorer ; pada Address Bar : http://localhost/phpmyadmin/ sehingga akan tampak seperti gambar dibawah ini. 6.2.1 Database 1. Buatlah Database dengan nama “db_login” 2. Buatlah tabel database dengan nama “ t_login” 3. Isilah attribut t_login dengan ID -> int (3) User -> varchar(10) Passwd->varchar(10) Lab Pemrograman & Rekayasa Perangkat Lunak 36 4. Untuk mencoba hasil table yang telah dibuat, masuklah pada tab Insert. Dengan value yang sesuai seperti contoh dibawah ini : Setelah membuat database beserta tablenya, selanjutnya kita buat aplikasi pendaataan login dengan Netbeans menggunakan JFrame Form. 6.2.2 GUI-project 1. klik file->New Project-> 2. Selanjutnya kita buat file java yang berjenis JFrame Form Klik kanan pada source package-> new->JFrame Form Lab Pemrograman & Rekayasa Perangkat Lunak 37 3. Isilah class name untuk nama file java pada JFrame Form nya 4. Selanjutnya kita masukkan library koneksi java dengan mysql yang telah disediakan. Klik kanan pada library -> Add JAR/Folder Lab Pemrograman & Rekayasa Perangkat Lunak 38 5. Desain GUI seperti gambar dibawah ini : OBJEK PROPERTI NILAI JLabel1 Text PENDATAAN LOGIN JLabel2 Text ID JLabel3 Text USER JLabel4 Text PASSWORD jButton1 Text OK jButton1 Text Reset JTextField1 Text Variable JTextField2 Text Variable JTextField3 TF_ID TF_USER Text Variable TF_PASSWORD 6. Design : Pengaturan GUI pada Program Source : Pengaturan Source Code Program 7. Klik pada source dan masukkan Method simpan_data() pada akhir source code akan tetapi sebelum kurung kurawal ( } ). Lab Pemrograman & Rekayasa Perangkat Lunak 39 8. Tambahkan juga method koneksi() dan reset() ,dibawah method simpan data() 9. Tambahkan lagi beberapa script sehingga menjadi seperti script dibawah ini, lalu TEST (SHIFT + F6 ) Lab Pemrograman & Rekayasa Perangkat Lunak 40 TUGAS 1 1. Apa yang dimaksud dengan “ Casting” dalam OOP ? 2. Apa saja perbedaan “Pemrograman Terstruktur” dengan “Pemrograman Objek” ? TUGAS 2 1. Apa yang Anda dapat selain cara lain dalam konversi String ke numerik? 2. Apa fungsi variabel args itu menurut Anda? 3. Buatlah sebuah program yang dapat menerima 3 buah argumen parameter, yang masing-masing menunjukkan nilai untuk nama, nim dan no_hp. tampilkan sebagai contoh berikut : TUGAS 3 1. Apa itu “Garbage Collection “ pada JAVA ? 2. Apa fungsi dari “Konstruktor” ? TUGAS 4 Buatlah Program menghitung luas lingkaran dan keliling, dengan ketentuan : • dimana jari-jari didapat dari inputan argumen • Jari-jari bertipe data float dan. • Objek lingkaran didapat dari class lingkaran • Class lingkaran memiliki atribut jari-jari dan method getJari, Luas, Keliling,setJari • Atur pula agar variabel jari-jari tidak bisa diakses di luar kelas lingkaran. TUGAS 5 - Cari tahu tentang cara menyimpan sebuah inputan bertipe string ke sebuah file.txt, bagaimanakah konsepnya..?? - Source code menggunakan GUI..?? TUGAS 6 TUGAS 7 Lab Pemrograman & Rekayasa Perangkat Lunak 41 TUGAS 8 Ada baiknya ada sebuah QUIS, karena bila di beri sebuah tugas…pasti tidak ada yg mengumpulkan..karena merupakan pertemuan terakhir… Lab Pemrograman & Rekayasa Perangkat Lunak 42