0 penilaian0% menganggap dokumen ini bermanfaat (0 suara)
45 tayangan
Diktat Java Baru
1. Konsep PBO mencakup objek, class, konstruktor, dan method. Class digunakan sebagai blueprint untuk membuat objek. Konstruktor dan method terkait dengan kelas dan objek.
2. Program contoh mendemonstrasikan class Mahasiswa dengan field, konstruktor, dan method. Objek dibuat dan digunakan untuk mengatur dan menghitung nilai.
3. Konsep lainnya termasuk inheritance, overriding, dan encapsulation. Class dapat mewarisi sifat class lain, dan method
Unduh sebagai DOC, PDF, TXT atau baca online di Scribd
0 penilaian0% menganggap dokumen ini bermanfaat (0 suara)
45 tayangan
Diktat Java Baru
1. Konsep PBO mencakup objek, class, konstruktor, dan method. Class digunakan sebagai blueprint untuk membuat objek. Konstruktor dan method terkait dengan kelas dan objek.
2. Program contoh mendemonstrasikan class Mahasiswa dengan field, konstruktor, dan method. Objek dibuat dan digunakan untuk mengatur dan menghitung nilai.
3. Konsep lainnya termasuk inheritance, overriding, dan encapsulation. Class dapat mewarisi sifat class lain, dan method
Unduh sebagai DOC, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 41
Pertemuan 1
Konsep PBO, Objek, Class,Konstruktor, Method
Konsep Pemograman Berorientasi Objek Menggunakan Libary yang sudah ada dapat digunakan lagi untuk mengembangkan software yang ada untuk membuat software yang baru. Elemen-elemen dari PBO : 1. nherintan!e "penurunan# $emampuan untuk mewariskan field% method% maupun e&ent dari !lass dasar "based !lass# ke keturunannya "deri&ed !lass# untuk mengirimkan kode program '. En!apsulation "pengkapsulan# $emampuan untuk menyembunyikan data dalam !lass sehingga data hanya bisa dimanipulasi melalui subrutin atau fungsi atau !lass itu sendiri dan turunanya. (. Poliymorphism $emampuan untuk mengambil alih"o&eridding# metode dengan metode yang memiliki nama sama% tetapi melakukan hal yang berbeda. )) file mahasiswa.*a&a !lass mahasiswa + int nim, ))field "&ariabel instan# -tring nama, double absen%./-%.0-%tugas, mahasiswa"int nomor%-tring nama1mhs# ))konstruktor + ))"method yg otomatis dipanggil saat ob*e!t dibuat# nim2nomor, nama2nama1mhs, 3 publi! &oid set1nilai"double nilai11% double nilai1'%double nilai1(%double nilai14# ))method + )) "fungsi)prosedur# absen2nilai11, tugas2nilai1', ./-2nilai1(, .0-2nilai14, -ystem.out.println "56ilai sudah diset75#, 3 ))method publi! double hitung1nilai"# + double nilai 2 8.1 9 absen : 8.' 9 tugas : 8.( 9 ./- : 8.4 9 .0-, return nilai, 3 ))method publi! stati! &oid main"-tring;< args# + mahasiswa mhs, )) deklarasi &ariabel tipe !lass
mhs 2 new mahasiswa"=(=888881%5Budi5#, ))pembuatan ob*e!t mhs1
mhs'.set1nilai">8%>8%>8.?%=>.=#, double point' 2 mhs'.hitung1nilai"#, -ystem.out.println "56ilai 5:mhs'.nama:5 adalah 5:point'#, 3 3 Objek dan Class Ob*ek adalah segala sesuatu yang memiliki batas. Misal : pena %ku!ing% kue. Blass adalah Blueprint atau !etakan dari ob*ek.
Bontoh analogi : C kelas itu seperti !etakan kue% kelas adalah !etakan untuk ob*ek C -eperti halnya !etak kue se*umlah kue dapat di!iptakan dengan menggunakan sebuah !etakan. Begitu *uga *uga halnya dengan !lass se*umlah ob*ek dapat di!iptakan oleh Blass. Bontoh ob*ek : mahasiswa mhs1, mhs1 2 new mahasiswa"=(=888881%5Budi5#, Mhs meru*uk ke ob*ek yang bernama mahasiswa. Konstruktor $onstruktor adalah Metode yang dapat digunakan untuk memberikan nilai awal saat ob*ek di !iptakan. Metode ini di panggil se!ara otomatis oleh *a&a ketika new dipakai untuk men!iptakan instan kelas. -ifat konstruktor : 1. 6amanya sama dengan nama kelas '. /idak memiliki nilai balik "termasuk tidak bileh ada kata-kata &oid# !ontoh pada program mahasiswa.*a&a mahasiswa"int nomor%-tring nama1mhs# ))konstruktor + nim2nomor, nama2nama1mhs, 3 Metode /method Metode )method adalah sebuah fungsi "subProgram # yang melekat pada sebuah ob*ek atau instan kelas. 0tau kita mengenal dengan nama fungsi atau prosedur Bontoh pada program mahasiswa.*a&a publi! &oid set1nilai"double nilai11% double nilai1'%double nilai1(%double nilai14# + absen2nilai11, tugas2nilai1', ./-2nilai1(, .0-2nilai14, -ystem.out.println "56ilai sudah diatur5#, 3 publi! double hitung1nilai"# + double nilai 2 8.1 9 absen : 8.' 9 tugas : 8.( 9 ./- : 8.4 9 .0-, return nilai, 3 Inheritance (Pewarisan -uatu !lass dalam dapat diturunkan "diwariskan# dari !lass lain. Misalkan !lass b diturunkan dari !lass a. Penggambaran: Blass yang merupakan turunan dari !lass lain "dalam hal ini% !lass b# disebut !hild !lass atau sub!lass "dari !ontoh diatas% dapat disebut *uga bahwa !lass b adalah sub!lass dari !lass a#. -edangkan !lass yang dari mana !lass lain diturunkan "dalam hal ini%!lass a# disebut parent !lass atau super!lass "dari !ontoh diatas% dapat disebut *uga bahwa !lass a adalah super!lass dari !lass b#. Blass a Blass b Dalam *a&a% untuk menurunkan suatu !lass dari !lass lain gunakan keyword e!tends sesudah deklarasi !lass. -yntaE : class nama_subclass extends nama_superclass Blass yang diturunkan dari !lass lain "sub!lass# akan memiliki sifat-sifat dari super!lassnya. Dalam hal ini% suatu sub!lass akan mewarisi semua method dan field yang terdapat pada super!lassnya. Bontoh : class katt { int jumlah_ekor = 1; //field
public void makan() //method { Sstem!out!println("#akan"); $ $ class siam extends katt //class siam adalah turunan class katt { public static void main(Strin%&' ar%s) { siam siam1 = ne( siam(); siam1!jumlah_ekor = 1); // class siam memiliki field //jumlah_ekor karena jumlah_ekor diturunkan dari class katt siam1!makan(); // akan mencetak "#akan" $ $
Pada !ontoh diatas% !lass siam adalah turunan dari !lass katt. $arena itu% field *umlah1ekor dan method makan pada !lass katt otomatis diwariskan pada !lass siam. O"erriding 0pabila pada suatu !lass kita mendefinisikan suatu method yang sudah ada pada super!lassnya% maka dikatakan bahwa kita melakukan o"erriding untuk method tersebut. Bontoh : class katt { public void makan() //method { Sstem!out!println("#akan"); $ $ class siam extends katt //class siam adalah turunan class katt { public void makan() //overridin% { Sstem!out!println("#akan *kan"); $ public static void main(Strin%&' ar%s) //overridin% { siam siam1 = ne( siam(); katt katt1 = ne( katt(); katt1!makan(); //mencetak "#akan" siam1!makan(); //mencetak "#akan *kan" $ $ Dari !ontoh diatas% !lass siam yang merupakan turunan dari !lass katt melakukan o&erriding untuk method makan. USE Case Diagram Use case diagram menggambarkan fungsionalitas yang diharapkan dari sebuah sistem. Fang ditekankan adalah CapaG yang diperbuat sistem% dan bukan CbagaimanaG. -ebuah use case merepresentasikan sebuah interaksi antara aktor dengan sistem. Use case merupakan sebuah peker*aan tertentu% misalnya login ke sistem% meng-create sebuah daftar belan*a% dan sebagainya. -eorang)sebuah aktor adalah sebuah entitas manusia atau mesin yang berinteraksi dengan sistem untuk melakukan peker*aan-peker*aan tertentu. Use case diagram dapat sangat membantu bila kita sedang menyusun requirement sebuah sistem% mengkomunikasikan ran!angan dengan klien% dan meran!ang test case untuk semua feature yang ada pada sistem. -ebuah use case dapat meng-include fungsionalitas use case lain sebagai bagian dari proses dalam dirinya. -e!ara umum diasumsikan bahwa use case yang di-include akan dipanggil setiap kali use case yang meng-include dieksekusi se!ara normal. -ebuah use case dapat di-include oleh lebih dari satu use case lain% sehingga duplikasi fungsionalitas dapat dihindari dengan !ara menarik keluar fungsionalitas yang common. -ebuah use case *uga dapat meng-extend use case lain dengan behaviour-nya sendiri. -ementara hubungan generalisasi antar use case menun*ukkan bahwa use case yang satu merupakan spesialisasi dari yang lain. Bontoh .se Base Diagram Payroll $aryawaan #ugas Project Ha*i pegawai .ntar : Buat Blass namanya hitung didalamnya ada method-method hitung absen% hitung lembur% hitung ga*i lalu buatlah ob*ek yang namanya karyawaan. 6b : Iumus adalah : hitung0bsen 2 0bsen Ji*in-alpha-sakit hitung Lembur2 *umlahKam 9 18888 hitungHa*i2 ga*iPokok:hitungLembur:"hitungabsen9nilai/ransport# Pertemuan $ Final, Super, This, Public, Private Protected %inal Linal dapat dibagi men*adi ( ma!am yaitu : & %inal %ield 0pabila suatu field dideklarasikan final% maka field tersebut tidak bisa diubah lagi nilainya "men*adi konstanta#. Bontoh : !lass katt + final int *umlah1kaki 2 4, ))field "dideklarasikan final# 3 Lield *umlah1kaki tidak bisa diubah lagi nilainya. & %inal Method 0pabila suatu method dideklarasikan final% maka kita tidak bisa melakukan o&erriding untuk method tersebut. Bontoh : !lass katt + final &oid suara"# + -ystem.out.println"5Miaww...5#, 3 3 !lass siam eEtends katt ))siam adalah turunan dari katt + &oid suara"# )) o&erriding akan menghasilkan error% method + )) suara"# pada katt dideklarasikan final -ystem.out.println"5Murr...Murr...5#, 3 3 Method suara"# pada katt tidak bisa di-o&erride. & %inal Class 0pabila suatu !lass dideklarasikan final% maka !lass tersebut tidak bisa diturunkan lagi. Bontoh : final !lass katt )) !lass katt dideklarasikan final + ... ... 3 !lass siam eEtends katt ))siam adalah turunan dari katt + ))akan menghasilkan error"!lass katt ... ))dideklarasikan final# 3
'uper $eyword super digunakan untuk memanggil method pada super!lass.
Bontoh : !lass katt + publi! &oid suara"# + -ystem.out.println"5Miaww...5#, 3 3 !lass siam eEtends katt ))siam adalah turunan dari katt + publi! &oid mengeong"# + super.suara"#, ))memanggil method suara pada super!lass katt 3
publi! stati! &oid main"-tring;< args# + siam siam1 2 new siam"#, siam1.suara"#, ))men!etak 5Miaww...5 #his /his digunakan untuk menu*uk pembuat kelas"&ariabel instant# dan digunakan untuk menyatakan ob*ek sekarang atau ob*e!t dalam !lass tersebut. Bontoh this : !lass manusia + int a 2 1 , ))field "dideklarasikan pri&ate# int b 2 1 , publi! &oid set1nama"# ))method "dideklarasikan pri&ate# + -ystem.out.println"a# , ))1 -ystem.out.println"b# , )) 1 3 publi! &oid set1nama'"int a# ))18 method "dideklarasikan publi!# + -ystem.out.println"this.a# , ))1 -ystem.out.println"a# , ))18 this.a2 a, )) dalam kelas yang sama &aribel bisa di akses , )) method dalam kelas yang sama bisa akses ))-ystem.out.println"a# , -ystem.out.println"this.a# , -ystem.out.println"b# , 3 publi! &oid set1nama("# ))18 method "dideklarasikan publi!# + -ystem.out.println"5set nama (5# , -ystem.out.println"a# , ))1 3 3 !lass tes1manusia + publi! stati! &oid main"-tring;< args# + manusia orang11 2 new manusia"#, orang11.set1nama"# , orang11.set1nama'"18#, orang11.set1nama("# ,
3 3 Pri"ate( Public dan Protected Pri"ate berarti bahwa pengaksesan suatu &ariabel instan atau metode hanya dapat dilakukan dalam satu kelas tidak bisa diakses dari luar kelas. Public berarti bahwa pengaksesan suatu &aribel instan atau metode dapat dilakukan dari luar kelas Protected berguna untuk mengatur agar suatu &ariabel instan ataupun metode yang terdapat pada sebuah kelas dapat diakses pada kelas itu sendiri dan sub kelas. Bontoh : !lass manusia + pri&ate -tring nama 2 5baru5, ))field "dideklarasikan pri&ate# -tring nama' , pri&ate &oid set1nama"-tring nama# ))method "dideklarasikan pri&ate# + this.nama2nama, -ystem.out.println"nama# , 3 publi! &oid set1nama'"-tring nama# ))method "dideklarasikan publi!# + this.nama2nama, )) dalam kelas yang sama &aribel bisa di akses set1nama"nama# , )) method dalam kelas yang sama bisa akses -ystem.out.println"nama# , 3 3 !lass manusia' eEtends manusia )) turunan kelas manusia + publi! &oid set1nama'"-tring nama# ))method "dideklarasikan publi!# + nama 2 nama, ))super.set1nama"nama# , )) method dalam turunan kelas manusia% tidak bisa akses set nama super.set1nama'"nama# , 3 3 !lass tes1manusia + publi! stati! &oid main"-tring;< args# + manusia orang11 2 new manusia"#, orang11.set1nama'"5Mendri5#, ))orang1.nama2"5Mendri -5#, )) error7 nama dideklarasikan pri&ate pada !lass manusia manusia' orang1' 2 new manusia'"#, orang1'.set1nama'"5Mendri'5#, 3 3 Class )iagram Class adalah sebuah spesifikasi yang *ika diinstansiasi akan menghasilkan sebuah ob*ek dan merupakan inti dari pengembangan dan desain berorientasi ob*ek. Class menggambarkan keadaan "atribut)properti# suatu sistem% sekaligus menawarkan layanan untuk memanipulasi keadaan tersebut "metoda)fungsi#. Class diagram menggambarkan struktur dan deskripsi class, package dan ob*ek beserta hubungan satu sama lain seperti containment% pewarisan% asosiasi% dan lain-lain. Class memiliki tiga area pokok : 1. 6ama "dan stereotype# '. 0tribut (. Metoda *ubungan +ntar Class 1. 0sosiasi% yaitu hubungan statis antar class. .mumnya menggambarkan class yang memiliki atribut berupa class lain% atau class yang harus mengetahui eksistensi class lain. Panah navigability menun*ukkan arah query antar class. '. 0gregasi% yaitu hubungan yang menyatakan bagian "Cterdiri atas..G#. (. Pewarisan% yaitu hubungan hirarkis antar class. Class dapat diturunkan dari class lain dan mewarisi semua atribut dan metoda class asalnya dan menambahkan fungsionalitas baru% sehingga ia disebut anak dari class yang diwarisinya. $ebalikan dari pewarisan adalah generalisasi. 4. Mubungan dinamis% yaitu rangkaian pesan "message# yang di-passing dari satu class kepada class lain. Mubungan dinamis dapat digambarkan dengan menggunakan sequence diagram yang akan di*elaskan kemudian. /ugas buatlah !lass seperti gambar diatas dengan keterangan sebagi berikut : - Mitung : Method hitung0bsen%hitungLembur tipenya pri&ate sedangkan untuk hitungHa*i tipenya publi!. - Pa*ak : pa*ak18%pa*ak1=%pa*ak'8 tipenya pri&ate dimana hitungan pa*ak dari total hitungH0*i"#. bila ga*i antara 1.888.88-1=88.888 maka kena pa*ak 18 N bila 1.=88.888 sampai '.888.888 kena pa*ak 1= N bila diatas '.888.888 kena pa*ak '8N ingat pa*ak bersifat progresif dimana bila ga*i (.888.888. - $asBon dapat dilaksanakan bila tidak melebihi gapok "!ek$asbon# dan harus di!ek apakah ada kasbon sebelumnya yang belum lunas "!ek kasbonsebelumnya# kalau kasbon tidak melebihi gapok maka% boleh melakukan kasbon. !ekHapok%tambahkasbon bersifat publi! sedangkan !ek$asbon-ebelumnya bersifat pri&ate. - $aryawaan : 6ik Bersifat publi!% untuk nama%gapok%*abatan bersifat pri&ate. Pertemuan , Abstract, Polimorisme, Static +bstaract Metode 0bstra!t adalah -uatu mekanisme yang memungkinkan suatu metode ditentukan dari dalam kelas tetapi tidak disertai dengan definisi nya. -edangkan kelasnya disebut *uga kelas abstrak. -yarat definisi kelas abstrak adalah setiap kelas dan turunan dari kelas abstrak harus mendefiniskan metode metode yang tergolong sebagai metode abstrak. Bontoh kelas abstrak : publi! abstra!t !lass kendaraan + )) !lass abstrak prote!ted -tring nama, publi! abstra!t &oid *alankan"#, ))metode abstrak gunakan O , P 3 !lass sepeda eEtends kendaraan + publi! sepeda"-tring nama# + this.nama2 nama , 3 publi! &oid *alankan "# + -ystem.out.println "5Duduk diatas sedel 5 : this.nama : 5 dan kayulah...5#, 3 3 !lass minibus eEtends kendaraan + publi! minibus "-tring nama# + this.nama 2 nama , 3 publi! &oid *alankan "# + -ystem.out.println "5Duduk didepan stir 5 : this.nama : 5 dan nyalakan mesin...5#, 3 3 !lass testabstrak + publi! stati! &oid main "-tring ;< args# + sepeda sepedaku 2 new sepeda "5-epeda mini5#, sepedaku.*alankan "# , minibus mobilku 2 new minibus "5minibus keri5# , mobilku.*alankan "# , 3 Polimor-isme Porlimorfisme adalah $emampuan untuk berhubungan dengan berbagai tipe didasarkan pada fitur yang sama . Kika mempunyai suatu &ariabel ob*ek yang bertipe di superkelas dan &aribel ob*ek ini bisa diisi dengan ob*ek superkelas ataupun ob*ek subkelas tanpa perlu melakukan perubahan tipe.
Bontoh : !lass kendaraan + prote!ted -tring nama, publi! &oid *alankan"#+ 3 3 !lass sepeda eEtends kendaraan + publi! sepeda"-tring nama# + this.nama2 nama , 3 publi! &oid *alankan "# + -ystem.out.println "5Duduk diatas sedel 5 : this.nama : 5 dan kayulah...5#, 3 3 !lass minibus eEtends kendaraan + publi! minibus "-tring nama# + this.nama 2 nama , 3 publi! &oid *alankan "# + -ystem.out.println "5Duduk didepan stir 5 : this.nama : 5 dan nyalakan mesin...5#, 3 3 !lass testabstrak + publi! stati! &oid main "-tring ;< args# + sepeda sepedaku 2 new sepeda "5-epeda mini5#, sepedaku.*alankan "# , minibus mobilku 2 new minibus "5minibus keri5# , mobilku.*alankan "# , kendaraan !ampur 2 new minibus "5Polimorfisme5# , ))!ontoh porlimofisme !ampur.*alankan "# , 3 3 'tatic %ield 0pabila suatu field E dalam suatu !lass a dideklarasikan stati!% maka field E tersebut hanya ada satu untuk setiap ob*e!t dari !lass a tersebut. Dapat *uga dikatakan bahwa field E tersebut dimiliki oleh !lass a yang mendeklarasikan field itu dan bukan milik ob*e!t- ob*e!t dari !lass a. Dengan demikian% semua ob*e!t yang dibuat berdasarkan !lass a memiliki field E yang sama. 0pabila nilai dari field E pada salah satu ob*e!t dari !lass a diganti nilainya% maka semua ob*e!t lain dari !lass a akan punya nilai yang sama. Bontoh : class cbor% { private static int data; //field static public void cetak_data() { Sstem!out!println(data); $
public void tambah_data() { data = data + 1; $ $ class test_cbor% { public static void main(Strin%&' ar%s) { cbor% bor%1 = ne( cbor%(); cbor% bor%, = ne( cbor%();
bor%1!cetak_data(); //mencetak , bor%,!cetak_data(); //mencetak , $ $ 'tatic Method 0pabila suatu method dalam suatu !lass dideklarasikan stati!% maka method tersebut dapat dipanggil tanpa lebih dulu menciptakan object dari class tersebut. Bara memanggil suatu method stati! adalah : -yntaE : -ama_class!nama_method(parameter) Bontoh : class statistika { public static double rata(int jumlah.double&' arra) //static //method { double temp = ); for(int i=);i/=jumlah01;i++) { temp = temp + arra&i'; $ double hasil = temp / jumlah; return hasil; $ $ class test_statistika { public static void main(Strin%&' ar%s) { double data&' = {,1.,2.1,.,3.24.56.3).1,.35.15$; double rat = statistika!rata(1).data); //meman%%il method //static Sstem!out!println("7ata0rata data adalah 8 " + rat); $ $ 'tatechart -tate!hart diagram menggambarkan transisi dan perubahan keadaan "dari satu state ke state lainnya# suatu ob*ek pada sistem sebagai akibat dari stimuli yang diterima. Pada umumnya statechartdiagram menggambarkan class tertentu "satu class dapat memiliki lebih dari satu statechart diagram#. Dalam .ML% state digambarkan berbentuk segiempat dengan sudut membulat dan memiliki nama sesuai kondisinya saat itu. /ransisi antar state umumnya memiliki kondisi guard yang merupakan syarat ter*adinya transisi yang bersangkutan% dituliskan dalam kurung siku. Action yang dilakukan sebagai akibat dari event tertentu dituliskan dengan diawali garis miring. Bontoh -tate!hart pada !lass pa*ak : /ugas : Dalam kelas karyawaan untuk memanggil kelas yang lain tidak perlu membuat ob*ek gunakan stati! sa*a.% Buatlah $elas 0bstara!t bonus sementara ini karena belum tentu digunakan buat sa*a method hitungBonus isinya !etak tulisan sa*a nilai Cbonus2 8G Pertemuan . Paket, !mport, !nterace Pengantar Paket -e*umlah kelas yang terkait pada Ka&a biasa dikelompokkan dalam sebuah unit yang disebut paket "package#. -alah satu kelebihan paket adalah memungkinkan penentu akses bawaan "tanpa penyebutan pri"ate% public% atau protected# pada &ariabel dan metode sehingga &ariabel atau metode tersebut dapat diakses oleh semua kelas yang terletak dalam satu paket. Menggunakan import Pernyataan import merupakan mekanisme dalam program untuk mengakses kelas yang terdapat dalam suatu paket. Bentuk pernyataan ini : import nama1paket.nama1berkas, Contoh Paket / pa!kage !om.goreng.sapi.math, publi! !lass Matematika + publi! stati! int pangkat"int E%int y# + int Q 2 1, for"int i21,iR2y,i::# Q 2 Q9E, return Q, 3 3 Contoh Import / import !om.goreng.sapi.math.Matematika, ))memakai !lass Matematika dalam pa!kage !om.goreng.sapi !lass testing + publi! stati! &oid main"-tring;< args# + int angka 2 18, int pangkat 2 ', int hasil 2 Matematika.pangkat"angka%pangkat#, -ystem.out.println"angka:5 pangkat 5:pangkat:5 2 5:hasil#, 3 3 Pengertian Inter-ace nterfa!e merupakan suatu mekanisme yang disediakan oleh Ka&a yang memungkinkan berbagi konstanta atau menentukan bentuk metode yang dapat digunakan oleh se*umlah kelas. -ekilas interfa!e mirip dengan kelas abstrak% karena kelas abstrak *uga mernentukan bentuk metode untuk subkelas. 6amun interfa!e dapat dibedakan dengan kelas abstrak dalam hal seperti berikut : $elas abstrak dapat mengandung metode abstrak maupun metode tidak abstrak% sedangkan hanya dapat mengan dung metode abstrak. $elas abstrak dapat mendeklarasikan &ariabel instan% sedangkan interfa!e hanya dapat mendefinisikan konstanta. $elas abstrak digunakan oleh kelas lain melalui pewarisan "&ia kata kun!i e!tends% sedangkan interfa!e digunakan oleh kelas tidak melalui mekanisme itu. Mendeklarasikan Inter-ace nterfa!e menyerupai kelas. Perbedaannya% kata kun!i inter-ace menggantikan kedudukan kata kun!i class. Bentuk pendeklarasiannya adalah sebagai berikut : public inter-ace Namainterface + )) metode J tanpa implementasi )) definisi konstanta 3 Penentu akses public biasa digunakan dengan tu*uan agar interfa!e dapat diakses oleh kelas manapun. Kika tidak ada penentu akses public% interfa!e hanya dapat diakses oleh kelas-kelas yang berada dalam paket yang sama. Sariabel dalam interfa!e hanya diperkenankan untuk menggunakan penentu akses public static -inal% yang sebenarnya menyatakan suatu konstanta "bukan &ariabel#. $alaupun public static -inal tidak disertakan% se!ara implisit akan diperlakukan seperti kalau public static -inal diberikan. Bontoh berikut menun*ukkan interfa!e yang hanya berisi konstanta : publi! interfa!e nterfa!ewarna + publi! stati! final int M/0M 2 '== , publi! stati! final int P./M 2 8, 3 Mengingat publi! stati! final dalam interfa!e tidak harus disebutkan se!ara eksplisit% deklarasi interfa!e Tarna diatas dapat ditulis men*adi : publi! interfa!e nterfa!ewarna + int M/0M 2 '==, int P./M 2 8, 3 Pewarisan Inter-ace -uatu interfa!e *uga dapat mewarisi interfa!e yang lain% seperti subkelas mewarisi superkelas. -ebagai !ontoh: publi! interfa!e TarnaLebihLengkap eEtends nterfa!eTarna + int 0B.10B. 2 1'?,3 Pada !ontoh diatas% interfa!e TarnaLebihLengkap tidak hanya memiliki konstanta 0B.10B.% tetapi *uga M/0M dan P./M yang diwarisinya dari interfa!e nterfa!eTarna. Berbeda dengan kelas% suatu interfa!e dapat mewarisi lebih dari sebuah interfa!e. Bentuknya sebagai berikut : public inter-ace Namainterface e!tends InterfaceA% InterfaceB + )) tubuh interfa!e 3 Bontoh nterfa!e : !lass testing + publi! stati! &oid main"-tring;< args# + dosen-eniman E 2 new dosen-eniman"#, E.menga*ar"#, E.menyanyi"#, 3 3 interfa!e seniman ))deklarasi interfa!e + publi! &oid menyanyi"#, ))method ini otomatis men*adi abstra!t
3 interfa!e dosen + publi! &oid menga*ar"#, 3 !lass dosen-eniman implements dosen%seniman ))!lass dosen-eniman ))mengimplementasikan interfa!e dosen dan interfa!e seniman + publi! &oid menyanyi"# ))method ini harus ada% karena !lass dosen-eniman + ))mengimplementasikan interfa!e seniman -ystem.out.println"5Lalala5#, 3 publi! &oid menga*ar"# + -ystem.out.println"5Menulis !atatan di papan5#, 3 3 +cti"it0 )iagram Activity diagrams menggambarkan berbagai alir akti&itas dalam sistem yang sedang diran!ang% bagaimana masing-masing alir berawal% decision yang mungkin ter*adi% dan bagaimana mereka berakhir. Activity diagram *uga dapat menggambarkan proses paralel yang mungkin ter*adi pada beberapa eksekusi.Activity diagram merupakan state diagram khusus% di mana sebagian besar state adalah action dan sebagian besar transisi di-trigger oleh selesainya state sebelumnya "internal processing#. Oleh karena itu activity diagram tidak menggambarkan beha&iour internal sebuah sistem "dan interaksi antar subsistem# se!ara eksak% tetapi lebih menggambarkan proses-proses dan *alur-*alur akti&itas dari le&el atas se!ara umum. -ebuah akti&itas dapat direalisasikan oleh satu use case atau lebih. 0kti&itas menggambarkan proses yang ber*alan% sementara use case menggambarkan bagaimana aktor menggunakan sistem untuk melakukan akti&itas. /ugas : -emua !lass yang ada dipisah nama filenya sedangkan untuk !lass pa*ak% hitung% kasbon masukan dalam paket karyawan.hitung.rumus. Blass karywaan masukan dalam paket karyawaan.hitung%data. Pertemuan 1 2%orm( 2te!tarea( 2te!t%iled( 2checkBo!( 2radioButton(2list 2combBo! 34I 5indow / Komponen Button Button merupakan kelas yang berguna untuk mewu*udkan tombol dalam suatu *endela. .ntuk membuat ob*ek berkelas Button% 0nda bisa melakukannya dengan !ara seperti berikut : 6ew Button"C*udulG# Dua buah metode penting yang terdapat pada kelas Button : set6abel(% yang berfungsi untuk mengubah *udul pada tombol. 0rgumen berupa string yang menyatakan *udul baru. get6abel(% yang berfungsi untuk memperoleh *udul pada tombol. 6abel Label merupakan komponen yang umum digunakan dalam antarmuka grafis untuk menampilkan suatu string satu baris pada suatu wadah "Bontainer ataupun subkelas- subkelasnya# dan umumnya bersifat tidak untuk diubah. /iga konstruktor kelas ini dapat dilihat pada tabel berikut $onstruktor $eterangan Label"# Men!iptakan ob*ek 6abel dengan teks berupa string kosong dan menggunakan perataan kiri Label"-tringteks# Men!iptakan ob*ek 6abel dengan tulisan sesuai dengan teks dan menggunakan perataan kiri Label"-tringteks, int perataan# Men!iptakan Ob*ek 6abel dengan tulisan sesuai dengan teks dan teks diletakkan sesuai dengan nilai perataan. 6ilai untuk argumen kedua dapat berupa : LEL/ : perataan kiri BE6/IE : perataan kanan IHM/ : perataan kanan #e!t%ield #e!t%ield adalah kelas yang berguna untuk men!iptakan ob*ek yang ditu*ukan untuk memasukkan data satu baris. $onstruktor $eterangan /eEtLield"# Membuat ob*ek #e!t%ield dengan nilai awal sama string kosong /eEtLield"-tring teks# Membuat ob*ek #e!t%ield dengan nilai awal sama string teEt /eEtLield"-tring teks% int kolom# Membuat ob*ek #e!t%ield dengan nilai awal sama string teEt dan *umlah kolom sebanyak kolom #e!t+rea #e!t+rea adalah kelas yang berguna untuk membuat ob*ek yang dapat digunakan untuk menampilkan data teks yang terdiri atas se*umlah baris $onstruktor Metode /eEt0rea"# Men!iptakan ob*ek #e!t+rea dengan ukuran disesuaikan 5layout manager5 /eEt0rea"int x% int y# Men!iptakan ob*ek /eEt0rea dengan ukuran sebanyak E baris karakter dan y kolom karakter /eEt0rea"-tring teks# Men!iptakan ob*ek /eEt0rea dengan ukuran disesuaikan dengan 5layout manager5 dan diisi dengan nilai awal berupa string teks Checkbo! Checkbo! adalah komponen yang biasa digunakan untuk memilih salah satu pilihan diantara dua kemungkinan. $onstruktor $eterangan Bhe!kboE"# Men!iptakan ob*ek Checkbo! tanpa label dan nilai keadaan kotak !ek diisi dengan -alse Bhe!kboE"-tring teks# Men!iptakan ob*ek Checkbo! dengan label berupa teks dan nilai keadaan kotak !ek diisi dengan -alse Bhe!kboE"-tring teks% boolean keadaan# Men!iptakan ob*ek Bhe!kboE dengan label berupa teks dan nilai keadaan kotak !ek diisi dengan nilai pada keadaan Bhe!kboE"-tring text% boolean keadaan% Bhe!kboEHroup grup# Men!iptakan ob*ek Checkbo! dengan label berupa teks dan nilai keadaan kotak !ek diisi dengan nilai pada keadaan. -elain itu% kotak !ek akan diletakkan pada grup kotak !ek grup. Bhe!kboE"-tring teEt% Bhe!kboEHroup grup% boolean keadaan# -erupa dengan konstruktor diatas% tetapi biasa digunakan untuk membentuk tombol radio Metode $eterangan getLabel"# Memperoleh label setLabel"-tring teks# Mengubah label get-tate"# MEmperoleh keadaan pada kotak !ek. Masil true kalau kotak !ek dalam keadaan di!entang, atau -alse kalau tidak di!entang set-tate"boolean keadaan# Mengubah keadaan kotak !ek berdasarkan nilai keadaan setBhe!kHroup"Bhe!kboEHroup g# Mengatur kotak !ek ini agar men*adi bagian dari grup kotak !ek g addtemListener"temListener # Menambahkan penanganan ke*adian Checkbo!3roup Checkbo!3roup adalah wadah yang mengelompokan se*umlah kotak !ek yang mempunyai sifat hanya satu kotak !ek yang dalam keadaan terpilih. $onstruktornya berbentuk sebagai berikut : Bhe!kboEHroup"# Metode $eterangan get-ele!tedBhe!kboE"# Menghasilkan ob*ek berkelas Checkbo! yang menyatakan kotak !ek yang sedang dipilih set-ele!tedBhe!kboE"Bhe!kboE cb# Mengatur keadaan kotak !ek !b men*adi ter!entang sedangkan yang lain men*adi tidak dipilih 6ist 6ist adalah kelas yang digunakan untuk membuat ob*ek yang menyediakan pemilihan sebuah item atau beberapa item dari se*umlah item. Metode $eterangan HettemBount Menghasilkan nilai bertipe int yang menyatakan *umlah item pilihan gettem"int indeks Menghasilkan string yang merupakan item pada posisi indeks gettem"# Menghasilkan array 'tring yang berisi seluruh item pada 6ist add"-tring item# Menambahkan item baru di akhir 6ist add"-tring item% int indeks# Menambahkan item baru pada posisi indeks repla!etem"-tring nilaiBaru% int indeks Mengganti item pada posisi indeks dengan nilai pada nilaiBaru remo&e0ll"# Menghapus semua item remo&e"-tring item# Menghapus item yang sesuai dengan nilai item. Manya sebuah item pertama ditemui sa*a yang dihapus remo&e"int indeks# Menghapus item pada posisi indeks get-ele!tedindeE"# Menghasilkan nilai bertipe int yang menyatakan posisi item yang terpilih. Masil berupa -1 kalau tidak ada yang terpilih Metode $eterangan Het-ele!tedindeEes"# Memberikan nilai balik berupa array bertipe int yang menyatakan seluruh indeks untuk item-item terpilih "pada List yang memungkinkan pilihan berganda# get-ele!teditem"# Menghasilkan string yang merupakan item terpilih. 6ilai balik berupa null kalau tidak ada yang terpilih get-ele!teditems"# Memberikan nilai balik berupa array bertipe 'tring yang menyatakan seluruh item terpilih"pada ob*ek 6ist yang memungkinkan pilihan berganda isndeE-ele!ted"int indeks# Menghasilkan nilai true kalau item pada posisi indeks dalam keadaan terpilih. 6ilai balik berupa -alse untuk keadaan sebaliknya getIows"# Menghasilkan nilai bertipe int yang menyatakan *umlah baris tertampil pada 6ist isMultipleMode"# Menghasilkan nilai true kalau pilihan lebih dari satu item diperkenankan, -alse untuk keadaan sebaliknya -etMultipleMode" boolean b# Digunakan untuk mengubah mode pilihan sesuai dengan nilai b: true pilihan item boleh lebih dari -atu -alse hanya satu item yang bisa dipilih addtemListener"Item!istener I# Memasang penanganan ke*adian 'crollbar 'crollbar adalah kelas yang bermanfaat untuk membuat batang penggulung. $onstruktor $eterangan -!rollbar"# Men!iptakan ob*ek 'crollbar dengan nilai minimum dan maksimum sama dengan nol dan dengan bentuk berdiri "tegak# -!rollbar"int orientasi# Men!iptakan ob*ek 'crollbar dengan nilai awal 8% nilai minimum sama dengan 8 dan maksimum sama dengan 188 dan dengan orientasi didasarkan pada nilai orientasi -!rollbar"int orientasi% int nilai"osisi"enggulung% int ukuran #ombol% int minimum%int maksimum# Membuat ob*ek 'crollbar dan sekaligus mengatur orientasi% lebar komponen "kalau tegak# atau tinggi komponen "kalau mendatar#% nilai minimum% dan nilai maksimum yang diwakili 'crollbar. 6ilai untuk orientasi : -!rollbar.SEI/B0L tegak -!rollbar.MOIUO6/0L mendatar Metode $eterangan setOrientation"int orientasi# Menentukan orientasi komponen 'crollbar "tegak atau mendatar# getSalue"# Menghasilkan nilai 'crollbar sekarang setSalue"int nilaiBaru# Mengatur nilai sekarang pada 'crollbar getMinimum"# Memperoleh nilai minimum untuk 'crollbar setMinimum"int nilai# Menentukan nilai minimum getMaEimum"# Memperoleh nilai maksimum untuk 'crollbar setMaEimum"int nilai# Menentukan nilai maksimum Metode $eterangan set.nitn!rement "int &# Menentukan ukuran kenaikan atau penurunan nilai pada 'crollbar melalui penggulungan dengan mouse add0d*ustmentListener" 0d*ustmentL istener # Mengendalikan penanganan ke*adian Kelas MenuBar MenuBar adalah kelas yang berguna untuk membuat batang menu yang biasa diletakkan di bagian atas *endela dan bersifat pull$do%n. Dalam prakteknya% pembuatan batang menu melibatkan se*umlah kelas lain yang berhubunghan dengan menu% yaitu Menu dan MenuItem. Prinsip untuk membuat menu batang adalah sebagai berikut : 1. Membuat ob*ek MenuBar. '. Mengaitkan ob*ek MenuBar tersebut ke *endela melalui metode setMenuBar(. (. Men!iptakan se*umlah ob*ek Menu yang akan di*adikan sebagai menu dalam menu batang. 4. Mengaitkan ob*ek-ob*ek Menu ke ob*ek MenuBar melalui metode add(. =. Membuat se*umlah item menu melalui pembuatan ob*ek MenuItem untuk masing-masing menu. @. Mengaitkan item-item menu ke ob*ek Menu. 'et6a0out $elas Container mendefinisikan metode bernamma set6a0out( yang ditu*ukan untuk mengatur tataletak komponen-komponen. Bentuk deklarasi metode ini adalah seperti berikut : setLayout "LayoutManager mgr# /erlihat bahwa pada pemanggilan metode set6a0out( diperlukan argumen yang merupakan implementasi dari 6a0outManager. 6a0outManager sebenarnya adalah suatu interface. Interface ini menentukan komponen-komponen dalam Container ataupun turunannya "misalnya Panel# se!ara dinamis diatur. 0T/ menyediakan = mana*er dasar untuk mengelola peletakan komponen : 1. LlowLayout% '. HridLayout% (. BorderLayout% 4. BardLayout% dan =. HridBagLayout. %low 6a0out %low6a0out melakukan pengaturan komponen-komponen dalam suatu ob*ek Container dengan urutan dari kiri-ke kanan dan dari atas ke bawah. Pengaturan rata kiri% rata kanan% atau rata tengah bisa dilakukan. -e!ara berturut-turut pengaturan tersebut dilakukan dengan melibatkan konstanta LEL/% IHM/% dan BE6/EI. 3rid6a0out 3rid6a0out merupakan mana*er tataletak komponen yang menggunakan bentuk kisi-kisi "grid# dengan ukuran yang sama untuk setiap komponen. Penentuan ukuran grid dilakukan dengan menggunakan salah satu konstruktor berbentuk : HridLayout"int baris% int kolom# HridLayout"int baris% int kolom% int &arakh% int &arakv# Pada bentuk pertama% nilai yang perlu dilewatkan adalah *umlah baris dan *umlah kolom grid. Pada bentuk kedua% parameter ketiga menentukan *arak antar komponen yang terletak dalam satu baris% sedangkan parameter keempat menentukan *arak antar komponen se!ara &ertikal. Border6a0out Border6a0out adalah kelas yang menempatkan komponen dengan pendekatan arah mata angin. $elas inilah yang men*adi mana*er tataletak bawaan untuk kelas 5indow% %rame% dan )ialog. Bentuk konstruktor kelas ini adalah sebagai berikut : BorderLayout"# BorderLayout"int &arakh% int &arakv# Pada bentuk keduah% *arakh menentukan *arak antar komponen pada arah horisontal% sedangkan *arak& menentukan *arak antar komponen pada arah &ertikal. Pada bentuk pertama% *arak antar komponen pada arah horisontal dan &ertikal diberi nilai nol. Card6a0out Card6a0out berguna untuk menampilakan ob*ek-ob*ek Container seperti tumpukan kartu. Oleh karena itu% hanya satu Container yang tertampil untuk setiap waktu. $elas ini memiliki konstruktor seperti berikut : BardLayout"# 0dapun se*umlah metode yang tersedia pada Card6a0out dapat dilihat pada tabel berikut. Metode $eterangan first"Bontainer induk# Men*adikan Container pertama terlihat. Batatan : .ntuk semua metode% argumen berupa Container yang men*adi induk dari Container&Container pada Card6a0out neEt"Bontainer induk# Menampilkan Container berikutnya pre&ious"Bontainer induk# Menampilkan Container sebelumnya last"Bontainer induk# Menampilkan Container terakhir show"Bontainer induk% -tring nama# Menampilkan Container dengan nama-nama 3ridBag6a0out 3ridBag6a0out merupakan kelas yang dapat digunakan untuk meletakkan komponen se!ara bebas. Mal ini berbeda dengan 3rid6a0out. Kika 3rid6a0out yang digunakan% setiap komponen akan diletakkan dalam grid dengan ukuran yang sama. $alau menggunakan 3ridBag6a0out% setiap komponen dapat menempati ukuran yang berbeda dengan yang lain, setiap komponen dapat menempati lebih dari sebuah grid. Sariabel publik $eterangan gridE Menentukan posisi kolom tempat komponen dalam set grid. Kika grid! bernilai 3ridBagConstraints7896+#I:9% komponen berikutnya akan diletakkan disebelah kanan komponen yang terakhir ditambahkan gridy Menentukan posisi baris tempat komponen dalam sel grid. Kika 3ridBagConstraints7896+#I:9% komponen berikutnya akan diletakkan disebelah kanan komponen yang terakhir ditambahkan Batatan: -el yang terletak di u*ung kiri atas memiliki identitas: gridE 2 8 dan gridy 2 8. Kika gridE bernilai konstan dan gridy bernilai IEL0/SE maka semua komponen diletakkan pada kolom yang sama gridwidth Menentukan lebar komponen. -atuan berupa sel. 0rtinya% nilai ' pada &ariabel ini menyatakan bahwa komponen memiliki lebar ' sel Sariabel publik $eterangan gridheight Menentukan lebar komponen. -atuan berupa sel. 0rtinya% nilai ' pada &ariabel ini menyatakan bahwa komponen memiliki tinggi ' sel Batatan: Sariabel gridwidth atau gridheight dapat diisi dengan konstanta 3ridBagConstrains789M+I;)98 yang akan membuat komponen memenuhi sisa baris atau sisa kolom weightE dan weighty Digunakan untuk menentukan pengaturan spasi antar komponen kalau ukuran wadah yang menampungnya berubah ketika program dieksekusi. 6ilai yang diberikan terletak antara 8.8 sampai dengan 1.8. 6ilai 8 menyatakan bahwa komponen tidak mendapat tambahan spasi atau pengurangan spasi ketika ukuran wadah yang menampungnya berubah. 6ilai diatas 8 menyatakan bahwa tambahan atau pengurangan spasi akan dilakukan kalau wadah yang menampungnya berubah 0n!hor Menentukan posisi komponen kalau komponen berukuran lebih ke!il dari pada area yang tersedia. HridBagBonstrain.BE6/EI "nilai bawaan# : Di tengah HridBagBonstrain.6OI/M : Di atas HridBagBonstrain.6OI/ME0-/ : Di kanan atas HridBagBonstrain.E0-/ : Di kanan HridBagBonstrain.-O./ME0-/ : Di kanan bawah HridBagBonstrain.-O./M : Di bawah HridBagBonstrain.-O./MTE-/ : Di kiri bawah HridBagBonstrain.TE-/ : Di kiri HridBagBonstrain.6OI/MTE-/ : Di kiri atas Sariabel publik $eterangan fill Sariabel ini menentukan kebi*akan pengubahan ukuran komponen. $emungkinan nilainya : HridBagBonstrain.6O6E "nilai bawaan#: $omponen diatur pada ukuran tertentu HridBagBonstrain.SEI/B0L : /inggi komponen disesuaikan dengan ruang yang tersedia pada arah &ertikal HridBagBonstrain.MOIUO6/0L : Lebar komponen disesuaikan dengan ruang tersedia pada arah horiQontal HridBagBonstrain.BO/M : /inggi dan lebar komponen disesuaikan dengan ruang yang tersedia% baik pada arah horiQontal maupun &ertikal insets Sariabel ini berkelas insets. $onstruktor kelas ini berbentuk sebagai berikut : insets"int atas%int kiri%int bawah%int kanan# Parameter-parameter di atas menentukan spasi tambahan di sekeliling komponen "di atas% di kiri% di bawah% dan di kanan#. ipadE Sariabel ini digunakan untuk mengembangkan komponen ke kiri dan ke kanan sebesar nilai ini. Dengan demikian% lebar terke!il untuk komponen dinaikkan sebesar ' E ipadE ipady Sariabel ini digunakan untuk mengembangkan komponen ke atas dan ke bawah sebesar nilai ini. Dengan demikian tinggi terke!il untuk komponen dinaikkan sebesar ' E ipady. #ugas / Buatlah tampilan H. form yang dibutuhkan untuk membuat !lass karyawaan ini diantaranya : tambah data karywaan% edit data karyawaan% !ari data karywaan% hapus data karyawaan% "tambah% edit% hapus# *am lembur% "tambah% edit% hapus# 0bsen $aryawaan didalamnya terdapat !uti% i*in% sakit. Dan design gui menu utama Pertemuan < 9"ent $elas !omponet memiliki metode bernama handleE&ent"# yang berfungsi memproses ke*adian masukan dari pemakai misalnya ketika pemakai mengklik suatu tombol. /ipe ker*adia yang didefinisikan pada kelas e&ent . #ipe Kejadian Keterangan 0B/O61ESE6/ $e*adian yang berhubungan dengan tindakan pemakai terhadap komponen Jkomponen seperti tombol kotak !ek dan sebagainya HO/1LOB.- $e*adian yang berlangsung saat suatu komponen mendapatkan fo!us LO-/1LOB.- $e*adian yang berlangsung saat suatu komponen kehilangan fokus T6DOT1DE-/IOF $e*adian saat kendela ditutup Penanganan ke*adian yang lain dilakuakn dengan menggunakan kelas yang terdapat pada paket *a&a.awt.e&ent. Bara ini mulai diperkenalkan pada KD$ 1.1. Dalam hal ini ob*ek yang ingin menangani ke*adian dinamakan pendegar "listener#. .ntuk men*adi pendengar ob*ek perlu memangil metode Cadd listenerC bentuknya tergantung pada komponen yang memantau ke*adian. -ebagai !ontoh objek window menggunakan metode bernama add5indow6istener( sedangakan komponen Button memakai metode add+ction6istener(7 Contoh 9"ent Button / import *a&aE.swing.9, import *a&a.awt.9, import *a&a.awt.e&ent.9, publi! !lass E&ent81 + publi! stati! &oid main"-tring;< args# + KLrame frame 2 new KLrame"5E&ent Mandling /ombol5#, final KLabel label 2 new KLabel"5-tatus : 6one 5#, KButton tombol-etu*u 2 new KButton"5-etu*u5#, tombol-etu*u.setMnemoni!"V-V#,
KButton tombolBatal 2 new KButton"5Batal 5#, tombolBatal.setMnemoni!"VBV#,
if "sour!e 22 !button1# label1.set/eEt"5Pilihan 1 : on 5#, if "sour!e 22 !button'# label'.set/eEt"5Pilihan ' : on 5#, if "sour!e 22 !button(# label(.set/eEt"5Pilihan ( : on 5#,
if "e.get-tateBhange"# 22 temE&ent.DE-ELEB/ED# + if "sour!e 22 !button1# label1.set/eEt"5Pilihan 1 : off5#, if "sour!e 22 !button'# label'.set/eEt"5Pilihan ' : off5#, if "sour!e 22 !button(# label(.set/eEt"5Pilihan ( : off5#, 3 3 3, !button1.addtemListener"e&ent!li!k#, !button'.addtemListener"e&ent!li!k#, !button(.addtemListener"e&ent!li!k#, frame.getBontentPane"#.setLayout"new LlowLayout"##, frame.getBontentPane"#.add"label1#, frame.getBontentPane"#.add"label'#, frame.getBontentPane"#.add"label(#, frame.getBontentPane"#.add"!button1#, frame.getBontentPane"#.add"!button'#, frame.getBontentPane"#.add"!button(#, frame.pa!k"#, frame.setSisible"true#, frame.setDefaultBloseOperation"KLrame.EW/1O61BLO-E#, 3 3 Conoth 9"ent Menu Bar / import *a&aE.swing.9, import *a&a.awt.9, import *a&a.awt.e&ent.9, publi! !lass E&ent8A + publi! stati! &oid main"-tring;< args# + final KLrame frame 2 new KLrame"5Membuat Menu5#, KLabel label 2 new KLabel"5Bontoh Menu dengan Ka&a5#, label.setLont"new Lont"5-ans-erif5% Lont.BOLD% 14##, KMenuBar menu 2 new KMenuBar"#, frame.setKMenuBar"menu#, KMenu submenu 2 new KMenu"5Lile5#, submenu.setMnemoni!"VLV#, KMenutem inputdata 2 new KMenutem"5nput Data5%VV#, inputdata.add0!tionListener"new 0!tionListener"# + publi! &oid a!tionPerformed"0!tionE&ent e# + KOptionPane.showMessageDialog "frame%50nda memanggil Program nput Data5% 5Pesan Eksekusi5% KOptionPane.6LOIM0/O61ME--0HE#, )) KOptionPane.PL061ME--0HE )) KOptionPane.T0I66H1ME--0HE )) KOptionPane.X.E-/O61ME--0HE )) KOptionPane.EIIOI1ME--0HE 3 3#, KMenutem editdata 2 new KMenutem"5Edit Data5%VEV#, editdata.add0!tionListener"new 0!tionListener"# + publi! &oid a!tionPerformed"0!tionE&ent e# + -tring lokasi, lokasi 2 KOptionPane.shownputDialog "frame%5-iapa nama yang akan diedit5% 5Edit Data 6ama5% KOptionPane.X.E-/O61ME--0HE#, )) KOptionPane.PL061ME--0HE )) KOptionPane.T0I66H1ME--0HE )) KOptionPane.6LOIM0/O61ME--0HE )) KOptionPane.EIIOI1ME--0HE 3 3#, KMenutem hapusdata 2 new KMenutem"5Mapus Data5%VMV#, hapusdata.add0!tionListener"new 0!tionListener"# + publi! &oid a!tionPerformed"0!tionE&ent e# + int tanya 2 KOptionPane.showOptionDialog "frame%5Program tidak ditemukan75% 5Pesan $esalahan5% KOptionPane.DEL0.L/1OP/O6% KOptionPane.EIIOI1ME--0HE% null% new -tring;< +5Ietry5%5Ban!el53% 5Ban!el5#, )) nilai tanya228%1%' 3 3#, KMenutem keluar 2 new KMenutem"5$eluar5%V$V#, keluar.add0!tionListener"new 0!tionListener"# + publi! &oid a!tionPerformed"0!tionE&ent e# + int tanya 2 KOptionPane.showBonfirmDialog "frame%50nda yakin akan keluarY5#, if "tanya22KOptionPane.FE-1OP/O6# -ystem.eEit"8#, )) KOptionPane.6O1OP/O6 )) KOptionPane.B06BEL1OP/O6 )) KOptionPane.BLO-ED1OP/O6 3 3#, menu.add"submenu#, submenu.add"inputdata#, submenu.add"editdata#, submenu.add"hapusdata#, submenu.add-eparator"#, submenu.add"keluar#, menu.set-iQe"488%188#, menu.setLo!ation"@8%@8#, menu.setSisible"true#, frame.getBontentPane"#.add"label#, frame.pa!k"#, frame.setSisible"true#, frame.setDefaultBloseOperation"KLrame.EW/1O61BLO-E#, 3 3 #ugas / Buat e&ent-e&ent yang dibutuhkan dalam program !lass karyawaan ini diantaranya : tambah data karywaan% edit data karyawaan% !ari data karywaan% hapus data karyawaan% "tambah% edit% hapus# *am lembur% "tambah% edit% hapus# 0bsen $aryawaan didalamnya terdapat !uti% i*in% sakit. Dan design gui menu utama. 6B: datanya sementara dalam array sa*a tidak perlu koneksi database. Pertemuan = Pengenalan )atabase $oneksi database pada *a&a ditangani oleh KDBB "Ka&a Database Bonne!ti&ity#. KDBB merupakan salah satu 0P"0ppli!ation Programming nterfa!e# *a&a yang se!ara khusus ditu*ukan untuk menangani koneksi ke database. 0ntarmuka ini memungkinkan pemrogram menulis sebuah program yang dapat digunakan untuk mengakses database yang berbeda-beda misalnya Ora!le%0!!es atau MysZ Membuat )atabase M0s>l 0nda bisa men!iptaZkan database mahasiswa dengan dos prompt dengan men*alankan perintah : mysZl Juroot Jp -aat mun!ul: Enter Pasword $etikan password untuk pemakai root maka bila password benar akan mun!ul propmpt My-XL : MysZl [ Perintah untuk buat database adalah : C BIE0/E D0/0B0-E mahasiswa C -elan*utnya menggunakan table yang sudah di !reate dengan perintah C.-E mahasiswaG. Berikutnya berikan perintah membuat table bernama mahasiswa dengan field sebagai berikut : BIE0/E /0BLE mahasiswa " 6im S0IBM0I"># 6O/ 6.LL PIM0IF $EF% nama S0IBM0I"'8#% alamat S0IBM0I"188##, -elan*utnya perintah untuk menambah field database digunakan perintah 6-EI/% !ontoh : 6-EI/ 6/O mahasiswa "6im%nama%alamat# S0L.E- "O=(=8888'8P%OanitaP%P*akartaP#,
.n tuk menampilkan re!ord pada sebuah abel digunakan perintah -ELEB/. Bontoh perintah -ELEB/. : -ELEB/ 9 LIOM mahasiswa -ELEB/ nama LIOM mahasiswa -ELEB/ nama LIOM mahasiwa where alamat 2P*akartaP .ntuk mengubah database digunakan perintah .PD0/E !ontoh : .PD0/E mahasiswa set nama 2PtutiP where niim2P=(=8888'8P Menghapus data digunakan perintah DELE/E. Bontoh : DELE/E LIOM mahasiswa where nim 2 O=(=8888'1P /ugas : Buatlah database yang dibutuhkan dalam !lass karyawaan ini Pertemuan ? )atabase 6anjut Beberapa interfa!e koneksi data melalui *a&a.sZl adalah : - !onne!tion mendefinisikan koneksi ke database. - Dri&er mendefinisikan dri&er yang digunakan untuk melaukan koneksi se suatu database. $elas yagn mengimplementsikan interfa!e ini *uga terdapat pada paket pernyataan -XL - -tatement mendefinisikan se*umlah metode yang berhubungan dengan penyataan sZl. - Iesultset interfa!e yang mendefinisikan pengaksesan hasil pernyataan -XL. Bontoh tambah data : import *a&aE.swing.9, import *a&a.awt.9, import *a&a.awt.e&ent.9, import *a&a.sZl.9, publi! !lass frame1tambah + frame1tambah"# +
KLrame frame 2 new KLrame"5Lrame /ambah5#,
KLabel label1nama 2 new KLabel"56ama : 5#, KLabel label1*k 2 new KLabel"5Kenis $elamin : 5#, KLabel label1peker*aan 2 new KLabel"5Peker*aan : 5#,
final K/eEtLield tf1nama 2 new K/eEtLield"(8#, final KIadioButton rb1l 2 new KIadioButton"5Laki-laki 5#, final KIadioButton rb1p 2 new KIadioButton"5Perempuan 5#, rb1l.set-ele!ted"true#, ButtonHroup grup 2 new ButtonHroup"#, grup.add"rb1l#, grup.add"rb1p#,
-tring;< str 2 +5Pela*ar5%5Pegawai53, final KBomboBoE !mb1peker*aan 2 new KBomboBoE"str#,
KButton btn1tambah 2 new KButton"5/ambah5#, KButton btn1!lear 2 new KButton"5Blear5#,
frame.set-iQe"488%1(8#, frame.setSisible"true#, ))frame.setDefaultBloseOperation"KLrame.EW/1O61BLO-E#, 3 3 Pen*elasan : Bonne!tion !onn 2 Dri&erManager.getBonne!tion"5*db!:mysZl:))lo!alhost)db*a&aY user2\password25#, lo!alhost2 nama )alamat komputer ser&er database db*a&a 2 nama database user 2 user name pada database MysZl password 2 password pada database MysZl /ugas : buatlah program dari database yang ada berhubungan dengan !lass karywaan yagn ada .