Modul 5 - Java
Modul 5 - Java
PEMROGRAMAN
BERORIENTASI OBJEK
PG061 - 3 SKS
TIM PENYUSUN
JAKARTA M. Anif, M.Kom
PENGESAHAN
Dekan
Fakultas Teknologi Informasi
i|Page
KATA PENGANTAR
Alhamdulillah, puji syukur dipanjatkan kepada Allah SWT atas berkah dan
karunia-Nya sehingga modul praktikum kuliah Pemrograman Berorientasi Objek ini
dapat diselesaikan tepat pada waktunya.
Modul praktikum ini merupkan hasil pengalaman, pengetahuan dan praktek
yang dilakukan oleh penulis guna memudahkan semua mahasiswa dalam belajar dan
praktik Pemrograman Berorientasi Objek. Modul praktikum ini disusun secara ringkas
dan disesuaikan dengan kebutuhan praktikum, agar mahasiswa dapat dengan
mudah saat melakukan perkuliahan.
Modul praktikum ini tentu saja memiliki banyak kekurangan, untuk itu penulis
sangat mengharapkan saran dan kritik yang membangun dari pemakai modul
praktikum ini untuk lebih menyempurnakan penyajian berikutnya. Akhirnya, penulis
berharap agar modul praktikum ini dapat benar-benar bermanfaat.
Penyusun
ii | P a g e
DAFTAR ISI
PENGESAHAN ....................................................................................................... i
KATA PENGANTAR ............................................................................................... ii
DAFTAR ISI ........................................................................................................ iii
PRAKTIKUM 1 PENGENALAN PBO DENGAN BAHASA PEMROGRAMAN JAVA ............ 3
PRAKTIKUM 2 PERINTAH DASAR BAHASA PEMROGRAMAN JAVA ......................... 20
PRAKTIKUM 3 PERINTAH DASAR BAHASA PEMROGRAMAN JAVA (Lanjutan) ........ 34
PRAKTIKUM 4 STRUKTUR PROGRAM PENGAMBILAN KEPUTUSAN ....................... 49
PRAKTIKUM 5 STRUKTUR PROGRAM PENGULANGAN .......................................... 66
PRAKTIKUM 6 EXCEPTION HANDLING ............................................................... 80
PRAKTIKUM 7 CLASS, OBJECT DAN PACKAGE .................................................... 98
MODUL PERKULIAHAN #8 UTS ........................................................................ 115
PRAKTIKUM 9 KONSEP OOP ............................................................................ 118
PRAKTIKUM 10 KONSEP OOP - INHERITENCE .................................................. 139
PRAKTIKUM 11 KONSEP OOP – POLYMORPHISME DAN ENCAPSULATION .......... 153
PRAKTIKUM 12 ABSTRACT DAN INTERFACE ..................................................... 173
PRAKTIKUM 13 GUI ........................................................................................ 187
PRAKTIKUM 14 DATABASE, ODBC DAN CRUD (SELECT SQL) ............................. 101
PRAKTIKUM 15 CRUD (INSERT, UPDATE dan DELETE) ..................................... 116
iii | P a g e
UNIVERSITAS BUDI LUHUR
FAKULTAS TEKNOLOGI INFORMASI
MODUL PERKULIAHAN #1
PENGENALAN PBO DENGAN BAHASA
PEMROGRAMAN JAVA
1|Page
Daftar Pustaka : 1. Farrell. Joyce, An Object-Oriented
Approach to Programming Logic and
Design 3rd Edition, Course Technology,
2009
2. Thomas Wu. C, An Introduction to Object-
Oriented Programming with Java™ 4th
Edition, McGraw Hill, 2006
3. Deitel, Java How To Program, Deitel,
Prentice Hall, 2008
4. Anif, M, Seri Aplikasi : Aplikasi Penjualan
(Pemesanan Barang) dengan Java, Mitra
Wacana Media, 2008
2|Page
PRAKTIKUM 1
PENGENALAN PBO DENGAN BAHASA PEMROGRAMAN JAVA
1.2 Platform
3|Page
Gambar 1. Java 2 Platform Standard Edition 5.0
4|Page
1.3 Keunggulan Bahasa Java
5|Page
1.4 Paradigma Bahasa Pemrograman
2. Pemrograman Prosedural
a. Masalah yang diberikan dibagi dalam beberapa sub masalah tergantung pada
fungsinya.
b. Masalah disebut prosedur atau Metode.
6|Page
c. Prosedur apapun dapat dipanggil pada setiap saat selama pelaksanaan
program.
d. Program ini memiliki variabel global dan lokal.
3. Pemrograman Stuktural
a. Kelebihan dan kekurangan jenis pemrograman ini yaitu:
b. Program ini dibagi menjadi modul dan modul tersebut kemudian dibagi
menjadi fungsi.
c. Penggunaan Pernyataan go to dihapus atau dikurangi.
d. Setiap modul dapat bekerja independen satu sama lain.
Berikut peng-gambarannya:
7|Page
4. Pemrograman Berorientasi Objek
a. Program ini dibagi menjadi jumlah unit kecil yang disebut Object. Data dan
fungsi merupakan properti objek.
b. Data dari objek hanya dapat diakses oleh fungsi yang terkait dengan objek
tersebut.
c. Fungsi satu objek dapat mengakses fungsi objek lain.
8|Page
Dengan menggunakan OOP maka dalam melakukan pemecahan suatu masalah
kita tidak melihat bagaimana cara menyelesaikan suatu masalah tersebut
(terstruktur) tetapi objek-objek apa yang dapat melakukan pemecahan masalah
tersebut. Sedangkan untuk pemrograman terstruktur, menggunakan
prosedur/tata cara yang teratur untuk mengoperasikan data struktur. Untuk tata
nama, keduanya pun memiliki tatanan yang sama walaupun memiliki pengertian
tersendiri.
Pemrograman prosedural akan dikatakan lebih baik apabila dalam segala situasi
melibatkan kompleksitas moderat atau yang memerlukan signifikan kemudahan
maintainability. Manfaat yang dirasakan dalam penggunaan pemrograman
prosedural adalah kemampuan kembali menggunakan kode yang sama tanpa
menggunakan kode yang berbeda ataupun mengkopinya kembali. Dengan
menggunakan “goto”, memudahkan programmer melacak kumpulan data
sehingga menghindarkan pemrograman terstruktur menjadi seperti spagethii
code.
9|Page
1.5 Kebutuhan Software dan Hardware
Hardware:
1. Spesifikasi Minimum
2. Pentium 200-MHz
3. RAM 64 MB
Software:
Pada sistem operasi Windows, dapat menggunakan JDK dari Oracle sedangkan di
Linux menggunakan openJDK.
Software JDK dapat di download atau diunduh pada situs http://oracle.com
dengan versi manapun.
Contoh: jdk-8u20-windows-i586, kemudian lakukan dengan cara Double Click
pada file tersebut, ikuti petunjuk dan tekan tombol next hingga selesai.
10 | P a g e
2. Editor JCreator
Download terlebih dahulu installer JCreator dengan versi JCreator Pro 3.0 atau
JCreator 5.00 Pro, serta nomor serinya kemudian lakukan installasi dengan
mengikuti petunjuk yang ada dan tekan tombol next hingga selesai.
11 | P a g e
Tetapi jika sudah terinstall maka JDK nya akan tertera pada JDK Profile:
12 | P a g e
1.8 Fase Pengembangan Program
13 | P a g e
1.10 Latihan Mandiri: Praktikum
Langkah-langkah Praktikum
1. Buka Editor JCreator
2. Buatlah file baru dengan membuka menu File >New > File atau dengan Shortcut
Ctrl + N atau dengan klik icon pada ribbon menu, kemudian pilih > Java File
dan Klik tombol Next
3. Buat Nama File sesuai dengan nama file Java masing-masing Contoh program,
isikan pada bagian > Name, pilih lokasi tempat penyimpanan file pada pojok
kanan Bagian Location kemudian Klik tombol Finish.
14 | P a g e
Membuat Program untuk Mencetak 2 Baris Tulisan, seperti keluaran berikut:
Output Program :
Selamat Datang di Perkuliahan PBO
Di Universitas Budi Luhur
15 | P a g e
10. obj04.cetak();
11. }
12. }
1.11 Kebudiluhuran
16 | P a g e
1.12 Kesimpulan
17 | P a g e
UNIVERSITAS BUDI LUHUR
FAKULTAS TEKNOLOGI INFORMASI
MODUL PERKULIAHAN #2
PERINTAH DASAR
BAHASA PEMROGRAMAN JAVA
18 | P a g e
Daftar Pustaka : 1. Farrell. Joyce, An Object-Oriented
Approach to Programming Logic and
Design 3rd Edition, Course Technology,
2009
2. Thomas Wu. C, An Introduction to Object-
Oriented Programming with Java™ 4th
Edition, McGraw Hill, 2006
3. Deitel, Java How To Program, Deitel,
Prentice Hall, 2008
4. Anif, M, Seri Aplikasi : Aplikasi Penjualan
(Pemesanan Barang) dengan Java, Mitra
Wacana Media, 2008
19 | P a g e
PRAKTIKUM 2
PERINTAH DASAR BAHASA PEMROGRAMAN JAVA
2. Kelas adalah pemodelan dari objek yang berisi informasi (aturan) tentang sifat
karakteristik (data) dan tingkah laku (metode) yang dimiliki oleh objek tersebut.
Contoh: resep kue, material spidol, dan lain-lain.
4. Method adalah Prosedur atau fungsi yang dimiliki oleh suatu objek, method ini
akan mengolah atau mengubah data/variable yang ada didalamnya sesuai
dengan operasi yang telah ditentukan.
2.2 Identifier
20 | P a g e
5. Tidak dibolehkan diawali dengan bilangan (0, 1, 2, …),
6. Tidak dibolehkan menggunakan spasi
Contoh:
2.3 Modifier
1. Modifier 1
Untuk menentukan sifat dari suatu kelas dan menentukan previlage (hak akses)
dari kelas lain.
public : Modifier ini dapat diakses dari kelas lain, baik dalam package
yang sama maupun berbeda.
private : Modifier ini tidak dapat diakses sama sekali dari kelas lain, baik
dari package yang sama maupun berbeda. (hanya untuk
kelas dan package yang sama)
protected : Modifier ini membatasi akses kelas yang dilakukan oleh
subkelas turunannya dan kelas lain yang terletak dalam
package yang sama.
abstract : Dalam modifier ini, kelas tersebut tidak dapat diinstankan
21 | P a g e
langsung menjadi objek. Dipakai pada Hirarki kelas tertinggi
yang hanya mungkin dilakukan dengan cara inheritance. Atau
dengan kata lain, kelas murni tanpa objek dan tidak boleh
memiliki objek
final : Dalam modifier ini, kelas tersebut tidak dapat diturunkan
menjadi subkelas.
2. Modifier 2
Untuk menentukan relasi (extend atau implement) dengan kelas lainnya.
extends : Modifier ini digunakan untuk inheritance/pewarisan.
SuperClass Bila terjadi pewarisan, kelas yang mewariskan method dan
attributenya disebut kelas super, sedangkan yang diwariskan
disebut subkelas
implement : Modifier ini digunakan bila kelas mengimplementasikan satu
Interface atau lebih interface
2.4 Keyword
22 | P a g e
2.5 Input dari Keyboard
Proses pembacaan data yang diinput oleh user melalui keyboard dilihat dengan
2 (dua) cara, yaitu:
1. Dalam lingkungan Console (DOS)
Menggunakan kelas BufferedReader(), InputStreamRader(), dimana kelas
diinstansiasikan menjadi sebuah objek, dan kemudian objek yang terbentuk
memiliki sebuah metode readLine() yang digunakan untuk menangkap inputan
dari keyboard.
2.6 Praktikum
Langkah-langkah Praktikum
1. Buka Editor JCreator (Revisi Update No. Urut dari Versi Sebelumnya)
2. Buatlah file baru dengan membuka menu File >New > File atau dengan Shortcut
Ctrl + N atau dengan klik icon pada ribbon menu, kemudian pilih > Java File
dan Klik tombol Next
3. Buat Nama File sesuai dengan nama file Java masing-masing Contoh program,
isikan pada bagian > Name, pilih lokasi tempat penyimpanan file pada pojok
kanan Bagian Location kemudian Klik tombol Finish.
23 | P a g e
4. Lanjutkan dengan menuliskan program pada layar editor JCreator
Lakukan Kompilasi dan Jalankan program 2.1 diatas dengan membuka menu Build
>Compile File dan > Execute File dan tuliskan yang tercetak dilayar
24 | P a g e
1. Penggunaan input dari Keyboard di lingkungan Console (DOS) dengan
kelas BufferedReader() dan InputStreamRader()
Lakukan Kompilasi dan Jalankan program 2.2 diatas dengan membuka menu Build
>Compile File dan > Execute File dan perhatikan yang tampil pada layar.
25 | P a g e
Penggunaan input dalam lingkungan GUI dengan JOptionPane dengan
method showInputDialog().
Lakukan Kompilasi dan Jalankan program 2.3 diatas dengan membuka menu Build
>Compile File dan > Execute File dan perhatikan yang tampil pada layar.
26 | P a g e
Contoh Program Lain 2.4: // menggunakan util.Scanner //
1. import java.util.Scanner;
2.
3. public class ContohScanner {
4.
5. public static void main(String[] args) {
6. // deklarasi variabel
7. String nama, alamat;
8. int usia, gaji;
9.
10. // membuat scanner baru
11. Scanner keyboard = new Scanner(System.in);
12.
13. // Tampilkan output ke user
14. System.out.println("### Pendataan Karyawan PT. Petani Kode ###");
15. System.out.print("Nama karyawan: ");
16. // menggunakan scanner dan menyimpan apa yang diketik di variabel
nama
17. nama = keyboard.nextLine();
18. // Tampilkan outpu lagi
19. System.out.print("Alamat: ");
20. // menggunakan scanner lagi
21. alamat = keyboard.nextLine();
22.
23. System.out.print("Usia: ");
24. usia = keyboard.nextInt();
25.
26. System.out.print("Gaji: ");
27. gaji = keyboard.nextInt();
28.
29.
30. // Menampilkan apa yang sudah simpan di variabel
31. System.out.println("--------------------");
32. System.out.println("Nama Karyawan: " + nama);
33. System.out.println("Alamat: " + alamat);
34. System.out.println("Usia: " + usia + " tahun");
35. System.out.println("Gaji: Rp " + gaji);
36. }
37.
38. }
27 | P a g e
===================================================
Lakukan Kompilasi dan Jalankan program 2.4 diatas dengan membuka menu Build
>Compile File dan > Execute File dan perhatikan yang tampil pada layar.
===================================================
>Compile File dan > Execute File dan perhatikan yang tampil pada layar.
==================================================
Perbedaan BufferReader dengan Scanner terlihat dari fungsi atau method yang
dipakai. Scanner menggunakan next(), sedangkan BufferReader menggunakan
28 | P a g e
readLine().
Lalu untuk tipe data integer, BufferReader menggunakan fungsi read() saja.
Class Console hampir sama dengan BufferReader. Dia juga menggunakan fungsi
readLine() untuk mengambil input.
>Compile File dan > Execute File dan perhatikan yang tampil pada layar.
==================================================
29 | P a g e
2.7 Latihan Mandiri
30 | P a g e
2.8 Kesimpulan
31 | P a g e
UNIVERSITAS BUDI LUHUR
FAKULTAS TEKNOLOGI INFORMASI
MODUL PERKULIAHAN #3
PERINTAH DASAR
BAHASA PEMROGRAMAN JAVA
(Lanjutan)
32 | P a g e
Daftar Pustaka : 1. Farrell. Joyce, An Object-Oriented
Approach to Programming Logic and
Design 3rd Edition, Course Technology,
2009
2. Thomas Wu. C, An Introduction to Object-
Oriented Programming with Java™ 4th
Edition, McGraw Hill, 2006
3. Deitel, Java How To Program, Deitel,
Prentice Hall, 2008
4. Anif, M, Seri Aplikasi : Aplikasi Penjualan
(Pemesanan Barang) dengan Java, Mitra
Wacana Media, 2008
33 | P a g e
PRAKTIKUM 3
PERINTAH DASAR BAHASA PEMROGRAMAN JAVA (Lanjutan)
3.1 Operator
Variabel:
Variable merupakan tempat penyimpanan atau penampung nilai atau data di dalam
memori.
Variabel terdiri dari terdiri dari tipe data dan nama variabel. Tipe data menentukan
jenis nilai atau data yang akan disimpan, sedangkan nama variabel menjadi
pengenal (identifier), seperti halnya orang akan dipanggil dengan nama yang ia
miliki, begitu-pun variabel.
Terdapat dua tipe variabel yang digunakan dalam pemrograman Java, yaitu
34 | P a g e
primitive variables dan reference variables.
Contoh:
Konstanta:
Konstanta pada prinsipnya hamper mirip dengan valiabel, dua-duanya digunakan
untuk menyimpan suatu nilai dari tipe data tertentu. Perbedaannya jika variabel
untuk menyimpan suatu nilai yang dapat berubah-ubah, variabel bisa tidak
diinisialisasi sedangkan Konstanta (constant) nilainya bersifat tetap, selalu
diinisialikasi dan nilai Inisialisasi tersebut tidak akan pernah berubah. Sedangkan
untuk mendeklarasikan konstanta dapat mengikuti aturan. Cara deklarasi Konstanta
mirip dengan deklarasi pada variabel dan harus menambahkan kata kunci final
sebelum nama konstanta.
Konstanta memiliki aturan dalam penamaannya, yang hanya boleh menuliskan nama
konstanta dengan semua huruf besar atau kapital. Jika terdiri dari beberapa kata
gunakan tanda underscore (_) sebagai pemisah.
Harus memberikan nilai tetap tersebut. Jika memberikan nilai setelah dideklarasikan
maka akan menimbulkan pesan error.
35 | P a g e
Contoh:
final double PI = 3.14;
36 | P a g e
mengandung pecahan atau angka decimal di belakang koma, seperti
3.1416,5.25, dan sebagainya. Bilangan semacam ini disebut sebagai bilangan
riil. Dalam Java tipe ini dibedakan menjadi dua jenis, yaitu float, dan double.
Untuk jelasnya akan dijelaskan oleh tabel dan penjelasan di bawah ini:
Float
Tipe ini digunakan untuk menandakan nilai–nilai yang mengandung presisi atau
ketelitan tunggal (single-precision) yang menggunakan ruang penyimpanan 32-
bit. Presisi tunggal biasanya lebih cepat untuk processor-processor tertentu dan
memakan ruang penyimpanan setengah kali lebih sedikit dibandingkan presisi
ganda (double precision). Permasalahan yang timbul dari pemakaian tipe float
untuk nilai-nilai yang terlalu kecil atau justru terlalu besar, karena nilai yang
dihasilkan akan menjadi tidak akurat.
Contoh penggunaan variabel:
1 float suhu;
Double
Tipe ini mengandung tingkat ketelitian ganda atau presisi ganda (double
precision) dan menggunakan ruang penyimpanan 64-bit untuk menyimpan nilai.
Tipe double tentu lebih cepat untuk melakukan perhitungan-perhitungan
matematis daripad tipe float. Untuk perhitungan yang bersifat bilangan riil dan
menghasilkan hasil yang lebih akurat, maka lebih baik menggunakan tipe
double.
37 | P a g e
Contoh:
3. Char
Tipe data char merupakan tipe untuk menyatakan sebuah karakter. Java
menggunakan karakter Unicode untuk merepresentasikan semua karakter yang
ada. Unicode ialah sekumpulan karakter yang terdapat pada semua bahasa,
seperti bahasa Latin, Arab, Yunani dan lain-lainnya. Karena bahasa Java
dirancang untuk dapat diterapkan di berbagai macam platform, maka Java
menggunakan karakter Unicode yang membutuhkan ukuran 16-bit. Untuk
karakter-karakter yang tidak dapat diketikkan secara langsung melalui keyboard,
java menyediakan beberapa escape sequence (pasangan karakter yang
dianggap sebagai karakter tunggal). Escape sequence tidak dianggap sebagai
String, melainkan tetap sebagai tipe karakter khusus. Di bawah ini akan
dijelaskan beberapa contoh tentang escape sequence.
4. Boolean
Tipe Boolean adalah tipe data yang digunakan untuk menampung nilai
logika, yaitu nilai yang hanya memiliki dua buah kemungkinan (benar atau
salah). Tipe ini ditandai dengan kata kunci Boolean. Dalam bahasa Java, nilai
benar dipresentasikan dengan kata kunci true dan nilai salah dengan kata
38 | P a g e
kunci false.
Contoh:
1. Class
Kelas dapat didefiniskan sebagai cetak biru (blueprint) atau prototipe/kerangka
yang mendefiniskan variabel-variabel (data) dan method-method (perilaku)
umum dari sebuah objek. Dengan kata lain kelas adalah sebuah kesatuan yang
terintegrasi antara method dan data yang mengacu pada suatu objek.
Dalam dunia permrograman, sebenarnya kelas tidak jauh berbeda dengan tipe
data sederhana. Perbedaannya, tipe data sederhana digunakan untuk
mendeklarasikan variabel ‘normal’, sedangkan kelas digunakan untuk
mendeklarasikan sebuah variabel yang berupa objek. Variabel yang berupa
objek ini sering disebut dengan referensi objek (object reference).
Pada saat kita membuat sebuah kelas baru. Sekali didefiniskan, maka tipe data
baru ini dapat digunakan untuk membuat suatu objek dari tipe tersebut.
Dengan kata lain, kelas adalah pola (template) untuk pembuatan objek, dan
objek adalah wujud nyata (instance) dari sebuah kelas.
Contoh:
39 | P a g e
Setelah kita membuat sebuah kelas, untuk menggunakannya maka kita harus
membuat sebuah instance dari kelas tersebut. Berikut cara membuat objek dari
kelas:
2. Array
Tipe data ini memiliki kemampuan untuk menggunakan satu variabel yang
dapat menyimpan sebuah data list dan kemudian memanipulasinya dengan
lebih efektif.
Sebuah array akan menyimpan beberapa item data yang memiliki tipe data
sama didalam sebuah blok memori yang berdekatan yang kemudian dibagai
menjadi beberapa slot.
3. Interface
Interface merupakan sekumpulan method yang hanya memuat deklarasi dan
struktur method, tanpa detail implementasinya. Sedangkan detail dari method
tersebut berada pada class yang mengimplementasikan interface tersebut.
40 | P a g e
Interface digunakan bila Anda ingin mengaplikasikan suatu method yang
spesifik, yang tidak diperoleh dari proses inheritance yang lebih terbatas. Tipe
data yang boleh pada interface hanya tipe data konstan.
1. Definisi Array
Array Adalah sebuah solusi untuk mendeklarasikan sejumlah Variabel secara
tepat. Pemakaian Variabel Array akan menghemat waktu penyebutan nama
Variabel. Variabel Array adalah sejumlah Variabel dengan nama yang sama.
Ilustrasi Array:
2. Mendeklarasikan Array
Beberapa cara mendeklarasikan sebua variabel array, yaitu:
a. Deklarasi
b. Inisialisasi
41 | P a g e
c. Deklarasi dan Inisialisasi
d. Deklarasi Otomatis
3. Array Multidimensi
Selain berupa sederetan variabel satu dimensi, kita dapat pula membuat array
yang berukuran lebih dari satu dimensi atau disebut array multi-dimensi. Pada
bagian ini kita mencoba mencontohkan bentuk array dua dimensi sbb:
Contoh:
42 | P a g e
43 | P a g e
44 | P a g e
45 | P a g e
3.7 Kesimpulan
46 | P a g e
UNIVERSITAS BUDI LUHUR
FAKULTAS TEKNOLOGI INFORMASI
MODUL PERKULIAHAN #4
STRUKTUR PROGRAM
PENGAMBILAN KEPUTUSAN
47 | P a g e
Daftar Pustaka : 1. Farrell. Joyce, An Object-Oriented
Approach to Programming Logic and
Design 3rd Edition, Course Technology,
2009
2. Thomas Wu. C, An Introduction to Object-
Oriented Programming with Java™ 4th
Edition, McGraw Hill, 2006
3. Deitel, Java How To Program, Deitel,
Prentice Hall, 2008
4. Anif, M, Seri Aplikasi : Aplikasi Penjualan
(Pemesanan Barang) dengan Java, Mitra
Wacana Media, 2008
48 | P a g e
PRAKTIKUM 4
STRUKTUR PROGRAM PENGAMBILAN KEPUTUSAN
4.1 if….
4.2 if….else
49 | P a g e
4.3 if….else if… else
Statement pada bagian else dari blok if-else dapat menjadi struktur if else yang lain.
Struktur ini mengijinkan kita untuk membuat seleksi persyaratan yang lebih
kompleks.
Nested if merupakan double if, yaitu dalam sebuah blok contional if juga terdapat
blok conditional if lainnya.
50 | P a g e
4.5 Switch … Case ...
Cara lain untuk membuat percabangan adalah dengan menggunakan kata kunci
switch. Dengan menggunakan switch kita bisa melakukan percabangan dengan
persyaratan yang beragam.
Bentuk switch,
4.6 Praktikum
Langkah-langkah Praktikum
1. Buka Editor JCreator (Revisi Update No. Urut dari Versi Sebelumnya)
2. Buatlah file baru dengan membuka menu File >New > File atau dengan Shortcut
Ctrl + N atau dengan klik icon pada ribbon menu, kemudian pilih > Java File
dan Klik tombol Next
3. Buat Nama File sesuai dengan nama file Java masing-masing Contoh program,
51 | P a g e
isikan pada bagian > Name, pilih lokasi tempat penyimpanan file pada pojok
kanan Bagian Location kemudian Klik tombol Finish.
Lakukan Kompilasi dan Jalankan program 4.1 diatas dengan membuka menu Build
>Compile File dan > Execute File dan tuliskan yang tercetak dilayar
52 | P a g e
Program 4.2: PilihPekeIf_2.java
Tuliskan program 4.2 berikut pada editor JCreator
Lakukan Kompilasi dan Jalankan program 4.2 diatas dengan membuka menu Build
>Compile File dan > Execute File dan tuliskan yang tercetak dilayar
Lakukan Kompilasi dan Jalankan program 4.3 diatas dengan membuka menu Build
53 | P a g e
>Compile File dan > Execute File dan tuliskan yang tercetak dilayar
Lakukan Kompilasi dan Jalankan program 4.4 diatas dengan membuka menu Build
>Compile File dan > Execute File dan tuliskan yang tercetak dilayar
54 | P a g e
Program 4.5: PilihPkeIfElseIf1.java
Tuliskan program 4.5 berikut pada editor JCreator
Lakukan Kompilasi dan Jalankan program 4.5 diatas dengan membuka menu Build
>Compile File dan > Execute File dan tuliskan yang tercetak dilayar
55 | P a g e
Lakukan Kompilasi dan Jalankan program 4.6 diatas dengan membuka menu Build
>Compile File dan > Execute File dan tuliskan yang tercetak dilayar
Lakukan Kompilasi dan Jalankan program 4.7 diatas dengan membuka menu Build
>Compile File dan > Execute File dan tuliskan yang tercetak dilayar
56 | P a g e
Program 4.8: PilihPekeIfElseIf4.java
Tuliskan program 4.8 berikut pada editor JCreator
Lakukan Kompilasi dan Jalankan program 4.5 diatas dengan membuka menu Build
>Compile File dan > Execute File dan tuliskan yang tercetak dilayar
57 | P a g e
Program 4.9: PilihNestedIf1.java
Tuliskan program 4.9 berikut pada editor JCreator
Lakukan Kompilasi dan Jalankan program 4.9 diatas dengan membuka menu Build
>Compile File dan > Execute File dan tuliskan yang tercetak dilayar
Lakukan Kompilasi dan Jalankan program 4.10 diatas dengan membuka menu Build
>Compile File dan > Execute File dan tuliskan yang tercetak dilayar
58 | P a g e
Program 4.11: PilihNestedIf3.java
Tuliskan program 4.11 berikut pada editor JCreator
Lakukan Kompilasi dan Jalankan program 4.11 diatas dengan membuka menu Build
>Compile File dan > Execute File dan tuliskan yang tercetak dilayar
59 | P a g e
Lakukan Kompilasi dan Jalankan program 4.12 diatas dengan membuka menu Build
>Compile File dan > Execute File dan tuliskan yang tercetak dilayar
60 | P a g e
Lakukan Kompilasi dan Jalankan program 4.13 diatas dengan membuka menu Build
>Compile File dan > Execute File dan tuliskan yang tercetak dilayar
61 | P a g e
62 | P a g e
4.8 Kesimpulan
Pada Pertemuan ini dapat disimpulkan bahwa Mahasiswa mampu dan dapat:
1. Menuliskan penggunaan struktur program pengambilan keputusan
(Struktur if)
2. Menuliskan penggunaan struktur program pengambilan keputusan
(Struktur if…else)
3. Menuliskan penggunaan struktur program pengambilan keputusan
(Struktur if…elseif…else)
4. Menuliskan penggunaan struktur program pengambilan keputusan
(Struktur switch…case)
63 | P a g e
UNIVERSITAS BUDI LUHUR
FAKULTAS TEKNOLOGI INFORMASI
MODUL PERKULIAHAN #5
STRUKTUR PROGRAM
PENGULANGAN
64 | P a g e
Daftar Pustaka : 1. Farrell. Joyce, An Object-Oriented
Approach to Programming Logic and
Design 3rd Edition, Course Technology,
2009
2. Thomas Wu. C, An Introduction to Object-
Oriented Programming with Java™ 4th
Edition, McGraw Hill, 2006
3. Deitel, Java How To Program, Deitel,
Prentice Hall, 2008
4. Anif, M, Seri Aplikasi : Aplikasi Penjualan
(Pemesanan Barang) dengan Java, Mitra
Wacana Media, 2008
65 | P a g e
PRAKTIKUM 5
STRUKTUR PROGRAM PENGULANGAN
66 | P a g e
5.1.1 Perulangan: for….
Perulangan for tidak membutuhkan counter untuk menaikan variabel karena sudah
disebutkan pada salah satu parameter perulangan tersebut.
Proses perulangan akan terus dilakukan selama kondisi loop bernilai true. Dengan
kata lain proses perulangan hanya akan dihentikan apabila kondisinya telah bernilai
false atau sudah tidak terpenuhi lagi. Perulangan for biasanya menggunakan suatu
variabel untuk mengendalikan berapa kali tubuh loop akan dieksekusi dan
menentukan kapan loop akan berhenti. Variabel ini disebut juga dengan variabel
kontrol.
Keterangan:
1. InitExpression / Inisialisasi: Inisialisasi dari variabel loop.
Instruksi pemberian suatu nilai yang mempengaruhi nilai kondisi. Pada proses
yang normal, pemberian nilai awal ini akan menyebabkan kondisi bernilai TRUE.
Instruksi ini hanya pernah satu kali dilaksanakan, yaitu hanya pada saat awal
struktur FOR dijalankan dan merupakan variabel kontrol.
2. LoopCondition / KondisiLoop: membandingkan variabel lop pada nilai batas.
Suatu kondisi yang bernilai TRUE atau FALSE, dan akan membatasi proses
perulangan. Blok perintah pada struktur perulangan akan dijalankan selama
67 | P a g e
kondisi masih bernilai TRUE.
3. StepExpression / PerubahanNilai: melakukan update pada variabel loop.
Suatu Instruksi yang dapat mempengaruhi nilai kondisi. Pada proses yang
normal, perubahan nilai disini suatu saat akan membuat kondisi bernilai FALSE
dan berfungsi menaikan (increment) nilai variabel kontrol dan kondisi loop
mengevaluasi apakah kondisi perulangan bernilai true atau false.
68 | P a g e
Bentuk dari do-while.
5.1.5 Praktikum
Langkah-langkah Praktikum
1. Buka Editor JCreator (Revisi Update No. Urut dari Versi Sebelumnya)
2. Buatlah file baru dengan membuka menu File >New > File atau dengan Shortcut
Ctrl + N atau dengan klik icon pada ribbon menu, kemudian pilih > Java File
dan Klik tombol Next
69 | P a g e
3. Buat Nama File sesuai dengan nama file Java masing-masing Contoh program,
isikan pada bagian > Name, pilih lokasi tempat penyimpanan file pada pojok
kanan Bagian Location kemudian Klik tombol Finish.
Lakukan Kompilasi dan Jalankan program 5.1 diatas dengan membuka menu Build
70 | P a g e
Program 5.2: PengulanganFor1.java
Tuliskan program 5.2 berikut pada editor JCreator
Lakukan Kompilasi dan Jalankan program 5.2 diatas dengan membuka menu Build
Lakukan Kompilasi dan Jalankan program 5.3 diatas dengan membuka menu Build
71 | P a g e
Program 5.4: PengulanganWhile.java
Tuliskan program 5.4 berikut pada editor JCreator
Lakukan Kompilasi dan Jalankan program 5.4 diatas dengan membuka menu Build
Lakukan Kompilasi dan Jalankan program 5.5 diatas dengan membuka menu Build
72 | P a g e
Program 5.6: PengulanganDo.java
Tuliskan program 5.6 berikut pada editor JCreator
Lakukan Kompilasi dan Jalankan program 5.6 diatas dengan membuka menu Build
Lakukan Kompilasi dan Jalankan program 5.7 diatas dengan membuka menu Build
73 | P a g e
Program 5.8: PengulanganBreak.java
Tuliskan program 5.8 berikut pada editor JCreator
Lakukan Kompilasi dan Jalankan program 5.8 diatas dengan membuka menu Build
Lakukan Kompilasi dan Jalankan program 5.9 diatas dengan membuka menu Build
74 | P a g e
Program 5.10: PengulanganBreak2.java
Tuliskan program 5.10 berikut pada editor JCreator
Lakukan Kompilasi dan Jalankan program 5.10 diatas dengan membuka menu Build
75 | P a g e
Lakukan Kompilasi dan Jalankan program 5.11 diatas dengan membuka menu Build
Lakukan Kompilasi dan Jalankan program 5.12 diatas dengan membuka menu Build
76 | P a g e
5.1.7 Kesimpulan
Pada Pertemuan ini dapat disimpulkan bahwa Mahasiswa mampu dan dapat:
1. Menjelaskan dan menggunakan struktur program Pengulangan dalam Penulisan
kode program Pengulangan dalam Penulisan kode program dengan Bahasa Java
2. Menjelaskan dan menggunakan Perintah break dan continue dalam Penulisan
kode program dengan Bahasa Java
77 | P a g e
UNIVERSITAS BUDI LUHUR
FAKULTAS TEKNOLOGI INFORMASI
MODUL PERKULIAHAN #6
EXCEPTION HANDLING
78 | P a g e
Daftar Pustaka : 1. Farrell. Joyce, An Object-Oriented
Approach to Programming Logic and
Design 3rd Edition, Course Technology,
2009
2. Thomas Wu. C, An Introduction to Object-
Oriented Programming with Java™ 4th
Edition, McGraw Hill, 2006
3. Deitel, Java How To Program, Deitel,
Prentice Hall, 2008
4. Anif, M, Seri Aplikasi : Aplikasi Penjualan
(Pemesanan Barang) dengan Java, Mitra
Wacana Media, 2008
79 | P a g e
PRAKTIKUM 6
EXCEPTION HANDLING
80 | P a g e
Exception Handling akan dibahas pada bagian berikutnya.
6.2 Kategori
Java menyediakan 2(dua) kategori besar untuk eksepsi yang disebut sebagai
checked exception dan unchecked exception.
1. Checked Exception
Checked Exception adalah eksepsi yang diantisipasi oleh programmer untuk
dihandle dalam program dan terjadi dikarenakan oleh kondisi luar yang siap
munculnsaat program berjalan. Misalnya membuka file yang tidak ada atau
gangguan jaringan.
Yang termasuk checked exception adalah class java.lang.Throwable dan
semua subclassnya, kecuali class dan subclass dari java.lang.Error dan
java.lang.RuntimeError
2. Unchecked Exception
Bisa muncul dari kondisi yang merepresentasikan Adanya bug atau situasi yang
secara umum dianggap terlalu sulit bagi program untuk menghandlenya. Disebut
sebagai unchecked karena kita tidak perlu mengecek atau melakukan sesuatu
jika kondisi ini terjadi. Eksepsi yang muncul dari kategori situasi yang
merepresentasikan bug ini disebut sebagai runtime exception.
Misal mengakses array melebihi size yang dimilikinya.
Sedangkan eksepsi yang muncul sebagai akibat dari isu environment software –
yang ini jarang sekali atau sulit sekali untuk dihandle – disebut sebagai error.
Misalnya running out memory.
Jadi, class Exception mendefinisikan kondisi error yang ringan yang dijumpai
oleh program. Sedangkan untuk kondisi error yang berat didefinisikan Error.
81 | P a g e
Class Exception:
Class Exception adalah sebuah class dasar yang merepsentasikan checked
exception. Dalam hal ini, bukannya membiarkan terjadi penghentian program,
sebaliknya Anda harus Menuliskan beberapa kode untuk menghandle eksepsi
dan berikutnya melanjutkan program.
Class Error:
Class Error adalah class dasar yang digunakan untuk kondisi error serius yang
tidak terdeteksi. Dalam banyak kasus, Anda harus membiarkan program
diterminasi.
Class RuntimeException:
Class RuntimeException adalah class dasar yang digunakan untuk unchecked
yang bisa sebagai akibat dari bug program atau kesanalan program pada desain
program. Pada banyak kasus Anda harus membiarkan program dihentikan.
Misalnya NullPointerException yang disebabkan oleh proses inisialisasi
program yang tidak sempurna dan ArrayIndexOutOfBoundsException yang
disebabkan akses array yang melebihi kapasitas array yang ada.
82 | P a g e
c. RuntimeException
d. NullPointerException
e. ArrayIndexOutOfBoundsException
f. ArithmeticException
Khusus untuk operasi aritmatika integer. Seperti pembagian suatu bilangan
integer dengan 0
g. IOException
Terjadi bila ada I/O error, seperti gagal menemukan dan membuka file. User
memasukkan input yang tidak valid. Subkelas ini memiliki beberapa subclass
lain, seperti InterruptedIOException, EOFException, serta
FileNotFoundException.
Jenis-jenis Exception
Berdasarkan jenisnya kesalahan dalam pemrograman terbagi menjadi 3, yaitu:
a. Runtime Error
Adalah exception yang bisa saja tidak ditangani tanpa menyebabkan
program berhenti kecuali jika propogasi exceptionnya sampai ke main, maka
akan menyebabkan terminasi program secara subnormal. Checked exception
adalah exception yang ditangani secara explicit Didalam throw. Programmer
harus membuat catch untuk menangani exception yang terjadi. Sedangkan
error adalah kesalahan yang tidak unrecoverable exception artinya tidak bisa
ditangani oleh catch.
Atau pengertian lain, Runtime error adalah kesalahan yang disebabkan oleh
tidak tersedianya sumber daya atau kondisi yang normal bagi program untuk
berjalan dengan baik, misalnya kekurangan memori kamputer, disk full, atau
pintu drive tidak terkunci, dll.
b. Logical Error
Logical Error adalah yang disebabkan oleh kesalahan logika maupun model
atau metode yang digunakan untuk pemrosesan data, sehingga
menyebabkan yang dihasilkan menjadi salah. Kesalahan ini tidak dapat
dideteksi oleh compiler maupun interpreter, kesalahan ini disadari setelah
melihat penyimpanan pada saat proses maupun hasil proses.
83 | P a g e
c. Syntax Error
Runtime Error adalah kesalahan yang disebabkan oleh kesalahan tata cara
Penulisan tanda baca, kesalahan pemakaian operator dan nilai. Kesalahan
jenis ini akan dengan mudah dideteksi oleh compiler maupun interpreter.
Ada 5 (lima) keyword penting dalam java dalam hal exception handling:
1. try
Keyword ini biasanya digunakan dalam suatu block program. Keyword ini
digunakan untuk mencoba menjalankan block program kemudian mengenai
dimana munculnya kesalahan yang ingin diproses.
Keyword ini juga harus dipasangkan dengan keyword catch atau keyword finally
yang akan di bahas pada poin kedua dan ketiga. Lihat Contoh program
penggunaan keyword try jika program dijalanka:
Bentuk blok try:
Output:
Java.lang.ArithmeticException: / by zero
Perhatikan Contoh diatas, ada beberapa hal penting yang perlu dilihat, block
program yang diyakini menimbulkan kesalahan maka ada di dalam block try and
catch. Kedua, kesalahan yang muncul akan dianggap sebagai object dan
ditangkap catch kemudian di assign ke variable kesalahan dengan tipe
84 | P a g e
Exception. Ketika, perintak setelah munculnya kesalahan pada block try tidak
akan dieksekusi.
2. catch
Jika anda sudah melihat Contoh program penggunaan keyword try maka secara
tidak langsung anda sudah memahami kegunaan dari keyword ini. Dalam java,
keyword catch harus dipasangkan dengan try. Kegunaan keyword ini adalah
menangkap kesalahan atau bug yang terjadi dalam block try. Setelah
menangkap kesalahan yang terjadi maka developer dapat melakukan hal apapun
pada block catch sesuai keinginan developer.
Bentuk blok try-catch:
3. finally
Keyword ini merupakan keyword yang menunjukkan bahwa block program
85 | P a g e
tersebut akan selalu dieksekusi meskipun Adanya kesalahan yang muncul
ataupun tidak ada. Contoh implementasinya dalat dilihat pada program
penggunaan keyword finally.
4. throw
Keyword ini digunakan untuk melemparkan suatu bug yang dibuat secara
manual.
Contoh program:
86 | P a g e
Output Program:
java.lang.Exception: kesalahan terjadi
Seperti yang anda lihat pada program diatas, pada keyword throw new
Exception(“kesalahan terjadi”); akan melempar object bertipe exception yang
merupakan subclass dari class Exception sehingga akan dianggap sebagai suatu
kesalahan yang harus ditangkap oleh keyword catch.
5. throws
Keyword throws digunakan dalam suatu method atau kelas yang mungkin
menghasilkan suatu kesalahan sehingga perlu ditangkap errornya. Cara
mendefinisikannya dalam method adalah sebagai berikut:
87 | P a g e
dengan blok try, dan diatas urutan
d. Blok try harus diikuti oleh paling sedikit satu blok catch atau satu blok
finally, atau keduanya.
e. Setiap blok catch mendifinisikan sebuah penanganan exception. Header
dari blok catch harus membawa satu argument, dimana exception pada
blok tersebut akan ditangani.
Langkah-langkah Praktikum
1. Buka Editor JCreator (Revisi Update No. Urut dari Versi Sebelumnya)
2. Buatlah file baru dengan membuka menu File >New > File atau dengan Shortcut
Ctrl + N atau dengan klik icon pada ribbon menu, kemudian pilih > Java File
dan Klik tombol Next
3. Buat Nama File sesuai dengan nama file Java masing-masing Contoh program,
isikan pada bagian > Name, pilih lokasi tempat penyimpanan file pada pojok
kanan Bagian Location kemudian Klik tombol Finish.
88 | P a g e
4. Lanjutkan dengan menuliskan program pada layar editor JCreator
Tanpa Exception
Lakukan Kompilasi dan Jalankan program 6.1 diatas dengan membuka menu Build
89 | P a g e
Program 6.2: tanpaexeption1.java
Tuliskan program 6.2 berikut pada editor JCreator
Lakukan Kompilasi dan Jalankan program 6.2 diatas dengan membuka menu Build
Lakukan Kompilasi dan Jalankan program 6.3 diatas dengan membuka menu Build
90 | P a g e
Program 6.4: TestExeption2.java
Tuliskan program 6.4 berikut pada editor JCreator
Lakukan Kompilasi dan Jalankan program 6.4 diatas dengan membuka menu Build
Lakukan Kompilasi dan Jalankan program 6.5 diatas dengan membuka menu Build
91 | P a g e
Penggunaan Keyword catch
Program 6.6: B.java
Tuliskan program 6.6 berikut pada editor JCreator
Lakukan Kompilasi dan Jalankan program 6.6 diatas dengan membuka menu Build
Lakukan Kompilasi dan Jalankan program 6.7 diatas dengan membuka menu Build
92 | P a g e
Penggunaan Keyword throw
Program 6.8: A.java
Tuliskan program 6.8 berikut pada editor JCreator
Lakukan Kompilasi dan Jalankan program 6.4 diatas dengan membuka menu Build
Output Program:
Object dengan tipe kelas B
93 | P a g e
Program 6.9: A.java
Tuliskan program 6.9 berikut pada editor JCreator
Lakukan Kompilasi dan Jalankan program 6.9 diatas dengan membuka menu Build
Output Program:
java.lang.NullPointerException
Lakukan Kompilasi dan Jalankan program 6.10 diatas dengan membuka menu Build
94 | P a g e
Output Program:
java.lang.ArrayIndexOutOfBoundsException
6.6 Kesimpulan
Pada Pertemuan ini dapat disimpulkan bahwa Mahasiswa mampu dan dapat:
1. Menjelaskan pengertian exception untuk penanganan kesalahan dalam penulisan
kode program dengan bahasa pemrograman Java
2. Menjelaskan Kategori exception dalam bahasa pemrograman Java
3. Menjelaskan 5 Keyword Penting dalam Java untuk penanganan Error Heandling
4. Menjelaskan Aturan Penggunaan Keyword dalam bahasa pemrograman Java
95 | P a g e
UNIVERSITAS BUDI LUHUR
FAKULTAS TEKNOLOGI INFORMASI
MODUL PERKULIAHAN #7
CLASS, OBJECT DAN PACKAGE
96 | P a g e
Daftar Pustaka : 1. Farrell. Joyce, An Object-Oriented
Approach to Programming Logic and
Design 3rd Edition, Course Technology,
2009
2. Thomas Wu. C, An Introduction to Object-
Oriented Programming with Java™ 4th
Edition, McGraw Hill, 2006
3. Deitel, Java How To Program, Deitel,
Prentice Hall, 2008
4. Anif, M, Seri Aplikasi : Aplikasi Penjualan
(Pemesanan Barang) dengan Java, Mitra
Wacana Media, 2008
97 | P a g e
PRAKTIKUM 7
CLASS, OBJECT DAN PACKAGE
Class merupakan suatu blueprint atau cetakan untuk menciptakan suatu instan dari
objek. Class juga merupakan grup suatu objek dengan kemiripan attributes atau
properties, behavior dan relasi ke objek lain.
Bentuk Umum:
Deklarasi class
a. Deklarasi class Sederhana
98 | P a g e
b. Deklarasi class Lengkap
99 | P a g e
2) Modifier 2
Untuk menentukan relasi (extend atau implement) dengan kelas lainnya.
extends : Modifier ini digunakan untuk inheritance/pewarisan.
SuperClass Bila terjadi pewarisan, kelas yang mewariskan method dan
attributenya disebut kelas super, sedangkan yang
diwariskan disebut subkelas
implement : Modifier ini digunakan bila kelas meng-implementasikan
Interface satu atau lebih interface
Deklarasi Method
Method merupakan fungsi yang diciptakan untuk melakukan tugas tertentu.
Bentuk umum:
Memanggil Method
Sama seperti ketika mengakses variabel, kita juga menggunakan notasi titik/dot (.)
untuk memanggil method.
Bentuk umum pemanggilan method sbb:
100 | P a g e
Contoh:
Method Overloading
Java memperbolehkan kita membuat dua atau lebih method dengan nama yang
sama dalam suatu kelas. Meskipun memiliki nama sama namun jumlah dan tipe data
argument masing-masing method haruslah berbeda satu dengan lainnya. Inilah yang
disebut dengan Overloading Method.
Contoh:
101 | P a g e
Method Konstuktor
Konstruktor adalah method yang berfungsi untuk menginisialisasi variabel-variabel
instant yang akan dimiliki objek. Konstruktor ini dipanggil pada saat proses
instansiasi kelas menjadi objek.
Ketentuan sbb:
1. Namanya sama dengan nama Kelasnya.
2. Tidak mengembalikan suatu nilai
3. Satu kelas bisa memiliki lebih dari satu konstruktor, konstruktor satu dapat
memanggil konstruktor lain.
4. Dapat dibubuhi modifier public, private, protected
Contoh:
Method Finalizer
Objek adalah dalam program yang sedang dieksekusi mempunyai waktu hidup (life
time). Objek tercipta pada saat kita menginstankan suatu kelas dengan operator
new dan akan dihapus pada saat objek dikumpulkan oleh Garbage Collection atau
bila memori yang ditempatinya telah diklaim oleh objek/bagian program lain. Method
yang dibubuhi modifier finalize ini dapat dikatakan juga sebagai lawan/kebalikan dari
method konstruktor. Method ini dipanggil sesaat sebelum objek dihancurkan.
Bentuk Umum:
102 | P a g e
Method Main
Setelah selesai mengetik source code, langkah berikutnya adalah mengkompilasi dan
menjalankan program tersebut. Pada saat kompilasi, pertama-tama kompiler akan
mencari bagian program yang disebut sebagai method utama (main method).
Bentuk Umum:
1. Public, main method harus dapat dilihat atau visible oleh kelas manapun.
2. Void, tipe yg digunakan untuk mendeklarasikan sebuah method dan tidak
mngembalikan nilai.
3. Main(String[] arguments), main method ini dapat mengambil suatu
parameter input yang merupakan array dari string yang diberi nama
argument.
7.2 Objek
Untuk membuat sebuah objek dari sebuah class dibutuhkan Operator new
Operator ini digunakan untuk membentuk (menginstankan) objek dari kelas.
Bentuk umumnya sbb:
Pada saat menggunakan new, terjadi beberapa proses internal sebagai berikut:
a. Objek baru tercipta
b. Memory dialokasikan untuk objek tersebut
c. Method konstruktor dipanggil untuk menginisialisasi objek
103 | P a g e
Contoh:
Keyword this berfungsi sebagai referensi dari variabel instance, yang mengacu pada
objek saat ini. Keyword this juga digunakan untuk membedakan variabel instance
dengan variabel atribut. Jika diartikan kata this ke dalam Bahasa Indonesia yaitu
berarti “ini”, dan keyword this ini digunakan di dalam pemrograman yaitu biasanya
digunakan menunjukkan bahwa atribut class yang saat ini di akses atau yang sedang
digunakan. Keyword “this” digunakan untuk mengakses kelas itu sendiri, biasanya
digunakan untuk mengakses atribut pada kelas.
Jika kita tidak menggunakan keyword this pada nama variabel instance dan atribut
yang sama maka nilai/value akan menjadi 0 pada integer dan null pada string.
Selain itu juga, keyword this digunakan untuk memanggil Constructor milik class
yang sedang di gunakan.
Jika kita tidak ingin menggunakan keyword this tapi nilai/value tetap dapat
ditampilkan tanpa nilai 0 atau null, dengan cara membedakan nama variabel
instance dengan variabel atribut.
7.4 Package
104 | P a g e
Dalam package yang kita buat dapat berisi sejumlah kelas dan didalam package
tersebut juga bisa berupa sub-package.
1. Deklarasi Package
Deklarasi sebuah package diawali dengan nama package pada bagian teratas
sebuah source program.
Contoh:
Contoh:
105 | P a g e
7.5 Latihan Program: Praktikum
Langkah-langkah Praktikum
5. Buka Editor JCreator
6. Buatlah file baru dengan membuka menu File >New > File atau dengan Shortcut
Ctrl + N atau dengan klik icon pada ribbon menu, kemudian pilih > Java File
dan Klik tombol Next
7. Buat Nama File sesuai dengan nama file Java masing-masing Contoh program,
isikan pada bagian > Name, pilih lokasi tempat penyimpanan file pada pojok
kanan Bagian Location kemudian Klik tombol Finish.
106 | P a g e
Program 7.1: Kotak.java
Tuliskan program 7.1 berikut pada editor JCreator
Lakukan Kompilasi dan Jalankan program 7.1 diatas dengan membuka menu Build
Lakukan Kompilasi dan Jalankan program 7.2 diatas dengan membuka menu Build
107 | P a g e
Program 7.3: Kotak2.java
Tuliskan program 7.3 berikut pada editor JCreator
Lakukan Kompilasi dan Jalankan program 7.3 diatas dengan membuka menu Build
Lakukan Kompilasi dan Jalankan program 7.4 diatas dengan membuka menu Build
108 | P a g e
Program 7.5: Mahasiswa.java
Tuliskan program 7.5 berikut pada editor JCreator
Lakukan Kompilasi dan Jalankan program 7.5 diatas dengan membuka menu Build
Lakukan Kompilasi dan Jalankan program 7.5 diatas dengan membuka menu Build
109 | P a g e
Program 7.7: DemoTanpaThis.java
Tuliskan program 7.7 berikut pada editor JCreator
Lakukan Kompilasi dan Jalankan program 7.7 diatas dengan membuka menu Build
Lakukan Kompilasi dan Jalankan program 7.7 diatas dengan membuka menu Build
110 | P a g e
Program 7.9: TestPackage02.java
Tuliskan program 7.9 berikut pada editor JCreator
Lakukan Kompilasi dan Jalankan program 7.9 diatas dengan membuka menu Build
Lakukan Kompilasi dan Jalankan program 7.10 diatas dengan membuka menu Build
111 | P a g e
Program 7.11: TestPackage04.java
Tuliskan program 7.11 berikut pada editor JCreator
Lakukan Kompilasi dan Jalankan program 7.11 diatas dengan membuka menu Build
Lakukan Kompilasi dan Jalankan program 7.12 diatas dengan membuka menu Build
112 | P a g e
7.6 Latihan Mandiri
Contoh lain:
Penjelasan :
Baris 2 : Deklarasi class
Baris 7, 15 : Deklarasi method
Baris 23 : Deklarasi objek
113 | P a g e
Contoh: dengan Keyword this
7.7 Kesimpulan
114 | P a g e
UNIVERSITAS BUDI LUHUR
FAKULTAS TEKNOLOGI INFORMASI
MODUL PERKULIAHAN #8
UTS
115 | P a g e
UNIVERSITAS BUDI LUHUR
FAKULTAS TEKNOLOGI INFORMASI
MODUL PERKULIAHAN #9
Konsep OOP
Capaian : Mahasiswa Mampu:
Pembelajaran 1. Mengerti dan mampu menjelaskan
konsep OOP secara umum
Sub Pokok Bahasan : 1. Inheritance
2. Polimorpisme
3. Enkapsulasi
116 | P a g e
Daftar Pustaka : 1. Farrell. Joyce, An Object-Oriented
Approach to Programming Logic and
Design 3rd Edition, Course Technology,
2009
2. Thomas Wu. C, An Introduction to Object-
Oriented Programming with Java™ 4th
Edition, McGraw Hill, 2006
3. Deitel, Java How To Program, Deitel,
Prentice Hall, 2008
4. Anif, M, Seri Aplikasi : Aplikasi Penjualan
(Pemesanan Barang) dengan Java, Mitra
Wacana Media, 2008
117 | P a g e
PRAKTIKUM 9
KONSEP OOP
9.1 Inheritence
class A
118 | P a g e
super.
Menunjukkan hirarki kelas dosen., memiliki turunan berupa kelas rektor, kelas
dekan dan kelas kalab. class induk (class dosen) memiliki atribut nama, nik dan
jurusan. Method yang dimiliki oleh class dosen adalah view(). Class turunan dari
class dosen ada tiga class. Pada class rektor, terdapat tambahan atribut berupa
th_mulai dan jabatan_ke, sertamethod viewRektor(). Pada class dekan terdapat
tambahan atribut fakultas, dan method viewDekan(). Pada class kalab terdapat
tambahan atribut laboratorium, dan method viewKalab().
9.2 Polimorpisme
119 | P a g e
dari parent class (super class) dimana object tersebut diturunkan, sehingga
memiliki kelakuan yang berbeda.
b. Faktor pembeda method
Faktor Pembeda sebuah Method yang membuat modul/method yang memiliki
nama yang sama dan dengan tingkah laku yang berbeda adalah :
• Urut-urutan parameter
• Tipe data parameter
• Jumlah parameter
Pada polimorfisme kondisi yang harus terpenuhi supaya fungsi dapat dijalankan
yaitu:
• Semua kelas diturunkan dari suatu kelas yang sama
• Method yang dipanggil harus melalui variabel dari super class.
• Method yang dipanggil juga harus merupakan method yang ada pada super
class.
• Signature method harus sama baik yang ada pada super class maupun di
subclass.
• Method access attribute pada subclass tidak boleh lebih terbatas daripada
yang ada pada super class.
c. Overriding
Overriding adalah suatu cara untuk mendefinisikan ulang method yang ada pada
classinduk apabila class anak menginginkan adanya informasi yang lain.
Overriding dilakukandengan cara menulis ulang method yang ada pada class
induk dengan syarat bahwa namadan parameter fungsi tersebut harus sama
(tidak boleh diubah). Meskipun fungsi telahditulis ulang oleh class anak, fungsi
yang asli pada class induk masih dapat dipanggil diclass anak dengan
menggunakan class super.e.
d. Overloading
Overloading fungsi adalah penulisan beberapa fungsi (dua atau lebih) yang
memilikinama yang sama. Pada bahasan overloading dikenal istilah signature.
Signature sebuahfungsi adalah parameter lengkap dengan tipe datanya yang
terdapat dalam fungsi tersebut.Misal terdapat fungsi
120 | P a g e
9.3 Enkapsulasi
Encapsulation adalah membungkus class dan menjaga apa apa saja yang ada
didalam class tersebut, baik method ataupun atribut, agar tidak dapat di akses oleh
class lainnya. Untuk menjaga hal tersebut dalam Encapsulation dikenal nama Hak
Akses Modifier yang terdiri dari :
1. private
Memberikan hak akses hanya pada class itu sendiri, artinya apa-apa saja yang
ada di dalam class A baik itu method ataupun atribut hanya bisa diakses oleh
class A saja, class lain tidak bisa mengaksesnya.
2. public
Memberikan hak akses kepada atribut atau method agar bisa diakses oleh
siapapun (property atau class lain diluar class yang bersangkutan), artinya
method atau atribut yang ada diclass A dapat diakses oleh siapaun baik itu
class A, class B dan seterusnya.
3. protected
Memberikan hak akses kepada class itu sendiri dan class hasil turunannya
(inheritance), artinya apa apa saja yang ada diclass A hanya bisa diakses oleh
class A sendiri dan class yang meng Extends class A. Namun harus dipahami
class lain yang berada dalam satu package dengan class A mampu mengakses
tipe data protected, Sedangkan yang tidak mampu mengakses adalah class-
class yang berada diluar package class A. untuk dapat mengaksesnya, class
yang berada diluar package class A harus meng extends class A
9.4 Praktikum
Langkah-langkah Praktikum
9. Buka Editor JCreator
10. Buatlah file baru dengan membuka menu File >New > File atau dengan Shortcut
Ctrl + N atau dengan klik icon pada ribbon menu, kemudian pilih > Java File
dan Klik tombol Next
121 | P a g e
11. Buat Nama File sesuai dengan nama file Java masing-masing Contoh program,
isikan pada bagian > Name, pilih lokasi tempat penyimpanan file pada pojok
kanan Bagian Location kemudian Klik tombol Finish.
122 | P a g e
Program 9.1: Penerapan Inheritence
Berikut adalah contoh penerapan inheritence untuk menghitung luas dan keliling
bangun datar. Bentuk class diagramnya seperti ini:
1. package inheritance;
2.
3. public class BangunDatar {
4.
5. float luas(){
6. System.out.println("Menghitung laus bangun datar");
7. return 0;
8. }
9.
10. float keliling(){
11. System.out.println("Menghitung keliling bangun datar");
12. return 0;
13. }
14. }
Linkaran.java
1. package inheritance;
2.
3. public class Lingkaran extends BangunDatar{
4.
123 | P a g e
5. // jari-jari lingkaran
6. float r;
7.
8. @Override
9. float luas() {
10. float luas = (float) (Math.PI * r * r);
11. System.out.println("Luas lingkaran: " + luas);
12. return luas;
13. }
14.
15. @Override
16. float keliling() {
17. float keliling = (float) (2 * Math.PI * r);
18. System.out.println("Keliling Lingkaran: " + keliling);
19. return keliling;
20. }
21. }
PersegiPanjang.java
1. package inheritance;
2.
3. public class PersegiPanjang extends BangunDatar {
4. float panjang;
5. float lebar;
6.
7. @Override
8. float luas(){
9. float luas = panjang * lebar;
10. System.out.println("Luas Persegi Panjang:" + luas);
11. return luas;
12. }
13.
14. @Override
15. float keliling(){
16. float kll = 2*panjang + 2*lebar;
17. System.out.println("Keliling Persegi Panjang: " + kll);
18. return kll;
19. }
20. }
124 | P a g e
Main.java
1. package inheritance;
2.
3. public class Main {
4. public static void main(String[] args) {
5.
6. // membuat objek bangun datar
7. BangunDatar bangunDatar = new BangunDatar();
8.
9. // membuat objek persegi dan mengisi nilai properti
10. Persegi persegi = new Persegi();
11. persegi .sisi = 2;
12.
13. // membuat objek Lingkaran dan mengisi nilai properti
14. Lingkaran lingkaran = new Lingkaran();
15. lingkaran.r = 22;
16.
17. // membuat objek Persegi Panjang dan mengisi nilai
18. properti
19. PersegiPanjang persegiPanjang = new PersegiPanjang();
20. persegiPanjang.panjang = 8;
21. persegiPanjang.lebar = 4;
22.
23. // membuat objek Segitiga dan mengisi nilai properti
24. Segitiga mSegitiga = new Segitiga();
25. mSegitiga.alas = 12;
26. mSegitiga.tinggi = 8;
27.
28.
29. // memanggil method luas dan keliling
30. bangunDatar.luas();
31. bangunDatar.keliling();
32.
33. persegi.luas();
34. persegi.keliling();
35.
36. lingkaran.luas();
37. lingkaran.keliling();
38.
39. persegiPanjang.luas();
40. persegiPanjang.keliling();
41.
42. mSegitiga.luas();
43. mSegitiga.keliling();
44. }
45. }
125 | P a g e
Lakukan Kompilasi dan Jalankan program diatas dengan membuka menu Build
>Compile File dan > Execute File dan tuliskan yang tercetak dilayar
Polimorphism.java
Baris nomor 14 -16 adalah deklarasi metoda cetakObyek yang mempunyai satu
parameter dengan tipe kelas Object. Kelas Object adalah akar dari semua kelas di
126 | P a g e
Java. Langsung maupun tidak langsung, semua kelas di Java adalah turunan dari
kelas Object. Anda dapat memanggil atau menggunakan metoda cetakObyek
dengan argumen berupa obyek yang dibuat dari kelas turunan superclass Object.
Dari program di atas, bila argumen parameter sebuah metoda adalah dari tipe
superclass, maka argumen metoda yang diberikan dapat berupa tipe dari subclass-
nya. Kemampuan seperti inilah yang dimaksud dengan polymorphism. Dengan
demikian dapat didefinisikan kembali bahwa polymorphism adalah kemampuan
untuk menghasilkan sesuatu yang berbeda dengan cara yang sama. Pemberian
obyek dari subclass ke obyek dari superclass dapat dilakukan tanpa perlu melakukan
konversi.
Lakukan Kompilasi dan Jalankan program diatas dengan membuka menu Build
>Compile File dan > Execute File dan tuliskan yang tercetak dilayar
1. class User {
2. private String username;
3. private String password;
4.
5. // ini method setter
6. public void setUsername(String username){
7. this.username = username;
8. }
127 | P a g e
9. public void setPassword(String password){
10. this.password = password;
11. }
12.
13. // ini method getter
14. public String getUsername(){
15. return this.username;
16. }
17.
18. public String getPassword(){
19. return this.password;
20. }
21. }
Method setter dan getter harus diberikan modifier public, karena method ini akan
diakses dari luar class. Perbedaan method setter dengan getter terletak pada nilai
kembalian, parameter, dan isi method-nya.
Method setter tidak memiliki nilai kembalian void (kosong). Karena tugasnya hanya
untuk mengisi data ke dalam atribut. Sedangkan method getter memiliki nilai
kembalian sesuai dengan tipe data yang akan diambil.
Setelah kita membuat method setter dan getter, kita bisa mengakses atau
menggunakannya seperti method biasa.
Main.java
128 | P a g e
Lakukan Kompilasi dan Jalankan program diatas dengan membuka menu Build
>Compile File dan > Execute File dan tuliskan yang tercetak dilayar
9.5 Kesimpulan
129 | P a g e
UNIVERSITAS BUDI LUHUR
FAKULTAS TEKNOLOGI INFORMASI
137 | P a g e
Daftar Pustaka : 1. Farrell. Joyce, An Object-Oriented
Approach to Programming Logic and
Design 3rd Edition, Course Technology,
2009
2. Thomas Wu. C, An Introduction to Object-
Oriented Programming with Java™ 4th
Edition, McGraw Hill, 2006
3. Deitel, Java How To Program, Deitel,
Prentice Hall, 2008
4. Anif, M, Seri Aplikasi : Aplikasi Penjualan
(Pemesanan Barang) dengan Java, Mitra
Wacana Media, 2008
138 | P a g e
PRAKTIKUM 10
KONSEP OOP - INHERITENCE
b. Konsep Turunan
Dalam konsep turunan, saat obyek dari subclass dikonstruksi, obyek dari
superclass juga ikut dikonstruksi. Jadi setiap instance dari subclass adalah juga
instance dari superclass. Apabila Anda mendeklarasikan metoda dengan
parameter dari tipe superclass, Anda diperbolehkan untuk memberi argumen
berupa obyek subclass yang merupakan turunan dari superclass tersebut.
Sedangkan apa yang dimaksud dengan polymorphism sendiri, sebenarnya sulit
untuk didefinisikan. Sejalan dengan contoh yang diberikan, Anda diharapkan
dapat mengerti dan memahami konsep polymorphism itu sendiri.
c. Deklarasi inheritance
• Dengan menambahkan kata kunci extends setelah deklarasi nama class,
kemudian diikuti dengan nama parent class-nya.
• Kata kunci extends tersebut memberitahu kompiler Java bahwa kita ingin
melakukan perluasan class.
139 | P a g e
• Format Deklarasi :
public class B extends A {
…
}
• Semua class di dalam Java adalah merupakan subclass dari class super induk
yang bernama Object. Misalnya saja terdapat sebuah class sederhana :
public class A {
…
}
• Pada saat dikompilasi, Kompiler Java akan membacanya sebagai subclass dari
class Object.
public class A extends Object {
…
}
d. Keuntungan Inheritance
• Keuntungan dari Inheritance adalah Reusability. Sekali perilaku(method)
didefinisikan pada super class, maka perilaku tersebut secara otomatis
diwariskan ke subclass. Sehingga hanya perlu menulis method sekali dan bisa
digunakan untuk semua subclass.
• Sekali properti/field di definisikan di superclass, maka semua properti di
wariskan ke semua subclass. Superclass dan subclass berbagi properti
• Subclass hanya perlu mengimplementasikan jika ada perbedaan dengan
parentnya.
140 | P a g e
public class Pegawai {
public String nama;
public double gaji;
}
f. Single Inheritance
• Konsep inheritance yang ada di Java adalah Java hanya memperkenankan
adanya single inheritance.
• Konsep single inheritance hanya memperbolehkan suatu sublass mempunyai
satu parent class.
g. Multilevel Inheritance :
• Konsep inheritance yang ada di Java memperkenankan adanya multilevel
inheritance.
141 | P a g e
• Konsep multilevel inheritance memperbolehkan suatu subclass mempunyai
subclass lagi.
Dalam dunia riil, suatu entitas induk bisa saja tidak mewariskan sebagian dari apa-
apa yang ia punyai kepada entitas turunan karena sesuatu hal. Demikian juga
dengan konsep inheritance dalam OOP. Suatu parent class dapat tidak mewariskan
sebagian member-nya kepada subclass-nya. Sebagai contoh, kita coba untuk
memodifikasi class Pegawai.
public class Pegawai {
private String nama;
public double gaji;
}
Coba untuk mengkompilasi class Manajer pada contoh sebelumnya. Apa yang
terjadi? Pesan kesalahan akan muncul seperti ini:
142 | P a g e
Manajer.java:5: nama has private access in Pegawai
nama=n;
Ini membuktikan bahwa class Manajer tidak mewarisi data member nama dari
parent class-nya Pegawai.
a. Private
Variabel dan method yang dideklarasikan private hanya bisa diakses oleh class
yg mendeklarasikan variabel dan method tersebut.
b. Default
• Bukan merupakan Java keyword, Merupakan jenis akses kontrol jika kita tidak
menuliskan akses kontrol secara eksplisit.
• Semua feature class-class yang ada dalam satu package bisa diakses oleh
semua yang ada dalam package tersebut.
• Class diluar package boleh melakukan subclass, tetapi subclass tersebut tidak
bisa mengakses feature superclass.
c. Protected
Protected mempunyai kemampuan akses yang lebih besar daripada private dan
default. Protected feature dari suatu class bisa diakses oleh semua class dalam
satu package. Class diluar package boleh melakukan melakukan subclass, dan
subclass tersebut bisa mengakses feature superclass.
10.3 Konstruktor
143 | P a g e
menambahkan deklarasi pemanggilan konstruktor parent class di konstruktor
subclass.
• Sebelum subclass menjalankan konstruktornya sendiri, subclass akan
menjalankan constructor superclass terlebih dahulu.
• Hal ini terjadi karena secara implisit pada constructor subclass ditambahkan
pemanggilan super() yang bertujuan memanggil constructor superclass oleh
kompiler.
• Pada saat program tersebut dikompilasi, maka kompiler Java akan
menambahkan :
- Konstruktor Class Parent
- Konstruktor Class Child
- Pemanggilan konstruktor class Parent dari konstruktor class Child
144 | P a g e
10.4 Praktikum
Langkah-langkah Praktikum
1. Buka Editor JCreator (Revisi Update No. Urut dari Versi Sebelumnya)
2. Buatlah file baru dengan membuka menu File >New > File atau dengan Shortcut
Ctrl + N atau dengan klik icon pada ribbon menu, kemudian pilih > Java File
dan Klik tombol Next
3. Buat Nama File sesuai dengan nama file Java masing-masing Contoh program,
isikan pada bagian > Name, pilih lokasi tempat penyimpanan file pada pojok
kanan Bagian Location kemudian Klik tombol Finish.
145 | P a g e
4. Lanjutkan dengan menuliskan program pada layar editor JCreator
1. class PersegiPanjang {
2.
3. // Data field PersegiPanjang
4. double panjang = 1.0;
5. double lebar = 1.0;
6.
7. // Konstruktor pertama
8. PersegiPanjang() {
9. }
10.
11. // Konstruktor kedua
12. PersegiPanjang(double x) {
13. panjang = x;
14. }
15.
16. // Kondtruktor kedua
17. PersegiPanjang(double x, double y) {
18. panjang = x;
19. lebar = y;
20. }
21.
22. // Metoda mencari keliling
23. double mencariKelilingPP() {
24. return 2 * (panjang * lebar);
25. }
146 | P a g e
26.
27. // Metoda memcari luas
28. double mencariLuasPP() {
29. return panjang * lebar;
30. }
31. }
Lakukan Kompilasi program diatas dengan membuka menu Build >Compile File
Balok.java
Lakukan Kompilasi program diatas dengan membuka menu Build >Compile File
147 | P a g e
DemoBalok.java
148 | P a g e
48.
49. // Membuat obyek JTextArea
50. textArea = new JTextArea();
51.
52. // Menampilkan hasil
53. textArea.setText(string);
54. JOptionPane.showMessageDialog(null, textArea, "Kelas Balok",
55. JOptionPane.INFORMATION_MESSAGE);
56.
57. // Mengakhiri program berpenampilan GUI
58. System.exit(0);
59. }
60. }
Lakukan Kompilasi dan Jalankan program diatas dengan membuka menu Build
>Compile File dan > Execute File dan tuliskan yang tercetak dilayar
149 | P a g e
10.5 Kesimpulan
150 | P a g e
UNIVERSITAS BUDI LUHUR
FAKULTAS TEKNOLOGI INFORMASI
151 | P a g e
Daftar Pustaka : 1. Farrell. Joyce, An Object-Oriented
Approach to Programming Logic and
Design 3rd Edition, Course Technology,
2009
2. Thomas Wu. C, An Introduction to Object-
Oriented Programming with Java™ 4th
Edition, McGraw Hill, 2006
3. Deitel, Java How To Program, Deitel,
Prentice Hall, 2008
4. Anif, M, Seri Aplikasi : Aplikasi Penjualan
(Pemesanan Barang) dengan Java, Mitra
Wacana Media, 2008
152 | P a g e
PRAKTIKUM 11
KONSEP OOP – POLYMORPHISME DAN ENCAPSULATION
Merupakan salah satu konsep penting dalam object oriented programming (OOP)
khususnya di bahasa pemrograman Java setelah abstraction dan inheritance.
Polymorphism sering dikaitkan dengan penggunaan lebih dari satu metoda dengan
nama sama. Penggunaan metoda dengan nama sama dapat diterapkan dengan
method overloading dan method overriding. Peran polymorphism sebenarnya tidak
terbatas hanya pada hal tersebut. Ada keterkaitan antara polymorphism dan
inheritance (turunan). Dalam konsep turunan, saat obyek dari subclass dikonstruksi,
obyek dari superclass juga ikut dikonstruksi. Jadi setiap instance dari subclass adalah
juga instance dari superclass. Apabila Anda mendeklarasikan metoda dengan
parameter dari tipe superclass, Anda diperbolehkan untuk memberi argumen berupa
obyek subclass yang merupakan turunan dari superclass tersebut. Sedangkan apa
yang dimaksud dengan polymorphism sendiri, sebenarnya sulit untuk didefinisikan.
Sejalan dengan contoh yang diberikan, Anda diharapkan dapat mengerti dan
memahami konsep polymorphism itu sendiri.
153 | P a g e
11.2 Method Overloading
Constructor
Construktor adalah suatu method yang pertama kali dijalankan pada saat
pembuatan suatu obyek. Konstruktor mempunyai ciri yaitu :
• Mempunyai nama yang sama dengan nama class
• Tidak mempunyai modifier (seperti void, int, double dll)
Constructor Overloading
Adalah sebuah kemampuan yang membolehkan sebuah class mempunyai 2 atau
lebih method constructor dengan nama yang sama, yang membedakan adalah
parameternya. Pada constructor overloading perbedaan parameter sama dengan
yang dimiliki method overloading Contoh Constructor Overloading :
154 | P a g e
11.3 Method Overriding
Methode Overriding Merupakan method parrent class yang ditulis kembali oleh
subclass. Aturan dari method overriding pada Java:
• Parameter yang terdapat pada method overriding di subclass harus sama
dengan parameter yang terdapat pada parent class.
• Aturan hak akses, hak akses method overriding di subclass tidak boleh lebih
ketat di bandingkan dengan hak akses method pada parent class.
Lebih jelasnya enkapsulasi adalah suatu cara untuk menyembunyikan informasi dari
suatu class. Enkapsulasi mempunyai dua hal mendasar, yaitu :
• information hiding (menyembunyikan informasi) Dengan cara memberikan hak
akses private pada informasi tersebut.
• Menambahkan method untuk mengakses informasi tersebut setX....() : untuk
memberikan nilai baru pada informasi getX....() : untuk mendapatkan
informasi.
155 | P a g e
dapat berubah tanpa mempengaruhi bagian-bagian program yang lain.
• Modularitas
Modularitas berarti objek dapat dikelola secara independen. Karena kode sumber
bagian internal objek dikelola secara terpisah dari antarmuka, maka Kita bebas
melakukan modifikasi yang tidak menyebabkan masalah pada bagian-bagian lain
dari sistem. Manfaat ini mempermudah mendistriibusikan objek-objek dari
sistem.
11.6 Modifier
156 | P a g e
11.7 Akses Data
11.8 Praktikum
Langkah-langkah Praktikum
1. Buka Editor JCreator
2. Buatlah file baru dengan membuka menu File >New > File atau dengan Shortcut
Ctrl + N atau dengan klik icon pada ribbon menu, kemudian pilih > Java File
dan Klik tombol Next
157 | P a g e
3. Buat Nama File sesuai dengan nama file Java masing-masing Contoh program,
isikan pada bagian > Name, pilih lokasi tempat penyimpanan file pada pojok
kanan Bagian Location kemudian Klik tombol Finish.
158 | P a g e
Program 10.1 Penerapan Overloading
ContohOverloading.java
Penjelasan program
• Terdapat 4 (empat) method dalam kelas ContohOverloading
• Method pertama terdapat pada baris ke-2 samapai ke-4, dengan nama method
“jumlah” pada method tersebut terdapat 2 (dua) buah parameter yaitu
parameter “a” dan parameter “b” dengan tipe data integer.
• Method kedua terdapat pada baris ke-6 samapai ke-8, dengan nama method
sama dengan method sebelumnya yaitu method “jumlah”, dalam method ini
terdapat 3 (tiga) buah parameter, yaitu parameter “a” , parameter “b” dan
parameter “c” dengan tipe data integer.
• Method ketiga terdapat pada baris ke-9 samapai ke-12, dengan nama method
“jumlah” pada method tersebut terdapat 2 (dua) buah parameter yaitu
parameter “a” dan parameter “b” dengan tipe data berbeda. Parameter “a” tipe
data double dan aparameter “b”
• Method keemapat terdapat pada baris ke-14 samapai ke-17, dengan nama
159 | P a g e
method “jumlah” pada method tersebut terdapat 2 (dua) buah parameter yaitu
parameter “a” dan parameter “b” dengan tipe data berbeda.
• Kelas ContohOverloading diatas akan diimplementasikan dengan kelas
Penggunaan Overloading
PenggunaanOverloading.java
Lakukan Kompilasi dan Jalankan program diatas dengan membuka menu Build
>Compile File dan > Execute File dan tuliskan yang tercetak dilayar
Penjelasan Program :
• Kelas ini akan memanggil method yang dibuat pada kelas ContohOverloading
• Pada baris ke-3 terdapat kode yang memenggil kelas ContohOverloading
• Pada baris ke-4 sampai ke-7 kelas PenggunaanOverloading mengimplemntasikan
method dengan parameter yang berbeda tipe dan jumlahnya
• Dari contoh tersebut dapat disimplukan bahwa method overloading mempunyai
kemampuan yang membolehkan sebuah class mempunyai 2 atau lebih method
dengan nama yang sama
160 | P a g e
Program 10.2 Penggunaan Overriding
Bintang.java
Lakukan Kompilasi program diatas dengan membuka menu Build >Compile File
Penjelasan program
• Terdapat 2 (dua) method dalam kelas Binatang, method bergerak pada baris ke-
2 sampai ke-4 dan method berkembangBiak pada baris ke-5 samapai baris ke-7
dengan tipe void (tanpa mengembalikan nilai) dan tanpa parameter
• Kelas Binatang adalah parent class/ class induk.
• Terdapat 2 (dua) method dalam sub class kelas Mamalia, kelas bergerak pada
baris ke-10 sampai ke-12 dan kelas verlari pada baris ke-13 samapai baris ke-15
dengan tipe void (tanpa mengembalikan nilai) dan tanpa parameter
• Kelas Mamalia adalah sub class dari Kelas Binatang.
161 | P a g e
4. Binatang b = new Binatang();
5. Mamalia m = new Mamalia();
6. Binatang bm = new Mamalia();
7. b.begerak(); m.begerak();
8. bm.begerak();
9. bm.berkembangBiak();
10. }
11. }
Lakukan Kompilasi dan Jalankan program diatas dengan membuka menu Build
>Compile File dan > Execute File dan tuliskan yang tercetak dilayar
Penjelasan program
• Kelas PenggunaanOverriding adalah class utama yang mengimplemntasikan
kelas Ninatang dan kelas mamalia.
• Pada baris ke-7 method yang diapanggil akan menampilakan pesan “Binatang
bergerak sesuai kemampuannya”
• Pada baris ke-8 method yang diapanggil akan menampilakan pesan “Mamalia
bergerak sebagian besar dengan kakinya”
• Pada baris ke-10 method yang diapanggil akan menampilakan pesan “Binatang
berkembang biak sesuai kemampuannya”
• Pertanyaan : pada baris ke-9 pesan apa yang akan ditampilkan ?
• Kesimpulan apa yang dapat ditarik dari implemntasi program diatas ?
162 | P a g e
Berdasarkan class diagaram diatas, buatlah kelas-kelas berikut:
BangunDatar.java
Linkaran.java
163 | P a g e
26. // jari-jari lingkaran
27. float r;
28.
29. @Override
30. float luas(){
31. float luas = (float) (Math.PI * r * r);
32. System.out.println("Luas lingkaran: " + luas);
33. return luas;
34. }
35.
36. @Override
37. float keliling(){
38. float keliling = (float) (2 * Math.PI * r);
39. System.out.println("Keliling Lingkaran: " + keliling);
PersegiPanjang.java
164 | P a g e
Main.java
64. persegiPanjang.panjang = 8;
65. persegiPanjang.lebar = 4;
66.
67. // membuat objek Segitiga dan mengisi nilai properti
68. Segitiga mSegitiga = new Segitiga();
69. mSegitiga.alas = 12;
70. mSegitiga.tinggi = 8;
71.
72.
73. // memanggil method luas dan keliling
74. bangunDatar.luas();
75. bangunDatar.keliling();
76.
77. persegi.luas();
78. persegi.keliling();
79.
80. lingkaran.luas();
81. lingkaran.keliling();
82.
83. persegiPanjang.luas();
84. persegiPanjang.keliling();
85.
86. mSegitiga.luas();
87. mSegitiga.keliling();
88. }
89. }
165 | P a g e
Lakukan Kompilasi dan Jalankan program diatas dengan membuka menu Build
>Compile File dan > Execute File dan tuliskan yang tercetak dilayar
Mahasiswa.java
166 | P a g e
Lakukan Kompilasi diatas dengan membuka menu Build >Compile File
Penjelasan Program :
• Dalam kelas siswa diatas, terdapat 2 buah variabel, varibel “Nilai” dengan tipe
data integer dan akses data private (baris ke-2), varibel “Nama” dengan tipe
data String dan akses data public (barsis ke-3)
• Pada baris ke-5 samapai baris ke-10 terdapat method “setNilai” dengan
parameter “n”. Dalam method tersebut terdapat kondisi jika n lebih besar sama
dengan 0 dan n lebih kesil sama dengan 100 maka isi dari variebel “Nilai” yang
sudah di deklarasi pada baris ke-2 bernilai “n” jika tidak akan menampilkan
pesan "Error...!!"
• Pada baris ke-12 sampai baris ke-14 terdapat method “getNilai” berfungsi untuk
mengembalikan nilai dari variabel “Nilai”
• Pada baris ke-16 sampai baris ke-18 terdapat method “Info” untuk menampilkan
pesan “Saya Mhs UBL”
• Kelas selanjunya yaitu kelas “Mahasiswa” terdapat 2 variabel yaitu “NIM” dan
“nama” dengan tipe data String dan akses data public
• Pada baris ke-23 sampai baris ke-24 terdapat method “Info” untuk menampilkan
pesan “Saya Mhs UBL”
• Bagaimana mengakses anggota-anggota class Siswa ?
IsiData.java
Lakukan Kompilasi dan Jalankan program diatas dengan membuka menu Build
>Compile File dan > Execute File dan tuliskan yang tercetak dilayar
167 | P a g e
Penjelasan Program :
• Pada kelas IsiData terdapat method utama (main method) untuk
mengimplemntasikan Kelas Mahasiswa
• Apakah user dapat mengisi nilai NIM dengan data “12345”? jawabnya Bisa, yaitu
dengan cara ubl.NIM = “12345”.
• Tapi bagaimana jika NIM yang diiputkan user di encapsulation. Tidak bisa
menggunakan cara diatas, karena dengan cara tersebut user dapat memasukkan
nilai NIM sembarang.
Mahasiswa.java
Lakukan Kompilasi dan Jalankan program diatas dengan membuka menu Build
168 | P a g e
>Compile File dan > Execute File dan tuliskan yang tercetak dilayar
Penjelasan Program :
• Pada kelas “Mahasiswa” diatas terdapat variabel varibel “NIM” dengan tipe data
integer dan akses data private (baris ke-2), varibel “nama” dengan tipe data
String dan akses data public (barsis ke-3)
• Pada baris ke-4 sampai baris ke-6 terdapat method “Info” untuk menampilkan
pesan “Saya Mhs UBL”
• Pada baris ke-8 sampai baris ke-14 terdapat Class IsiData yang dialamanya
terdapat method utama (main method) untuk mengimplemntasikan Kelas
Mahasiswa
• Hasil program diatas akan menampilkan pesan “NIM has private access in
Mahasiswa Ubl.NIM=“9111500060”;”
• Untuk mengatasi masalah diatas maka perlu dibuatkan method set dan get
169 | P a g e
11.8 Kesimpulan
170 | P a g e
UNIVERSITAS BUDI LUHUR
FAKULTAS TEKNOLOGI INFORMASI
171 | P a g e
Daftar Pustaka : 1. Farrell. Joyce, An Object-Oriented
Approach to Programming Logic and
Design 3rd Edition, Course Technology,
2009
2. Thomas Wu. C, An Introduction to Object-
Oriented Programming with Java™ 4th
Edition, McGraw Hill, 2006
3. Deitel, Java How To Program, Deitel,
Prentice Hall, 2008
4. Anif, M, Seri Aplikasi : Aplikasi Penjualan
(Pemesanan Barang) dengan Java, Mitra
Wacana Media, 2008
172 | P a g e
PRAKTIKUM 12
ABSTRACT DAN INTERFACE
173 | P a g e
1. class Rectangle extends GraphicObject {
2. void draw() {
3. ...
4. }
5. void resize() {
6. ...
7. }
8. }
174 | P a g e
12.3 Pewarisan antar Interface
Mengimplementasikan Interface :
1. Bila sebuah class mengimplementasikan suatu interface, maka semua konstanta
dan method interface akan dimiliki oleh class ini.
2. Method pada interface harus diimplementasikan pada class yang
mengimplementasikan interface ini.
3. Bila class yang mengimplementasikan interface tidak mengimplemetasikan
semua method dalam interface, maka class tersebut harus dideklarasikan
abstract.
Contoh Program
Penjelasan Program :
• Jika kedua class di satukan dalam satu file (Relation di gabung dengan Line
175 | P a g e
maka akan muncul error sbb :
Relation.java:7: class Line is public, should be declared in a file named
Line.java public class Line implements Relation {
^ 1 error
Solusinya : public ci salah satu nya harus di buang.
6. void doExtraSomething();
7. }
176 | P a g e
• Bila suatu class akan dijadikan subclass dan akan mengimplementasikan
interface, maka kata extends harus lebih dulu dari implements.
Kegunaan Interface :
• Semua class yang mengimplementasikan sebuah interface tertentu berarti
class-class tersebut mengimplementasikan methods yang sama dengan kata
lain class-class tersebut mempunyai fungsionalitas yang sama.
Sedangkan interface adalah sebuah blok signature kumpulan method tanpa tubuh
(konstan), Sebuah definisi method yang umum/general yang dapat menghubungkan
class-class yang berbeda. Dengan kata lain, interface memungkinkan kita
mengimplementasikan method yang sama terhadap class yang tidak ada hubungan
sama sekali (tidak dalam satu hirarki) Oleh karena itu interface bukanlah sebuah
class, walaupun memiliki ciri yang serupa dengan abstract class.
177 | P a g e
mendeklarasikan constant dan instance Secara implisit variable yang
variable. dideklarasikan di interface
bersifat public, static dan final.
Method boleh bersifat static. Method tidak boleh bersifat static
Met hod boleh bersifat final. Method tidak boleh bersifat final.
Suatu abstact class hanya bisa meng- Suatu interface bisa meng-extend satu
extend satu abstract class lainnya. atau lebih interface lainnya.
Suatu abstract class hanya bisa meng- Suatu interface hanya bisa meng-
extend satu abstract class dan meng- extend interface lainnya. Dan tidak bisa
implement beberapa interface. meng-implement class atau interface
lainnya.
12.4 Praktikum
Langkah-langkah Praktikum
1. Buka Editor JCreator
2. Buatlah file baru dengan membuka menu File >New > File atau dengan Shortcut
Ctrl + N atau dengan klik icon pada ribbon menu, kemudian pilih > Java File
dan Klik tombol Next
178 | P a g e
3. Buat Nama File sesuai dengan nama file Java masing-masing Contoh program,
isikan pada bagian > Name, pilih lokasi tempat penyimpanan file pada pojok
kanan Bagian Location kemudian Klik tombol Finish.
1. package Teori;
2. public abstract class Parent{
3. public abstract void mAbstract();
4. public static void main(String[] args){
5. // membuat objek P dari class Parent
6. Parent P = new Parent();
7. }
8. }
Lakukan Kompilasi dan Jalankan program diatas dengan membuka menu Build
>Compile File dan > Execute File dan tuliskan yang tercetak dilayar
179 | P a g e
Penjelasan program :
Class diletakan dalam package “Teori” (Baris ke-1)
Pada saat program dijalankan terdapat pesan kesalahan sebagai berikut “
Teori.Parent abstract; cannot be instantiated Parent p = new Parent(); 1
error”
artinya : // tidak bisa di buatkan objek dari class Parent
Lakukan Kompilasi program diatas dengan membuka menu Build >Compile File
Kelinci.java
Lakukan Kompilasi dan Jalankan program diatas dengan membuka menu Build
180 | P a g e
>Compile File dan > Execute File dan tuliskan yang tercetak dilayar
Langkah-langkah Praktikum
1. Buka Editor JCreator
2. Buatlah file baru dengan membuka menu File >New > File atau dengan Shortcut
Ctrl + N atau dengan klik icon pada ribbon menu, kemudian pilih > Java File
dan Klik tombol Next
3. Buat Nama File sesuai dengan nama file Java masing-masing Contoh program,
isikan pada bagian > Name, pilih lokasi tempat penyimpanan file pada pojok
kanan Bagian Location kemudian Klik tombol Finish.
181 | P a g e
4. Lanjutkan dengan menuliskan program pada layar editor JCreator
1. interface Buku {
2. public void cover();
3. public void judul();
4. public void Bab();
5. }
6.
7. public class BukuBagus implements Buku{
8.
1. @Override
9. public void cover() {
10. System.out.println("Covernya adalah George Orwell img");
11. }
12.
13. @Override
14. public void judul() {
15. System.out.println("Judul Buku Bagaimana si Miskin mati");
16. }
17.
18. @Override
19. public void Bab() {
182 | P a g e
20. System.out.println("Bab 1 adalah \" Hukuman Gantung \"");
21. }
22.
23. public static void main(String [] args){
24. BukuBagus bBagus = new BukuBagus();
25. bBagus.cover();
26. bBagus.judul();
27. bBagus.Bab();
28. }
29. }
Lakukan Kompilasi dan Jalankan program diatas dengan membuka menu Build
>Compile File dan > Execute File dan tuliskan yang tercetak dilayar
Lakukan Kompilasi program diatas dengan membuka menu Build >Compile File
DemoKucing.java
183 | P a g e
8. }
Lakukan Kompilasi dan Jalankan program diatas dengan membuka menu Build
>Compile File dan > Execute File dan tuliskan yang tercetak dilayar
12.5 Kesimpulan
184 | P a g e
UNIVERSITAS BUDI LUHUR
FAKULTAS TEKNOLOGI INFORMASI
185 | P a g e
Daftar Pustaka : 1. Farrell. Joyce, An Object-Oriented
Approach to Programming Logic and
Design 3rd Edition, Course Technology,
2009
2. Thomas Wu. C, An Introduction to Object-
Oriented Programming with Java™ 4th
Edition, McGraw Hill, 2006
3. Deitel, Java How To Program, Deitel,
Prentice Hall, 2008
4. Anif, M, Seri Aplikasi : Aplikasi Penjualan
(Pemesanan Barang) dengan Java, Mitra
Wacana Media, 2008
186 | P a g e
PRAKTIKUM 13
GUI
Kalau kita lihat pada gambar berikut, menjelaskan bahwa interaksi yang terjadi
antara user dengan program melalui sebuah tampilan yang sudah berbentuk grafik.
Istilah ini sering di sebut dengan Event Driven atau Event-based Programming.
Sedangkan interaksi yang terjadi antara pengguna dengan komponen GUI dapat
dilakukan dengan beberapa cara diantaranya :
1. Dengan penekanan komponen tombol.
2. Dengan membuat pilihan pada menu.
3. Dengan Melakukan enter pada objek text.
4. Dengan Pergerakan tombol scroll bar.
5. Dengan penekan tombol close pada objek wondows.
187 | P a g e
Tiga tipe program yang berbasis kepada GUI komponen :
1. Graphical components (GUI)
Yaitu berupa rancangan tampilan program yang dikemas dengan menggunakan
komponen-komponen grafik (JFrame, JButton, JTextBox, JComboBox........)
2. Listener methods
Yaitu berfungsi untuk menerima dan merespon event yang terjadi dari sebuah
komponen.
3. Application methods
Fungsi-fungsi atau baris perintah yang berguna bagi pengguna untuk
menghasilkan kegiatan dalam bentuk respon. (Program yang akan di jalankan
saat event terjadi)
Prgoram dikatakan SEMPURNA jika ketiga tipe ini di satukan dalam sebuah program
Class Komponen, package dan Interface pada aplikasi
Banyak sekali komponen, package dan interface yang sudah disiapkan oleh java
untuk membuat sebuah tampilan yang berbentuk GUI. Namun pada bagian ini yang
akan dijelaskan adalah yang terkait dengan aplikasi yang akan di buat atau
dipaparkan dalam perkuliahan ini saja.
1. Daftar komponen yang akan digunakan atau yang akan dipaparkan dalam
perkuliahan ini dapat dilihat pada tabel berikut :
188 | P a g e
2. javax.swing.*;
3. java.awt.event.*;
4. java.sql.*
13.2 Praktikum
Langkah-langkah Praktikum
5. Buka Editor JCreator
6. Buatlah file baru dengan membuka menu File >New > File atau dengan Shortcut
Ctrl + N atau dengan klik icon pada ribbon menu, seperti terlihat pada
gambar berikut:
189 | P a g e
7. Kemudian pilih > Java File dan Klik tombol Next
8. Buat Nama File sesuai dengan nama file Java masing-masing Contoh program,
isikan pada bagian > Name, pilih lokasi tempat penyimpanan file pada pojok
kanan Bagian Location kemudian Klik tombol Finish.
190 | P a g e
Setelah menekan tombol Finish akan di tampilkan layar editting sebagai tempat kita
untuk menuliskan kode program, seperti gambar berikut:
191 | P a g e
Kode program untuk membuat form kosong adalah sebagai berikut:
1. /*
2. * File Name : MatKul.java
3. * Call By : Menu Utama
4. * Author : M. Anif, M.Kom
5. * Date Create : 20 Maret 2019
6. */
7. import javax.swing.*;
8.
9. public class MatKul extends JFrame{
10. // konstruktor MatKul
11. public MatKul(){
12. setTitle(".:: Form Entri Data Matakuliah ::.");
13. setSize(450, 230);
14. setLocationRelativeTo(this);
15.
16. show();
17. }
18.
19. // method main
20. public static void main(String[] args){
21. new MatKul();
22. }
23. }
Penjelasan Program :
• Panggil Class Javax.swing pada baris ke-7
Javax.swing adalah sekumpulan kelas-kelas yang digunakan untuk
mengembangkan aplikasi berbasis GUI (Graphical User Interface) selain itu java
swing juga bisa diartikan sebagai salah satu dari banyaknya solusi untuk
mengembangkan aplikasi berbasis GUI
• Membuat kelas baru dengan nama matkul pada baris ke-9 dengan extend
Jframe, Jendela dibuat dengan objek JFrame, lalu disesuaikan atribut-atributnya
• Membuat judul dari form “Form Entri Data Matakuliah” pada baris ke-12
• Mengatur ukuran form (Panjang x Lebar) pada baris ke-13
• Bauat method utama (Mein Method) agar form dapat dijalankan pada baris ke-
21
• Panggil class Matkul pada baris ke-21
192 | P a g e
2. Menambahkan objek pada form
Bentuk tampilan akhir dari program sebagai berikut
a. Sisipkan deklarasi objek ini di baris setelah baris yang sudah dibuat
sebelumnya pada bagian deklarasi: JLabel lblKodeMtk = new Jlabel
Penjelasan Program :
• Deklarasi label ada pada baris ke-1 samapai baris ke-4
• Deklarasi textfiled (kotak inputan) ada pada baris ke-6 samapai baris
193 | P a g e
ke-9
• Deklarasi button (tombol) ada pada baris ke-11 samapai baris ke-14
Penjelasan Program :
• Menatur letak label ada pada baris ke-1 samapai baris ke-3
• Mengatur letak textfiled (kotak inputan) ada pada baris ke-5 samapai
baris ke-8
• Mengatur letak (tombol) ada pada baris ke-9 samapai baris ke-12
• Melatak masingmasing objek agar tampil dalam form pada baris ke-15
194 | P a g e
sampai baris ke-26
Kode Program
1. void bersih(){
2. // mengosongkan teks txtKodeMtk.setText("");
3. txtNamaMtk.setText(""); txtSKS.setText("");
4. txtKodePrasyarat.setText("");
5.
6.
7. // membuat teks tidak bisa di edit
8. txtNamaMtk.setEditable(false);
9. txtSKS.setEditable(false);
10. txtKodePrasyarat.setEditable(false);
11.
195 | P a g e
12.
13. // menonaktifkan tombol
14. cmdTambah.setEnabled(false);
15. cmdUbah.setEnabled(false);
16. cmdHapus.setEnabled(false);
17. cmdBersih.setEnabled(true);
18.
19.
20. // Menempatkan kursor pada teks Kode
21. txtKodeMtk.requestFocus();
22. }
1. /*
2. * File Name : MatKul.java
3. * Call By : Menu Utama
4. * Author : M. Anif, M.Kom
5. * Date Create : 20 Maret 2019
6. */
7.
8. import javax.swing.*;
9.
10. public class MatKul extends JFrame{
11. // Sisipkan deklarasi objek di sini
12. JLabel lblKodeMtk = new JLabel("Kode Matakuliah :");
13. JLabel lblNamaMtk = new JLabel("Nama :");
14. JLabel lblSKS = new JLabel("SKS :");
15. JLabel lblKodePrasyarat = new JLabel("Kode Prasyarat :");
16. JTextField txtKodeMtk = new JTextField();
17. JTextField txtNamaMtk = new JTextField();
18. JTextField txtSKS = new JTextField();
19. JTextField txtKodePrasyarat = new JTextField();
20. JButton cmdTambah = new JButton("Tambah");
21. JButton cmdUbah = new JButton("Ubah");
22. JButton cmdHapus = new JButton("Hapus");
23. JButton cmdBersih = new JButton("Bersih");
24.
25. // konstruktor MatKul
26. public MatKul(){
27. setTitle(".:: Form Entri Data Matakuliah ::.");
28. setSize(450, 230);
29. setLocationRelativeTo(this);
30. // atur layout form agar dapat menampilkan objek
31. di dalam form
32.
33. getContentPane().setLayout(null);
196 | P a g e
34. // atur letak objek di layar monitor (x, y,
35. width, height)
36.
37. lblKodeMtk.setBounds(10, 20, 100, 25);
38. lblNamaMtk.setBounds(10, 50, 100, 25);
39. lblSKS.setBounds(10, 80, 100, 25);
40. lblKodePrasyarat.setBounds(10, 110, 100, 25);
41.
42. txtKodeMtk.setBounds(120, 20, 100, 25);
43. txtNamaMtk.setBounds(120, 50, 300, 25);
44. txtSKS.setBounds(120, 80, 100, 25);
45. txtKodePrasyarat.setBounds(120, 110, 100, 25);
46. cmdTambah.setBounds(10, 150, 80, 25);
47. cmdUbah.setBounds(110, 150, 80, 25);
48. cmdHapus.setBounds(210, 150, 80, 25);
49. cmdBersih.setBounds(310, 150, 80, 25);
50.
51. getContentPane().add(lblKodeMtk);
52. getContentPane().add(lblNamaMtk);
53. getContentPane().add(lblSKS);
54. getContentPane().add(lblKodePrasyarat);
55.
56. getContentPane().add(txtKodeMtk);
57. getContentPane().add(txtNamaMtk);
58. getContentPane().add(txtSKS);
59. getContentPane().add(txtKodePrasyarat);
60.
61. getContentPane().add(cmdTambah);
62. getContentPane().add(cmdUbah);
63. getContentPane().add(cmdHapus);
64. getContentPane().add(cmdBersih);
65.
66. // membersihkan tampilan form
67. bersih();
68.
69. show();
70. }
71.
72. void bersih(){
73. // mengosongkan teks
74. txtKodeMtk.setText(""
75. getContentPane().add(lblKodeMtk);
76. getContentPane().add(lblNamaMtk);
77. getContentPane().add(lblSKS);
78. getContentPane().add(lblKodePrasyarat);
79.
80. getContentPane().add(txtKodeMtk);
81. getContentPane().add(txtNamaMtk);
82. getContentPane().add(txtSKS);
197 | P a g e
83. getContentPane().add(txtKodePrasyarat);
84.
85. getContentPane().add(cmdTambah);
86. getContentPane().add(cmdUbah);
87. getContentPane().add(cmdHapus);
88. getContentPane().add(cmdBersih);
89. // membersihkan tampilan form
90.
91. bersih();
92. show();
93. }
94. }
13.3 Kesimpulan
198 | P a g e
UNIVERSITAS BUDI LUHUR
FAKULTAS TEKNOLOGI INFORMASI
2. Operasi Select
99 | P a g e
Daftar Pustaka : 1. Farrell. Joyce, An Object-Oriented
Approach to Programming Logic and
Design 3rd Edition, Course Technology,
2009
2. Thomas Wu. C, An Introduction to Object-
Oriented Programming with Java™ 4th
Edition, McGraw Hill, 2006
3. Deitel, Java How To Program, Deitel,
Prentice Hall, 2008
4. Anif, M, Seri Aplikasi : Aplikasi Penjualan
(Pemesanan Barang) dengan Java, Mitra
Wacana Media, 2008
100 | P a g e
PRAKTIKUM 14
DATABASE, ODBC DAN CRUD (SELECT SQL)
Berikut ini adalah langkah-langkah yang harus diikuti untuk setting bahasa
pemrograman JAVA agar terhubung dengan basis data MySQL.
1. Install Xampp dan aktifkan MySql. Sebelumnya Anda harus membuat database
terlebih dahulu. Langkah-langkah membuat database ada 3 cara :
a. Menggunakan Editor MySQLFront
b. Menggunakan browser, ketik localhost, ketik PHPMyAdmin
c. Menggunakan CommandPrompt
d. Buat database dengan spesifikasi sebagai berikut :
Nama database : Kampus
Nama Tabel : Mahasiswa
Nama Field : Nim (char : 10), Nama (Varchar : 30), Alamat (Varchar
: 200), Telepon (varchar:15), JK (varchar:10), Agama(varchar:10),
Hobby1(varchar:10), Hobby2(varchar:10), Hobby3(varchar:10).
Tambahkan komponen pada editor Jcreator dengan cara download terlebih dahulu
ke situs https://dev.mysql.com/downloads/connector/ Akan tampil halaman situs
sebagai berikut atau bisa pilih ke menu MySQL Connectors :
101 | P a g e
2. Pilih Connector/J karena akan melakukan koneksi antara mySQL dengan Java
https://dev.mysql.com/downloads/connector/j/
102 | P a g e
4. Ekstrak file tersebut sehingga akan muncul folder
5. Buka isi folder tersebut sehingga isinya seperti gambar di bawah ini:
103 | P a g e
2. Klik 2 kali pada tulisan JDK sehingga akan muncul tampilan sebagai berikut :
104 | P a g e
3. Pilih Add Archive kemudian akan tampil windows explorer tempat Anda
menyimpan mysql connector.
Langkah-langkah Praktikum
Berikut adalah langkah-langkah untuk menghubungkan antara program java Anda
dengan basis data MySQL
5. Buka Editor JCreator
6. Buatlah file baru dengan membuka menu File >New > File atau dengan Shortcut
Ctrl + N atau dengan klik icon pada ribbon menu, kemudian pilih > Java File
dan Klik tombol Next
105 | P a g e
7. Buat Nama File sesuai dengan nama file Java masing-masing Contoh program,
isikan pada bagian > Name, pilih lokasi tempat penyimpanan file pada pojok
kanan Bagian Location kemudian Klik tombol Finish.
106 | P a g e
8. Lanjutkan dengan menuliskan program pada layar editor JCreator
//buat konstruktor
public Koneksi() {
}
//memanggil database
con=DriverManager.getConnection(url,user,pwd);
return con;
}
catch (ClassNotFoundException e) {
System.out.println("Cound not open connection");
return null;
}
catch (SQLException e) {
System.out.println("No Connection Open");
return null;
} //tutup catch
}//tutup class connection
}//tutup main class
107 | P a g e
10. Buka kembali file java Anda pertemuan pekan kemarin yang memiliki tampilan
sebagai berikut :
11. Buka kode program Anda dan tambahkan package Java.sql.* sehingga
tampilan kode program paling atas adalah sebagai berikut :
12. Supaya tombol yang Anda buat menggunakan class JButton dapat mengenali
perintah yang Anda berikan, maka Anda harus mengunakan 2 class sebagai
berikut :
a. Class ActionListener
Digunakan supaya tombol Anda mengerti saat diaktifkan atau di KLIK. Class
ini ditambahkan di deklarasi class Anda menggunakan perintah
implements.
108 | P a g e
public class FormMahasiswa5_db extends JFrame implements
ActionListener {
Karena sudah dideklarasikan maka Anda bisa memanggil method
addActionListener().
Caranya :
Tambahkan kode program berikut di bawah method getContentPane();
cmdSimpan.addActionListener(this);
cmdBatal.addActionListener(this);
cmdUbah.addActionListener(this);
cmdHapus.addActionListener(this);
txtNIM.addActionListener(this);
cmdCari.addActionListener(this);
b. Class ActionPerformed
Class ini digunakan agar tombol mengerti apa yang harus dilakukan saat
diklik. Sedangkan method getsource (mengambil objek yang diklik dan
membandingkan dengan objek yang sesuai).
Jika anda sudah menambahkan objek addActionListener maka buat kode
program agar tombol memanggil.
13. Untuk bisa menggunakan 2 class di atas maka Anda harus tambahkan Package
Java.awt.* dan java.awt.event.* seperti kode program di bawah ini
109 | P a g e
//package untuk koneksi ke database mysql
import java.sql.*;
2. Kode Program
• Pada baris atas tambahkan perintah ini :
import java.sql.*;
110 | P a g e
• Pada bagian konstruktor di atas perintah show(), tambahkan perintah berikut:
txtKodeMtk.addActionlisetener(this);
1. void cari(){
2.
3. try {
4. String vNIM = txtNIM.getText();
5. bersih();
6.
7. txtNIM.setText(vNIM);
8.
9. //buat objek koneksi
10. Koneksi objKoneksi = new Koneksi();
11. Connection conn=objKoneksi.bukaKoneksi();
12. Statement St = conn.createStatement();
13. //default jika jenis kelamin tidak dipilih maka yg
14. tersimpan perempuan
15.
16.
17. //UPDATE [nama_tabel] SET kolom1 = data1, kolom2 = data2,
18. ... WHERE [kondisi]
19.
20. String Sql= "select * from Mahasiswa where NIM='"+
21. txtNIM.getText()+"'";
22.
23. ResultSet rs=St.executeQuery(Sql);
24.
25. if (rs.next()) {
26. txtNama.setText(rs.getString("Nama"));
27. txaAlamat.setText(rs.getString("Alamat"));
28. cboAgama.setSelectedItem(rs.getString("Agama"));
29. txtTelepon.setText(rs.getString("Telepon"));
30.
31.
111 | P a g e
32. if (rs.getString("Hobby1").length()>0) {
33. chkHobby1.setSelected(true);
34. }
35.
36. if (rs.getString("Hobby2").length()>0) {
37. chkHobby2.setSelected(true);
38. }
39.
40. if (rs.getString("Hobby3").length()>0) {
41. chkHobby3.setSelected(true);
42. }
43.
44. if (rs.getString("JK").equals("Laki-Laki")) {
45. rbPria.isSelected();
46. } else{
47. rbPerempuan.isSelected();
48. }
49. }
50. rs.close();
51. conn.close();
52. }
53. catch (Exception e) {
54.
55. }
56. }
112 | P a g e
14.3 Kesimpulan
113 | P a g e
UNIVERSITAS BUDI LUHUR
FAKULTAS TEKNOLOGI INFORMASI
114 | P a g e
Daftar Pustaka : 1. Farrell. Joyce, An Object-Oriented
Approach to Programming Logic and
Design 3rd Edition, Course Technology,
2009
2. Thomas Wu. C, An Introduction to Object-
Oriented Programming with Java™ 4th
Edition, McGraw Hill, 2006
3. Deitel, Java How To Program, Deitel,
Prentice Hall, 2008
4. Anif, M, Seri Aplikasi : Aplikasi Penjualan
(Pemesanan Barang) dengan Java, Mitra
Wacana Media, 2008
115 | P a g e
PRAKTIKUM 15
CRUD (INSERT, UPDATE dan DELETE)
1. Event Click pada Tombol SIMPAN (operasi INSERT sql) Adalah kegiatan yang
dilakukan untuk menambahkan data pada tabel matakuliah yang ada di dalam
database, kegiatan ini dilakukan saat objek cmdTambah di click oleh user.
Urutan kegiatan operasi INSERT sql, adalah sbb :
• Menambahkan package java.sql (Abaikan jika sudah di tambahkan)
• Menambah method addActionlisetener pada objek cmdSimpan
• Memeriksa objek pada method actionPerformed()
• Menjalankan metode simpan()
• Tambahkan Metode simpan(), dengan perintah seperti berikut:
Buat String SQL
Eksekusi SQL kemudian simpan hasil dengan tipe int
• Periksa hasil
Jika > 0 muncul pesan “Data Berhasil Disimpan”
• Jalankan metode
2. Kode Program
• Pada baris atas tambahkan perintah ini kalau belum ada.
import java.sql.*;
116 | P a g e
3. Buat Metode simpan(); dengan perintah sebagai berikut :
1. void simpan(){
2. try{
3. //buat objek koneksi
4. Koneksi objKoneksi = new Koneksi();
5. Connection conn=objKoneksi.bukaKoneksi();
6. Statement St = conn.createStatement();
7. String vJK = "Perempuan",vHobby1="",vHobby2="",vHobby3="";
8.
9. if (rbPria.isSelected()){
10. vJK = "Laki-Laki";
11. }
12.
13. if (chkHobby1.isSelected()){ vHobby1 = "Baca Buku"; }
14. if (chkHobby2.isSelected()){ vHobby2 = "Nonton TV"; }
15. if (chkHobby3.isSelected()){ vHobby3 = "Berenang"; }
16.
17. String Sql= "insert into Mahasiswa values ('"+
18. txtNIM.getText()+"','"+txtNama.getText()+"','"+
19. txaAlamat.getText()+"','"+txtTelepon.getText()+"'
20. '"+ vJK+"','"+cboAgama.getSelectedItem()+"','"
21. +vHobby1+"','"+ vHobby2+"','"+vHobby3+"')";
22.
23. int Hasil=St.executeUpdate(Sql);
24. if (Hasil>0){
25. JOptionPane.showMessageDialog(null,"Data Berhasil
26. Disimpan");
27. }
28. conn.close();
29. bersih();
30. }
31. catch (Exception e){
32.
33. }
34. }
Penjelasan program
• Method simpan bertipe void
• Terdapat penangkap kesalahan pada baris ke-2 dan hasil keselahan akan di
tampilkan pada baris ke-31
• Pada baris ke-29 memangil method bersih() untuk mengembalikan form ke
tampilan awal.
117 | P a g e
15.2 Operasi Update
1. Event Click pada Tombol UBAH (operasi UPDATE sql) Adalah kegiatan yang
dilakukan untuk mengubah data pada tabel matakuliah yang ada di dalam
database, kegiatan ini dilakukan saat objek cmdUbah di click oleh user.
Urutan kegiatan operasi UPDATE sql, adalah sbb :
• Menambahkan package java.sql (Abaikan jika sudah di tambahkan)
• Menambah method addActionlisetener pada objek cmdUbah
• Memeriksa objek pada method actionPerformed()
• Menjalankan metode ubah()
• Tambahkan Metode ubah(), dengan perintah seperti berikut:
Buat String SQL
Eksekusi SQL kemudian simpan hasil dengan tipe int
Periksa hasil
• Jika > 0 muncul pesan “Penambahan data berhasil”
Jalankan metode bersih()
Selesai.
2. Kode Program
• Pada baris atas tambahkan perintah ini kalau belum ada.
import java.sql.*;
1. void ubah(){
2. try{
3. //buat objek koneksi
118 | P a g e
4. Koneksi objKoneksi = new Koneksi();
5. Connection conn=objKoneksi.bukaKoneksi();
6. Statement St = conn.createStatement();
7.
8. //default jika jenis kelamin tidak dipilih maka yg
9. tersimpan perempuan
10. String vJK = "Perempuan";
11.
12. String vHobby1="",vHobby2="",vHobby3="";
13.
14. if (rbPria.isSelected()){
15. vJK = "Laki-Laki";
16. }
17.
18. if (chkHobby1.isSelected()){ vHobby1 = "Baca Buku"; }
19. if (chkHobby2.isSelected()){ vHobby2 = "Nonton TV"; }
20. if (chkHobby3.isSelected()){ vHobby3 = "Berenang"; }
21.
22. //UPDATE [nama_tabel] SET kolom1 = data1, kolom2 = data2,
23. ... WHERE [kondisi]
24.
25. String Sql= "update Mahasiswa SET Nama='"+txtNama.getText()
26. + "',Alamat='"+txaAlamat.getText()+ "',Telepon='"+
27. txtTelepon.getText()+ "',JK='"+vJK+ "',Agama='"+
28. cboAgama.getSelectedItem()+ "',Hobby1='"+vHobby1+ "',
29. Hobby2='"+vHobby2+ "',Hobby3='"+vHobby3+ "'
30. where NIM='"+txtNIM.getText()+"'";
31.
32. int Hasil=St.executeUpdate(Sql);
33. if (Hasil>0){
34. JOptionPane.showMessageDialog(null,"Data Berhasil
35. di Ubah");
36. }
37. conn.close();
38. bersih();
39. }
40. catch (Exception e) {
41. }
42. }
Penjelasan program
• Method ubah bertipe void
• Terdapat penangkap kesalahan pada baris ke-2 dan hasil keselahan akan di
tampilkan pada baris ke-39
• Pada baris ke-34 terdapat kondisi jika data berhasil diubah maka program
akan menampilkan pesan “Data sudah diubah”
• Pada baris ke-37 memangil method bersih() untuk mengembalikan form ke
tampilan awal.
119 | P a g e
15.3 Operasi Delete
1. Event Click pada Tombol HAPUS (operasi DELETE sql) Adalah kegiatan yang
dilakukan untuk menghapus data pada tabel matakuliah yang ada di dalam
database, kegiatan ini dilakukan saat objek cmdHapus di click oleh user.
Urutan kegiatan operasi DELETE sql, adalah sebagai berikut:
• Menambahkan package java.sql (Abaikan jika sudah di tambahkan)
• Menambah method addActionlisetener pada objek cmdHapus
• Memeriksa objek pada method actionPerformed()
• Menjalankan metode hapus()
Tambahkan Metode hapus(), dengan perintah seperti berikut:
Buat String SQL
• Eksekusi SQL kemudian simpan hasil dengan tipe int
Periksa hasil
Jika > 0 muncul pesan “Penghapusan data berhasil”
Jalankan metode bersih()
• Selesai.
2. Kode Program
• Pada baris atas tambahkan perintah ini kalau belum ada.
import java.sql.*;
1. void hapus(){
2. try{
3. //buat objek koneksi
120 | P a g e
4. Koneksi objKoneksi = new Koneksi();
5. Connection conn=objKoneksi.bukaKoneksi();
6. Statement St = conn.createStatement();
7.
8. String Sql= "delete from Mahasiswa where NIM='"+
9. txtNIM.getText()+"'";
10.
11. int Hasil=St.executeUpdate(Sql);
12. if (Hasil>0){
13. JOptionPane.showMessageDialog(null,"Data Berhasil
14. di Hapus");
15. }
16. conn.close();
17. bersih();
18. }
19. catch (Exception e){
20. }
Penjelasan program
• Method hapus bertipe void
• Terdapat penangkap kesalahan pada baris ke-2 dan hasil keselahan akan di
tampilkan pada baris ke-29
• Perintah menghapus data terdapat pada baris ke-10
• Pada baris ke-14 terdapat kondisi jika data berhasil dihapus maka program
akan menampilkan pesan “Data Berhasil Dihapus”
• Pada baris ke-17 memangil method bersih() untuk mengembalikan form ke
tampilan awal.
Langkah-langkah Praktikum
1. Buka Editor JCreator (Revisi Update No. Urut dari Versi Sebelumnya)
2. Buatlah file baru dengan membuka menu File >New > File atau dengan Shortcut
Ctrl + N atau dengan klik icon pada ribbon menu, kemudian pilih > Java File
dan Klik tombol Next
121 | P a g e
3. Buat Nama File sesuai dengan nama file Java masing-masing Contoh program,
isikan pada bagian > Name, pilih lokasi tempat penyimpanan file pada pojok
kanan Bagian Location kemudian Klik tombol Finish.
122 | P a g e
Program Lengkap Form Mahasiswa
123 | P a g e
47. public static void main (String Args[]){
48. new FormMahasiswa6(); //konstruktur
49.
50. }
51.
52. public FormMahasiswa6(){
53. this.setSize(600,400); //ukuran form (lebar,tinggi)
54. setTitle("Form Data Mahasiswa");
55. setLocationRelativeTo(null);
56. //membuat form ke tengah layar
57.
58. //berikut ini adalah kode program untuk desain form
59.
60. bgJK.add(rbPria);//supaya option button dpt dipilih slh 1
61. bgJK.add(rbPerempuan);
62.
63. //setBounds (X,Y,Width(lebar),High)
64. //perintah setbounds untuk mengatur posisi dari objek
65. yang akan diletakkan di form
66. LblNIM.setBounds(10,10,100,25); //setbounds (jarak dr
67. kiri layar,jarakdrataslayar,lebarobjek,tinggiobjek)
68. LblNama.setBounds(10,40,100,25);
69. LblAlamat.setBounds(10,70,100,25);
70. LblTelepon.setBounds(10,130,100,25);
71. LblJK.setBounds(10,160,180,25);
72. LblAgama.setBounds(10,190,100,25);
73. LblHobi.setBounds(10,220,100,25);
74.
75. //perintah supaya rata kanan
76. LblNIM.setHorizontalAlignment(JLabel.RIGHT);
77. LblNama.setHorizontalAlignment(JLabel.RIGHT);
78. LblAlamat.setHorizontalAlignment(JLabel.RIGHT);
79. LblTelepon.setHorizontalAlignment(JLabel.RIGHT);
80.
81. //LblJK tidak perlu di setting ke kanan
82. LblAgama.setHorizontalAlignment(JLabel.RIGHT);
83. LblHobi.setHorizontalAlignment(JLabel.RIGHT);
84.
85. //buat textbox
86. txtNIM.setBounds(115,10,100,25);
87. txtNama.setBounds(115,40,100,25);
88. txaAlamat.setBounds(115,70,200,50);
89. txtTelepon.setBounds(115,130,100,25);
90.
91. rbPria.setBounds(115,160,100,25);
92. rbPerempuan.setBounds(215,160,100,25);
93. cboAgama.setBounds(115,190,100,25);
94. chkHobby1.setBounds(115,220,100,25);
95. chkHobby2.setBounds(115,250,100,25);
124 | P a g e
96. chkHobby3.setBounds(115,280,100,25);
97.
98. //Tombol
99. cmdSimpan.setBounds(115,310,100,25);
100. cmdUbah.setBounds(220,310,100,25);
101. cmdHapus.setBounds(325,310,100,25);
102. cmdBatal.setBounds(430,310,100,25);
103. cmdCari.setBounds(220,10,100,25);
104. this.getContentPane().setLayout(null);
105.
106. //tampilkan text NIM
107. this.getContentPane().add(LblNama);
108. this.getContentPane().add(LblNIM);
109. this.getContentPane().add(LblAlamat);
110. this.getContentPane().add(LblTelepon);
111. this.getContentPane().add(LblJK);
112. this.getContentPane().add(LblAgama);
113. this.getContentPane().add(LblHobi);
114. this.getContentPane().add(txtNIM);
115. this.getContentPane().add(txtNama);
116. this.getContentPane().add(txaAlamat);
117. this.getContentPane().add(txtTelepon);
118. this.getContentPane().add(rbPria);
119. this.getContentPane().add(rbPerempuan);
120. this.getContentPane().add(cboAgama);
121. this.getContentPane().add(chkHobby1);
122. this.getContentPane().add(chkHobby2);
123. this.getContentPane().add(chkHobby3);
124. this.getContentPane().add(cmdSimpan);
125. this.getContentPane().add(cmdUbah);
126. this.getContentPane().add(cmdHapus);
127. this.getContentPane().add(cmdBatal);
128. this.getContentPane().add(cmdCari);
129.
130. //memanggil method untuk tombol mengerti bahwa tombol
131. tersebut di klik
132. cmdSimpan.addActionListener(this);
133. cmdBatal.addActionListener(this);
134. cmdUbah.addActionListener(this);
135. cmdHapus.addActionListener(this);
136. txtNIM.addActionListener(this);
137. cmdCari.addActionListener(this);
138.
139. show();
140. }
141. //method supaya tombol mengerti apa yang harus dilakukan
142. saat diklik
143. //getsource (mengambil objek yang diklik dan membandingkan
144. dengan objek yang sesuai
125 | P a g e
145.
146. public void actionPerformed(ActionEvent ae){
147. if (ae.getSource()==cmdSimpan){
148. //JOptionPane.showMessageDialog(null,"Saya Sudah
149. Menekan Tombol Simpan");
150. simpan();
151. }
152. if (ae.getSource()==cmdBatal){
153. bersih();
154. }
155. if(ae.getSource()==cmdUbah){
156. ubah();
157. }
158. if(ae.getSource()==cmdHapus){
159. hapus();
160. }
161. if(ae.getSource()==txtNIM || ae.getSource()==cmdCari) {
162. cari();
163. }
164.
165. }
166.
167. void simpan(){
168. try{
169. //buat objek koneksi
170. Koneksi objKoneksi = new Koneksi();
171. Connection conn=objKoneksi.bukaKoneksi();
172. Statement St = conn.createStatement();
173. String vJK = "Perempuan",vHobby1="",vHobby2="",
174. vHobby3="";
175.
176. if (rbPria.isSelected()){
177. vJK = "Laki-Laki";
178. }
179.
180. if (chkHobby1.isSelected()){
181. vHobby1 = "Baca Buku";
182. }
183. if (chkHobby2.isSelected()){
184. vHobby2 = "Nonton TV";
185. }
186. if (chkHobby3.isSelected()){
187. vHobby3 = "Berenang";
188. }
189.
190. String Sql= "insert into Mahasiswa values ('"+
191. txtNIM.getText()+"','"+txtNama.getText()+
192. "','"+txaAlamat.getText()+"','"+
193. txtTelepon.getText()+"','"+ vJK+"','"+
126 | P a g e
194. cboAgama.getSelectedItem()+"','"+
195. vHobby1+"','"+ vHobby2+"','"+vHobby3+"')";
196.
197. int Hasil=St.executeUpdate(Sql);
198. if (Hasil>0){
199. JOptionPane.showMessageDialog(null,"Data Berhasil
200. Disimpan");
201. }
202. conn.close();
203. bersih();
204. }
205. catch (Exception e){
206.
207. }
208. }
209.
210. void ubah(){
211. try{
212. //buat objek koneksi
213. Koneksi objKoneksi = new Koneksi();
214. Connection conn=objKoneksi.bukaKoneksi();
215. Statement St = conn.createStatement();
216.
217. //default jika jenis kelamin tidak dipilih maka yg
218. tersimpan perempuan
219. String vJK = "Perempuan";
220.
221. String vHobby1="",vHobby2="",vHobby3="";
222.
223. if (rbPria.isSelected()){
224. vJK = "Laki-Laki";
225. }
226.
227. if (chkHobby1.isSelected()){
228. vHobby1 = "Baca Buku"; }
229. if (chkHobby2.isSelected()){
230. vHobby2 = "Nonton TV"; }
231. if (chkHobby3.isSelected()){
232. vHobby3 = "Berenang"; }
233.
234. String Sql= "update Mahasiswa SET Nama='"+
235. txtNama.getText()+"',Alamat='"+
236. txaAlamat.getText()+ "',Telepon='"+
237. txtTelepon.getText()+ "',JK='"+vJK+ "',
238. Agama='"+cboAgama.getSelectedItem()+
239. "',Hobby1='"+vHobby1+ "',Hobby2='"+vHobby2+
240. "',Hobby3='"+vHobby3+ "' where NIM='"+
241. txtNIM.getText()+"'";
242.
127 | P a g e
243.
244. int Hasil=St.executeUpdate(Sql);
245. if (Hasil>0){
246. JOptionPane.showMessageDialog(null,"Data Berhasil
247. di Ubah");
248. }
249. conn.close();
250. bersih();
251. }
252. catch (Exception e){
253.
254. }
255. }
256.
257. void hapus(){
258. try{
259. //buat objek koneksi
260. Koneksi objKoneksi = new Koneksi();
261. Connection conn=objKoneksi.bukaKoneksi();
262. Statement St = conn.createStatement();
263.
264. String Sql= "delete from Mahasiswa where NIM='"+
265. txtNIM.getText()+"'";
266.
267. int Hasil=St.executeUpdate(Sql);
268. if (Hasil>0){
269. JOptionPane.showMessageDialog(null,"Data Berhasil
270. di Hapus");
271. }
272. conn.close();
273. bersih();
274. }
275. catch (Exception e){
276.
277. }
278. }
279.
280. void cari(){
281. try{
282. String vNIM = txtNIM.getText();
283. bersih();
284. txtNIM.setText(vNIM);
285.
286. //buat objek koneksi
287. Koneksi objKoneksi = new Koneksi();
288. Connection conn=objKoneksi.bukaKoneksi();
289. Statement St = conn.createStatement();
290.
291.
128 | P a g e
292. //default jika jenis kelamin tidak dipilih maka yg
293. tersimpan perempuan
294.
295. String Sql= "select * from Mahasiswa where NIM='"+
296. txtNIM.getText()+"'";
297.
298. ResultSet rs=St.executeQuery(Sql);
299.
300. if (rs.next()){
301. txtNama.setText(rs.getString("Nama"));
302. txaAlamat.setText(rs.getString("Alamat"));
303. cboAgama.setSelectedItem(rs.getString("Agama"));
304. txtTelepon.setText(rs.getString("Telepon"));
305.
306. if (rs.getString("Hobby1").length()>0){
307. chkHobby1.setSelected(true); }
308. if (rs.getString("Hobby2").length()>0){
309. chkHobby2.setSelected(true); }
310. if (rs.getString("Hobby3").length()>0){
311. chkHobby3.setSelected(true); }
312. if (rs.getString("JK").equals("Laki-Laki")){
313. rbPria.isSelected();
314. }
315. else{
316. rbPerempuan.isSelected();
317. }
318. }
319. rs.close();
320. conn.close();
321. }
322. catch (Exception e){
323.
324. }
325. }
326.
327. void bersih(){
328. txtNIM.setText("");
329. txtNama.setText("");
330. txaAlamat.setText("");
331. txtTelepon.setText("");
332. rbPria.setSelected(true);
333. rbPerempuan.setSelected(false);
334. cboAgama.setSelectedIndex(0);
335. chkHobby1.setSelected(false);
336. chkHobby2.setSelected(false);
337. chkHobby3.setSelected(false);
338. txtNIM.requestFocus();
339. }
340. }
129 | P a g e
15.4 Kesimpulan
130 | P a g e
FAKULTAS TEKNOLOGI INFORMASI
UNIVERSITAS BUDI LUHUR
Jl. Raya Ciledug, Petukangan Utara, Pesanggrahan
Jakarta Selatan, 12260
Telp: 021-5853753 Fax : 021-5853752
http://fti.budiluhur.ac.id