Anda di halaman 1dari 137

MODUL PRAKTIKUM

PEMRGORAMAN DASAR S1 SISTEM INFORMASI


INSTITUT BISNIS DAN INFORMATIKA
STIKOM SURABAYA

Zayed Elfasa
LABORATORIUM KOMPUTER
2017
Modul Praktikum Pemrograman Dasar

---TERIMA KASIH KEPADA---

EDO YONATAN
ONG LU YA

MODUL SEBELUMNYA
BERASAL DARI DUA PENULIS INI

Halaman 2
DAFTAR ISI
PETUNJUK UMUM...................................................................................................................... 3

Cara Setting Path Java, Compile, dan Run Program Java ...................................................... 3

MODUL 1 – Variabel, Tipe Data, Operator ................................................................................ 8

Dasar Syntax Pemrograman Java ........................................................................................... 8

Variabel ................................................................................................................................ 10

Tipe Data .............................................................................................................................. 11

Operator............................................................................................................................... 12

MODUL 2 – Percabangan IF, IF-ELSE, SWITCH-CASE ............................................................... 21

Perintah IF ............................................................................................................................ 21

Perintah Switch-Case ........................................................................................................... 23

Operator “?”......................................................................................................................... 25

Operator pembanding apabila kondisi melibatkan tipe data string.................................... 25

MODUL 3 – Perulangan FOR, DO-WHILE, WHILE..................................................................... 26

Perulangan dengan For ........................................................................................................ 26

Perulangan dengan while .................................................................................................... 27

Perulangan dengan do..while .............................................................................................. 28

MODUL 4 – Array 1 Dimensi dan 2 Dimensi ............................................................................ 29

Pendeklarasian Array 1 dimensi .......................................................................................... 29

Input Data ke dalam Array 1 dimensi .................................................................................. 30

Pendeklarasian Array 2 dimensi .......................................................................................... 32

MODUL 5 – Function dan Procedure ....................................................................................... 37

Pengantar Sub Program ....................................................................................................... 37

Sub Program berjenis prosedur ........................................................................................... 37

Sub Program berjenis fungsi ................................................................................................ 38

Sub program dengan parameter berupa variabel biasa ...................................................... 39


Modul Praktikum Pemrograman Dasar

Sub program dengan parameter berupa variabel array ...................................................... 40

Sub program yang ditulis ulang dengan function overloading ............................................ 41

Sub program yang dikerjakan berulang-ulang (recursive function)..................................... 42

MODUL 6 – Model-View-Controller MVC Terstruktur ............................................................ 43

Model ................................................................................................................................... 43

View ..................................................................................................................................... 43

Controller ............................................................................................................................. 43

MODUL 7 – Class, Object & Constructor ................................................................................. 45

Class ..................................................................................................................................... 45

Atribut .................................................................................................................................. 46

Method ................................................................................................................................ 46

This ....................................................................................................................................... 47

Access Modifier .................................................................................................................... 47

Instance Of Class .................................................................................................................. 48

Contoh Soal .......................................................................................................................... 48

Constructor .......................................................................................................................... 55

Pengertian Constructor ........................................................................................................ 56

Overloading Constructor...................................................................................................... 57

Perbedaan menggunakan Constructor dengan method setter........................................... 58

Latihan.................................................................................................................................. 59

MODUL 8 – Inheritance & Polymorphism ............................................................................... 70

Inheritance ........................................................................................................................... 70

Manfaat penggunaan Inheritance ....................................................................................... 71

Keyword “super” .................................................................................................................. 72

Polymorphism ...................................................................................................................... 72

Kriteria Pembuatan Polymorphism...................................................................................... 73

Halaman 1
Modul Praktikum Pemrograman Dasar

Overriding Method .............................................................................................................. 73

Latihan Soal Inheritance ...................................................................................................... 73

Latihan Soal Polymorphism ................................................................................................. 88

MODUL 9 – Encapsulation (Abstract & Interface) ................................................................... 94

Abstract Class ....................................................................................................................... 94

Implementasi Interface ...................................................................................................... 101

MODUL 10 – Graphical User Interface Programming............................................................ 102

MODUL 11 – Model-View-Controller MVC OOP.................................................................... 120

Halaman 2
Modul Praktikum Pemrograman Dasar

PETUNJUK UMUM
Praktikun pemrograman dasar merupakan praktikum paling dasar yang berasal dari program
studi S1 Sistem Informasi Institut Bisnis dan Informatika Stikom Surabaya sebelum anda
melangkah menuju praktikum selanjutnya yang bersifat lebih susah (advance). Praktikum
pemrograman dasar bersifat programming untuk mengasah logika dan algoritma yang telah
dipelajari oleh praktikan.

Praktikum pemrograman dasar kali ini akan menggunakan bahasa pemrgoraman Java dan
membutuhkan file Java Development Kit (JDK) yang di-install sebagai compiler java pada PC.

Java dapat diunduh pada web resmi milik oralce :

http://www.oracle.com/technetwork/Java/Javase/download

Untuk latihan-latihan yang ada di dalam modul ini terdapat pada halaman terakhir, namu
diharapkan Anda mencoba sendiri dulu latihan-latihan yang ada pada modul ini.

Sebelum memasuki praktikum, maka yang perlu Anda lakukan adalah setting path agar
program java yang Anda buat dapat di-compile pada PC Anda.

Cara Setting Path Java, Compile, dan Run Program Java


Konfigurasi Path Java di Windows 10 (Ketika Java baru pertama kali di-install pada windows).

Set Environment variable, %PATH% :

1. Silahkan Klik Kanan pada This PC kemudian pilih “Properties”.

Gambar 1

Halaman 3
Modul Praktikum Pemrograman Dasar

2. Pilih Advance System

Gambar 2

3. Pilih “Environment Variable”

Gambar 3

Halaman 4
Modul Praktikum Pemrograman Dasar

4. Pada bagian “user variable for PC” silahkan klik tombol “New”

Gambar 4

5. Tulislah Variable Name “JAVA_HOME” kemudian pada variable values masukkan


path-nya : C:\Program Files\Java\jdk1.8.0_121 kemudian klik tombol “OK”

Gambar 5

6. Kemudian pada “System Variable” carilah variable “Path” kemudian masukkan path-
nya : C:\Program Files\Java\jdk1.8.0_121\bin kemudian klik tombol “OK”

Halaman 5
Modul Praktikum Pemrograman Dasar

Gambar 6

7. Setelah selesai memasukkan path silahkan PC Anda di-restart kemudian mencoba


untuk menjalan perintah pada command promt.

8. Ketik “java –version” dan apabila berhasil akan menghasilkan output sebagai berikut

Gambar 7

9. Ketika javac –version” dan apabila berhasil akan menghasilkan output sebagai berikut

Gambar 8

10. Selesai.

Setting konfigurasi dan verifikasi pada Windows 7 berbeda dengan Windows 10. Untuk
melakukan setting path java pada Windows 7 sebagai berikut :

1. Klik start kemudian klik kanan pada “My Computer” kemudian pilih “properties”
2. Pilih ”Advance”
3. Klik tombol “Environment Variable”
4. Pada bagian “user variable for PC” silahkan klik tombol “New”
5. Kemudian pada “System Variable” carilah variable “Path” kemudian masukkan path-
nya : C:\Program Files\Java\jdk1.8.0_121\bin kemudian klik tombol “OK”
6. Setelah selesai memasukkan path silahkan PC Anda di-restart kemudian mencoba
untuk menjalan perintah pada command promt.

Halaman 6
Modul Praktikum Pemrograman Dasar

7. Ketik “java –version” dan apabila berhasil akan menghasilkan output sebagai berikut
8. Ketika javac –version” dan apabila berhasil akan menghasilkan output sebagai berikut
9. Selesai.

Setelah selesai semuanya dilakukan tentunya Anda akan melakukan compiling program java
yang telah dibuat. Tentukan letak file java yang akan di-compile. Misal anda menaruh file java
pada C:\tes maka Anda harus masuk ke dalam folder tersebut. Untuk masuk ke dalam folder
tes melalui cmd maka ikuti perintah di bawah ini :

 cd c:\[folder_target]

Untuk mengetahui list folder maka perintahnya sebagai berikut :

 dir

Untuk kembali ke satu tingkat direktori perintahnya sebagai berikut :

 cd..

Bagaimana cara compile? Perintahnya sebagai berikut :

 javac [nama_file].java

Setelah di compile kemudian jalankan program java dengan cara sebagai berikut :

 java [nama_file]  ingat! Tulis nama file tanpa ada tulisan “java” dibelakangnya.

Selesai.

Halaman 7
Modul Praktikum Pemrograman Dasar

MODUL 1 – Variabel, Tipe Data, Operator


Tujuan :
Praktikan dapat mengetahui konsep pemrograman dasar dengan menggunakan java.

Materi :
1. Dasar Syntax Pemrograman Java
2. Variabel
3. Tipe Data
4. Operator

Dasar Syntax Pemrograman Java


Pada bagian ini anda akan mulai mengenal syntax-syntax yang terdapat di dalam dasar-dasar
java mulai dari struktur class, cara memberikan comment, escape karakter pada java,
menampilkan informasi di monitor, import pada java, pengenalan variabel, dan input data
dengan keyboard.

Struktur Class pada pemrograman java


Perhatikan gambar di bawah ini :

Gambar 1. 1

Pada gambar di atas merupakan gambar struktur paling dasar pada pemrograman java
dimana class [nama_kelas] harus sama dengan nama file *.java kemudian diikuti dengan void
main yang berfungsi sebagai perintah yang pertama kali akan dijalankan.

Anda lebih baik memberikan nama file yang mudah agar mudah ketika di-compile. Jika nama
file berbeda maka program java tidak akan bisa dijalankan.

Halaman 8
Modul Praktikum Pemrograman Dasar

Syarat-syarat penulisan/penamaan class java yaitu :

1. Diawali dengan huruf kapital ataupun huruf non-kapital.


2. Bila lebih dari dua kata, huruf kedua diawali dengan huruf kapital juga misal
“PertemuanSatu.java”
3. Tidak boleh mengandung spasi seperti : “Jawa Timur.java”
4. Karakter yang diperbolehkan hanya huruf di awal kata dan angka setelah huruf (jika
diperlukan).

Penjelasan perintah :

1. Class merupakan kelas yang buat oleh java.


2. Public static void main adalah method yang digunakan untuk menampilkan program
yang dijalankan ke monitor.
3. String args[] adalah method yang menerima sebuah argument array bertipe string.
Untuk “args” dapat diganti sesuka hati.

Komentar pada pemrograman java


Komentar adalah naskah program yang tidak akan diproses oleh compiler. Pada saat proses
kompilasi berlangsung, teks program yang ada dalam file java akan diabaikan oleh compiler.
Walaupun seperti itu, namu komentar tersebut tetap merupakan bagian dari class java.

Kolom komentar akan banyak digunakan/dibutuhkan ketika program yang telah dibuat telah
masuk dalam skala besar dan kompleks.

Tiga alasan mengapa perlu adanya komentar :

1. Dokumentasi
2. Debugging
3. Maintenance

Karakter “//” digunakan untuk mengawali penulisan komentar hanya dalam satu baris.
Contoh :

Karakter “/*” digunakan untuk mengawali penulisan komentar satu baris atau lebih kemudian
diakhiri dengan “*/”.

Halaman 9
Modul Praktikum Pemrograman Dasar

Contoh :

Gambar 1. 2

Variabel
Variabel digunakan untuk menampung data yang ingin Anda simpan. Cara penulisannya
adalah sebelah kiri tuliskan tipe data kemudian diikuti dengan nama variabelnya. Variabel
dapat bertipe lokal ataupun global yang disesuaikan dengan kebutuhan program.

Contohnya:

 String nama;

Untuk mengisi nilai dari variabel seperti ini :

 String nama = “Zayed Elfasa”;

Untuk mengisi variabel seperti ini :

Gambar 1. 3

Halaman 10
Modul Praktikum Pemrograman Dasar

Tipe Data
Tipe data bisa dikatakan sebagai sifat dari suatu variabel. Sebuah variabel tidak bisa
menyimpan lebih dari satu jenis tipe data.

Secara umum tipe data memiliki tiga jenis yang dikenal oleh komputer

 Numerik yaitu data yang berbentuk bilangan, baik bilangan bulat maupun bilangan
pecahan. Misalnya double, int, float.
 Karakter yaitu data yang berbentuk karakter tunggal atau deretan karakter.
 Logika yaitu data yang berbentuk status benar atau salah.

Java mengenal dua jenis data :

 Tipe data primitif yaitu tipe data yang diadopsi dari tipe data klasik. Tipe data ini
diadopsi dari berbagai bahasa pendahulu java yaitu C++ dan pascal.
 Tipe data objek yaitu tipe data berbentuk class yang merupakan ciri khas dari
pemrograman berorientasi objek. Banyak dari tipe data ini yang diselesaikan untuk
mendukung operasional data primitive.

Tabel dibawah ini akan menjelaskan bagaimana tipe data dan rentang nilainya yang nantinya
dapat dipergunakan sesuai dengan kebutuhan programmer dan user nantinya.

Tabel 1. 1

Jenis Data Deskripsi Ukuran Minimum Maksismum


Boolean Hanya 1-bit
Berisi benar
atau salah
Char Karakter 16-bit
Unicode
Byte Bilangan 8-bit -127 128
bulat
Short Bilangan 16-bit -32768 32767
bulat
Int Bilangan 32-bit -2147483648 2147483647
bulat

Halaman 11
Modul Praktikum Pemrograman Dasar

Jenis Data Deskripsi Ukuran Minimum Maksismum


Long Bilangan 64-bit -9223372036854775808 9223372036854775807
bulat
Float Bilangan riil 32-bit 1.40129846432481707e-45 3.40282346638528860e+38
Double Bilangan riil 64-bit 4.94065645841246544e- 1.79769313486231570e+308
324

Operator
Operator digunakan untuk melakukan operasi sejumlah operand yang disesuaikan dengan
tipe data.

Berikut ini adalah beberapa contoh operator pada java yang sering digunakan :

Tabel 1. 2

Operator Hasil
+ Penjumlahan
- Pengurangan
* Perkalian
/ Pembagian
% Modulus
++ Increment
-- Decrement
+= Persamaan penjumlahan
-= Persamaan pengurangan

Tabel 1. 3

Operator Hasil
&& AND
|| OR
! NOT

Halaman 12
Modul Praktikum Pemrograman Dasar

Tabel 1. 4

Operator Hasil
== Sama dengan
!= Tidak sama dengan
> Lebih besar dari
< Lebih kecil dari
>= Lebih besar dari atau sama dengan

Konversi Tipe Data


Konversi digunakan untuk memproses suatu tipe data tertentu menjadi tipe data yang lain.
Misalnya data string akan diproses sebagai data numeric.

Proses konversi tipe data dibagi menjadi dua cara konvensional :

1. Proses konvensional
Proses konvensional dilakukan melalui class yang disediakan untuk tipe data yang akan
diproses. Class ini menyediakan method khusus yang bertugas mengkonversi data dari
tipe lain menjadi data dengan tipe yang ditanganinya. Sebagai contoh method
Integer.parseInt(String) digunakan untuk mengkonversi data String menjadi Int.

Contohnya :

Gambar 1. 4

Halaman 13
Modul Praktikum Pemrograman Dasar

Hasilnya seperti ini :

Gambar 1. 5

2. Type Casting
Type casting digunakan dengan cara memaksa perubahan dari tipe data yang satu ke
tipe data yang diinginkan. Jika yang mengalami type-casting adalah variabel, maka
data aslinya tetap tersimpan dengan tipe asal meskipun ketika akan diproses data
tersebut berubah tipe.
Contohnya :

Gambar 1. 6

Maka hasilnya seperti ini :

Halaman 14
Modul Praktikum Pemrograman Dasar

Gambar 1. 7

Proses type-casting pada gambar di atas terlihat pada bagian (double)a/b yakni data
yang terlibat adalah variabel a dan b bertipe integer akan tetapi menjelang proses
pembagian dilakukan, isi variabel a diubah saat menjadi double, sehingga hasil akhir
yang ditampilkan ke layar menjadi tipe pecahan.

Menampilkan Data ke Layar


Java menyediakan dua perintah untuk menampilkan data ke layar :

1. Perintah “System.out.println(“Hello world”); akan mencetak ke layar lalu posisi


kursor akan berpindah ke bawah.
2. Perintah “System.out.print(“Hello world”); akan mencetak ke layar lalu posisi
kursor akan tetap di sebelah kanan.
Contohnya :

Gambar 1. 8

Maka hasilnya sebagai berikut :

Gambar 1. 9

Untuk melakukan penggabungan kata dengan kata yang lainnya maka menggunakan tanda
“+”. Contoh :

Halaman 15
Modul Praktikum Pemrograman Dasar

 System.out.print("Saya Berusia " + 21 + " tahun");

Escape Character pada Java


Escape character adalah karakter yang memiliki fungsi khusus jika dicetak. Setiap Character
didahului oleh katakter backslash “\”.

Berikut ini adalah tabel sejumlah Escape Character.

Tabel 1. 5

Kode Keterangan
\b Backspace
\f Form Feed
\n Baris Baru
\r Carriage Return
\t Tabulasi
\` Single Quote
\” Double Quote
\\ Garis Miring
\ddd Karakter Oktal
\xdd Heksadesimal

Pengenalan import di java


Java memiliki perintah atau method yang tidak bisa kita panggil dengan cara otomatis tanpa
mengambil dulu dari library Java yang lain dengan kata lain Anda perlu untuk import library
Java agar dapat mengambil perintah atau method yang terdapat di dalamnya.

Pembuatan library contohnya sebagai berikut :

 import java.io.*;

Dimana import tersebut diletakkan pada paling atas file java.

Tidak ada batasan berapa jumlah yang dapat dipakai tetapi yang perlu diketahui adalah
tulislah library bila hanya benar-benar dibutuhkan. Jika tidak dibutuhkan, maka hapus library
tersebut.

Halaman 16
Modul Praktikum Pemrograman Dasar

Inputan dari keyboard dan Error Handling menggunakna throws Exception


Sebuah program tidak akan lengkap apabila tidak memiliki inputan dari keyboard misalnya.
Pada kesempatan ini Anda akan mempelajari perintah/method untuk menangkap inputan
dari keyboard. Perintah/method yang digunakan harus import library “import java.io.*” dan
menggunakan objek BufferefReader. Inputan menggunakan BufferedReader perlu
menggunakan error handing IOException atau dengan cara try catch yang akan dijelaskan di
bawah.

Halaman 17
Modul Praktikum Pemrograman Dasar

Contoh penggunaan BufferedReader :

Gambar 1. 10

Dari gambar tersebut dapat disimpulkan beberapa langkah yang dilakukan untuk menangkap
inputan dari keyboard yaitu :

 Buatlah terlebih dahulu sebuah file input.java dan membuat sebuah class input
beserta strukturnya dasarnya.
 Jika Anda menggunakan bufferedReader maka anda perlu import library yaitu “import
java.io.*;”

 Kemudian di public static void main ditambah kan kode throws IOException yang
digunakan untuk melempar kesalahan/error dalam input-output data.
 Mendefinisikan sebuah objek BufferedReader untuk melakukan proses pembacaan
data, contohnya :
 BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

Membuat sebuah variabel untuk menampung inputan keyboard contohnya kali ini memasukkan
sebuah nama bertipe data String yang dengan cara

 String nama;

Inputan Keyboard ditangkap dengan perintah “nama = br.readLine();” setelah sebelumnya


didahului dengan “System.out.print(“Nama : “);” yang berfungsi untuk menjadi label
penanda.

Halaman 18
Modul Praktikum Pemrograman Dasar

Outputnya sebagai berikut :

Gambar 1. 11

Error Handling menggunakan Try Catch {...}


Inputan dari keyboard menggunakan try catch berbeda dengan menggunakan throws
IOException. Try catch digunakan untuk inputan yang pada umumnya non huruf. Contohnya
user diminta untuk menginputkan usianya dan menginputkan harus berupa angka. Jika
inputan yang diberikan bukan angka maka program akan menampilkan pesan bahwa inputan
harus berupa angka.

Untuk mengatasi error tersebut Anda dapat menggunakan try catch seperti contohnya
dibawah ini :

Gambar 1. 12

Penjelasan :

 Langkah pertama membuat file dengan nama input.java setelah itu membuat struktur
dasar class input.

Halaman 19
Modul Praktikum Pemrograman Dasar

 Mendefinisikan sebuah objek BufferedReader untuk melakukan proses pembacaan


data.
 Kemudian di dalam blok try{...} dibuat sebuah instruksi untuk memasukkan inputan
keyboard guna ditampung dalam variabel bertipe angka (int) yang bernama usia.
 Perintah System.out.println(“Usia saya adalah “ + usia + “ tahun”); akan
dijalankan apabila inputan yang diberikan adalah angka.
 Contoh Outpnya seperti berikut :

Gambar 1. 13

 Sedangkan jika inputan yang diberikan bukan merupakan angka maka akan muncul
pesan hasil dari instruksi
Catch {
System.out.println(“Inputan Harus Berupa Angka”);
}

Halaman 20
Modul Praktikum Pemrograman Dasar

MODUL 2 – Percabangan IF, IF-ELSE, SWITCH-CASE


Tujuan :
Praktikan dapat mempraktikkan konsep percabangan dan dapat mengimplementasikan
dalam program dengan menggukan if-else dan switch-case

Materi :
1. Perintah IF
2. Perintah IF-ELSE
3. Perintah Switch-Case
4. Operator

Pada pembuatan program tidak hanya membuat pernyataan yang dijalankan secara urut dari
baris demi baris sampai mendapatkan output. Pembuatan program pastinya akan
menemukan suatu kasus yang membutuhkan kondisi-kondisi tertentu. Program yang baik
memerlukan syarat khusus untuk menjalankan suatu pernyataan. Oleh karena itu
percabangan pada suatu program sangat dibutuhkan untuk menyelesaikan solusi.

Perintah IF
Pernyataan IF merupakan pernyataan percabangan yang paling umum digunakan untuk
menyatakan percabangan. Ada dua macam pernyataan if yaitu pernyataan if tunggal dan if
majemuk.

Perintah IF yang paling umum atau paling dasar digunakan ada pada syntax dibawah ini :

if(kondisi) {
Statement here;
}

1. Perintah if tunggal
Bentuk umum dari pernyataan if tunggal dapat dilihat pada contoh syntax di bawah ini :
if (Kondisi_1 [&& / || Kondisi_2]) {
// intruksi jika hasil logika bernilai true;
}

Halaman 21
Modul Praktikum Pemrograman Dasar

Blok instruksi yang terletak setelah if akan dikerjakan apabila kondisi tersebut bernilai true.
Hasil logika bisa dibentuk dari satu kondisi hingga bermacam-macam kondisi yang diikuti
dengan operator. Tanda kurung kurawal buka dan tutup digunakan untuk menjalankan
sejumlah blok perintah yang ada di dalamnya. Jika hanya satu baris perintah saja, maka if
tersebut bisa ditulis tanpa tanda kurung kurawal.

2. Perintah If majemuk
Perintah if majemuk digunakan apabila hasil logika blok pertama yang berjalan tidak
bernilai true kemudian perintah if akan langsung menuju kondisi berikutnya sampai
akhirnya kondisi if bernilai true. Contoh pernyataan if seperti syntax dibawah ini :
if (Kondisi_1 [&& / || Kondisi_2]) {
// intruksi jika hasil logika bernilai false;
}
else {
// intruksi jika hasil logika bernilai true;
}

Kata kunci else merupakan penghubung antar pernyataan if yang akan diseleksi dalam satu
tingkat. Jika hasil logika dari kondisi_1 dan kondisi_2 menghasilkan nilai false maka instruksi
yang berada diantara kurung kurawal setelah else yang akan dijalankan.

Contoh program menggunakan if majemuk ada di bawah ini :

Gambar 2. 1

Halaman 22
Modul Praktikum Pemrograman Dasar

Pada gambar di atas adalah program untuk mencetak apakah nilai dari variabel angka adalah
bilangan genap ataukah bilangan ganjil. Apabila angka habis dibagi menjadi dua maka angka
tersebut adalah bilangan genap dan apabila angka tidak habis dibagi menjadi dua maka angka
tersebut adalah bilangan ganjil.
Bentuk lain dari pernyataan if adalah susunan if secara bertingkat. Di dalam blok instruksi if
dapat dimasukkan instruksi if yang baru. Keberadaan blok if terdalam ditentukan oleh blok if
di luarnya. Contoh salah satu model susunan if secara bertingkat dapat dilihat pada contoh
syntax di bawah ini :
if (Kondisi_1) {
if (Kondisi_2) {
// intruksi jika hasil logika bernilai false;
}
else {
// intruksi jika hasil logika bernilai true;
}
}
else {
if (Kondisi_3) {
// intruksi jika hasil logika bernilai false;
}
else {
// intruksi jika hasil logika bernilai true;
}
}

Perintah Switch-Case
Perintah switch-case memungkinkan untuk melakukan sejumlah tindakan berbeda terhadap
sejumlah kemungkinan nilai. Pada perintah switch-case terdapat perintah break yang berguna
untuk keluar dari kondisi pada case. Meskipun perintah ini hampir sama dengan if else tetapi
switch case memiliki batasan yaitu :

1. Data yang ada dalam kondisi case harus memiliki tipe data int atau char.
2. Range data yang bisa diperiksa bernilai 0 s/d 255.

Halaman 23
Modul Praktikum Pemrograman Dasar

Bentuk umum dari perintah switch case ada pada contoh syntax di bawah ini :

Switch(expresi) {
Case nilai_1:
// pernyataan 1
Break;
Case nilai_2:
// pernyataan 2
Break;
default:
// pernyataan 3
Break;
}

Case yang ada di sebelah kanan perintah switch-case adalah data yang dicocokkan dengan
expresi yang ada di dalam kurung switch. Perintah break adalah perintah untuk menyatakan
berakhirnya perintah yang ada di dalam case. Tanpa break, maka perintah akan dilanjutkan
ke bawah. Perintah default bersifat optional apabila eksekusi case nilai_1 dan case nilai_2
bernilai false maka akan masuk ke dalam default. Sebagai contoh ada di bawah ini :

Gambar 2. 2

Halaman 24
Modul Praktikum Pemrograman Dasar

Operator “?”
Operator “?” disediakan untuk menggantikan if-else yang bertujuan untuk mengisi nilai ke
dalam variabel berdasarkan kondisi tertentu. Bentuk umum penggunaan operator “?” ada di
bawah ini :
varX = kondisi? Nilai1 : nilai2;

Kasusnya misalkan menentukan apakah seseorang boleh mengambil SIM atau tidak jika umur
di atas 20 tahun.

Gambar 2. 3

Operator pembanding apabila kondisi melibatkan tipe data string


Khusus pada pemrograman java, untuk melakukan pembanding sebuah kondisi pada tipe
dara String maka diperlukan sebuah metode khusus yaitu “.equals(“isi string”)”. Contoh
program seperti di bawah ini :

Gambar 2. 4

Untuk membandingkan kondisi string dengan menghiraukan besar kecil huruf dapat
menggunakan :

 equalsIgnoreCase(“isi string”);

Halaman 25
Modul Praktikum Pemrograman Dasar

MODUL 3 – Perulangan FOR, DO-WHILE, WHILE


Tujuan :
Praktikan bisa memahami konsep perulangan dan dapat mengimplementasikan dalam
program dengan menggunakan perintah for, while, dan d0-while, serta dapat menentukan
perintah perulangan yang paling tepat untuk memberikan solusi pada program.

Materi :
1. For
2. Do-While
3. While-Do

Dalam bahasa pemrograman ada yang disebut dengan istilah “looping” dimana tujuan dari
looping ini adalah perintah untuk mengulang perintah yang dibuat dalam satu blok tanpa
harus mengetik syntax berulang-ulang.

Pada pemrograman java looping/perulangan dibagi menjadi tiga macam yaitu :

1. Perulangan dengan For


2. Perulangan dengan While
3. Perulangan dengan Do..While

Perulangan dengan For


Perintah for digunakan untuk mengendalikan proses perulangan perintah yang ada di dalam
satu blok yang sudah ditentukan kondisi perulangannya. Bentuk dari penggunaan for seperti
ini :

for(inisialisasi;kondisi;penaikan/penurunan) {
// pernyataan yang diinginkan
}

Penjelasan dari perintah syntax diatas adalah

 Bagian inisialisasi digunakan untuk memberikan nilai pada variabel yang digunakan
untuk mengendalikan perulangan.
 Bagian kondisi digunakan untuk mengendalikan seberapa banyak kondisi diulang.
 Bagian penaikan/penurunan digunakan untuk menaikkan atau menurunkan dari nilai
variabel inisialisasi.

Halaman 26
Modul Praktikum Pemrograman Dasar

Contoh syntax yang digunakan dalam pemrograman java sebagai berikut :

Gambar 3. 1

Penjelasan program sebagai berikut :

 Int i = 0 adalah deklarasi inisialisasi variabel untuk melakukan perulangan yang dimulai
dari nilai 1.
 i <= 5 adalah banyak variabel i untuk melakukan perulangan.
 i++ adalah variabel dijumlahkan secara berkala sebanyak 1 sampai kondisi i = 5 telah
terpenuhi.

Dalam satu looping/perulangan tidak menutup kemungkinan akan ada looping/perulangan


lagi di dalamnya. Istilah looping di dalam looping adalah “nested loop”.

Perulangan dengan while


Pernyataan while berguna untuk melakukan proses yang berulang yang dimana kondisinya
belum diketahui sampai mana akan berulang. Maksudnya adalah pernyataan ini akan
dijalankan secara terus-menerus selama kondisi bernilai true. Agar kondisi bernilai false maka
di dalam blok nantinya akan diberikan nilai tertentu sehingga looping nantinya akan bernilai
false. Contohnya dalam bahasa pemrograman java sebagai berikut :

Gambar 3. 2

Halaman 27
Modul Praktikum Pemrograman Dasar

Poin penjelasan sama dengan penjelasan pada for. Sama halnya juga dengan for, penggunaan
looping while di dalam while juga bisa terjadi tergantung pada kasus yang diberikan.

Perulangan dengan do..while


Do..while hampir sama dengan while. Akan tetapi pada pernyataan do..while dilakukan
pengecekan terhadap suatu kondisi setelah melakukan perintah-perintah yang ada di dalam
blok. Bedanya perintah do..while minimal dijalankan satu kali lebih dahulu. Looping akan
behenti apabila looping while telah memenuhi kondisi. Syntaxnya sebagai berikut :

do {
// pernyataan-pernyataan dalam blok..
} while (kondisi);

Contoh pada pemrograman javanya adalah sebagai berikut :

Gambar 3. 3

Halaman 28
Modul Praktikum Pemrograman Dasar

MODUL 4 – Array 1 Dimensi dan 2 Dimensi


Program yang kompleks memerlukan banyak variabel sebagai inputannya. Ada kasus
pemrograman dimana sebuah program memiliki banyak variabel sehingga Anda harus
mendeklarasikan sejumlah variabel yang dibutuhkan oleh program.

Tetapi apakah yang terjadi apabila sebuah kasus program membutuhkan lebih dari 100 ? Atau
bahkan ribuan variabel? Apakah Anda akan mendeklarasikan ratusan atau bahkan ribuan
variabel tersebut?

Bahasa pemrograman java merupakan bahasa pemrograman modern yang menawarkan


sebuah konsep dimana Anda bisa menyelesaikan solusi pendeklarasian variabel dalam jumlah
besar. Konsep tersebut dinamakan konsep Array. Array merupakan sejumlah variabel
berbeda tetapi memiliki nama variabel yang sama. Perbedaan antara variabel yang sama pada
array adalah indeksnya. Array yang dipelajari pada modul ini terdiri dari dua macam yaitu
array satu dimensi dan dua dimensi. Konsep dasar dari array dapat dilihat pada gambar
berikut ini :

Gambar 4. 1

Indeks adalah sebuah angka yang menyatakan urutan elemen pada suatu variabel array 1
dimensi. Data merupakan nama variabel array. Elemen array merupakan isi dari array.

Perlu diketahui bahwa indeks array selalu dimulai dari indeks ke-0, sehingga nomor indeks
bagi elemen terakhir adalah sebesar (N-1), dimana N adalah jumlah total elemen.

Pendeklarasian Array 1 dimensi


Pendeklarasian array memiliki beberapa cara yaitu :

Halaman 29
Modul Praktikum Pemrograman Dasar

Mendeklarasikan variabel array 1 dimensi tanpa menyebutkan berapa jumlah elemen


yang diperlukan.
int angka[];

Variabel angka pada gambar dideklarasikan dalam bentuk array 1 dimensi bertipe Int. Akan
tetapi variabel ini belum bisa digunakan karena perlu diberikan jumlah array yang dibutuhkan
seperti ini :

int angka[] = new int[5];

Artinya Anda memesan 5 elemen array untuk variabel 1 dimensi.

Mendeklarasikan variabel array 1 dimensi secara otomatis beserta isi variabel tersebut
Anda tidak langsung menyebutkan sejumlah elemen yang dipesan akan tetapi Anda langsung
mengisi data ke dalam array tersbut.

Contohnya :

int angka[] = {2,3,5,7,9,3,8,5,8,5,8,4,78,9};

Input Data ke dalam Array 1 dimensi


Cara pertama untuk mengisi data array seperti contoh di atas.

Cara kedua yaitu dengan cara mengisi elemen array satu-persatu secara terpisah antara
indeks ke-0 ke indeks yang lainnya.

Contohnya seperti di bawah ini :

Gambar 4. 2

Untuk contoh di atas masih memiliki range yang sedikit. Tetapi bagaiman jika data yang
dibutuhkan 50x dan data nya tidak tentu? Anda bisa menginputkan melalui keyboard seperti
cara dibawah ini :
Halaman 30
Modul Praktikum Pemrograman Dasar

Gambar 4. 3

Cara Mencetak Array 1 dimensi


Apabila anda ingin mencetak isi dari array pada java anda perlu menggunakan konsep looping
untuk mencetaknya. Caranya adalah sebagai berikut :

Gambar 4. 4

Penjelasan :
Pertama kali tentunya Anda perlu mendeklarasikan array.
int angka[] = new int[5];

Halaman 31
Modul Praktikum Pemrograman Dasar

Setelah di deklarasikan kemudian array tersebut diisi satu persatu


angka[0] = 1;

angka[1] = 7;

angka[2] = 4;

angka[3] = 7;

angka[4] = 2;

angka[5] = 9;

kemudian untuk mencetak semua indeks anda perlu menggunakan konsep looping agar
semua indeks tercetak.
for (int i = 0;i<angka.length ;i++ ) {

System.out.println("Data ke - " + i " isinya " + angka[i]);

Pendeklarasian Array 2 dimensi


Kompleksitas array 2 dimensi lebih rumit daripada array 1 dimensi. Konsepnya dimana di
dalam satu elemen variabel array tidak hanya memiliki satu nilai tetapi memiliki banyak nilai
dalam satu elemen variabel array. Mudahya, array 2 dimensi menyatakan 2 bentuk yaitu
menyatakan baris dan menyatakan kolom. Penjelasan pada gambar sebagai berikut :

Gambar 4. 5

N adalah nilai yang menyatakan jumlah baris dari array, sedangkan M menyatakan jumlah
kolom dari array. Indeks array 2 dimensi sama dengan array 1 dimensi dimulai dari indeks ke-
0.

Halaman 32
Modul Praktikum Pemrograman Dasar

Mendeklarasikan variabel array 2 dimensi tanpa menyebutkan berapa jumlah elemen


yang diperlukan
Cara yang ini dapat dicontohkan sebagai berikut :

int angka[][] = new int[5][3];

Mendeklarasikan variabel array 2 dimensi secara otomatis isinya


Cara yang ini dapat dicontohkan sebagai berikut :

int angka[][] = {{5,3,6},{6,4,6},{3,6,2},{8,6,2},{3,6,1}};

Dua contoh array 2D ini bertipe int dengan ordo baris sebanyak 5 dan kolom sebanyak 3.

Untuk contoh yang ke-2 tidak harus memiliki kolom yang sama banyak untuk setiap barisnya.
Pengguna diberikan kebebasan untuk mengisi banyak kolom yang dibutuhkan contohnya
sebagai berikut :

int angka[][] = {{5,3,6,4},

{6,4,6},

{3,6,},

{8,6,2},

{3,6,1,6,7,2}};

Perintah length pada array 2 dimensi


Sifat array 2d yang memiliki baris dan kolom, perintah length pada array 2d dimensi memiliki
dua makna :

1. Menyatakan baris dari array.


2. Menyatakan banyaknya kolom untuk baris tertentu.

Pada syntax java contohnya sebagai berikut :

Gambar 4. 6

Halaman 33
Modul Praktikum Pemrograman Dasar

Penjelasan :

1. Pertama tama Anda perlu mendeklarasikan array 2 dimensi seperti ini :

int angka[][] = {{5,3,6,4},{6,4,6},{3,6},{8,6,2},{3,6,1,6,7,2}};

2. Kemudian Anda menampilkan banyaknya baris seperti ini :

System.out.println("Banyaknya baris dari array 2D variabel array angka adalah


= " + angka.length);

3. Kemudian Anda menampilkan banyak kolom pada baris indeks ke-2 seperti ini :

System.out.println("Panjang / jumlah kolom dari baris ke-3 dari variabel array


2D adalah = " + angka[2].length);

Input Data ke dalam Array 2D


Prinsip untuk meng-input-kan data ke dalam array 2D hampir sama dengan array 1D.
Contohnya sebagai berikut :

Gambar 4. 7

Akan tetapi bagaimana cara untuk meng-input-kan data apabila data array 2D memiliki data
hingga 1000 data? Maka Anda perlu meng-input-kan melalui keyboard menggunakan konsep
nested-looping yang sama dengan konsep array 1D.

Halaman 34
Modul Praktikum Pemrograman Dasar

Gambar 4. 8

Penjelasan :

 Pertama Anda perlu untuk mendeklarasikan arrray 2D.


int angka[][] = new int[2][3];
 Kemudian Buatlah objek inputan untuk menginputkan data menggunakan keyboard.
BufferedReader br = new BufferedReader(new InputStreamReder(System.in));
 Kemudian terapkan konsep nested loop dimana looping yang pertama untuk
menginputkan baris dari array.
for (int i=0; i<angka.length; i++) { ... }
 Untuk looping yang ke dua digunakan untuk menginputkan kolom dari array.
for (int j=0; j<angka[i].length; j++) {
System.out.print("Masukkan data array baris ke - " + i + " dan kolom
ke " + j);
angka[i][j] = Integer.parseInt(br.readLine());
}

Halaman 35
Modul Praktikum Pemrograman Dasar

Cetak Array 2 Dimensi


Prinsip untuk mencetak array 2D hampir sama dengan array 1D tetapi bedanya adalah
mencetak array 2D mencetak dengan menggunakan konsep nested-loop. Contohnya sebagai
berikut :

Gambar 4. 9

Halaman 36
Modul Praktikum Pemrograman Dasar

MODUL 5 – Function dan Procedure


Tujuan :
Praktikan dapat menggunakan prosedur dan fungsi dalam suatu program serta
menerapkannya dengan benar pada kasus.

Materi :
 Pengantar Sub Program
 Sub Program berjenis prosedur
 Sub Program berjenis fungsi
 Sub program dengan parameter berupa variabel biasa
 Sub program dengan parameter berupa variabel array
 Sub program yang ditulis ulang dengan function overloading
 Sub program yang dikerjakan berulang-ulang (recursive function)

Pengantar Sub Program


Kasus-kasus pada program yang saat ini banyak proses-proses yang dilakukan secara
berulang-ulang. Tentunya anda tidak perlu menulis ulang syntax untuk membuat sebuah
proses untuk dikerjakan di proses-proses yang berbeda. Bahasa pemrograman java yang
modern tentunya memiliki fitur untuk membuat sub-proses untuk menyelesaikan masalah di
atas.

Sub Program berjenis prosedur


Pada dasarnya sub-program pada pemrograman java dibagi menjadi dua yaitu sub-program
yang dapat mengembalikan nilai dan sub-program yang tidak mengembalikan nilai. Sub-
program yang tidak mengembalikan nilai disebut dengan “procedure” dan sub-program yang
mengembalikan nilai disebut dengan “function”.

Halaman 37
Modul Praktikum Pemrograman Dasar

Contoh dari procedure dapat dilihat pada contoh syntax berikut :

Gambar 5. 1

Penjelasan :

1. Pada bagian bawah void main terdapat “private static void garis()” dimana hal tersebut
adalah prosedur. Prosedur tersebut akan dipanggil berulang-ulang pada void main().
Prosedur tersebut memanggil perintah untuk menampilkan “====================”
secara berulang-ulang.
private static void garis() {
System.out.println("===================================");
}
2. Cara memanggil prosedur adalah menuliskan ulang nama prosedur diikuti dengan tanda
titik koma “;”. Contohnya seperti di bawah ini :
garis();  case sensitive sehingga perhatikan baik-baik besar kecil
hurufnya.

Sub Program berjenis fungsi


Function atau dalam bahasa indonesia disebut dengan fungsi. Fungsi ini akan mengembalikan
suatu nilai bertipe int, string, double, dan tipe data lainnya ataupun mengembalikan objek
(jika program telah kompleks). Contoh penggunaan sub-program dalam bentuk fungsi
contohnya sebagai berikut :

Halaman 38
Modul Praktikum Pemrograman Dasar

Gambar 5. 2

Penjelasan :

1. Pada bagian “private static int tambah()” merupakan fungsi untuk


mengembalikan nilai dalam bentuk tipe data “int”.
2. Cara memanggil function cukup berbeda dengan cara memanggil prosedur karena ketika
Anda memanggil function anda harus menampung dulu dalam sebuah variabel atau
langsung dipanggil ketika ingin menampilkan data.

Sub program dengan parameter berupa variabel biasa


Ada kalanya ketika Anda ingin membuat fungsi memerlukan parameter. Sehingga sebuah
fungsi ataupun prosedur juga bisa dimasukkan parameter. Parameter adalah data yang
dikirim ke dalam fungsi atau prosedur. Parameter bisa dalam bentuk tipe data ataupun objek

Halaman 39
Modul Praktikum Pemrograman Dasar

yang disesuaikan dengan kebutuhuan programmer. Contoh parameter dalam pemrograman


java sebagai berikut :

Gambar 5. 3

Sub program dengan parameter berupa variabel array


Selain mengirim parameter dalam bentuk tipe data juga bisa kirim parameter dalam bentuk
array. Contohnya sebagai berikut :

Halaman 40
Modul Praktikum Pemrograman Dasar

Gambar 5. 4

Sub program yang ditulis ulang dengan function overloading


Fungsi overloading adalah suatu fungsi yang bisa dideklarasikan lebih dari satu kali tetapi
memiliki parameter yang berbeda. Nantinya jika ada kasus program yang membutuhkan
fungsi yang sama tetapi memiliki parameter yang berbeda dapat menggunakan fungsi
overloading ini. Contoh pada pemrograman java sebagai berikut :

Halaman 41
Modul Praktikum Pemrograman Dasar

Gambar 5. 5

Sub program yang dikerjakan berulang-ulang (recursive function)


Fungsi yang bersifat rekursif adalah suatu fungsi dimana salah satu baris perintah pada suatu
program memanggil fungsi yang sama dengan dirinya. Contohnya sebagai berikut :

Gambar 5. 6

Halaman 42
Modul Praktikum Pemrograman Dasar

MODUL 6 – Model-View-Controller MVC Terstruktur


Tujuan :
Praktikan dapat mempraktikkan penggunaan mode-view-controller pada pemrograman
terstruktur.

Materi :
 Model-View-Controller terstrukur

Pemrograman memiliki banyak perkembangan pada beberapa tahun belakangan ini.


Beberapa hal yang perlu diketahui pada perkembangan pemrograman adalah pola dari
pengembangan software yang banyak orang menyebutnya model-view-controller. Pada bab
ini akan dijelaskan cara menggunakan model-view-controller (MVC) pada pemrograman
terstrukur.

Model
Model pada pemrograman terstrukur dapat mempresentasikan dari proses-proses yang akan
dilakukan di dalam function ataupun procedure.

Contoh dari model pada pemrograman terstrukur yaitu proses untuk penjumlahan,
pengurangan, pembagian, perkalian, proses pengurutan angka dan lain-lain dimana proses
tersebut dikemas dalam sebuah fungsi atau prosedur.

View
View pada pemrgoraman terstrukur mempresentasikan tampilan dari aplikasi. View pada
pemrograman terstrukur langsung menunjukkan dari tampilan program itu sendiri.

Contoh dari view pada terstruktur adalah menampilkan menu-menu yang dibutuhkan untuk
pengguna yang kemudian dapat dieksekusi.

Controller
Controller pada pemrograman terstrutur mempresentasikan hubungan antara view dengan
model sehingga apabila sebuah view ingin memanggil fungsi atau prosedur harus melalui
controller.

Halaman 43
Modul Praktikum Pemrograman Dasar

Contoh dari controller adalah mengakses sebuah fungsi atau prosedur yang akan dieksekusi
di dalam view.

Untuk lebih jelasnya hubungan antara model-view-controller pada pemrograman terstrukur


ada pada gambar di bawah ini :

Model:

Operasi Matematika, Insert,


Update, Delete
View :

Melihat tampilan.

Controller :

Mengambil data yang


dibutuhkan untuk dikirim ke
model

Gambar 6. 1

Halaman 44
Modul Praktikum Pemrograman Dasar

MODUL 7 – Class, Object & Constructor


Tujuan :
Praktikan dapat mempraktikkan pembuatan class dan object pada bahasa pemrograman java.

Materi :
 Class
 Object
 Constructor

Sebelum masuk Class dan Object, banyak orang yang memberi istilah pada pemrograman
ini yang disebut OOP (Object Oriented Programming) atau dalam bahasa Indonesia
“Pemrograman Berorientasi Objek”. Sebagai bahasa pemrgoraman yang modern, bahasa
pemrograman java hadir sebagai yang dapat mengimplementasikan OOP dalam
perkembangan software. OOP sendiri dalam pengertian mudahnya merupakan cara untuk
membungkus sebuah objek yang mana di dalamnya terdapat identitas, sifat, dan keinginan.
Misal manusia, memiliki identitas dalam bentuk nama, umur, jenis kelamin, berat badan dan
lain-lain. Kemudian manusia juga memiliki sifat seperti membaca, menulis, ataupun bermain
bola dan lain lain.

Pada pengertian aslinya bahwa OOP adalah pemrograman berorientasi objek dimana
dalam objek terdapat atribut dan operasi (method) yang dapat diakses oleh objek lainnya
sesuai dengan kebutuhan bahkan ada juga objek yang hanya boleh digunakan oleh objek itu
sendiri.

Setiap objek memiliki nilai identifikasi dan sifat yang berbeda-beda namun tetap dapat
dikelompokkan dalam bentuk atribut dan method kemudian diberi nama “Class”.

Class
Class adalah sekumpulan atribut dan method yang menggambarkan ciri-ciri objek secara
umum. Struktur class dalam bahasa java sebagai berikut :

Halaman 45
Modul Praktikum Pemrograman Dasar

Gambar

Penjelasan :

 nama_kelas harus sesuai dengan nama file java.


 Misal “class manusia” berarti nama filenya adalah manusia.java

Atribut
Atribut bisa diartikan sebuat sifat yang melekat pada sebuah objek. Pada bahasa java dapat
dituliskan sebagai berikut :

[access_modifier] [tipe_data] [nama_variabel] = [value];

Penjelasan :

 [access_modifier] digunakan untuk memberi batasan hak akses dari atribut


maupun method.

 [tipe_data] digunakan untuk menuliskan tipe data.


 [nama_variabel] identifier dari sebuah variabel.
 Contoh : Private String warna = “hijau”;

Method
Method merupakan fungsi-fungsi yang digunakan untuk manipulasi nilai-nilai pada atribut
dan/atau untuk melakukan hal-hal yang dapat dilakukan oleh objek itu sendiri. Method
dengan arti lain bahwa method berisi sekumpulan program yang telah terbungkus. Method
memudahkan dalam hal pemrograman karena hanya perlu memanggil nama methodnya saja
selain itu pekerjaan jadi lebih singkat, tidak boros, praktis, dan efisien dalam menuliskan
program. Contohnya setWarna(string warna), getWarna().

Secara umum method dibagi menjadi dua macam yaitu method yang mengembalikan nilai
dan tidak mengembalikan nilai. Method yang tidak mengembalikan nilai disebut dengan
prosedur dan method yang mengembalikan nilai yaitu fungsi (function).

Contoh dari pembuatan method dapat dilihat seperti syntas di bawah ini :
Halaman 46
Modul Praktikum Pemrograman Dasar

[access_modifier] [tipe_data] [nama_method]([parameter]) {

// isi method

Penjelasan :

 [access_modifier] digunakan untuk memberi batasan hak akses dari class.


 [tipe_data] menjelaskan tipe data dari method, apakah itu void, String, int, dan
lainnya.
 [nama_method] menjelakan nama dari sebuah method atau alias yang akan
dipanggil ketika method ingin digunakan.
 ([parameter]) menjelaskan isi parameter dari method yang dibuat. Bisa diisi
dengan paramter, bisa juga tidak diisi.

This
This digunakan untuk membedakan variabel yang dideklarasikan pada paramter di dalam
method dengan variabel yang dideklarasikan pada class.

Contohnya :

this.warna = warna;

Penjelasan :

 this.warna merupakan variabel yang berasal dari class.


 warna merupakan parameter yang ada di method.

Access Modifier
Seperti yang telah dijelaskan di atas, access modifier digunakan untuk memberi batasan hak
class maupun method. Terdapat empat akses yang tersedia pada java yaitu

default, public, protected, dan private.

Halaman 47
Modul Praktikum Pemrograman Dasar

Tabel di bawah ini akan menjelaskan hak akses dari access modifier.

Aksesbilitas Private Default Protected Public


Dari class yang sama Ya Ya Ya Ya
Dari Package yang sama - Ya Ya Ya
Dari package yang berbeda (subclass) - - Ya Ya
Dari package yang berbeda (non subclass) - - - Ya

Instance Of Class
Instance of class merupakan objek yang diinstan atau dibuat dari class. Berikut adalah contoh
syntax dari instance of class :

[nama_class] [nama_objek] = new [nama_class]([parameter])

Untuk contoh penggunaan instance of class akan dijelaskan pada contoh soal di bawah ini.

Contoh Soal
Buatlah sebuah objek handphone yang memiliki atribut merk, tipe, warna, dan harga
kemudian tampilkan semua detil spesifikasi dari atribut yang ada pada handphone.
Handphone tersebut memliki harga diskon sebesar 10% dan handphone tersebut memiliki
keterangan / statement tentang harga sesuai diskon.

Berdasarkan perintah di atas maka akan ada dua class yang akan kita buat. Class pertama
yaitu class handphone dan yang kedua adalah class utama. Class utama digunakan untuk
memanggil class handphone.

Contoh program yang telah selesai sebagai berikut :

Halaman 48
Modul Praktikum Pemrograman Dasar

Pada class handphone harus memiliki ketentuan sebagai berikut :

 Atribut berisi merk, tipe, warna, dan harga.


 Terdapat method setter dan getter untuk men-set nilai dan mengambil nilai dari merk,
tipe, warna, dan harga.
 Terdapat method HargaDiskon() untuk menghitung harga handphone sesudah diskon.
Diskon yang diperoleh adalah 10%.
 Terdapat method keterangan() untuk mencetak statement tentang harga handphone
sesudah diskon.

Langkah selanjutnya adalah anda perlu untuk membuat sebuah skema diagram untuk
membantu logika untuk pembuatan program. Tanda minus “-“ dilambangkan sebagai private
sedangkan tanda “+” dilambangkan sebagai public. Skema diagram berisi method dan atribut.
Berikut adalah skema diagramnya:

class Class Model

Handphone

- merk: String
- tipe: String
- warna: String
- harga: Double

+ setMerk(String) : void
+ setTipe(String) : void
+ setWarna(String) : void
+ setHarga(Double) : void
+ getMerk(String) : String
+ getTipe() : String
+ getWarna() : String
+ getHarga() : String
+ HargaDiskon() : Double
+ Keterangan() : void

Langkah kedua yaitu membuat kerangka class handphone. Contohnya seperti dibawah ini :

Halaman 49
Modul Praktikum Pemrograman Dasar

Setelah membuat class handphone, simpan file tersebut dalam bentuk handphone.java. Di
dalam class juga disediakan untuk mendeklarasikan variabel, setter, dan getter.

Setelah membuat kerangka class, maka diperlukan pendeklarasian variabel yang nantinya
digunakan sebagai tempat penyimpanan data yang bersifat sementara. Contohnya seperti
dibawah ini :

Setelah membuat variabel, maka saatnya untuk membuat setter. Hal ini bertujuan untuk set
nilai yang diperoleh dari class utama. Cara untuk membuat setter harus sesuai dengan tipe
data pada variabel yang dideklarasikan di class. Contohnya ada pada gambar di bawah ini :

Halaman 50
Modul Praktikum Pemrograman Dasar

Pembuatan method setter menggunakan sub program berjenis prosedur. Hal ini dikarenakan
data yang akan kita set, tidak terdapat umpan balik ke dalam program.

Halaman 51
Modul Praktikum Pemrograman Dasar

Ketika Anda perhatikan kembali script di atas, terdapat method setter yang ada keyword
“this”. Penggunaan keyword this akan mengacu pada variabel yang telah dideklarasikan pada
class handphone. Apabila variabel tersebut tidak diberi keyword “this” maka variabel tersebut
akan mengacu pada variabel yang dideklarasikan pada parameter method. Anda bisa
menggunakan keyword “this” atau tidak apabila ada perbedaan deklarasi nama variabel pada
class handphone dengan parameter pada method setter.

Setelah membuat method setter, maka diperlukan method getter untuk mengambil nilai dari
masing-masing variabel. Hal ini bertujuan untuk mengambil nilai dari variabel pada class
handphone yang nantinya akan dikembalikan pada class utama. Sama halnya dengan method
setter, method getter harus sesuai dengan tipe data pada variabel yang dideklarasikan di
class. Contohnya ada pada gambar di bawah ini :

Penggunaan method getter menggunakan sub program berjenis fungsi karena dibutuhkan
umpan balik (pengembalian nilai) dalam pengambilan data.

Setelah itu membuat method tambahan karena pada soal dibutuhkan method tambahan
untuk mengolah data-data yang telah di-set dan di-get ke dalam bentuk informasi. Seperti
soal yang diminta untuk menghitung dan mencetak harga handphone setelah diskon. Gambar
di bawah in contoh method tambahan :

Halaman 52
Modul Praktikum Pemrograman Dasar

Langkah selanjutnya adalah membuat class utama yang berfungsi untuk menjalankan class
yang telah dibuat.

Class utama akan ada main prosedur untuk menjalankan program java.

Setelah itu buatlah instance of class. Instance of class ditandai dengan cara membuat sebuah
class baru yang telah dibuat sebelumnya. Class tersebut adalah class handphone. Contoh
untuk mengidentifikasi/mendefinisikan dari class handphone pada class utama adalah
sebagai berikut :

Setelah objek dibuat maka saat ini membuat input dari keyboard menggunakan buffered
reader. Data yang diinputkan adalah merk handphone, tipe, warna, dan harga handphone.
Setelah diinputkan, maka setelah itu data yang diinputkan tadi di-set menggunakan setter
pada class handphone. Cara untuk memanggil method yang ada pada class handphone adalah
dengan memanggil alias dari class dan diikuti dengan nama method setter. Sama halnya
ketika ingin memanggil method getter. Contohnya sebagai berikut :

Halaman 53
Modul Praktikum Pemrograman Dasar

Caranya inputkan data dan men-set data adalah sebagai berikut :

Penjelasan :
Setelah menulis kode di atas maka sudah bisa dijalankan program tersebut. Pada komentar
“input” merupakan input yang dimasukkan melalui keyboard. Data yang diinputkan sesuai
dengan apa yang diminta sesuai dengan program. Setelah data di-inputkan setelah itu data
yang akan diinputkan akan di-set menggunakan method setter yang telah dibuat pada class
handphone. Setelah semua di-set kemudian data tersebut di cetak. Data dicetak dengan
menggunakan method getter yang telah dibuat pada class handphone.
Data dicetak diatas hanya method getter, masih ada 2 method tambahan lagi yang yang
belum dicetak yaitu method untuk mencetak harga diskon dan method sesudah harga diskon.
Kedua method tersebut silahkan dicetak dengan cara menambahkan kode seperti di bawah
ini pada output-nya :

Halaman 54
Modul Praktikum Pemrograman Dasar

Penjelasan :
Pada method “hp.HargaDiskon()” merupakan method yang memiliki nilai kembali sehingga
perlu adanya Syntax untuk mencetak nilai tersebut. Pada method “hp.keterangan()”
merupakan method void yang artinya tidak ada nilai kembalian. Oleh karena itu method
tersebut langsung ditulis tanpa harus ada syntax cetak sebelumnya. Hasil dari kode program
ketika dijalankan sebagai berikut :

Constructor
Analogi constructor misalkan seorang manusia yang memiliki nama. Ketika ada orang yang
yang memperkenalkan diri pasti dengan sendirinya menyebutkan nama, alamat, tanggal lahir,
hobi, dan sebagainya. Namun tanpa disadari pasti yang pertama kali ketika orang dikenal yaitu
mengenal nama orangnya daripada mengenal alamat, tanggal lahir dan sebagainya. Itu
dikarenakan identifikasi utama dari orang adalah nama walaupun ada banyak nama yang
sama di dunia ini. Bagaimana jika anda tidak memiliki nama? Pasti Anda akan susah untuk
diidentifikasi karena tidak memiliki nama.

Demikian dengan constructor. Ketika Anda membuat sebuah objek dari class manusia dengan
identifikasi “Orang1” kemudian anda set nilai berupa nama, alamat, tanggal lahir, dan hobi
menggunakan method setter(). Berbeda halnya dengan constructor. Ketika objek “Orang1”

Halaman 55
Modul Praktikum Pemrograman Dasar

telah terbentuk, Anda langsung memberikan nilai berupa nama, alamat, tanggal lahir, dan
hobi. Hal itu ibarat anda baru lahir di dunia ini dan langsung diberi nama. Itulah merupakan
konsep dari Constructor. Untuk lebih jelas tentang konsep Constructor dan penerapannya
maka akan dipelajari Constructor pada bagian ini.

Pengertian Constructor
Contstructor adalah method yang berfungsi untuk menginisialisasi variabel – variabel instans
yang akan dimiliki oleh objek. Constructor dipanggil pada saat proses instansiasi kelas menjadi
objek. Jika kelas tidak memiliki method constructor, maka seluruh variabel objek akan
diinisialisasikan kepada nilai default, sesuai dengan tipe datanya masing-masing. Struktur dari
constructor adalah :

Contoh misal membuat class login dengan

Karakter Constructor

1. Instansiasi constructor harus memiliki nama yang sama dengan class.


2. Tidak memiliki nilai kembalian (return).
3. Dalam satu class diperbolehkan memiliki lebih dari satu constructor (Overloading akan
dijelaskan setelah ini).
4. Dapat ditambahkan dengan access modifier public, private, protected, maupun default.
5. Suatu constructor bisa dipanggil oleh constructor lain dalam suatu class.

Halaman 56
Modul Praktikum Pemrograman Dasar

Overloading Constructor
Salah satu karakteristik constructor adalah dalam satu class diperbolehkan memiliki lebih
dari satu constructor. Perbedaan dari contructor satu dengan yang lainnya yaitu jumlah
parameter dan tipe data di dalamnya. Struktur overloading constructor contoh ada pada
gambar di bawah ini.

Penjelasan :
Pada struktur di atas terdapat 3 constructor yang memiliki perbedaan jumlah parameter di
setiap constructor. Constructor “nama_kelas()” yang pertama tidak memiliki parameter
apapun, constructor “nama_kelas(parameter)” yang kedua memiliki satu parameter dan
constructor yang ketiga memiliki dua parameter.
Contoh implementasi dari overloading constructor ada pada contoh di bawah ini :

Penjelasan :
Pada contoh diatas terdapat Overloading Constructor yang terdiri dari dua constructor.
Contstructor yang pertama yaitu “login()” dimana constructor ini tidak memiliki parameter
sama sekali sehingga variabel username dan password langsung di-set default tanpa diisi

Halaman 57
Modul Praktikum Pemrograman Dasar

melalui parameter. Kemudian constructor yang kedua “login(String username, String


password)” memiliki dua parameter yaitu username dengan tipe data String dan password
dengan tipe data String. Constructor yang kedua ini akan mengisi username dan password
sesuai dengan paramater yang diisi pada class utama.
Masih dengan contoh di atas, jika Anda ingin membuat instance of class dengan
menggunakan overloading constructor yang pertama (tanpa parameter) pada class utama
maka cara penulisannya adalah :

Pembuatan objek di atas akan memberikan set default nilai karena tidak diisi parameter
apapun sehingga username akan bernilai “zayedelfasa” dan password akan bernilai
“1234567890”. Sedangkan jika ingin membuat username dan password sendiri perlu
menggunakan overloading constructor yang kedua yang memiliki parameter username dan
password seperti contoh di bawah ini :

Pembuatan objek pada gambar dia atas terdapat parameter pada constructor sehingga objek
tersebut akan memberikan nilai username yaitu “arin” dan password-nya “0801”.

Perbedaan menggunakan Constructor dengan method setter


Perbedaan antara constructor dengan method setter ada pada pemeberian atribut. Pada
method setter() pertama kalo objek dibuat dari sebuah class (Instance Of Class), setelah objek
terbentuk, kemudian objek tersebut diberi atribut. Sedangkan constructor dibuat dari sebuah
class (instance of class) kemudian langsung diberikan atribut. Berikut adalah gambar analogi
perbedaan antara method setter dengan constructor.

Analogi setter dimana Objek dibuat dulu kemudian diberikan atribut.

Halaman 58
Modul Praktikum Pemrograman Dasar

Analogi constructor dimana ketika pembuatan objek, atribut langsung terisi.

Latihan
Berdasarkan contoh di atas buatlah buatlah dua buah class yang terdiri dari class login dan
class utama dimana class login memiliki ketentuan sebagai berikut :

1. Atribut berisi username dan password


2. Terdapat 2 constructor login. Constructor pertama tidak memiliki parameter dan nilai
default username = “admin” dan password = “12345”. Sedangkan conctructor kedua
memiliki parameter untuk set nilai username dan password berdasatkan inputan user.
3. Terdapat method setter dan getter untuk set/merubah dan mengambil nilai dari
username dan password.

Sedangkan ada class utama digunakan untuk memanggil class login. Ketika class utama
dijalankan, hasilnya akan tampak seperti di bawah ini :

Jika pilihan 1 maka akan tampil sebagai berikut :

Halaman 59
Modul Praktikum Pemrograman Dasar

Jika pilihan 2 maka akan tampil sebagai berikut :

Jika pilihan 3 maka akan tampil sebagai berikut :

Halaman 60
Modul Praktikum Pemrograman Dasar

Jika pilihan 4 maka akan tampil sebagai berikut :

Jika pilihan 5 akan tampil sebagai berikut :

Jawaban :

 Langkah pertama yaitu Skema diagram digunakan untuk membantu dalam membantu
logika anda untuk pembuatan program. Tanda “-“ dilambangkan sebagai private.
Sedangkan tanda “+” dilambangkan sebagai public. Berikut adalah skema diagramnya.
 Langkah kedua yaitu membuat kerangka class login. Setelah membuat class login, simpan
file tersebut dengan nama login.java. Pada class login perlu disediakan untuk
mendeklarasikan variabel, setter, dan getter.

Halaman 61
Modul Praktikum Pemrograman Dasar

Setelah membuat kerangka class, maka diperlukan pendeklarasian variabel yang


nantinya digunakan sebagai tempat penyimpanan data yang bersifat sementara
(temporary). Gambar di bawah ini menunjukkan pendekltarasian variabel.
 Setelah membuat variabel yang dibutuhkan pada class login, langkah selanjutnya adalah
membuat constructor login. Constructor ini nantinya akan digunakan dalam class utama.
Gambar di bawah ini menunjukkan deklarasi constructor.

Coba perhatikan kembali script yang telah dibuat seperti pada gambar di atas. Seperti halnya
dengan penggunaan method setter(), di dalam pembuatan consctructor login dengan
parameter, dapat menggunakan keyword “this”. Penggunaan keyword tersebut mengacu
pada variabel yang di deklarasikan pada class login. Apabila variabel tersebut tidak diberi
keyword “this”, maka variabel tersebut akan mengacu pada variabel yang di deklarasikan
pada parameter constructor. Penggunaan keyword “this” dapat digunakan atau tidak
(optional) apabila ada perbedaan deklarasi nama variabel pada class login.

Setelah membuat variabel yang dibutuhkan pada class login, langkah selanjutnya membuat
method setter untuk masing-masing variabel. Hal ini bertujuan untuk set atau merubah nilai
variabel username dan password sesuai dengan permintaan soal pada menu ke – 2 di class
utama nanti. Perlu diketahui bahwa bahwa dalam pembuatan variabel pada paramter di
method setter, harus sesuai dengan tipe data pada variabel yang di deklarasikan di kelas.
Gambar di bawah ini menunjukkan deklarasi setter.

Halaman 62
Modul Praktikum Pemrograman Dasar

Setelah membuat method setter maka yang perlu dibuat adalah method getter untuk
mengambil nilai dari masing-masing variabel. Hal ini bertujuan untuk mengambil nilai dari
variabel pada class login yang nantinya akan dikembalikan pada class utama. Perlu diketahui
bahwa dalam pembuatan variabel pada parameter di method getter, harus sesuai dengan
tipe data pada variabel yang dideklarasikan di kelas. Gambar di bawah ini menunjukkan
deklarasi getter.

 Langkah selanjutnya adalah membuat class utama. Simpan file class utama dalam
bentuk file utama.java pada folder yang sama. Di dalam class inilah program akan
dijalankan. Contoh pembuatan class utama ada pada gambar di bawah ini.

Halaman 63
Modul Praktikum Pemrograman Dasar

Membuat instance of class


Setelah membuat syntax dasar dari class utama, langkah berikutnya adalah membuat
sebuah objek yang betipe class login. Pembuatan variabel dengan tipe itulah yang
dinamakan instance of class. Misalkan ada kita ingin membuat objek user1 dan user2
dimana user1 menggunakan constructor login tanpa parameter, sedangkan user2
menggunakan constructor login dengan parameter.

Perhatikan pada pembuatan instance of class pada “user1” dan “user2”. Pada “user1” telah
terbentuk akan mereference ke constructor login tanpa parameter ke constructor login tanpa
parameter. Sedangkan pada “user2” bertipe class login, dimana nilai yang kita berikan masih
belum diketahui. Karena tipe data username dan password bertipe string, maka paramater
menggunakan tanda petik ganda (“ ”) untuk memberi nilai awal berupa String yang kosong.
Variabel “user2” yang telah dibuat nantinya akan digunakan pada case 3.

Halaman 64
Modul Praktikum Pemrograman Dasar

Membuat menu dan perulangan menu

Menu digunakan untuk melakukan transaksi. Dalam pmembuatan menu, diperlukan tombol
klik “next” dan “back” sehingga user dapat leluasa memposisikan diri pada transaksi yang
ingin dilakukan. Untuk itulah diperlukan perulangan menu guna mengantisipasi hal itu.
Gambar dibawah ini menunjukkan pembuatan menu dan perulangan menu.

Pada baris 13-20 merupakan pilihan menu yang dapat dipilih sesuai dengan inputan dari
keyboard (akan dijelaskan setelah ini). Sedangkan proses perulangan menu, dapat
menggunakan while yang berada di luar menu. Selain menggunakan while dapat
menggunakan do..while jika tidak terbiasa. While memiliki nilai “true” dimana program
tersebut akan mengulang menu tersebut berulang kali.

Membuat inputan yang diisi user

Setelah menu dan perulangan menu selesai dibuat maka dibutuhkan inputan user untuk
memilih menu tersebut. Berikut adalah scriptnya :

Halaman 65
Modul Praktikum Pemrograman Dasar

Mengecek inputan user

Inputan user nantinya akan diisi, akan menentukan pilihan yang dieksekusi. Untuk dibuthkan,
pengecekan inputan user dengan menu yang dipilih. Pengecekan tersebut dapat
menggunakan switch..case dikarenakan penggunaannya lebih mudah dalam mengecek
sebuah menu.

Halaman 66
Modul Praktikum Pemrograman Dasar

Jika dilihat pada code di atas, dalam setiap case perlu ditambahkan break yang bertugas untuk
menghentikan proses pengecekan menu apabila salah satu case sudah terpenuhi dan telah
dieksekusi. Penggunaan deault ditujukan apabila inputan 1,2,3, atau 4 tidak terpenuhi.
Kemudian isi dari default adalah “System.exit(0)” bertujuan untuk keluar dari menu dan
mengakhiri program.

Mengisi Case 1 (Login Admin)

Pada case 1 berisi untuk melakukan login. Untuk melakukan login dapat mengisi username
dan password kemudian langsung akan ada proses untuk pengecekan. Syntax ada pada
contoh program di bawah ini :

Kode di atas adalah kode untuk melakukan login sekaligus pengecekan username dan
password. Jika username dan password bernilai true maka program akan mencetak tulisan
“***LOGIN SUKSES***”. Jika usernam dan password bernilai false maka akan mencetak
tulisan “*** LOGIN GAGAL ***”.

Menu Case 2 (Ubah Password Admin)

Pada line ke 52-55 merupakan cara untuk menginputkan password lama dan password baru.
Pada line 58-65 merupakan cara untuk pengecekan password apakah password lama pada
class login sesuai dengan password yang diinputkan oleh user. Jika hasil pengecekan bernilai
true maka program akan mengubah password lama dengan password baru kemudian akan
menampilkan pesan “PASSWORD BERHASIL DIUBAH”. Sedangkan jika hasil pengecekan
bernilai false maka program akan menampilkan pesan “ANDA SALAH MEMASUKKAN
PASSWORD LAMA”. Syntax ada pada gambar di bawah ini :

Halaman 67
Modul Praktikum Pemrograman Dasar

Mengisi Case 3 (Buat User)

Ketika user memilih inputan nomor 3 maka dilakukan beberapa proses sebagai berikut :

Pada line ke 73 – 76 adalah syntax untuk inputan username dan password yang diisi melaui
keyboard.

Pada line 78 adalah cara untuk membuat user baru. Proses pembuatan user baru dimulai dari
membuat objek baru yang ditandai dengan ‘new login(“”, “”)’. Objek login tersebut
merupakan overloading constructor yang memiliki parameter username dan password yang
diisi dengan inputan dari user yaitu “create_username” dan “create_password”. Setelah
membuat username dan password baru, program akan menampilkan pesan “*** User telah
berhasil dibuat ***”.

Mengisi case 4 (Lihat Data User)

Case 4 merupakan menu pilihan untuk menampilkan data user 1 dan user 2.

Halaman 68
Modul Praktikum Pemrograman Dasar

Pada line 91 – 92 adalah cara untuk menampilkan username dan password dari user 1. Apabila
anda melakukan perubahan password admin dari nilai defaultnya “12345” pada case 2,
berarti data yang akan ditampilkan adalah username admin dengan password yang telah
dirubah.

Pada line 99 – 100 adalah cara untuk menampilkan username dan password dari user 2 yang
telah dibuat pada case 3.

Halaman 69
Modul Praktikum Pemrograman Dasar

MODUL 8 – Inheritance & Polymorphism


Tujuan :
 Mahasiswa dapat mempraktikkan dan menerapkan konsep dari inheritance pada
pemrograman java.
 Mahasiswa dapat mempraktikkan dan menerapkan konsep polymorphism dan
overriding dalam konsep OOP

Materi
 Inheritance
 Keyword Super
 Polymorphism
 Overriding Method

Pada kehidupan manusia kita semua pasti memiliki orang tua yang memiliki karakter mirip
dengan kita. Lantas mengapa disebut dengan “hampir”? Karena sifat orang tua tidak pasti
100% akan turun ke anaknya. Selain bentuk fisik yang memiliki keseragaman yang hampir
sama, tentunya kita juga memiliki beberapa karakter yang hampir sama dengan orang tua
kita. Contohnya pada film kartun Doraemon, Ayah Nobita adalah orang yang penyabar.
Artinya ada kemungkinan bahwa Nobita juga memiliki sifat yang penyabar. Tapi dibalik semua
itu pasti Nobita punya sifat yang tidak dimiliki oleh ayahnya yaitu “pemalas”.

Sama halnya dalam pemrograman, sifat orang tua yang diturunkan kepada anaknya
dikenal dengan nama “pewarisan” (inheritance). Untuk lebih jelasnya apa itu inheritance akan
dijelaskan pada bab ini.

Inheritance
Inheritance merupakan proses pewarisan data dan method dari suatu class yang telah
ada pada class baru. Class yang mewariskan disebut dengan class super, sedangkan kelas yang
mendapat warisan tersebut atau class yang diwariskan disebut dengan subclass. Ibarat
contoh pada Nobita, artinya Ayah Nobita berpesan sebagai class super dan Nobita sebagai
subclass.

Untuk menggunakan inheritance, maka dibutuhkan keyword extends. Cara penulisan


pada Bahasa pemrograman java adalah sebagai berikut :

Halaman 70
Modul Praktikum Pemrograman Dasar

Penjelasan :

Pada contoh syntax di atas terdapat kata “extends” yang artinya class tersebut ada pewarisan
dari class di atasnya.

Contoh kasus :

Misalkan kita memiliki beberapa software di komputer. Software tersebut memiliki banyak
macam. Ada software game, edukasi, perkantoran, dan masih banyak lagi yang lainnya.
Walaupun berbeda jenisnya, software-software tersebut memiliki kesamaan dengan
software sejenisnya. Dengan kata lain, apabila dilihat dari segi pemrogramana, maka class
software adalah superclass, sedangkan class game adalah turunan dari class software
(subclass). Jadi penulisan script pada pemrograman java adalah sebagai berikut :

Manfaat penggunaan Inheritance


Berikut ini adalah beberapa manfaat dari penggunaan konsep Inheritance :
a. Bersifta Reusable
Bayangkan saja apabila Anda memerlukan beberapa kelas yang berasa dari basis yang
sama dan method yang sama, namun pada masing-masing kelas akan ditambahkan data
atau method tambahan. Dengan menggunakan inheritance, Anda cukup mengambil data
atau method pada class induknya dan memberikan beberapa tambahan data atau
method pada class anaknya apabila diperlukan.
b. Kemudahan dalam manajemen kelas yang dimiliki data dan method yang sama.
Bila Anda ingin memodifikasi suatu data atau method pada semua subclass, Anda tidak
perlu melakukan perubahan pada masing-masing class pada subclass. Anda cukup
melakukan perubahan data atau method pada class super (superclass) yang mewarisi
class tersebut.

Halaman 71
Modul Praktikum Pemrograman Dasar

Keyword “super”
Keyword super digunakan oleh subclass untuk memanggil constructor atau method yang ada
pada subclassnya. Berikut adalah cara penulisan “super” pada subclass untuk memanggil
constructor pada superclass.

Sedangkan cara penulisan “super” pada subclass untuk memanggil method pada superclass
adalah sebagai berikut :

Polymorphism
Polymorphism merupakan konsep OOP dimana variable/method dari sebuah kelas dipanggil
ulang pada class turunan yang berbeda-beda dengan perilaku yang berbeda-beda antar tiap
kelas. Contoh nya seperti gambar dibawah ini :

HEWAN
Suara:……...

Kucing
Anjing Bebek
Suara:meong
Suara:guk guk! Suara:kwek kwek
meong

Setiap hewan memiliki suara. Namun suara pada masing-masing hewan berbeda-beda.
Perilaku yang berbeda-beda itulah yang menjadi ciri khas polymorphism. Penggunaan teknik
polymorphism dapat diketahui melalui pembuatan instance-of-class pada class utama.
Seperti halnya pada gambar di atas, maka pendeklarasian objek yang dibuat berasal dari class
induknya, yakni class hewan. Sehingga objek tersebut berbentuk array-of-class.

Halaman 72
Modul Praktikum Pemrograman Dasar

Kriteria Pembuatan Polymorphism


Dalam penggunaan polymorphism ada 2 kriteria yang harus dipenuhi antara lain :

a. Method dari class turunan yang akan dieksekusi, dipanggil oleh objek dari class induk.
b. Nama method yang digunakan pada kelas induk harus ditulis ulang (overriding method)
pada class turunannya, dengan asumsi nama dan tipe data method harus sama.

Overriding Method
Overriding method adalah proses pendeklarasian ulang nama method pada kelas utama
kepada kelas turunannya. Dalam pembuatan overriding method, nama dan tipe metho harus
sama dengan kelas induknya guna pembuatan polymorphism.

Latihan Soal Inheritance


Berdasarkan contoh pada kasus inheritance tentang software, buatlah 3 buah class yang
terdiri dari class software, class game, dan class utama.

 Class software harus memiliki kriteria sebagai berikut :


 Atribut berisi kode, nama, dan lisensi (freeware / shareware).
 Terdapat 2 buah constructor software.
- Constructor pertama tidak memiliki parameter untuk set nilai apapun.
- Constructor kedua memiliki parameter untuk set nilai kode, nama, dan lisensi
berdasarkan inputan user.
 Terdapat method setter dan getter dan mengambil nilai dari kode, nama, dan lisensi.

Class game harus memiliki beberapa ketentuan sebagai berikut :

 Atribut berisi jenis dan tipe kemudian diberikan nilai default “unknown”.
 Terdapat dua buah constructor.
- Constructor pertama memiliki parameter untuk set nilai kode, nama, dan lisensi
(freeware/shareware) diambil dari constructor kedua pada class software
(gunakan keyword super).
- Sedangkan constructor kedua memiliki parameter untuk set nilai kode, nama,
lisensi (freeware/shareware), jenis (online/offline), dan tipe (action/ arcade/
adventure/ sport/ puzzle) berdasarkan inputan user. Data kode, nama, dan lisensi
diambil dari setter pada class software (gunakan keyword super).

Halaman 73
Modul Praktikum Pemrograman Dasar

 Terdapat method getter untuk mengambil nilai dari variabel kode, nama, dan lisensi
(freeware/shareware) pada class software serta mengambil nilai dari variabel jenis
(offline/online) dan tipe (action/ arcade/ adventures/ sport/ puzzle).

Ketika class utama dijalankan, hasilnya akan tampak seperti di bawah ini :

Jika pilihan = 1, maka akan tampil sebagai berikut :

Jika pilihan = 2, maka akan tampil sebagai berikut :

Jika pilihan = 3, maka akan tampil sebagai berikut :

Halaman 74
Modul Praktikum Pemrograman Dasar

Jika pilihan = 4, maka akan tampil sebagai berikut :

Jawaban :

Setelah anda membaca soal tersebut dengan baik dan seksama, langkah pertama yang harus
dilakukan adalah menganalisa soal dengan tujuan untuk membuat skema diagram dari soal
tersebut. Skema ini nantinya dapat membantu dalam pembuatan program. Berikut adalah
pembuatan skemanya :

Langkah 1 – Membuat Skema

Skema diagram digunakan untuk membantu dalam memahami logika pembuatan objek.
Tanda “-“ dilambangkan sebagai private. Sedangkan tanda “+” dilambangkan sebagai public.
Berikut adalah skema diagramnya :

class Class Model

Softw are
Game
- Kode: String
- Nama: String - jenis: String
- Lisensi: String - tipe: String

+ Software() : Constructor + game(String, String, String) : Contructor


+ Software(String, String, String) : Constructor + game(String, String, String, String, String) : Constructor
+ setter() : void + getter()
+ getter()

Halaman 75
Modul Praktikum Pemrograman Dasar

Anak panah menjelaskan adanya konsep inheritance, dimana class game merupakan turunan
dari class software. Sehingga variabel kode, nama, dan lisensi pada class software tidak perlu
dideklarasikan ulang lagi.

Langkah 2 – Membuat Class sofrware

a. Membuat kerangka class Software


Silahkan diikuti kode pemrogramannya.

Setelah Membuat class Software, simpan file tersebut dengan nama Software.java.
b. Mendeklarasi variabel yang dibutuhkan
Setelah membuat kerangka class, maka diperlukan pendeklarasian variabel yang
nantinya digunakan sebagai tempat penyimpanan data yang bersifat sementara
(temporary). Gambar di bawah ini menunjukkan pendeklarasian variabel.

c. Mendeklarasi constructor
Setelah membuat variabel yang dibutuhkan pada class software, langkah selanjutnya
adalah membuat constructor software. Constructor ini nantinya akan digunakan dalam
class game. Gambar di bawah ini menunjukkan deklarasi constructor.

Halaman 76
Modul Praktikum Pemrograman Dasar

d. Membuat method setter


Setelah membuat variabel yang dibutuhkan pada class Software, langkah selanjutnya
adalah membuat method setter untuk masing-masing variabel. Hal ini bertujuan untuk
set atau merubah nilai variabel kode, nama, dan lisensi apabila diperlukan sesuai dengan
constructor kedua pada class Game. Perlu diketahui bahwa dalam pembuatan variabel
pada parameter di method setter, harus sesuai dengan tipe data pada variabel yang
dideklarasikan di class. Gambar di bawah ini menunjukkan deklarasi setter.

Halaman 77
Modul Praktikum Pemrograman Dasar

e. Membuat method getter


Setelah membuat method setter, saatnya membuat method getter yang bertujuan
untuk mengambil data dari masing-masing variabel. Perlu diketahui bahwa dalam
pembuatan variabel pada parameter di method getter, harus sesuai dengan tipe data
pada variabel yang dideklarasikan di kelas. Gambar di bawah ini menunjukkan deklarasi
getter.

Halaman 78
Modul Praktikum Pemrograman Dasar

Langkah 2 – Membuat class Game

a. Membuat kerangka class Game


Setelah membuat class Software, maka dibuatkan class turunannya yaitu class Game.
Script pada class game dapat dilihat di bawah ini :

Di dalam class Game disediakan tempat untuk mendeklarasikan variabel, constructor,


dan getter. Penggunaan extends menunjukkan bahwa class game merupakan turunan
dari class software.

Halaman 79
Modul Praktikum Pemrograman Dasar

b. Mendeklarasi variabel yang dibutuhkan


Setelah kerangka class game telah dibuat, maka diperlukan pendeklarasian variabel yang
nantinya digunakan sebagai tempat penyimpanan data yang bersifat sementara
(temporary). Gambar di bawah ini menunjukan cara untuk pendeklarasian variabel.

Perlu diketahui bahwa dalam pembuatan class game, tidak diperlukan pendeklarasian
variabel kode, nama, dan lisensi.
c. Mendeklarasi Constructor
Setelah membuat variabel yang dibutuhkan pada class game, langkah selanjutnya adalah
membuat constructor untuk game. Constructor ini nantinya akan digunakan pada class
utama. Gambar di bawah ini menunjukkan deklarasi constructor.

Perhatikan script kode di atas!


Pada constructor pertama, terdapat keyword “super”. Keyword ini akan memanggil
constructor kedua (sesuai dengan parameter) pada class induknya, yaitu class Software.
Ilustarsinya seperti di bawah ini :

Halaman 80
Modul Praktikum Pemrograman Dasar

Jika ingin mengambil setter/getter pada class induknya dapat menggunakan keyword
“super” yang kemudian dilanjutkan dengan nama method yang dipanggil seprerti
constructor kedua pada class Game (lihat pada kotak yang berwarna biru pada gambar

Halaman 81
Modul Praktikum Pemrograman Dasar

script di atas). Artinya penggunaan keyword “super” akan mengarah pada constructor
class induknya (script yang diberi kotak berwarna merah pada gambar di atas).
d. Membuat method getter
Setelah membuat constructor kemudian akan membuat method getter untuk mengambil
nilai dari masing-masing variabel. Perlu diketahui bahwa dalam pembuatan variabel pada
parameter di method getter, harus sesuai dengan tipe data dan variabel yang
dideklarasikan di kelas tersebut maupun di kelas induknya. Gambar di bawah ini
menunjukkan pembuatan getter pada class Game.

Seperti halnya penggunaan constructor kedua pada class Game yang menggunakan
super.[nama_method], maka untuk method getKode(), getNama(), dan getLisensi()
menggunakan keyword super.[nama_method_getter] dikarenakan dideklarasikan pada
class Software.
Langkah 3 – Membuat class Utama
a. Membuat kerangka class utama
Setelah membuat class utama, simpan file tersebut dengan nama Utama.java di dalam
class inilah program akan dijalankan.

Halaman 82
Modul Praktikum Pemrograman Dasar

b. Membuat instance of class


Setelah membuat kerangka dari class utama, langkah berikutnya adalah membuat objek
yang bertipe Game. Pembuatan objek itulah yang disebut dengan instance of class.

Jika diperhatikan ketika pembuatan instance of class, pada baris ke 9 objek GameA yang
terbentuk akan mereferensikan pada constructor pertama class Game. Sedangkan pada
baris ke 10 GameB akan akan mereferensikan pada constructor kedua pada class Game.
Game Adan GameB masih belum diketahui nilainya karena nilai awalnya diberi kosongan
yang ditandai dengan ( “ ” ).
c. Membuat menu dan perulangan menu
Pembuatan menu dapat dilakukan dengan menggunakan konsep do..while dimana di
dalamnya terdapat pilihan-pilihan menu. Gambar dari scriptnya dapat dilihat di bawah
ini :

Halaman 83
Modul Praktikum Pemrograman Dasar

d. Membuat Inputan yang diisi user


Setelah menu dan perulangan menu selesai dibuat, makan dibutuhkan inputan user
untuk memilih menu tersebut. Berikut adalah scriptnya :

Halaman 84
Modul Praktikum Pemrograman Dasar

e. Mengecek Inputan dari User


Inputan user yang nantinya akan diisi, akan menentukan pilihan yang dieksekusi. Untuk
itu dibutuhkan pengecekan inputan user dengan menu yang dipilih. Pemilihan menu
dapat menggunakan switch..case. Script kode dapat dilihat pada gambar di bawah ini :

Halaman 85
Modul Praktikum Pemrograman Dasar

Pada switch..case terdapat syntax “default” yang bertujuan untuk keluar dari program
apabila menu yang dipilih bukan antara 1,2,3, atau 4.
f. Mengisi case 1 (Input Game A)
Ketika user memilih inputan nomor 1, maka akan melakukan proses yang berada pada
case 1. Syntax pemrogramannya sebagai berikut :
- Pada baris ke 28 – 36 adalah permintaan untuk mengisikan kode, nama, dan lisensi
dari inputan user.
- Pada baris ke 38 adalah transfer data kode, nama, dan lisensi pada tiap variabel
dalam constructor pertama class Game. Setelah berhasil akan mencetak tulisan
### DATA GAME A TELAH DISIMPAN! ###.

Halaman 86
Modul Praktikum Pemrograman Dasar

g. Mengisi case 2 (Input Game B)


Ketika user memilih inputan nomor 2 maka user akan diberikan tampilan untuk mengisi
data Game B.
- Pada baris 45 – 57 berisi permintaan inputan kode, nama, lisensi, jenis, dan tipe
yang akan diisi oleh user.
- Pada baris ke 59 merupakan proses untuk mentransfer data kode, nama, lisensi,
jenis, dan tipe pada tiap variabel dalam constructor kedua pada class Game.
Setelah berhasil disimpan maka akan menampilkan ### DATA GAME B TELAH
DISIMPAN ###

h. Mengisi case 3 (Lihat Data Game)


Ketika user memilih nomor 3 maka dilakukan proses sebagai berikut :
Pada baris 65 – 73 mencetak isi data kode, nama, lisensi, jenis, dan tipe dari objek gameA.
Pada baris 77 – 82 mencetak isi data kode, nama, lisensi, jenis, dan tipe dari objek gameB.

Halaman 87
Modul Praktikum Pemrograman Dasar

Latihan Soal Polymorphism


Perhatikan gambar di bawah ini !

class Class Model

Manusia

- tinggiBadan: Double

+ Manusia(Double) : Constructor
+ getter()
+ HtgBBI() : Double

Lakilaki Perempuan

+ Lakilaki(Double) : Constructor + Perempuan(Double) : Constructor


+ HtgBBI() : Double + HtgBBI() : Double

Buatlah class untuk menghitung berat badan ideal sesuai rancangan gambar di atas! Rumus
hitung berat badan ideal adalah sebagai berikut :

- Laki-laki = (tinggi badan(cm) – 100) kg x 90%


- Perempuan = (tinggi badan(cm) – 100) kg x 80%

Tambahkan pula class utama yang digunakan untuk memanggil class manusia. Ketika class
utama dijalankan, hasilnya akan tampak seperti di bawah ini :

Halaman 88
Modul Praktikum Pemrograman Dasar

Jawaban

Langkah 1 – Membuat class Manusia

a. Membuat kerangka class Manusia


Sebelum membuat kerangka class Manusia, simpan file tersebut dalam bentuk
Manusia.java. Di dalam class perlu disediakan tempat untuk mendeklarasikan variabel,
constructor, getter, dan method HtgBBI() untuk menghitung berat ideal.
b. Mendeklarasi variabel yang dibutuhkan
Setelah membuat kerangka class manusia, maka diperlukan pendeklrasian variabel yang
akan digunakan untuk penyimpanan data sementara. Gambar di bawah ini menunjukkan
pendeklarasian variabel.
c. Mendeklarasi Constructor
Setelah variabel telah selesai dibuat, langkah selanjutnya adalah membuat constructor
Manusia. Constructor ini nantinya akan digunakan dalam class Lakilaki dan class
perempuan. Gambar di bawah ini menunjukkan deklarasi constructor.
d. Membuat method getter
Setelah membuat constructor, kemudian membuat method getter untuk mengambil nilai
dari variabel pada class Manusia yang nantinya akan digunakan pada class Lakilaki dan
class Perempuan. Gambar di bawah ini menunjukkan deklarasi getter.
e. Membuat method HtgBBI()
Setelah membuat method getter(), tinggal membuat method HtgBBI() yang bertugas
untuk menghitung berat badan ideal berdasarkan tinggi badan. Karena di dalam class
Manusia, belum terdapat rumus (hanya mendeklarasikan method saja) dan meminta nilai

Halaman 89
Modul Praktikum Pemrograman Dasar

balik (return), maka diberi nilai default 0.0. Gambar di bawah ini menunjukkan deklarasi
method HtgBBI().

Langkah 2 – Membuat class Lakilaki

Setelah membuat class Lakilaki, simpan file tersebut dengan nama Lakilaki.java. Di dalam class
Lakilaki, terdapat penggunaan extends yang menunjukkan bahwa class Lakilaki merupakan
turunan dari class Manusia.

Coba perhatikan pada script di atas, pada constructor Lakilaki terdapat keyword “super”.
Keyword ini akan memanggil konstructor Manusia (sesuai dengan isi parameter) yang
merupakan class induk. Sedangkan pada method HtgBBI() dilakukan pendeklarasian kembali
(overriding method) sesuai dengan class induknya, dimana method HtgBBI() diberi rumus
untuk menghitung berat bada ideal laki-laki.

Halaman 90
Modul Praktikum Pemrograman Dasar

Langkah 3 – Class Perempuan

Setelah membuat class perempuan, simpan file tersebut dengan nama Perempuan.java. Di
dalam class perempuan terdapat penggunaan extends yang menandakan bahwa class
Perempuan adalah turunan dari class Manusia.

Seperti halnya dengan class Lakilaki, class Perempuan memiliki constructor dan method
HtgBBI() yang sama. Perbedannya terletak pada nama class constructor da nisi rumus dari
method HtgBBI().

Langkah 4 – Membuat class Utama

a. Membuat kerangka class Utama

Setelah membuat class utama, simpan file tersebut dengan nama Utama.java kemudian
buatlah instance of class seperti di bawah ini. Tidak lupa dibuatkan BufferedReader
dengan tujuan untuk menerima inputan dari pengguna.
b. Membuat instance of class

Halaman 91
Modul Praktikum Pemrograman Dasar

Setelah membuat class Utama dengan struktur seperti di atas, setelah itu membuat
sebuah object Manusia seperti yang dilakukan di atas. Inilah yang dimaksud dengan
konsep polymorphism. Karena Class Manusia memiliki dua kelas turunan. Setelah itu
class Manusia tersebut dijadikan array-of-class. Tujuannya adalah menampung data yang
terdapat pada class Lakilaki dan class Perempuan. Perlu diketahui bahwa panjang array
ada dua karena inputan yang diinginkan karena ada dua, bukan karena banyak class
turunannya.
c. Mendeklarasikan variabel dan perulangan inputan user

Langkah selanjutnya adalah mendeklarasikan variabel untuk membantu dalam


menghitung index array-of-class.
d. Membuat inputan yang diisi user

Selanjutnya yaitu membuat perulangan yang di dalamnya terdapat perintah untuk meng-
input-kan data dari pengguna. Pada baris ke – 21 terdapat proses untuk penambahan isi
sebanyak 1 (increament) untuk variabel x.

Halaman 92
Modul Praktikum Pemrograman Dasar

e. Mengecek inputan user dan mencetak perhitungan berat badan ideal

Setelah membuat inputan pengguna, maka dilakukan pengecekan apakah jenis kelamin
yang dipilih adalah laki-laki atau perempuan. Hal ini akan menentukan kelas turunan
mana yang akan diakses.

Halaman 93
Modul Praktikum Pemrograman Dasar

MODUL 9 – Encapsulation (Abstract & Interface)


Tujuan :
 Mahasiswa dapat mempratikkan konsep abstract class dalam OOP.
 Mahasiswa dapat mempraktikkan konsep interface dalam OOP.

Materi :
 Abstract Class
 Keyword final
 Interface
 Implementasi Interface

Abstract Class
Abstract class merupakan kelas yang absolut dari sebuah hirarki class. Jika dilihat dalam
diagram dapat dilihat seperti ini :

DISINI ADA GAMBAR CUK

Abstract class dapat didefinisikan menggunakan nama abstract class itu sendiri. Berikut
adalah cara untuk mendeklarasikan nama class itu sendiri :

Contoh

PENTING:

 Apabila dalam abstract class terdapat abstract method dan kelas tersebut diturunkan ke
kelas turunannya, maka method tersebut harus dideklarasikan ulang (overriding method)
dengan diberi statement pada isi methodnya. Lebih jelasnya akan dilihat pada latihan.

Halaman 94
Modul Praktikum Pemrograman Dasar

 Apabila class tersebut merupakan abstract class, maka class tersebut bisa terdapat
abstract method atau tidak (optional). Sedangkan apabila kelas tersebut terdapat
abstract method, maka kelas tersebut wajib berbentuk abstract class.

Keyword “final”

Keyword final digunakan untuk mencegah suatu class diturunkan atau suatu method
dilakukan pendeklarasian ulang (overriding method). Berikut adalah cara mendeklarasikan
final dalam class :

Sedangkan cara mendeklarasikan “final” pada method adalah sebagai berikut :

Untuk lebih detil penggunaan keyword “final” akan dibahsa pada soal latihan.

Soal Latihan
Seperti halnya dnegan soal latihan modul 9 tentang “Polymorphism”, soal latihan pada modul
ini tidak jauh berbeda. Perhatihan gambar di bawah ini :

Halaman 95
Modul Praktikum Pemrograman Dasar

class Class Model

Manusia (Abstract)

- tinggiBadan: double

+ Manusia(double) : Constructor
+ getter() : void
+ abstract HtgBBI() : double

Lakilaki Perempuan (final)

+ Lakilaki(double) : Constructor + Perempuan(double) : Constructor


+ HtgBBI() : double + final HtgBBI() : double

Buatlah class untuk menghitung Berat Badan Ideal sesuai dengan rancangan gambar di atas!
Rumus hitung berat badan ideal adalah sebagai berikut :

 Laki-laki = (tinggi badan(cm) – 100) kg x 90%


 Perempuan = (tinggi badan(cm) – 100) kg x 80%

Tambahkan juga class utama yang digunakan untuk memanggil class Manusia. Ketika class
Utama dijalankan, hasilnya akan tampak seperti di bawah ini :

Jawabannya :

Langkah pertama membuat class Manusia

1. Membuat kerangka class Manusia.

Halaman 96
Modul Praktikum Pemrograman Dasar

Setelah membuat kerangka seperti di atas untuk class manusia, simpan file tersebut dengan
nama Manusia.java. Di dalam class abstract ini juga disediakan tempat untuk
mendeklarasikan variabel, constructor, getter, dan method HtgBBI untuk menghitung berat
badan ideal.

2. Mendeklarasi variabel yang dibutuhkan

Setelah membuat kerangka class, maka dibutuhkan pendeklrasian variabel yang digunakan
untuk menyimpan data sementara (temporary).

3. Mendeklarasikan constructor

Setelah membuat variabel yang dibutuhkan pada class Manusia, langkah selanjutnya
membuat constructor Manusia. Constructor ini digunakan untuk dalam class Lakilaki dan class
Perempuan.

4. Membuat method getter

Halaman 97
Modul Praktikum Pemrograman Dasar

Setelah membuat constructor, kemudian membuat method getter untuk mengambil nilai dari
constructor. Hal ini bertujuan untuk mengambil nilai dari variabel pada class Manusia yang
nantinya akan digunakan ke dalam class Lakilaki maupun class Perempuan.

Membuat method HtgBBI()

Setelah membuat method getter(), kemudian membuat method HtgBBI() yang bertugas
untuk menghitung berat badan ideal berdasarkan tinggi badan. Karena method HtgBBI()
merupakan abstract method, maka method tersebut tidak terdapat isi method.

Langkah kedua membuat class Lakilaki

Pembuatan class Lakilaki sama seperti pada modul 8.

Halaman 98
Modul Praktikum Pemrograman Dasar

Setelah dibuat seperti di atas, simpan file tersebut dalam bentuk Lakilaki.java. Di dalam class
tersebut terdapat pennggunaan extends yang menunjukkan bahwa class Lakilaki merupakan
turunan dari abstract class Manusia. Jika diperhatikan terdapat keyword “super”. Keyword ini
akan memanggil constructor Manusia (sesuai dengan isi parameter) yang merupakan class
induk. Sedangkan method HtgBBI() dilakukan pendeklarasian kembali (overriding method)
sesuai dengan kelass induknya, dimana method HtgBBI() diberi rumus untuk menghitung
berat badan ideal laki-laki.

Langkah ketiga membuat class Perempuan

Setelah membuat class Perempuan, simpan file tersebut dengan nama Perempuan.java. Di
dalam class Perempuan terdapat penggunaan extends yang menunjukkan bahwa class
Perempuan turunan dari class Manusia. Seperti halnya dengan class Lakilaki, class Perempuan
memiliki constructor dan method HtgBBI() yang sama. Perbedaanya terletak pada nama class,
nama constructor dan isi rumus method HtgBBI().

Keyword “final” pada line 1 digunakan untuk mencegah pembuatan kelas baru dari kelas
turunan Perempuan. Sedangkan keyword “final” pada line 10 digunakan untuk mencegah
pendeklarasian ulang (overriding method) pada kelas turunannya.

Langkah keempat membuat class Utama

Halaman 99
Modul Praktikum Pemrograman Dasar

Setelah membuat kode seperti di atas, simpan file tersebut dalam bentuk Utama.java.
Kemudian silahkan untuk di compile untuk melihat hasil dari program di atas.

Interface
Interface adalah kumpulan method yang hanya memuat deklarasi dan struktur method tanpa
detail implementasinya. Cara mendeklarasikan interface adalah sebagai berikut :

class Class Model

Class Kalkulator

- bil1: Double
Interface Operasi - bil2: Double

+ Penjumlahan() : void + Kalkulator() : Constructor


+ Pengurangan() : void + Kalkulator(Double, Double) : Constructor
+ Pembagian() : Double + getter() : void
+ Perkalian() : Double + Penjumlahan() : void
+ Pengurangan() : void
+ Perkalian() : Double
+ Pembagian() : Double

Pada contoh di atas, method yang dideklarasikan pada interface Operasi tidak terdapat
statement apapun, baik itu rumus atau hanya sebuah nilai balik di dalamnya. Hal ini
dikarenakan interface hanyalah sebuah isi kumpulan konstanta maupun method tanpa
menyertakan/ menulis bofy methodnya.

Halaman 100
Modul Praktikum Pemrograman Dasar

Perlu diketahui pula bahwa sebuah interface bukanlah sebuah class dan class hanya bisa
mengimplementasi interface.

Implementasi Interface
Penggunaan interface dalam sebuah class dapat anda lihat melalui skema OOP di bawha ini :

Coba anda lihat anak panah yang berwarna ungu tersebut. Anak panah itu merupakan
gambaran bahwa class Kalkulator merupakan implementasi dari interface operasi, dimana
method-method yang terdapat pada interface Operasi harus dideklarasi ulang (overriding
method) pada class Kalkulator. Interface dilambangkan dengan anak panah dengan garis
putus-putus, sedangkan inheritance dilambangkan dengan anak panah dengan garis lurus.

Dalam pemrograman OOP, implementasi interface menggunakan keyword implements.


Berikut adalah cara mengimplementasikan interface ke dalam pemrograman java.

Contoh

Halaman 101
Modul Praktikum Pemrograman Dasar

MODUL 10 – Graphical User Interface Programming


Tujuan :
Mahasiswa mampu mempraktikkan AWT dan Swing sebagai Windows Form

Materi :
 AWT
 Swing

Java AWT
AWT adalah Abstract Window Toolkit dimana sebuah form nantinya akan di-extend-kan pada
sebuah class (frame) yang dimiliki oleh java itu sendiri. AWT menggunakan frame yang berasal
sistem operasi, misalkan Anda menggunakan Windows maka frame yang akan ditampilkan
adalah milik windows. Agar dapat menampilkan AWT dapat menggunakan library sebagai
berikut :

import java.awt.*;

Di dalam library tersebut dapat menampilkan frame yang dibutuhkan untuk membuat
sebuah form. Selain bisa di-extend-kan pada class, AWT juga dapat dibuat dalam bentuk
objek. Untuk lebih jelasnya lihat contoh di bawah ini :

Halaman 102
Modul Praktikum Pemrograman Dasar

Silahkan gunakan netbeans untuk mencoba membuat aplikasi.

Penjelasannya sebagai berikut :


 Pada line ke-6 terdapat class yang di-extend-kan pada frame dan menggunakan
konsep interface untuk menuliskan method ActionListener menggunakan
implements. Method pada ActionListener akan ditampilkan pada method @Override
pada baris ke 18-23
 Pada baris ke-7 terdapat object Button yang akan ditampilkan pada frame yang
telah dibuat. Button ditempatkan di atas sebagai objek global agar dapat diakses
dimana saja selama masih di dalam class buttonAWT.
 Pada baris 9 – 16 adalah constructor yang isinya untuk membuat button yang
diinginkan.
 Pada baris 18-23 adalah method yang ditulis pada interface ActionListner. Method
ini adalah method untuk menerima event dari objek button.
 Pada baris ke 26 – 31 adalah class AWT yang akan dijalankan sebagai method
main. Pada baris ke 29 adalah cara untuk memanggil objek seperti yang telah
dijelaskan pada pertemuan-pertemuan sebelumnya.

Hasilnya dapat dilihat seperti di bawah ini :

Halaman 103
Modul Praktikum Pemrograman Dasar

Setelah di-klik maka label button akan berubah tampilannya seperti di bawah ini :

Untuk lebih mudah, Anda dapat menggunakan fitur drag-drop pada Netbeans. Fitur drag-
drop ini dapat menggunakan library java swing.

Java SWING
Swing merupakan graphical user interface (GUI) untuk membuat form yang library form-nya
terbuat dari java itu sendiri. Sebelumnya dapat dilihat jika menggunakan AWT, untuk
membuat form harus lewat syntax java. Sedangkan jika menggunakan swing Anda dapat
menggunakan fitur drag-drop yang ada pada netbeans. Caranya sebagai berikut :

 Setelah anda membuat project, arahkan project anda pada Java Source Package
seperti contoh di bawah ini :

Halaman 104
Modul Praktikum Pemrograman Dasar

Kemudian Klik Kanan pada mouse kemudian pilih “New” -> “JFrame Form…”
 Setelah itu silahkan isi nama file java yang akan disiapkan untuk membuat form
menggunakan java Swing / JFrame Form.

Kemudian klik button finish.


 Maka akan tampil form seperti di bawah ini :

Jika dilihat pada garis merah di atas terdapat 3 pilihan yaitu

Halaman 105
Modul Praktikum Pemrograman Dasar

Source : Berisi syntax java yang diisi untuk method-method yang ingin diperlukan.

Design : Berisi design yang diisi swing.

Halaman 106
Modul Praktikum Pemrograman Dasar

History : Berisi log

Setelah Anda mengenal NetBeans lebih jauh, mari latihan soal.

Latihan buat GUI :

Buatlah tampilan seperti di bawah ini :

Halaman 107
Modul Praktikum Pemrograman Dasar

Setelah itu klik “simpan” kemudian di bawahnya akan tampil seperti di bawah ini :

JAWABAN :

Langkah Pertama Membuat form

Langkah pertama yaitu membuat form seperti pada soal yang telah disebutkan di atas. Untuk
membuat form seperti di atas silahkan untuk menuju Tab “Palette” yang letaknya ada di
sebelah kanan.

Halaman 108
Modul Praktikum Pemrograman Dasar

1 2
3 4
5 6

Untuk membuat label NIM, NAMA, ALAMAT, JENIS KELAMIN, PROGRAM STUDI, dan
TANGGAL LAHIR gunakan swing control yang ditandai nomor 1.

Untuk membuat inputan NIM, NAMA, ALAMAT, dan TANGGAL LAHIR gunakan swing control
yang ditandai nomor 6 -> “Text Field”.

Untuk bagian program studi ada beberapa pilihan gunakan swing control “Combo Box” yang
ditandai nomor 5.

Halaman 109
Modul Praktikum Pemrograman Dasar

Untuk bagian jenis kelamin gunakan swing control “Button Group” yang ditandai dengan
nomor 4 setelah itu masukkan juga radio button pada nomor 3. Setelah dimasukkan radio
button tersebut klik kanan pada radio button kemudian pilih properties. Setelah itu carilah
baris buttonGroup. Contohnya seperti di bawah ini :

Setelah itu ganti isi field dari buttonGroup menjadi buttonGroup1. buttonGroup1 merupakan
nama dari ButtonGroup.

Untuk tombol SIMPAN dapat menggunakan “Button” yang ditandai dengan nomor 2. Untuk
menganti nama menjadi “SIMPAN” klik kanan pada tombol tersebut kemudian pilih “edit
text”.

Langkah kedua merubah nama variabel (change variabel name / set ID)

Langkah kedua yaitu memberikan ID. ID diberikan di setiap swing control yang dibutuhkan
untuk dimasukkan ke dalam syntax. Pada NetBeans ID berbeda dengan IDE yang lainnya
karena mengubah nama ID pada NetBeans namanya adalah “Change Variable Name”.
Caranya adalah klik kanan pada salah satu swing control kemudian pilih “Change Variable
Name”.

Halaman 110
Modul Praktikum Pemrograman Dasar

Swing Control yang perlu di ubah antara lain :

Nama Swing Control Change Variable Name


Text Field NIM txt_nim
Text Field NAMA txt_nama
Text Field ALAMAT txt_alamat
Radio Button PRIA rb_pria
Radio Button WANITA rb_wanita
Combo Box PROGRAM STUDI cmbProgramStudi
Text Field TANGGAL LAHIR txt_tgl_lahir
Button SIMPAN btn_simpan
Label NIM label_nim
Label NAMA label_nama
Label ALAMAT label_alamat
Label JENIS KELAMIN label_jenis_kelamin
Label PROGRAM STUDI label_program_studi
Label TANGGAL LAHIR label_tanggal_lahir

Setelah semuanya diubah, kemudian masuk kedalam langkah selanjutnya.

Langkah ketiga menuliskan syntax dan membuat event

Langkah ketiga ini adalah langkah untuk menuliskan syntax agar semua inputan dari Text
Field, Combo Box, dan Radio Button dapat dibaca pada label di bawah.

Untuk menuliskan syntax, dapat dilakukan pada tab “source”.

1. Buatlah sebuag prosedur di bawah nya constructor bernama “inisialisasiComboBox()”


yang isinya sebagai berikut :

private void inisialisasiComboBox() {


cmbProgramStudi.addItem("S1 Sistem Informasi");
cmbProgramStudi.addItem("S1 Sistem Komputer");
cmbProgramStudi.addItem("S1 Disain Komunikasi Visual");
cmbProgramStudi.addItem("D4 Multimedia");
cmbProgramStudi.addItem("D3 Manajemen Informatika");
cmbProgramStudi.addItem("S1 Disain Grafis");
cmbProgramStudi.addItem("D3 Administrasi Perkantoran");
cmbProgramStudi.addItem("S1 Akuntansi");
cmbProgramStudi.addItem("S1 Ekonomi");
}

2. Setelah itu di dalam constructor isi dengan syntax sebagai berikut yang ditaruh di
bawahnya syntax “initComponents();”:

inisialisasiComboBox();

Halaman 111
Modul Praktikum Pemrograman Dasar

try {
UIManager.setLookAndFeel(new NimbusLookAndFeel());
} catch (Exception e) {
e.getMessage();
}

3. Setelah itu kembali ke “Design” -> arahkah mouse pada Button “SIMPAN” kemudian double
klik dengan tujuan agar event tercipta dengan sendirinya. Setelah itu isikan event dengan
syntax di bawah ini :

label_nim.setText(txt_nim.getText());
label_nama.setText(txt_nama.getText());
label_alamat.setText(txt_alamat.getText());
label_program_studi.setText(cmbProgramStudi.getSelectedItem().toString());
label_tanggal_lahir.setText(txt_tgl_lahir.getText());

if(rb_pria.isSelected()) {
label_jenis_kelamin.setText("Pria");
}

else if(rb_wanita.isSelected()) {
label_jenis_kelamin.setText("Wanita");
}

else {
label_jenis_kelamin.setText("Tidak dipilih");
}

Syntax lengkapnya sebagai berikut :

/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package awt;

import javax.swing.UIManager;
import javax.swing.plaf.metal.MetalLookAndFeel;
import javax.swing.plaf.nimbus.NimbusLookAndFeel;

/**
*
* @author Lab
*/
public class swing extends javax.swing.JFrame {

/**
* Creates new form swing

Halaman 112
Modul Praktikum Pemrograman Dasar

*/
public swing() {
initComponents();
inisialisasiComboBox();
try {
UIManager.setLookAndFeel(new NimbusLookAndFeel());
} catch (Exception e) {
e.getMessage();
}
}

private void inisialisasiComboBox() {


cmbProgramStudi.addItem("S1 Sistem Informasi");
cmbProgramStudi.addItem("S1 Sistem Komputer");
cmbProgramStudi.addItem("S1 Disain Komunikasi Visual");
cmbProgramStudi.addItem("D4 Multimedia");
cmbProgramStudi.addItem("D3 Manajemen Informatika");
cmbProgramStudi.addItem("S1 Disain Grafis");
cmbProgramStudi.addItem("D3 Administrasi Perkantoran");
cmbProgramStudi.addItem("S1 Akuntansi");
cmbProgramStudi.addItem("S1 Ekonomi");
}

/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {

buttonGroup1 = new javax.swing.ButtonGroup();


jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jLabel5 = new javax.swing.JLabel();
jToolBar1 = new javax.swing.JToolBar();
jLabel6 = new javax.swing.JLabel();
txt_nim = new javax.swing.JTextField();
txt_nama = new javax.swing.JTextField();
txt_alamat = new javax.swing.JTextField();
cmbProgramStudi = new javax.swing.JComboBox<>();
txt_tgl_lahir = new javax.swing.JFormattedTextField();
jLabel7 = new javax.swing.JLabel();
rb_pria = new javax.swing.JRadioButton();
rb_wanita = new javax.swing.JRadioButton();
btn_simpan = new javax.swing.JButton();
label_nim = new javax.swing.JLabel();
label_nama = new javax.swing.JLabel();

Halaman 113
Modul Praktikum Pemrograman Dasar

label_alamat = new javax.swing.JLabel();


label_jenis_kelamin = new javax.swing.JLabel();
label_program_studi = new javax.swing.JLabel();
label_tanggal_lahir = new javax.swing.JLabel();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

jLabel1.setText("NIM");

jLabel2.setText("NAMA");

jLabel3.setText("ALAMAT");

jLabel4.setText("PROGRAM STUDI");

jLabel5.setText("TANGGAL LAHIR");

jToolBar1.setFloatable(false);
jToolBar1.setRollover(true);

jLabel6.setText("Created By : Zayed Elfasa");


jToolBar1.add(jLabel6);

txt_nim.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
txt_nimActionPerformed(evt);
}
});

txt_nama.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
txt_namaActionPerformed(evt);
}
});

txt_alamat.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
txt_alamatActionPerformed(evt);
}
});

jLabel7.setText("JENIS KELAMIN");

buttonGroup1.add(rb_pria);
rb_pria.setText("PRIA");
rb_pria.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
rb_priaActionPerformed(evt);
}
});

Halaman 114
Modul Praktikum Pemrograman Dasar

buttonGroup1.add(rb_wanita);
rb_wanita.setText("WANITA");

btn_simpan.setText("SIMPAN");
btn_simpan.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btn_simpanActionPerformed(evt);
}
});

label_nim.setText("NIM");

label_nama.setText("NAMA");

label_alamat.setText("ALAMAT");

label_jenis_kelamin.setText("JENIS KELAMIN");

label_program_studi.setText("PROGRAM STUDI");

label_tanggal_lahir.setText("TANGGAL LAHIR");

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());


getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jToolBar1, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup()
.addContainerGap()

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(label_jenis_kelamin, javax.swing.GroupLayout.PREFERRED_SIZE,
270, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(label_program_studi, javax.swing.GroupLayout.PREFERRED_SIZE,
270, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(label_tanggal_lahir, javax.swing.GroupLayout.PREFERRED_SIZE,
270, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(label_nim, javax.swing.GroupLayout.PREFERRED_SIZE, 270,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(label_nama, javax.swing.GroupLayout.PREFERRED_SIZE, 270,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(label_alamat, javax.swing.GroupLayout.PREFERRED_SIZE, 270,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(layout.createSequentialGroup()

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel1)
.addComponent(jLabel2)
.addComponent(jLabel3)
.addComponent(jLabel7)

Halaman 115
Modul Praktikum Pemrograman Dasar

.addComponent(jLabel4)
.addComponent(jLabel5))
.addGap(53, 53, 53)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(txt_alamat, javax.swing.GroupLayout.PREFERRED_SIZE,
589, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(layout.createSequentialGroup()
.addComponent(rb_pria)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(rb_wanita))
.addGroup(layout.createSequentialGroup()

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(cmbProgramStudi, 0,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(txt_tgl_lahir,
javax.swing.GroupLayout.PREFERRED_SIZE, 169, javax.swing.GroupLayout.PREFERRED_SIZE))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btn_simpan))
.addComponent(txt_nim, javax.swing.GroupLayout.PREFERRED_SIZE,
177, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(txt_nama, javax.swing.GroupLayout.PREFERRED_SIZE,
177, javax.swing.GroupLayout.PREFERRED_SIZE))))
.addContainerGap(68, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(txt_nim, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(txt_nama, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel2))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(txt_alamat, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel3))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)

Halaman 116
Modul Praktikum Pemrograman Dasar

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel7)
.addComponent(rb_pria)
.addComponent(rb_wanita))
.addGap(9, 9, 9)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel4)
.addComponent(cmbProgramStudi, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel5)
.addComponent(txt_tgl_lahir, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btn_simpan))
.addGap(18, 18, 18)
.addComponent(label_nim)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(label_nama)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(label_alamat)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(label_jenis_kelamin)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(label_program_studi)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(label_tanggal_lahir)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 101,
Short.MAX_VALUE)
.addComponent(jToolBar1, javax.swing.GroupLayout.PREFERRED_SIZE, 25,
javax.swing.GroupLayout.PREFERRED_SIZE))
);

pack();
}// </editor-fold>

private void txt_nimActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
}

private void txt_namaActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
}

private void txt_alamatActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
}

Halaman 117
Modul Praktikum Pemrograman Dasar

private void rb_priaActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
}

private void btn_simpanActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
label_nim.setText(txt_nim.getText());
label_nama.setText(txt_nama.getText());
label_alamat.setText(txt_alamat.getText());
label_program_studi.setText(cmbProgramStudi.getSelectedItem().toString());
label_tanggal_lahir.setText(txt_tgl_lahir.getText());

if(rb_pria.isSelected()) {
label_jenis_kelamin.setText("Pria");
}

else if(rb_wanita.isSelected()) {
label_jenis_kelamin.setText("Wanita");
}

else {
label_jenis_kelamin.setText("Tidak dipilih");
}
}

/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and
feel.
* For details see
http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info :
javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {

java.util.logging.Logger.getLogger(swing.class.getName()).log(java.util.logging.Level.SEVERE,
null, ex);
} catch (InstantiationException ex) {

Halaman 118
Modul Praktikum Pemrograman Dasar

java.util.logging.Logger.getLogger(swing.class.getName()).log(java.util.logging.Level.SEVERE,
null, ex);
} catch (IllegalAccessException ex) {

java.util.logging.Logger.getLogger(swing.class.getName()).log(java.util.logging.Level.SEVERE,
null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {

java.util.logging.Logger.getLogger(swing.class.getName()).log(java.util.logging.Level.SEVERE,
null, ex);
}
//</editor-fold>

/* Create and display the form */


java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new swing().setVisible(true);
}
});
}

// Variables declaration - do not modify


private javax.swing.JButton btn_simpan;
private javax.swing.ButtonGroup buttonGroup1;
private javax.swing.JComboBox<String> cmbProgramStudi;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JToolBar jToolBar1;
private javax.swing.JLabel label_alamat;
private javax.swing.JLabel label_jenis_kelamin;
private javax.swing.JLabel label_nama;
private javax.swing.JLabel label_nim;
private javax.swing.JLabel label_program_studi;
private javax.swing.JLabel label_tanggal_lahir;
private javax.swing.JRadioButton rb_pria;
private javax.swing.JRadioButton rb_wanita;
private javax.swing.JTextField txt_alamat;
private javax.swing.JTextField txt_nama;
private javax.swing.JTextField txt_nim;
private javax.swing.JFormattedTextField txt_tgl_lahir;
// End of variables declaration
}

Halaman 119
Modul Praktikum Pemrograman Dasar

MODUL 11 – Model-View-Controller MVC OOP


Tujuan :
Mahasiswa mampu mempraktikkan pemrograman dengan pola Model-View-Controller
secara orientasi objek.

Materi :
 Model View Controller Berorientasi Objek

Pola pemrograman di era saat ini perkembangannya sangat baik. Ada banyak pola
pemrograman yang telah dikembangkan oleh para programmer di dunia. Pola pemrograman
ini diciptakan dengan tujuan untuk memudahkan para programmer untuk pengembangan
aplikasi selanjutnya jika ada versi aplikasi terbaru. Selain itu pola pemrograman digunakan
untuk kolaborasi antar programmer dalam sebuh tim yang ingin membuat sebuah aplikasi.
Ada beberapa pola pemrograman yang dikenal di dunia yaitu Façade, Model-View-Presenter,
dan yang paling di kenal adalah Model-View-Controller. Pada modul ini akan dibahas pola
pemrograman dengan mennggunakan pola Model-View-Controller. Pola MVC ini secara
berorientasi objek digunakan pada pengembangan aplikasi yang bersifat dimana sebuah
method digunakan berulang-ulang pada sebuah proses. Contohnya adalah ketika membuat
aplikasi Sistem Pendukung Keputusan dimana SPK membutuhkan method untuk melakukan
proses perhitungan matematika dan algoritma secara berulang-ulang untuk mendapatkan
kesimpulan.

Model
Model pada OOP berisikan method setter dan getter dari sebuah objek. Model ini akab
berkomunikasi dengan Controller untuk mengambil method model yang ditaruh pada View.
Contohnya model seperti di bawah ini :

/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package modul11;

/**
*
* @author Lab
*/

Halaman 120
Modul Praktikum Pemrograman Dasar

public class modelHP {


private String kode;
private String tipe;
private double harga;

public modelHP() {

public modelHP(String kode, String tipe, double harga) {


this.kode = kode;
this.tipe = tipe;
this.harga = harga;
}

public String getKode() {


return kode;
}

public void setKode(String kode) {


this.kode = kode;
}

public String getTipe() {


return tipe;
}

public void setTipe(String tipe) {


this.tipe = tipe;
}

public double getHarga() {


return harga;
}

public void setHarga(double harga) {


this.harga = harga;
}
}

View
View adalah syntax tampilan. View ini akan berkomunikasi dengan controller untuk
mengambil method yang dibutuhkan pada view.

Halaman 121
Modul Praktikum Pemrograman Dasar

Controller
Contorller pada OOP berisikan method-method yang dibutuhkan untuk melakukan semua
proses yang ada di view. Controller juga berfungsi sebagai jembatan antara model dan view.
Contohnya sebaga berikut :

/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package modul11;

import java.util.ArrayList;

/**
*
* @author Lab
*/
public class controllerHP {
ArrayList<modelHP> listHP = new ArrayList<>();

public ArrayList<modelHP> getListHP() {


return listHP;
}

public void setListHP(ArrayList<modelHP> listHP) {


this.listHP = listHP;
}

public void insert(ArrayList<modelHP> listHP) {


// method untuk mengisi data
}

public void update(ArrayList<modelHP> listHP) {


// method untuk update data
}

public void delete(ArrayList<modelHP> listHP) {


// method untuk hapus data
}
}

Latihan
Buatlah sebuah form seperti di bawah ini yang berisi data mahasiswa kemudian disimpan di
dalam tabel.

Halaman 122
Modul Praktikum Pemrograman Dasar

Untuk input seperti di bawah ini :

Halaman 123
Modul Praktikum Pemrograman Dasar

Untuk update silahkan klik di salah satu kolom kemudian isi dari kolom tersebut tampil pada
form pengisian data. Contohnya seperti di bawah ini :

Untuk melakukan update, double klik pada salah satu baris yang ada pada tabel.

Halaman 124
Modul Praktikum Pemrograman Dasar

Setelah itu klik button “update”

Untuk delete silahkan klik salah satu kolom kemudian isi dari kolom tersebut tampil pada form
pengisian data. Contohnya seperti di bawah ini :

Setelah itu klik button “delete” maka salah satu akan hilang.

Halaman 125
Modul Praktikum Pemrograman Dasar

JAWABAN

Langkah pertama yaitu membuat form dan mengubah nama variabel “change variabel
name” seperti di bawah ini.

1. Gunakan Swing Control Text Field untuk membuat input-an NIM, NAMA, dan TANGGAL
LAHIR.

2. Gunakan Swing Control Button group dan Radio Button untuk jenis kelamin.

3. Gunakan Swing Control Button untuk membuat tombol “SIMPAN”.

4. Gunakan Swing Control “Table” untuk membuat tabel.

Setelah itu ubah nama variabel untuk Nim, Nama, Radio Button Pria, Radio Button Wanita,
Tanggal Lahir, button “SIMPAN”, button “UPDATE”, button “HAPUS”, dan tabel.

Swing Control Change Variable Name


Text Field NIM txt_nim
Text Field NAMA txt_nama
Radio Button PRIA rb_pria
Radio Button WANITA rb_wanita
Text Field TANGGAL LAHIR txt_tanggal_lahir
Button SIMPAN btn_simpan
Button UPDATE btn_update
Button HAPUS btn_hapus

Halaman 126
Modul Praktikum Pemrograman Dasar

Swing Control Change Variable Name


Table tabel_mahasiswa

Langkah kedua yaitu membuat modelMahasiswa dan controllerMahasiswa.

Setelah form telah selesai dibuat, langkah selanjutnya yaitu membuat modelMahasiswa yang
berisi setter dan getter. Silahkan ikuti syntax di bawah ini :

/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package modul11;

/**
*
* @author Lab
*/
public class modelMahasiswa {
private String nim, nama, jenisKelamin, tanggalLahir;

public modelMahasiswa() {
}

public modelMahasiswa(String nim, String nama, String jenisKelamin, String tanggalLahir) {


this.nim = nim;
this.nama = nama;
this.jenisKelamin = jenisKelamin;
this.tanggalLahir = tanggalLahir;
}

public String getNim() {


return nim;
}

public void setNim(String nim) {


this.nim = nim;
}

public String getNama() {


return nama;
}

public void setNama(String nama) {


this.nama = nama;
}

public String getJenisKelamin() {


return jenisKelamin;
}

public void setJenisKelamin(String jenisKelamin) {


this.jenisKelamin = jenisKelamin;
}

public String getTanggalLahir() {


return tanggalLahir;
}

public void setTanggalLahir(String tanggalLahir) {


this.tanggalLahir = tanggalLahir;
}
}

Setelah itu silahkan membuat controllerMahasiswa yang berisikan method-method yang


dibutuhkan untuk keperluan data. Method-method yang dibuat yaitu setter dan getter dari

Halaman 127
Modul Praktikum Pemrograman Dasar

modelMahasiswa, input data ke dalam tabel, update data ke dalam tabel, dan hapus data ke
dalam tabel.

/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package modul11;

import java.util.ArrayList;

/**
*
* @author Lab
*/
public class controllerMahasiswa {

private ArrayList<modelMahasiswa> listMahasiswa = new ArrayList<>();

public controllerMahasiswa() {}

public controllerMahasiswa(ArrayList<modelMahasiswa> listMahasiswa) {


this.listMahasiswa = listMahasiswa;
}

public ArrayList<modelMahasiswa> getListMahasiswa() {


return listMahasiswa;
}

public void setListMahasiswa(ArrayList<modelMahasiswa> listMahasiswa) {


this.listMahasiswa = listMahasiswa;
}

public void insertMahasiswa(String nim, String nama, String jenisKelamin, String


tanggalLahir) {
modelMahasiswa mMahasiswa = new modelMahasiswa(nim, nama, jenisKelamin, tanggalLahir);
listMahasiswa.add(mMahasiswa);
System.out.println("DATA TELAH DIMASUKKAN");
}

public void updateMahasiswa(int index, String nim, String nama, String jenisKelamin, String
tanggalLahir) {
modelMahasiswa mMahasiswa = new modelMahasiswa(nim, nama, jenisKelamin, tanggalLahir);
listMahasiswa.get(index).setNim(mMahasiswa.getNim());
listMahasiswa.get(index).setNama(mMahasiswa.getNama());
listMahasiswa.get(index).setJenisKelamin(mMahasiswa.getJenisKelamin());
listMahasiswa.get(index).setTanggalLahir(mMahasiswa.getTanggalLahir());
System.out.println("DATA TELAH DIPERBARUI");
}

public void deleteMahasiswa(int index) {


listMahasiswa.remove(index);
System.out.println("DATA TELAH DIHAPUS");
}

public int getArrayListSize() {


return listMahasiswa.size();
}
}

Langkah ketiga yaitu membuat syntax yang dibutuhkan pada view.

Kebutuhan syntax view antara lain adalah :

1. Event untuk input data mahasiswa


2. Event untuk menangkap baris dari sebuah tabel.
3. Event untuk perbarui data
Halaman 128
Modul Praktikum Pemrograman Dasar

4. Event untuk menghapus data


5. Sebuah method untuk menampilkan data.

Syntax pada view sebagai berikut :

/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package modul11;

import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;

/**
*
* @author Lab
*/
public class formMahasiswa extends javax.swing.JFrame {

/**
* Creates new form formMahasiswa
*/

private controllerMahasiswa cr = new controllerMahasiswa();


DefaultTableModel tabelModel;
private int tempRowSelected;

public formMahasiswa() {
initComponents();
tampilData();
}

/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {

jScrollPane1 = new javax.swing.JScrollPane();


jTable1 = new javax.swing.JTable();
buttonGroup1 = new javax.swing.ButtonGroup();
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
txt_nim = new javax.swing.JTextField();
txt_nama = new javax.swing.JTextField();
txt_tanggal_lahir = new javax.swing.JTextField();
btn_simpan = new javax.swing.JButton();
btn_update = new javax.swing.JButton();
btn_hapus = new javax.swing.JButton();
jScrollPane2 = new javax.swing.JScrollPane();
tabel_mahasiswa = new javax.swing.JTable();
rb_pria = new javax.swing.JRadioButton();
rb_wanita = new javax.swing.JRadioButton();

jTable1.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
));

Halaman 129
Modul Praktikum Pemrograman Dasar

jScrollPane1.setViewportView(jTable1);

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

jLabel1.setText("NIM");

jLabel2.setText("NAMA");

jLabel3.setText("JENIS KELAMIN");

jLabel4.setText("TANGGAL LAHIR");

btn_simpan.setText("SIMPAN");
btn_simpan.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btn_simpanActionPerformed(evt);
}
});

btn_update.setText("UPDATE");
btn_update.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btn_updateActionPerformed(evt);
}
});

btn_hapus.setText("HAPUS");
btn_hapus.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btn_hapusActionPerformed(evt);
}
});

tabel_mahasiswa.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
));
tabel_mahasiswa.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
tabel_mahasiswaMouseClicked(evt);
}
});
jScrollPane2.setViewportView(tabel_mahasiswa);

buttonGroup1.add(rb_pria);
rb_pria.setText("PRIA");

buttonGroup1.add(rb_wanita);
rb_wanita.setText("WANITA");

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());


getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(btn_simpan)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btn_update)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btn_hapus))
.addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(layout.createSequentialGroup()
.addGap(57, 57, 57)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)

Halaman 130
Modul Praktikum Pemrograman Dasar

.addComponent(jLabel2)
.addComponent(jLabel1))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(txt_nim, javax.swing.GroupLayout.PREFERRED_SIZE,
123, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(txt_nama, javax.swing.GroupLayout.PREFERRED_SIZE,
215, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGroup(layout.createSequentialGroup()

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(12, 12, 12)
.addComponent(jLabel3)
.addGap(11, 11, 11))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
layout.createSequentialGroup()
.addComponent(jLabel4)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)))

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(rb_pria)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(rb_wanita))
.addComponent(txt_tanggal_lahir,
javax.swing.GroupLayout.PREFERRED_SIZE, 121, javax.swing.GroupLayout.PREFERRED_SIZE))))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(txt_nim, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel2)
.addComponent(txt_nama, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel3)
.addComponent(rb_pria)
.addComponent(rb_wanita))
.addGap(18, 18, 18)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel4)
.addComponent(txt_tanggal_lahir, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(btn_simpan)
.addComponent(btn_update)
.addComponent(btn_hapus))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 294,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);

pack();
}// </editor-fold>

private void btn_simpanActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
String jnskel;

Halaman 131
Modul Praktikum Pemrograman Dasar

if(rb_pria.isSelected()) {
jnskel = "Pria";
}

else {
jnskel = "Wanita";
}
cr.insertMahasiswa(txt_nim.getText().toString(), txt_nama.getText().toString(),
jnskel, txt_tanggal_lahir.getText().toString());
JOptionPane.showMessageDialog(this, "DATA BERHASIL DI SIMPAN");
tampilData();
}

private void btn_updateActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
String jnskel;

if(rb_pria.isSelected()) {
jnskel = "Pria";
}

else {
jnskel = "Wanita";
}

cr.updateMahasiswa(tempRowSelected, txt_nim.getText(), txt_nama.getText(), jnskel,


txt_tanggal_lahir.getText());
tampilData();
}

private void btn_hapusActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
cr.deleteMahasiswa(tempRowSelected);
tampilData();
}

private void tabel_mahasiswaMouseClicked(java.awt.event.MouseEvent evt) {


// TODO add your handling code here:
tempRowSelected = tabel_mahasiswa.getSelectedRow();
if(evt.getClickCount() == 2) {

txt_nim.setText(cr.getListMahasiswa().get(tabel_mahasiswa.getSelectedRow()).getNim());

txt_nama.setText(cr.getListMahasiswa().get(tabel_mahasiswa.getSelectedRow()).getNama());

txt_tanggal_lahir.setText(cr.getListMahasiswa().get(tabel_mahasiswa.getSelectedRow()).getTangg
alLahir());

if(cr.getListMahasiswa().get(tabel_mahasiswa.getSelectedRow()).getJenisKelamin().equals("Pria"
)) {
rb_pria.setSelected(true);
}

else {
rb_wanita.setSelected(true);
}
}
}

/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and
feel.
* For details see
http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info :
javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}

Halaman 132
Modul Praktikum Pemrograman Dasar

}
} catch (ClassNotFoundException ex) {

java.util.logging.Logger.getLogger(formMahasiswa.class.getName()).log(java.util.logging.Level.
SEVERE, null, ex);
} catch (InstantiationException ex) {

java.util.logging.Logger.getLogger(formMahasiswa.class.getName()).log(java.util.logging.Level.
SEVERE, null, ex);
} catch (IllegalAccessException ex) {

java.util.logging.Logger.getLogger(formMahasiswa.class.getName()).log(java.util.logging.Level.
SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {

java.util.logging.Logger.getLogger(formMahasiswa.class.getName()).log(java.util.logging.Level.
SEVERE, null, ex);
}
//</editor-fold>

/* Create and display the form */


java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new formMahasiswa().setVisible(true);
}
});
}

private void tampilData() {


String[] kolom = {"NIM","Nama","Jenis Kelamin","Tanggal Lahir"};
Object[][] data = new Object[cr.getArrayListSize()][4];
int i = 0;
while(i < cr.getArrayListSize()) {
String arrayData[] = {
cr.getListMahasiswa().get(i).getNim(),
cr.getListMahasiswa().get(i).getNama(),
cr.getListMahasiswa().get(i).getJenisKelamin(),
cr.getListMahasiswa().get(i).getTanggalLahir()
};

data[i] = arrayData;
i++;
}
tabelModel = new DefaultTableModel(data,kolom){
@Override
public boolean isCellEditable(int rowIndex, int colIndex) {
return false;
}
};
tabel_mahasiswa.setModel(tabelModel);
reset();
}

private void reset() {


txt_nim.setText(null);
txt_nama.setText(null);
buttonGroup1.clearSelection();
txt_tanggal_lahir.setText(null);
}

// Variables declaration - do not modify


private javax.swing.JButton btn_hapus;
private javax.swing.JButton btn_simpan;
private javax.swing.JButton btn_update;
private javax.swing.ButtonGroup buttonGroup1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JTable jTable1;
private javax.swing.JRadioButton rb_pria;
private javax.swing.JRadioButton rb_wanita;
private javax.swing.JTable tabel_mahasiswa;
private javax.swing.JTextField txt_nama;
private javax.swing.JTextField txt_nim;

Halaman 133
Modul Praktikum Pemrograman Dasar

private javax.swing.JTextField txt_tanggal_lahir;


// End of variables declaration
}

Halaman 134

Anda mungkin juga menyukai