Java dikembangkan oleh suatu tim yang dipimpin oleh Patrick Naughton dan James 

Gosling dalam suatu proyek dari Sun Microsystem yang memiliki kode Green dengan tujuan 

untuk meghasilkan bahasa komputer sederhana yang dapat dijalankan di peralatan sederhana 

dengan tidak terikat pada arsitektur tertentu. Mula-mula James Gosling menyebut bahasa 

pemrograman yang dihasilkan dengan OAK, tetapi OAK sendiri merupakan nama dari 

bahasa pemrograman komputer yang sudah ada maka kemudian Sun mengubahnya menjadi 

Java .  

 Akhirnya setelah melalui beberapa transformasi dan proses, Sun meluncurkan 

browser Java yang disebut Hot Java yang mampu menjalankan applet. Versi-versi Java 

banyak dikembangkan hingga muncul JDK yang mempunyai teknologi Swing untuk 

menampilkan secara GUI. Teknologi Java yang disebut J2ME (Java 2 Micro Edition), sudah 

diadopsi oleh Nokia, Siemens, SonyEricson, Motorola, Samsung untuk menghasilkan apikasi 

mobile baik games maupun software bisnis dan berbagai jenis software lain yang dapat 

dijalankan di peralatan mobile seperti ponsel. 

 

A. Mengenal Java SDK  

SDK adalah kependekan dari Standard Development Kit , yang merupakan bekal 

utama bagi developer untuk membuat program dan menjalankan program Java. Secara garis 

besar, Java SDK terdiri dari : 

 Java Compiler (Javac) 

 Java Virtual Machine (sering disebut juga java Runtime Environment/ JRE) 

 Java Class Libraries (koleksi class yang dapat digunakan untuk menghasilkan 

program Java) 

 

 Java AplletViewer (program untuk menjalankan applet tanpa menggunakan 

browser) 

 Java Debugger dan tool lain 

Mula-mula kode program ditulis dengan Bahasa Java (file berekstensi .java) akan 

dikompilasi oleh compiler menjadi suatu kode objek yang berupa file berekstensi .class yang 

disebut dengan istilah bytecode. Jadi, dalam Java, hasil akhir programnya tidak berupa file 

berekstensi .EXE, melainkan berkestensi .class. Selanjutnya file bytecode ini akan dieksekusi 

baris per baris oleh interpreter. Dengan demikian, proses kompilasi hanya dilakukan sekali, 

akan tetapi proses interpretasi akan dilakukan setiap kali program dieksekusi. Dengan adanya 

konsep bytecode ini, dalam terminologi Java dikenal adanya istilah ”write once, run 

everywhere”. Ini berarti bahwa sekali kita menulis program dalam Bahasa Java dan 

melakukan kompilasi terhadapnya, maka bytecode-nya dapat dijalankan di dalam platform 

sistem operasi manapun selama komputer tersebut terpasang  Java Virtual Machine (JVM). 

 

B. Instalasi Java 

Sebelum membuat sebuah program menggunakan Bahasa Java, maka kita perlu 

melakukan instalasi software Java Plat form, Standar Edition (Java SE). Software ini dapat 

diunduh melalui link http://www.oracle.com/technetwork/java/javase/downloads/index.html 

untuk memperoleh Java SE versi terbaru (saat modul ini dibuat, versi terbaru adalah Java SE 

9.0.1). Setelah Java SE berhasil diinstal, maka berikutnya kita membutuhkan software text 

editor untuk menulis kode program dalam Bahasa Java. Saat ini banyak text editor yang 

dapat digunakan, salah satu di antaranya adalah Notepad++. Untuk mempermudah dalam 

penulisan kode program, maka kita dapat menggunakan software Java IDE (Integrated 

Development Environment), misalnya Netbeans, Eclipse, Jcreator, Intellij Idea, atau yang 

lainnya. 

 

C. Pengaturan CLASSPATH 

Jika kita membuat kode program Java tanpa melalui IDE, maka proses kompilasi dan 

interpretasi program akan dilakukan melalui console (dalam command prompt). Agar hal ini 

dapat dilakukan, maka perlu dilakukan pengaturan CLASSPATH pada console sebelum 

mengkompilasi dan mengeksekusi program. Pengaturan CLASSPATH dilakukan untuk 

memberitahu komputer dimana software Java SE disimpan. Pada umumnya, komputer 

dengan sistem operasi berbasis Unix tidak memerlukan lagi pengaturan CLASSPATH.  

Langkah pertama untuk melakukan pengaturan CLASSPATH (pada komputer 

berbasis Windows) adalah masuk ke aplikasi command prompt (cmd), kemudian ketikkan 

perintah di bawah ini. 

 

C:\ SET PATH="C:\Program Files\Java\jdk1.8.0_141\bin" 

  

Untuk menguji apakah pengaturan CLASSPATH tersebut sudah benar atau tidak, maka 

ketikkan perintah javac pada cmd. Jika keluar peringatan 'javac' is not recognized as an 

 

internal or external command, operable program or batch file, berarti pengaturan 

CLASSPATH gagal, jika tidak, maka berarti pengaturan telah berhasil. 

D. Tipe Data 

Di dalam Bahasa Java, tipe data dasar dapat dibedakan menjadi empat kelompok, 

yakni tipe data integer (bilangan bulat), tipe data floating-point (bilangan riil), tipe data 

karakter, dan tipe data boolean. Perlu diketahui bahwa pada Java, String bukan merupakan 

sebuah tipe data, melainkan sebuah objek, akan tetapi pada penggunaannya mirip seperti 

menggunakan sebuah tipe data. 

1. Tipe Data Integer 

Tipe data integer (bilangan bulat) pada Java terbagi menjadi empat jenis tipe, yaitu 

byte, short, int, dan long. Semua tipe data ini bersifat signed (bertanda), yaitu tipe data 

yang dapat merepresentasikan nilai negatif maupun positif. Tidak seperti pada kebanyakan 

bahasa pemrograman lainnya, Java tidak mendukung nilai unsigned (tipe tanpa tanda, yakni 

tipe data yang hanya dapat menyimpan nilai positif).  

 

Tipe Data Ukuran (bit) Rentang 

Byte 8 -128 s.d. 127 

Short 16 -32.768 s.d. 32.767 

Int 32 -2.147.483.648 s.d. 2.147.483.647 

Long 64 -9.223.372.036.854.775.808 s.d. 9.223.372.036.854.775.807 

 

2. Tipe Data Floating-Point 

Tipe floating-point (bilangan riil) digunakan untuk merepresentasikan nilai-nilai yang 

mengandung pecahan atau angka desimal di belakang koma. Tipe data ini dibedakan menjadi 

dua macam, yakni tipe data float dan double.  

 

Tipe Data Ukuran (bit) Rentang 

Float 32 3.4e-038 s.d. 3.4e+038 

double 64 1.7e-308 s.d. 1.7e+308 

 

3. Tipe Data Karakter 

Pada Java, tipe data char merupakan karakter Unicode yang dapat merepresentasikan 

semua karakter yang ada, yakni semua karakter yang terdapat dalam semua bahasa (dalam 

lingkup internasional), seperti Bahasa Latin, Arab, Yunani, dsb.  

 

4. Tipe Data Boolean 

 Seperti bahasa pemrograman pada umumnya, tipe data boolean pada Java digunakan 

untuk menampung nilai logika, yakni true dan false. Perlu diingat, pada Java, nilai true tidak 

sama dengan nilai 1, begitupun dengan nilai false tidak sama dengan nilai 0. Tipe boolean 

adalah tipe data yang dikembalikan oleh semua operator relasional, seperti ‟==‟, ‟>,‟ ‟<‟, 

‟>=‟, dan ‟<=‟. 

 

 

E. Variabel 

Variabel terdiri atas variabel class, instance, dan lokal. Variabel class adalah variabel 

yang dapat diakses oleh semua method di dalam class, termasuk static 

method seperti main. Variabel instance sama halnya dengan variabel class, tetapi tidak 

menggunakan kata static dalam pendeklarasiannya. Variabel instance terhubung dengan 

instance dari class. Jadi kita hanya bisa menggunakannya ketika membuat instance dari class. 

Karena static method tidak terhubung dengan instance dari class, kita tidak bisa 

menggunakan variabel instance dalam static method dan memasukkannya dalam main 

method. Variabel lokal adalah variabel yang dideklarasikan di dalam badan method. Jadi kita 

hanya dapat menggunakan variabel tersebut hanya di dalam method. Method lain dalam class 

tidak peduli akan keberadaan variabel tersebut. Dan variabel lokal hanya akan ada jika 

method (yang memiliki variabel lokal tersebut) dieksekusi. Dalam pendeklrasiannya kita 

tidak perlu menambahkan kata static (seperti yang harus dilakukan pada saat 

mendeklarasikan variabel class). Jika kata static digunakan dalam pendeklarasian variabel 

lokal, maka compiler akan menghasilkan pesan error dan menolak untuk melakukan compile 

terhadap program.  

Sebuah variabel dideklarasikan dengan terlebih dahulu menuliskan tipe data yang 

ingin digunakan, kemudian baru menuliskan nama variabelnya, seperti pada contoh di bawah 

ini. 

int angka1; 

int angka1, angka2; 

double x,y,z; 

char simbol; 

String kalimat; 

 

Pada saat deklarasi variabel, kita juga dapat langsung menginisialisasi nilai dari variabel 

tersebut, seperti contoh di bawah ini. 

 

int angka1 = 100; 

int angka1 = 100, angka2 = -5; 

double x = 1/12; 

char simbol = ’+’; 

String kalimat = ”Modul Praktikum PBO - UTY”; 

 

 

 

 

 

 

 

 

Contoh variabel statis: 

 

 

 

 

 

 

 

 

 

F. Operator 

Java merupakan bahasa pemrograman yang kaya akan operator. Secara umum, 

operator di dalam Java dibagi menjadi lima bagian: operator aritmatika, relasional, logika, 

dan bitwise, dan assignment. 

1. Operator Aritmatika 

Operator ini digunakan pada operasi-operasi aritmatika seperti penjumlahan, 

pengurangan, pembagian dan lain-lain. Tabel berikut ini menunjukkan daftar tabel 

operator aritmatika di dalam Java. 

 

Operator Keterangan 

+ Penjumlahan 

- Pengurangan 

* Perkalian 

/ Pembagian 

% Modulus (sisa bagi) 

++ Increment (menaikkan nilai dengan 1) 

-- Decrement (menurunkan nilai dengan 1) 

 

2. Operator Relasional 

Operator tersebut digunakan untuk membandingkan dua buah nilai (variabel) atau lebih, 

dimana operator ini akan mengembalikan atau menghasilkan nilai True atau False. 

Berikut ini tabel yang berisi daftar operator relasional di dalam Java. 

 

Operator Keterangan 

== Sama dengan 

!= Tidak sama dengan 

> Lebih besar 

public class SayHello 

// deklarasi class variable 

static String helloMessage = "Hello Programmer"; 

public static void main(String args[]) 

System.out.println(helloMessage); 

System.out.println(myNickNameIs); 

// deklarasi class variable 

static String myNickNameIs = "ghaNOZ2480"; 

 

 

< Lebih Kecil 

>= Lebih besar atau sama dengan 

<= Lebih kecil atau sama dengan 

 

3. Operator Logika 

Operator ini menghasilkan nilai yang sama dengan operator relasional, hanya saja 

penggunaannya lebih pada operasi antara dua buah operand yang bertipe boolean. 

Berikut ini tabel yang berisi daftar operator logika di dalam Java. 

 

Operator Keterangan 

&& Operasi AND 

|| Operasi OR 

^ Operasi XOR 

! Operasi NOT (Negasi) 

4. Operator Bitwise 

Operator bitwise digunakan untuk memanipulasi nilai dari bitnya, sehingga diperoleh 

nilai yang lain. Berikut ini adalah daftar operator bitwise dalam Java. 

 

Operator Keterangan 

& Operasi Bitwise AND 

| Operasi Bitwise OR 

^ Operasi Bitwise XOR 

~ Operasi Bitwise NOT 

>> Operasi shift right (geser ke kanan sebanyak n bit) 

>>> Operasi shift right zero fill 

<< Operasi shift left (geser ke kiri sebanyak n bit) 

 

5. Operator Assignment 

Operator assignment digunakan untuk memberikan suatu nilai ke sebuah varibel. 

Operator tersebut ditandai dengan tanda sama dengan „=‟. Tabel di bawah ini 

menunjukkan daftar operator assignment. 

 

Operator  Contoh  Ekuivalen dengan 

+= b += a b = b+a 

-= b -= a b = b-a 

*= b *= a b = b*a 

/= b /= a b = b/a 

%= b %= a b = b%a 

 

 

1.4. Latihan  

A. Membuat Program Sederhana  

1. Menulis program  

      Dengan menggunakan Editor teks sederhana (misalnya notepad), tulislah program 

berikut (nomor baris tidak perlu dituliskan) : 

 

public class Program1{ 

 public static void main(String[] args){ 

  System.out.println("Hello World"); 

 } 

 

2. Menyimpan program 

Simpanlah program diatas pada suatu folder yang sudah disediakan dengan ketentuan: 

- nama file SAMA PERSIS dengan nama class yang nama class yang memiliki 

method main() (ingat : Java bersifat case sensitive) 

- nama file berekstensi .java 

Simpan kode program tersebut dengan nama Program1.java, jangan lupa untuk 

mengubah bagian ”Save as type” menjadi All Types (jangan simpan sebagai .txt).  

 

3. Kompilasi program  

Langkah berikutnya adalah mengkompilasi kode program Java yang telah dibuat dengan 

cara masuk ke dalam command prompt kemudian masuk ke direktori dimana kode 

program tersebut disimpan. Jangan lupa, sebelumnya Anda harus melakukan pengaturan 

CLASSPATH terlebih dahulu. Ketikkan kata kunci javac diikuti dengan nama file yang 

ingin dikompilasi pada command prompt seperti contoh di bawah ini. 

 

D:\Praktikum\Java\ javac Program1.java 

 

Setelah berhasil melakukan kompilasi, maka secara otomatis pada direktori dimana Anda 

menyimpan kode program tersebut akan muncul sebuah file baru yakni Program1.class. 

Barulah, kita bisa menjalankan file Program1.class dengan mengetikkan kata kunci java 

diikuti dengan nama file .class yang ingin dijalankan (nama file tidak diikuti ekstensi 

.class) seperti contoh di bawah ini. 

 

D:\Praktikum\Java\ java Program1 

 

Jika berhasil, maka pada command prompt tersebut akan muncul tulisan ”Hello World”. 

 

 

B. Identifikasi kesalahan 

Jika masih ada pesan kesalahan, periksa lagi program diatas, termasuk proses 

penyimpanannya. Beberapa kesalahan yang sering muncul : 

1.  Nama file yang disimpan tidak sesuai dengan nama class-nya. 

 

2. Tidak ada void main pada program. 

 

3. Berikan contoh jenis-jenis kesalahan yang lain dan tunjukkan cara 

memperbaikinya 

 

 

C. Penggunakan variabel dan tipe data 

Tuliskan program di bawah ini dan lakukan kompilasi. Apakah luaran yang 

dihasilkan? 

10 

11 

12 

13 

14 

15 

16 

17 

18 

public class Program1{ 

 //Variabel class 

 int a,b; 

 double c; 

  

 public static void main(String[] args){ 

  //Variabel lokal 

  int hasilTambah; 

  double hasilKali; 

   

  a = 10; 

  b = -5; 

  hasilTambah = a + b; 

  hasilKali = hasilTambah * c; 

   

  System.out.println("Hasil: " + hasilKali); 

 } 

 

Penjelasan program 

Baris ke-3 dan ke-4 pada kode program di atas merupakan deklarasi variabel 

global berupa variabel a dan b yang bertipe int serta variabel c yang bertipe 

double. Sedangkan baris ke-8 dan ke-9 merupakan deklarasi dari variabel lokal 

berupa variabel hasilTambah yang bertipe int dan variabel hasilKali yang 

bertipe double yang dideklarasikan di dalam blok program utama (method 

main()). 

 

D. Memberikan input melalui keyboad dan menampilkan ke layar 

Untuk mendapatkan inputan dari keyboard, ada 3 perintah input pemrograman java 

yang akan dibahas yaitu perintah input BufferedReader, perintah input Scanner, 

dan perintah input JOptionPane.showInputDialog.  

Sedangkan untuk perintah output program java ada 2 yaitu menggunakan 

System.out.print  dan JOptionPane.showMessageDialog. 

 

Pada modul ini akan dikenalkan perintah memasukkan data melalui keyboard 

menggunakan Scanner  menampilkan input ke layar menggunakan System.out.print . 

Contoh program: 

 

 

 

 

 

 

1.5 Tugas 

 

1. Tulislah program di bawah ini dan lakukan kompilasi. 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

public class SayHelloC 

public static void main(String args[]) 

  // deklarasi variabel lokal dalam  main method 

    helloMessage = "Hello World"; 

    System.out.println(helloMessage); 

    String helloMessage; 

} // end of main method 

10 

 

 

 

 

a. Jika terjadi kesalahan pada saat kompilasi, tunjukkan pesan kesalahan yang 

ditampilkan pada layar 

b. Apa arti pesan kesalahan tersebut? 

c. Bagaimana cara memperbaikinya? 

 

2. Buatlah sebuah program untuk menghitung harga akhir barang dari sebuah 

supermarket yang telah didiskon sebesar 25%! Input dari program adalah harga awal 

barang sebelum didiskon (melalui keyboard) 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

11 

 

BAB 2  

Percabangan dan Perulangan 

 

2.1 Capaian Pembelajaran 

 

Setelah mempelajari bab ini, mahasiswa diharapkan: 

1. Memahami skema percabangan dan perulangan 

2. Memahami kapan percabangan dan perulangan dapat digunakan 

 

2.2 Indikator 

 

1. Mahasiswa mampu menggunakan percabangan dan perulangan dalam pemrograman 

2. Mahasiswa mampu memecahkan kasus yang bersifat percabangan dan perulangan   

 

2.3 Uraian Materi 

 

A. Percabangan 

Di dalam Java, percabangan dapat diimplementasikan dalam dua jenis pernyataan: 

pernyataan if dan pernyataan switch-case. Keduanya memiliki fungsi yang sama, tetapi 

ada sedikit perbedaan di antara keduanya. 

Pernyataan if 

Pernyataan if dapat diimplementasikan untuk menangani percabangan yang 

didasarkan atas satu, dua, atau lebih dari dua kondisi. Pernyataan if digunakan apabila 

jumlah kondisi yang ada tidak terlalu banyak. 

Bentuk if dengan satu kondisi adalah bentuk yang paling sederhana, mengandung 

suatu pernyataan tunggal yang dieksekusi jika kondisi yang ada terpenuhi. Sintaks dasarnya 

adalah sebagai berikut: 

 

if (kondisi) { 

     statement1; 

     statement2; 

     … 

 

Pernyataan if dengan dua kondisi digunakan untuk mengambil keputusan 

berdasarkan dua kondisi. Apabila kondisi pertama terpenuhi, maka program akan 

mengeksekusi serangkaian statement, namun jika kondisi pertama tidak terpenuhi, maka 

program akan mengeksekusi statement lainnya. Berikut sintaks dasarnya: 

  

12 

 

if (kondisi) { 

     //statement yang akan dilakukan jika kondisi benar 

     Statement1; 

     Statement2; 

     … 

} else { 

     //statement yang akan dilakukan jika kondisi salah 

     Statement1; 

     Statement2; 

     … 

 

Apabila kondisi yang ada jumlahnya lebih dari dua, maka kita perlu menambahkan 

blok else if pada kode program kita. Sintaks dasarnya adalah sebagai berikut: 

 

if (kondisi_1){ 

      //statement yang akan dilakukan jika kondisi_1 benar 

 Statement1; 

 Statement2; 

      … 

} else if (kondisi_2){ 

      //statement yang akan dilakukan jika kondisi_1 salah 

 Statement1; 

 Statement2; 

      … 

} else { 

      //statement yang akan dilakukan jika kondisi_1 dan kondisi_2 salah 

 Statement1; 

 Statement2; 

      … 

 

Ada kalanya kondisi yang ada sangat banyak, mungkin lebih dari 5 kondisi, sehingga 

menulis kode percabangan menggunakan pernyataan if dirasa tidak efisien lagi, maka kita 

dapat menggunakan pernyataan switch-case sebagai alternatifnya. Berikut sintaks dasarnya: 

 

switch (ekspresi) { 

 case nilai1: 

           //statement yang akan dilakukan jika ekspresi = nilai1 

      statement1; 

      statement2; 

      break; 

 case nilai2: 

           //statement yang akan dilakukan jika ekspresi = nilai2 

      statement1; 

      statement2; 

      break; 

 … 

      default: 

      statement1; 

      statement2; 

 

13 

 

B. Perulangan 

Perulangan digunakan untuk melakukan sejumlah operasi yang sama secara berulang-

ulang sampai tercapai kondisi berhentinya. Di dalam Java terdapat tiga skema perulangan: 

for, while, dan do-while. Masing-masing memiliki kegunaan tersendiri. 

Skema perulangan for digunakan apabila jumlah perulangan yang akan dilakukan 

sudah diketahui. Sintaks dasarnya adalah sebagai berikut: 

 

for (inisialisasi; kondisi; iterasi){ 

     //statement yang akan diulang 

     ... 

 

Secara fungsional, perulangan while sama saja dengan perulangan for, hanya saja 

perulangan while biasa digunakan apabila jumlah perulangan yang akan dilakukan belum 

diketahui pasti jumlahnya. Skema ini akan terus melakukan perulangan selama kondisi yang 

diset terpenuhi. Sintaks dasarnya adalah sebagai berikut: 

 

While(kondisi){ 

    //statement yang akan diulang 

    ... 

    iterasi 

 

Perulangan ini mirip dengan skema perulangan while, akan tetapi perbedaannya 

adalah pada proses pengecekan kondisi perulangan. Pada skema perulangan while, program 

akan mengecek kondisi terlebih dahulu, jika kondisi bernilai true, maka statement di dalam 

perulangan akan dieksekusi. Sebaliknya, pada skema perulangan do-while, program terlebih 

dahulu mengeksekusi statement di dalam perulangan, baru kemudian melakukan pengecekan 

kondisi. Jika kondisi bernilai true, maka program akan mengeksekusi kembali statement di 

dalam perulangan. Dari sini bisa disimpulkan bahwa perulangan do-while setidaknya akan 

mengeksekusi statement di dalam perulangan minimal satu kali apapun kondisi 

perulangannya. Berikut adalah sintaks umum skema perulangan do-while. 

 

do { 

    //statement yang akan diulang 

    ... 

    iterasi 

} while(kondisi) 

 

  

14 

 

2.4 Latihan 

1. Tuliskan program di bawah ini. 

 

10 

11 

12 

13 

14 

15 

16 

public class Percabangan2{ 

   public static void main(String[] args){ 

      //Variabel lokal 

 int a = 7; 

   

 if ((a > 0) && (a % 2 == 0)){ 

    System.out.println(a + "adalah bilangan genap positif"); 

 } else if ((a < 0) && (a % 2 == 0)){ 

         System.out.println(a + "adalah bilangan genap negatif"); 

      } else if ((a > 0) && (a % 2 != 0)){ 

         System.out.println(a + "adalah bilangan ganjil positif"); 

      } else { 

         System.out.println(a + "adalah bilangan ganjil negatif"); 

      }  

   } 

 

Program di atas menghasilkan output berupa kalimat ”7 adalah bilangan ganjil 

positif” karena kondisi_1 (baris ke-6) dan kondisi_2 (baris ke-8) tidak terpenuhi, 

sedangkan kondisi_3 (baris ke-10) terpenuhi. 

a. Tulislah algoritma program tersebut 

b. Apa luaran jika dilakukan kompilasi ? 

 

2. Diberikan sebuah kode program: 

10 

11 

12 

13 

14 

15 

16 

17 

 

public class Percabangan3{ 

   public static void main(String[] args){ 

 //Variabel lokal 

 int nomorHari = 2; 

   

 switch (nomorHari){ 

    case 1: 

  System.out.println("Hari ke-" +nomorHari+ ": Senin"); 

   break; 

         case 2: 

  System.out.println("Hari ke-" +nomorHari+ ": Selasa"); 

  break; 

    default: 

  System.out.println("Tidak ada hari ke-" +nomorHari); 

 } 

   } 

a. Apakah luaran program di atas? 

b. Jika variabel nomorHari diisi melalui keyboard dengan nilai 3, maka program di atas 

akan menampilkan apa? 

  

15 

 

2.5 Latihan 

1. Dari program contoh 2, tambahkan semua hari dalam seminggu. 

 

2. Buatlah kode program untuk menentukan apakah berat badan seseorang ideal atau tidak. 

Berat badan ideal seseorang dapat dihitung dengan rumus berikut ini: 

a. BBI = (TB-100) - ((TB-100)*10%) , untuk pria (TB = Tinggi Badan) 

b. BBI = (TB-100) - ((TB-100)*15%) , untuk wanita. 

Jika berat badan seseorang lebih besar dari nilai BBI-nya, maka berat badannya tidak 

ideal. Buatlah kode programnya! 

3. Jika diketahui sebuah kode program berikut ini: 

10 

11 

12 

13 

14 

15 

16 

17 

18 

19 

20 

public class Soal{ 

 public static void main(String[] args){ 

  int a, b; 

   

  a = 6; 

  b = -3; 

   

  if ((a + b) >= (b - a)){ 

   a += 2; 

   b += a; 

   if(a % 2 == 0){ 

    a = b; 

   } else{ 

    b += a + 1; 

   } 

  } 

   

  a = -b - a; 

 } 

  

Tentukan nilai a dan b jika program di atas dieksekusi! 

  

16 

 

BAB 3 

Kelas (Class), Objek (Object), dan Class Diagram 

 

 

3.1 Capaian Pembelajaran 

 

Setelah mempelajari bab ini, mahasiswa diharapkan: 

1. Mengetahui konsep kelas dan objek 

2. Mengetahui class diagram 

 

 

3.2 Indikator 

 

1. Mampu menjelaskan kelas dan objek  

2. Mampu membuat class diagram  

 

 

3.3 Uraian Materi 

 

A. Kelas (class)  

Bahasa Java merupakan bahasa pemrograman yang berorientasi obyek sehingga 

konsep obyek dan kelas (class) menjadi penting. Dalam dunia nyata, ada banyak obyek 

misalnya  obyek orang, obyek mobil, obyek pohon dsb. Bagaimana memindahkan obyek 

yang ada dalam dunia nyata menjadi obyek dalam pemrograman khususnya Java ? 

 Misalkan obyek dalam dunia nyata adalah obyek orang. Obyek tersebut dapat 

diceritakan tentang ciri-cirinya , yaitu tinggi badan, berat badan, warna rambut, warna kulit, 

jenis kelami, menggunakan kacamata dll. Dalam pemrograman , obyek didunia nyata akan 

menjadi CLASS, dan ciri-ciri obyek akan menjadi variabel class yang disebut sebagai DATA 

MEMBER.  

Berdasarkan contoh diatas, pendefinisian pada pemrograman adalah : 

Class Handphone 

   String merk; 

   String tipe; 

   String warna; 

   double harga; 

class Mobil 

 // Variabel class 

 private int warna; 

 private String 

merek; 

Class Orang 

  String nama; 

  Int tinggi_badan; 

  Int berat_badan; 

  String warna_kulit; 

  Boolean berkacamata; 

 

 

  

17 

 

Struktur pembuatan class, adalah sebagai berikut: 

 

class NamaClass 

 //Isi class 

 

Keterangan: 

Nama_Kelas harus sesuai dengan nama file. 

Contoh: class Handphone, maka nama filenya harus diberi nama dengan 

Handphone.java. 

 

B. Atribut 

Atribut merupakan ciri-ciri yang melekat pada suatu objek. Berikut adalah contoh 

syntax atribut. 

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

Keterangan: 

 [access_modifier] digunakan untuk memberi batasan hak class maupun method. 

Access modifier akan dijelaskan pada sub bab berikutnya 

 [tipe_data] menjelaskan apakah variabel tersebut bertipe String, int, double, dan 

sebagainya 

 [nama_variabel] merupakan sebutan (definisi) variabel tersebut 

 [value] merupakan nilai dari variable tersebut 

            Contoh: private String warna = “merah”; 

C. Method 

Method merupakan tindakan/aksi yang bisa dikerjakan oleh CLASS. Method 

merupakan fungsi-fungsi yang digunakan untuk memanipulasi nilai-nilai pada atribut 

dan/atau untuk melakukan hal-hal yang dapat dilakukan oleh objek itu sendiri. Dalam hal ini 

method dapat berisi sekumpulan program yang telah terbungkus. Dengan method, kita bisa 

memanggil kumpulan program tersebut hanya dengan memanggil nama methodnya sehingga 

pekerjaan jadi lebih singkat dan tidak boros menuliskan program. Selain itu, program menjadi 

lebih terstruktur, praktis, dan efisien. Contoh:  

METHOD  Class 

Handphone 

METHOD  Class Mobil METHOD  Class Orang 

- Memasukan warna 

- Memasukkan tipe 

- Memasukkan merek 

- memasukan data mobil 

- gerak mobil belok kiri 

- menampilkan informasi 

-memasukkan data orang 

- tertawa 

-menangis 

-menampilkan informasi 

 

18 

 

Method yang mengembalikan nilai biasanya berupa sub program berjenis fungsi. 

Sedangkan method yang tidak mengembalikan nilai biasanya berupa sub program berjenis 

prosedur. 

 

Berikut adalah contoh syntax pembuatan method. 

[access_modifier] [tipe_data] nama_method(……) 

Keterangan: 

 [access_modifier] digunakan untuk memberi batasan hak class maupun method. 

Access modifier akan dijelaskan pada sub bab berikutnya 

 [tipe_data] menjelaskan apakah variabel tersebut bertipe String, int, double, dan 

sebagainya 

 [nama_method] merupakan sebutan (definisi) method tersebut. Umumnya method 

selalu diakhiri dengan tanda kurung () 

 (…….) berisi parameter apabila diperlukan. 

 

Contoh 

Implementasi method dalam pemrograman adalah: 

 

 

 

 

 

 

 

 

 

D. Objek 

 Dalam pemrograman, suatu class dapat mempunyai banyak objek dan objek akan 

mewarisi data member dan method yang sama dari suatu class. Objek disebut juga instance 

of Class merupakan objek yang diinstan atau dibuat dari class.  

Untuk membuat obyek  dari class Orang, digunakan keyword „new‟. Contoh : 

public void masuk_info_mobil(int mrk, String nm) 

 { 

  this.merek = mrk; 

public void menangis() 

     System.out.println(“hik….hik…..hikk”);} 

public void  tertawa() 

     System.out.println(“ha….ha…..ha”);} 

19 

 

Orang   org1 = new Orang (“Samuel”); 

Orang   org2 = new Orang (“Ari”); 

Sehingga class Orang , saat ini mempunyai 2 obyek. 

 

E. Kata Kunci „this‟ 

Kata kunci this digunakan untuk membedakan variabel yang dideklarasikan pada 

parameter di dalam method dengan variabel yang dideklarasikan pada class. Untuk 

penggunaan this dapat anda lihat pada soal latihan. 

 

F. Class Diagram 

Class Diagram adalah sebuah diagram yang menggambarkan hubungan 

antar class. Class Diagram dapat kita buat dengan aplikasi perancangan (CASE), seperti 

StarUML. 

 

Sebauh class digambarkan dengan sebuah tabel 1 kolom dan 3 baris. 

Baris pertama berisi nama class; Baris kedua berisi atribut; dan Baris ketiga berisi method. 

 

Selain itu, terdapat garis yang menggambarkan hubungan antar class. 

20 

 

 

Class Diagram biasanya digunakan oleh software engineeruntuk merancang software dengan 

paradigma OOP. 

 

3.4 Latihan 

Berdasarkan contoh di atas tentang handphone, buatlah 2 buah class yang terdiri dari 

class handphone dan class utama. Class utama digunakan untuk memanggil class handphone. 

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

 

 

Sedangkan pada class handphone harus memiliki beberapa ketentuan sebagai berikut: 

 

Atribut berisi merk, tipe, warna, dan harga 

Terdapat method setter dan getter untuk mengeset 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 

 

21 

 

Jawab: 

 

Langkah 1: Membuat skema 

Skema diagram digunakan untuk membantu anda dalam membantu logika anda untuk 

pembuatan program. Tanda “-“ dilambangkan sebagai private. 

Sedangkan tanda “+” dilambangkan sebagai public. Berikut adalah skema diagramnya. 

 

 

 

Langkah 2: class Handphone (ketikkan script berikut) 

a. Membuat kerangka class Handphone 

Setelah anda membuat class Handphone, simpan file tersebut dengan nama 

Handphone.java. Di dalam class Handphone, juga menyediakan tempat untuk 

mendeklarasikan variabel, setter dan getter. 

b. Mendeklarasi variabel yang dibutuhkan 

Setelah kita membuat kerangka class, maka diperlukan pendeklarasian variabel yang nantinya 

digunakan sebagai tempat menyimpan data yang bersifat sementara (temporary). Gambar di 

bawah ini menunjukkan pendeklarasian variabel. 

 

 

c. Membuat method setter 

Setelah membuat variabel yang dibutuhkan pada class Handphone, langkah 

selanjutnya anda buat method setter untuk masing-masing variabel. Hal ini bertujuan untuk 

mengeset nilai yang diperoleh dari class Utama yang nantinya akan kita gunakan ke dalam 

class Handphone. Perlu diketahui pula, bahwa dalam pembuatan variabel pada parameter di 

method setter, harus sesuai dengan tipe data pada variabel yang dideklarasikan di kelas. 

Gambar di bawah ini menunjukkan deklarasi setter. 

22 

 

 

 

 

Sebagai tambahan informasi, dalam pembuatan method setter, kita menggunakan sub 

program berjenis prosedur. Hal ini dikarenakan data yang akan kita set, tidak terdapat umpan 

balik ke dalam program. Handphone (lihat script yang diberi kotak berwarna biru). Apabila 

variabel tersebut tersebut tidak diberi keyword this, maka variabel tersebut akan mengacu 

kepada variabel yang dideklarasikan pada parameter method setter (lihat script yang diberi 

kotak berwarna hijau). Anda bisa menggunakan keyword this atau tidak apabila ada 

perbedaan deklarasi nama variabel pada class Handphone dengan parameter pada method 

setter (lihat script yang diberi kotak berwarna ungu). 

 

d. Membuat method getter 

Setelah membuat method setter, anda tinggal membuat method getter untuk mengambil 

nilai dari masing-masing variabel. Hal ini bertujuan untuk mengambil nilai dari variabel pada 

class Handphone yang nantinya akan kita kembalikan ke dalam class Utama. Perlu diketahui 

pula, 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. 

 

 

23 

 

 

 

Sebagai tambahan informasi, dalam pembuatan method getter, kita menggunakan sub 

program berjenis fungsi karena dibutuhkan umpan balik dalam pengambilan data. 

 

d. Membuat method tambahan 

Seperti namanya, method ini hanya sebagai tambahan apabila ada permintaan soal 

untuk mengolah data-data yang telah kita set dan get ke dalam bentuk informasi. Seperti soal 

yang diminta, anda diminta untuk menghitung dan mencetak harga handphone sesudah 

diskon. Gambar di bawah ini menunjukkan pembuatan method HargaDiskon() dan method 

keterangan(). 

 

 

 

24 

 

Langkah 3: class Utama (ketikkan script berikut) 

a. Membuat kerangka class Utama 

Setelah anda membuat class Utama, simpan file tersebut dengan nama 

Utama.java. Di dalam class inilah, program anda akan dijalankan. 

 

 

 

b. Membuat instance of class 

Setelah anda membuat class Utama, langkah berikutnya yang anda lakukan adalah membuat 

sebuah objek yang bertipe class Handphone. Itulah yang dinamakan instance of class (untuk 

penjelasannya, dapat anda lihat pada sub bab sebelumnya). Misalkan, objek yang saya buat 

adalah hp, maka penulisan script-nya adalah sebagai berikut. 

 

 

 

c. Membuat inputan yang diisi user 

Sebelum anda membuat inputan yang nantinya akan diisi oleh user, anda dapat menggunakan 

class yang dapat digunakan untuk menerima inputan, salah satunya adalah class 

BufferedReader yang terdapat pada package java.io. Untuk mengakses class 

BufferedReader, anda harus mengimport class tersebut. (boleh juga menggunakan class 

Scanner). Berikut adalah contoh script-nya. 

 

25 

 

 

 

Setelah itu, buatlah sebuah perintah yang akan dicetak oleh program, yang nantinya user 

dapat mengetahui apa saja yang harus ia lakukan ketika program dijalankan. Setiap inputan 

dari user, kemudian akan ditampung ke dalam variabel (lihat script yang diberi kotak 

berwarna merah). Setelah ditampung ke dalam variabel, maka data tersebut akan di set satu 

per satu ke dalam class Handphone (lihat script yang diberi kotak berwarna biru). Berikut 

adalah contoh script-nya. 

 

 

 

 

  

26 

 

d. Membuat output 

Ini adalah langkah terakhir. Ketika data sudah diinput semua, maka diperlukan output 

dari hasil tampilan program tersebut. Untuk mengambil data-datanya, anda cukup 

menggunakan method get() dalam hal pengambilan data. Berikut adalah contoh script-nya. 

 

 

 

Coba anda perhatikan script pada line 34! Pada script di atas, anda cukup memanggil nama 

methodnya saja, tanpa perlu mengetik lagi. Hal ini menunjukkan bahwa penulisan 

hp.keterangan() sama halnya dengan anda mengetikkan System.out.println ("Harga HP 

sesudah diskon (10%) = Rp " + HargaDiskon()); pada class Handphone. 

  

27 

 

// MEMBUAT KELAS MOBILKU 

   class Mobilku 

   { 

 // Variabel class   

 private int merek; 

 private String nama; 

 

 // informasi mobil --> METHOD  

 public void masuk_info(int mrk , String nm) 

 { 

  this.merek = mrk; 

  this.nama = nm; 

 } 

 public void info() 

 { 

  System.out.println("No   = "+this.merek); 

  System.out.println("Nama = "+this.nama); 

 } 

  } 

 

 

 

 

 

 

3.5 Tugas 

1. Ketiklah program berikut dan lakukan kompilasi.  

 

 

 

 

 

 

 

 

 

 

 

 

 

  // MEMBUAT KELAS MOBIL YANG MEMAKAI KELAS MOBILKU 

  public class mobil 

  { 

 public static void main(String args[]) 

 { 

   // buat 2 buah obyek mobilku yaitu mobil1 dan mobil2 

   mobilku mobil1 = new mobilku();//obyek 1 bernama mobil1 

   mobilku mobil2 = new mobilku();//obyek 2 bernama mobil2 

 

        // memberi nomor dan nama obyek mobil1 dan mobil2 

        mobil1.masuk_info(1, "HONDA"); 

   mobil2.masuk_info(2, "TOYOTA"); 

 

    // Panggil  method    

    mobil1.info(); 

    mobil2.info(); 

 } 

   } 

  

28 

 

2. Buat skema class Mobilku 

3. Apa nama file untuk menyimpan program tersebut? 

4. Apa luaran program tersebut? 

5. Tambahkan method supaya mobil bisa diidentifikasi jenisnya 

6. Tambahkan method lain supaya mobil 1 dan mobil 2 mempunyai warna yang berbeda   

7. Buatlah program untuk menggunakan class Orang seperti di atas. 

 

 

 

 

 

 

 

  

29 

 

BAB 4  

Enkapsulasi  

 

4.1 Capaian Pembelajaran 

 

Setelah mempelajari bab ini, mahasiswa diharapkan mengetahui konsep enkapsulasi dan 

implementasinya pada PBO 

 

4.2 Indikator 

 

1. Mampu menjelaskan konsep PBO   

2. Mampu mengimplementasikan pada PBO 

 

4.3 Uraian Materi 

  Encapsulation adalah salah satu dari empat konsep OOP fundamental. Tiga lainnya 

adalah pewarisan, polimorfisme, dan abstraksi. Enkapsulasi adalah mekanisme membungkus 

data (variabel) dan kode yang bekerja pada data (methode) yang bersama-sama sebagai satu 

kesatuan. Didalam enkapsulasi, variabel kelas akan disembunyikan dari kelas-kelas lain, dan 

dapat diakses hanya melalui method kelas itu sendiri. Oleh karena itu, juga dikenal sebagai 

persembunyian data.  

Untuk membuat enkapsulasi di Java: 

• Mendeklarasikan variabel kelas sebagai private.  

• Menyediakan method setter dan getter umum untuk memodifikasi dan melihat nilai-nilai 

variabel. Contoh:   

 

public class SegiEmpat 

{    private int panjang;     

private int lebar;  

  

public void setPanjang(int pj){  

    this.panjang=pj;  

}   

public void setLebar(int lb){ 

    this.lebar=lb;  

}   

public int getPanjang(){  

    return this.panjang; 

}     

public int getLebar(){  

    return this.lebar; 

}  

public int luas(){  

    return this.panjang*this.lebar;  

}  

  }  

30 

 

public setXXX()dan getXXX() adalah method akses dari variabel instance dari kelas 

EncapTest. Biasanya, method ini disebut sebagai getter dan setter. Oleh karena itu, 

setiap kelas yang ingin mengakses variabel harus mengaksesnya melalui getter dan setter.  

  

Keuntungan Encapsulation  

• Atribut/properti dalam kelas bisa dibuat hanya-baca atau menulis saja.  

• Sebuah kelas dapat memiliki total kontrol atas apa yang disimpan dalam atribut/properti.  

• Pengguna kelas tidak tahu bagaimana kelas menyimpan datanya. Sebuah kelas dapat 

mengubah tipe data dari properti dan pengguna kelas tidak perlu mengubah apapun.  

  

4.4 Latihan  

  

1. Buatlah proyek baru, dan kelas EncapTest.java  seperti pada contoh program berikut:  

 Program EncapTest.java  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  

public class EncapTest { 

   private String name; 

   private String idNum; 

   private int age; 

 

   public int getAge() { 

      return age;    

   } 

 

   public String getName() { 

      return name;    

   } 

 

   public String getIdNum() { 

      return idNum;    

   } 

31 

 

Program EncapTest.java  

  

2. Untuk memanggil kelas tersebut  tambahkan/buatlah TestEnscapsulasi seperti pada 

program utuma di bawah ini:  

  

Program TestEnscapsulasi.java  

 

4.5 Tugas 

 

1. Buatlah program yang memanfaatkan sifat enkapsulasi untuk menghitung keliling dan 

luas lingkaran. 

2. Tambahan tugas dari dosen pengampu. 

 

 

  

/* File name : RunEncap.java */ 

public class RunEncap { 

   public static void main(String args[]) { 

      EncapTest encap = new EncapTest(); 

      encap.setName("James"); 

      encap.setAge(20); 

      encap.setIdNum("12343ms"); 

      System.out.print("Name : " + encap.getName() + " Age : " + 

encap.getAge());   } 

32 

 

BAB 5 

Constructor  

 

5.1 Capaian Pembelajaran 

 

Setelah mempelajari bab ini, mahasiswa diharapkan: 

1. Mengetahui konsep constructor 

2. Mengetahui implemtasi constructor dalam program 

 

5.2 Indikator 

 

1. Mampu menjelaskan konsep constructor 

2. Mampu mengimplementasikan constructor di dalam program 

 

5.3 Uraian Materi 

Setiap manusia pasti memiliki nama. Sadar atau 

tidak, anda akan memperkenalkan diri anda dengan 

menyebutkan nama, alamat, tanggal lahir, hobi, dan 

sebagainya. Namun, pernahkah anda berpikir mengapa 

banyak orang suka menghapal nama anda ketimbang 

alamat, tanggal lahir, hobi, dan sebagainya? Padahal 

terkadang nama banyak dipakai juga pada orang lain? 

Bahkan nama lengkap saya sendiri pun juga ada yang 

menggunakannya meskipun ejaannya berbeda. Itu semua 

karena nama anda adalah unik. Sekali lagi, coba anda bayangkan bagaimana kalau anda tidak 

mempunyai nama? Orang lain pasti akan kebingungan memanggil anda. Bisa-bisa anda akan 

dipanggil “Anonymous” sebagai seseorang tanpa nama. Demikian pula dalam pembuatan 

constructor. Ketika anda membuat sebuah objek dari class manusia (sebut saja “Orang 1”), 

kemudian anda dapat menge-set nilai berupa nama, alamat, tanggal lahir, dan hobi 

menggunakan method setter(). Berbeda halnya dengan constructor. Ketika objek “Orang 1” 

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.  

  

A. Constructor  

Constructor adalah method yang berfungsi untuk menginisialisasi variabelvariabel 

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 diinisialisasi kepada nilai default, sesuai dengan tipe datanya masing-masing. 

Berikut adalah struktur constructor.  

 

33 

 

 

Contoh penggunaan constructor:  

 

  

B. Karakteristik Constructor  

Berikut ini adalah beberapa karakteristik yang dimiliki oleh constructor:  

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

2. Tidak mengembalikan suatu nilai (tidak ada keyword return)  

3. Satu kelas memiliki lebih dari constructor (overloading constructor)  

4. Dapat ditambah access modifier public, private, protected maupun default  

5. Suatu constructor bisa dipanggil oleh constructor lain dalam satu kelas  

  

C. Overloading Constructor  

Seperti yang telah dijelaskan poin 3 pada karakteristik constructor bahwa dalam sebuah 

class dapat memiliki lebih dari satu constructor. Yang membedakan antara constructor yang 

satu dengan yang lainnya adalah jumlah parameter dan tipe data di dalamnya. Struktut 

Overloading Constructor adalah sebagai berikut.  

 

 

 

  

  

  

34 

 

Contoh penggunaan constructor:  

 

Pada contoh di atas, anda melihat class Login dimana memiliki 2 constructor. Selain 

itu, terdapat perbedaaan cara membuat objek (instance of class) dengan menggunakan 

overloading constructor di class Utama. Jika anda ingin membuat instance of class dengan 

method Login tanpa parameter adalah sebagai berikut:  

 

Pembuatan objek di atas akan memberikan nilai set default username dan password 

berupa admin dan 12345. Sedangkan jika anda ingin membuat user sendiri (misal: 

username=edo, password=pb0) melalui instance of class dengan method Login menggunakan 

parameter adalah sebagai berikut:  

 

Login user1 = new Login(“edo”, “pb0”);  

D. Overloading 

Overloading merupakan suatu mekanisme yang memungkinkan kita untuk membuat 

lebih dari satu method dengan nama yang sama. Namun dengan ketentuan bahwa setiap 

method harus memiliki parameter yang berbeda, baik berbeda dari nama parameternya, atau 

berbeda dari tipe datanya, atau bahkan berbeda jumlah parameternya. Overload  dapat 

dilakukan terhadap constructor dan juga method. 

 

Overload pada Constructor 

Pada kenyataannya, suatu kelas pada umumnya justru memiliki lebih dari satu constructor. 

Artinya, kita dapat melakukan instansiasi objek dengan menggunakan salah satu dari 

constructor yang ada pada kelas yang dirujuk. 

 

Overload pada Method 

Sama halnya dengan constructor, method juga dapat dikenai overload dengan syarat bahwa 

kedua dua method yang namanya sama harus memiliki parameter yang berbeda 

 

  

35 

 

E. Perbedaan menggunakan Constructor dengan method Setter()  

Jika anda melihat dengan teliti, anda pasti akan bertanya-tanya “lalu apa perbedaan 

penggunaan setter() dengan constructor?”. Dalam method setter(), pertama kali obyek dibuat 

dari sebuah kelas (instance of class). Setelah objek terbentuk, kemudian objek tersebut diberi 

atribut. Berbeda dengan constructor.  

Dalam constructor, obyek yang dibuat dari sebuah kelas (instance of class) langsung diberi 

atribut. Berikut adalah analogi perbedaan setter() dan constructor.  

 

  

5.4 Latihan  

Berdasarkan contoh di atas tentang login, buatlah 2 buah class yang terdiri dari class 

Login dan class utama.  

Class Login harus memiliki beberapa ketentuan sebagai berikut:  

o Atribut berisi username dan password  

o Terdapat 2 buah constructor Login. Constructor pertama tidak memiliki parameter 

dan memiliki nilai default username=”admin” dan password=”12345”. Sedangkan 

constructor kedua memiliki parameter untuk mengeset nilai username dan password 

berdasarkan inputan user.  

o Terdapat method setter dan getter untuk mengeset/merubah dan mengambil nilai 

dari username dan password  

Sedangkan pada Class utama digunakan untuk memanggil class Login.  

 

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

  

Analogi setter()  

  

Analogi constructor  

36 

 

  

    

Jika pilihan = 1, maka akan tampil sebagai berikut:  

 

   Jika pilihan = 2, maka akan tampil sebagai berikut:  

 

  

   Jika pilihan = 3, maka akan tampil sebagai berikut:  

37 

 

 

   Jika pilihan = 4, maka akan tampil sebagai berikut:  

 

   Jika pilihan = 5, maka akan tampil sebagai berikut:  

 

Jawabannya adalah…  

Langkah 1: Membuat skema   

Skema diagram digunakan untuk membantu anda dalam membantu logika anda untuk 

pembuatan program. Tanda “-“ dilambangkan sebagai private. Sedangkan tanda “+” 

dilambangkan sebagai public. Berikut adalah skema diagramnya.  

38 

 

  

 Langkah 2: class Login (ketikkan script berikut)  

a. Membuat kerangka class Login  

 

Setelah anda membuat class Login, simpan file tersebut dengan nama Login.java. Di 

dalam class Login, saya juga menyediakan tempat untuk mendeklarasikan variabel, 

setter dan getter.  

b. Mendeklarasi variabel yang dibutuhkan  

Setelah kita membuat kerangka class, maka diperlukan pendeklarasian variabel yang 

nantinya digunakan sebagai tempat menyimpan data yang bersifat sementara 

(temporary). Gambar di bawah ini menunjukkan  

pendeklarasian variabel.  

 

c. Mendeklarasi constructor  

Setelah membuat variabel yang dibutuhkan pada class Login, langkah selanjutnya anda 

membuat constructor login. Constructor ini nantinya akan digunakan dalam class 

Utama. Gambar di bawah ini menunjukkan deklarasi constructor.  

  

  

39 

 

 

Coba perhatikan kembali script yang telah anda buat seperti gambar di atas. Seperti 

halnya dengan penggunaan method setter(), di dalam pembuatan constructor Login 

dengan parameter, anda juga dapat menggunakan keyword this. Penggunaan keyword 

this akan mengacu kepada variabel yang dideklarasikan pada class Login (lihat script 

yang diberi kotak berwarna biru pada gambar di bawahnya). Apabila variabel tersebut 

tersebut tidak diberi keyword this, maka variabel tersebut akan mengacu kepada 

variabel yang dideklarasikan pada parameter constructor (lihat script yang diberi kotak 

berwarna hijau pada gambar di bawahnya). Penggunaan keyword this dapat digunakan 

atau tidak (optional) apabila ada perbedaan deklarasi nama variabel pada class Login 

(untuk lebih jelas mengenai keyword this, anda dapat melihat modul 1).  

 

d. Membuat method setter  

Setelah membuat variabel yang dibutuhkan pada class Login, langkah selanjutnya anda 

buat method setter untuk masing-masing variabel. Hal ini bertujuan untuk mengeset 

atau merubah nilai variabel username dan password sesuai dengan permintaan soal 

  

  

40 

 

pada menu yang ke-2 di class Utama nanti. Perlu diketahui pula, bahwa dalam 

pembuatan variabel pada parameter di method setter, harus sesuai dengan tipe data pada 

variabel yang dideklarasikan di kelas. Gambar di bawah ini menunjukkan deklarasi 

setter.  

 

e. Membuat method getter  

Setelah membuat method setter, anda tinggal membuat method getter untuk mengambil 

nilai dari masing-masing variabel. Hal ini bertujuan untuk mengambil nilai dari variabel 

pada class Login yang nantinya akan kita kembalikan ke dalam class Utama. Perlu 

diketahui pula, 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.  

 

  

  

41 

 

  

Langkah 3: class Utama (ketikkan script berikut)  

a. Membuat kerangka class Utama  

 

 

Setelah anda membuat class Utama, simpan file tersebut dengan nama Utama.java. Di 

dalam class inilah, program anda akan dijalankan. Sebagai catatan, dalam pembuatan 

class di atas, saya sudah menambahkan class BufferedReader (line 6) yang berada pada 

package java.io.* (line 1) yang digunakan untuk menerima inputan user.  

b. Membuat instance of class  

Setelah anda membuat class Utama, langkah berikutnya yang anda lakukan adalah 

membuat sebuah objek yang bertipe class Login. Pembuatan variabel dengan bertipe 

kelas itulah yang dinamakan instance of class (untuk penjelasannya, dapat anda lihat 

pada modul 1). Misalkan, objek yang saya buat adalah user1 dan user2, dimana user1 

menggunakan constructor Login tanpa parameter, sedangkan user2 menggunakan 

constructor Login dengan parameter.  

 

Coba perhatikan kembali pembuatan instance of class. Pada line 9, objek “user1” yang 

telah terbentuk akan mereferens ke constructor Login tanpa parameter. Sedangkan pada 

  

  

42 

 

line 10, kita mendeklarasikan objek “user2” bertipe class Login, dimana nilai yang kita 

berikan masih belum diketahui. Karena tipe data username dan password bertipe String, 

maka saya menggunakan tanda petik ganda (“ ”) untuk memberi nilai awal berupa 

kosong. Variabel user 2 yang telah dibuat nantinya akan digunakan pada case 3.  

c. Membuat menu dan perulangan menu  

Menu digunakan untuk mempermudah user dalam melakukan transaksi, seperti halnya 

buku menu yang disajikan seorang pelayan di sebuah restoran. Dalam pembuatan 

menu, diperlukan tombol “next” dan “back” sehingga user dapat leluasa memposisikan 

diri pada transaksi yang ingin dia lakukan. Untuk itulah, diperlukan perulangan menu 

guna mengantisipasi hal itu. Gambar di bawah ini menunjukkan pembuatan menu dan 

perulangan menu.  

 

Line 15-23 menunjukkan menu yang kita butuhkan dalam contoh soal di atas. 

Sedangkan proses perulangan menu, saya menggunakan while yang berada di luar 

menu (bagi anda yang tidak terbiasa menggunakan “while”,  

anda juga bisa menggunakan “do…while” maupun “for” dalam perulangannya). Di 

dalam “while”, saya menggunakan kondisi bernilai “true”, dimana program tersebut 

akan mengulang menu tersebut berulang kali. Untuk keluar dari menu tersebut, akan 

saya bahas nanti pada langkah poin (h).  

d. Membuat inputan yang diisi user  

Setelah menu dan perulangan menu selesai kita buat, maka kita membutuhkan inputan 

user untuk memilih menu tersebut. Berikut adalah contoh script-nya.  

  

43 

 

 

Sekedar tambahan, “System.out.println();” pada line 29 hanya digunakan untuk 

memberikan jarak antara proses dengan inputan dari user.  

e. Mengecek inputan user  

Inputan user yang nantinya akan diisi, akan menentukan pilihan yang dieksekusi (kayak 

teroris aja ya… ). Untuk itu, dibutuhkan, pengecekan inputan user dengan menu yang 

dipilih. Di sini, saya menggunakan switch…case… dikarenakan penggunaannya lebih 

mudah dalam mengecek sebuah menu.  

 

 Sekedar tambahan, dalam setiap case jangan lupa menambahkan break yang bertugas 

untuk menghentikan proses pengecekan menu apabila salah satu case sudah terpenuhi 

dan telah dieksekusi. Penggunaan default ditujukan apabila pilihan 1,2,3 atau 4 tidak 

  

  

44 

 

sesuai dengan inputan user. Jika anda perhatikan baik-baik, “System.exit(0);” pada line 

54 bertujuan untuk keluar dari menu dan mengakhiri program.  

f. Mengisi Case 1 (Login Admin)  

Ketika user memilih inputan menu no. 1, maka dilakukan beberapa proses sebagai 

berikut:  

• Line 36-39: berisi permintaan inputan username dan password yang nantinya akan 

diisi oleh user  

• Line 44-51: berisi pengecekan apakah user dan password yang diinputkan sesuai 

dengan isi data user dan password pada class Login. Jika hasilnya bernilai true, 

maka program akan mencetak tulisan *** Login Sukses ***. Jika hasilnya bernilai 

false, maka program akan mencetak tulisan *** Login Gagal ***  

 

g. Mengisi Case 2 (Ubah Password Admin)  

Ketika user memilih inputan menu no. 2, maka dilakukan beberapa proses sebagai 

berikut:  

• Line 60-63: berisi permintaan inputan password lama dan password baru yang 

nantinya akan diisi oleh user  

• Line 67-75: berisi pengecekan apakah password lama yang diinputkan sesuai dengan 

isi password yang sudah ada pada class Login. Jika hasilnya bernilai true, maka 

program akan merubah password lama dengan password baru dan kemudian 

mencetak tulisan *** Password berhasil dirubah***. Jika hasilnya bernilai false, 

  

45 

 

maka program akan mencetak tulisan *** Anda salah memasukkan password 

lama ***  

 

 

5.5 Tugas 

Dari latihan di atas: 

1.  Mengisi Case 3 (Buat User)  

Ketika user memilih inputan menu no. 3, maka dilakukan beberapa proses sebagai 

berikut:  

• permintaan inputan username dan password yang nantinya akan diisi oleh user  

• setelah anda membuat username dan password baru, program akan mencetak tulisan 

*** User telah berhasil dibuat *** (line 91). 

 

 

  

  

46 

 

2. Mengisi Case 4 (Lihat Data User)  

Untuk dapat mengetahui apakah username dan password yang anda buat berhasil 

masuk ke dalam class Login, anda dapat memilih case 4 untuk melihat data user.   

Ketika user memilih inputan menu no. 4, maka dilakukan beberapa proses sebagai 

berikut:  

a. mencetak isi data username dan password yang sudah ada pada variabel user 1. 

Apabila anda melakukan perubahan password admin dari nilai default-nya 

adalah 12345 pada case 2, berarti data user yang ditampilkan adalah username 

admin dengan password yang sudah anda rubah.  

b. mencetak isi data username dan password yang sudah anda buat pada case 3   

47 

 

BAB 6 

Pewarisan (Inheritance) 

6.1 Capaian Pembelajaran 

 

Setelah mempelajari bab ini, mahasiswa diharapkan: 

1 Mengetahui konsep pewariasan 

2 Mengetahui implemtasi pewarisan dalam program 

 

6.2 Indikator 

 

1. Mampu menjelaskan konsep pewarisan 

2. Mampu mengimplementasikan pewarisan di dalam program 

 

6.3 Uraian Materi 

Seperti yang sudah kita modul sebelumnya,  sebuah class atau objek bisa saling 

berhubungan dengan class yang lain. Salah satu bentuk hubungannya  

adalah inheritance(pewarisan). Hubungan ini seperti hubungan keluarga antara orang tua dan 

anak. Sebuah class di Java, bisa memiliki satu atau lebih keturunan atau class anak. Class 

anak akan memiliki warisan properti dan method dari class ibu. 

Misalkan dalam Game, kita akan membuat class-class musuh dengan perilaku yang berbeda. 

 

  

48 

 

Kode untuk masing-masing kelas seperti ini: 

File: Zombie.java  File: Pocong.java               

File: Burung.java 

 

 

 

Penulisan kode seperti di 

atas, tidak salah, namun  

tidak efektif, karena properti dan method yang sama 

ditulis berulang-ulang. Solusinya adalah 

menggunakan inheritance. Berikut gambaran member 

class yang sama: 

 

Setelah menggunakan inheritance, maka akan menjadi seperti ini: 

 

Inheritance  bisa digambarkan dengan garis hubung Generalization. 

Class Enemy adalah class induk yang memiliki anak Zombie, Pocong, dan Burung. Apapun 

properti yang ada di class induk, akan dimiliki juga oleh class anak. Lalu bagaimana bentuk 

kodenya dalam Java? Bentuk kodenya akan seperti ini: 

 

 

class Zombie { 

    String name; 

    int hp; 

    int attackPoin; 

 

    void attack(){ 

        // ...    } 

class Pocong { 

    String name; 

    int hp; 

    int attackPoin; 

 

    void attack(){ 

        // ...    } 

class Burung { 

    String name; 

    int hp; 

    int attackPoin; 

 

    void attack(){ 

        // ... 

    } 

    void walk(){ 

        //... 

    } 

49 

 

File: Enemy.java                         

File: Zombie.java 

 

Pada class anak, kita menggunakan kata kunci extends untuk menyatakan kalau dia adalah 

class turunan dari Enemy. 

File: Pocong.java 

 

 

 

 

 

 

 

File: Burung.java 

 

 

 

 

 

Lalu, bila kita ingin membuat objek dari class-class tersebut,  

Enemy monster = new Enemy(); 

Zombie zumbi = new Zombie(); 

Pocong hantuPocong = new Pocong(); 

Burung garuda = new Burung(); 

 

class Enemy { 

    String name; 

    int hp; 

    int attackPoin; 

 

    void attack(){ 

class Zombie extends Enemy { 

    void walk(){         

      System.out.println("Zombie jalan-

jalan"); 

    } 

 

 class Pocong extends Enemy { 

    void jump(){ 

        System.out.println("loncat-loncat!"); 

    }} 

class Burung extends Enemy { 

    void walk(){ 

        System.out.println("Burung berjalan"); 

    } 

    void jump(){ 

        System.out.println("Burung loncat-loncat"); 

    } 

    void fly(){ 

50 

 

6.4.Latihan 

Berikut ini merupakan contoh program Java inheritance. Dalam contoh ini anda dapat 

mengamati 2 class yaitu Kalkulasi dan Kalkulasiku. Dengan menggunakan kata kunci 

extends, Kalkulasiku mewarisi penambahan dan pengurangan methods dari class Kalkulasi. 

Buat projek baru dengan nama Kalkulasiku.java dan silahkan buat program seperti dibawah 

ini, kemudian kompile dan jalankan. 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

class Kalkulasi{ 

    int z; 

     

    public void penambahan(int x, int y){ 

        z = x + y; 

        System.out.println("Hasil Penambahan : " + z); 

    } 

     

    public void pengurangan(int x, int y){ 

        z = x - y; 

        System.out.println("Hasil Pengurangan : " + z); 

    } 

  

public class Kalkulasiku extends Kalkulasi{ 

    public void perkalian(int x, int y){ 

        z = x * y; 

        System.out.println("Hasil Perkalian : " + z); 

    } 

     

    public static void main(String args[]){ 

        int a = 10;  

        int b = 5; 

        Kalkulasiku tes = new Kalkulasiku(); 

        tes.penambahan(a, b); 

        tes.pengurangan(a, b); 

        tes.perkalian(a, b); 

    } 

51 

 

 

a. Simpan program tersebut dengan nama Kalkulasiku.java, kemudian lakukan kompilasi. 

b. Hasil luaran program adalah 

Hasil Penambahan : 15 

Hasil Pengurangan : 5 

Hasil Perkalian : 50 

c. Berikan penjelasan mengenai program tersebut 

 

 

6.5. Tugas 

1. Buatlah program lengkap yang memanfaatkan class Enemy beserta turunannya. 

2. Diketahui class  diagram sebagai berikut. Buatlah program yang  berfungsi untuk 

menghitung luas dan keliling  

 

 

 

 

 

 

 

 

 

52 

 

MODUL 7 

 Polimorfisme (Polymorphism) 

 

7.1 Capaian Pembelajaran 

 

Setelah mempelajari bab ini, mahasiswa diharapkan: 

1 Mengetahui konsep polymorphism dan overriding method 

2 Mengetahui implemtasi polymorphism dan overriding method 

 

7.2 Indikator 

 

1. Mampu menjelaskan konsep polymorphism dan overriding method 

2. Mampu mengimplementasikan polymorphism dan overriding method di dalam program 

 

7.3 Uraian Materi 

 

  

 

Saya mempunyai sebuah kata “bisa” dan kata tersebut akan saya gunakan dalam kalimat 

sebagai berikut:   

a. Praktikan bisa memahami konsep Polymorphism dalam Praktikum Pemrograman 

Berorientasi Objek  

b. Ular itu mempunyai bisa yang sangat berbahaya   

Dari 2 kalimat berikut, dapatkah anda mengetahui arti dari kata “bisa” dalam kalimat 

yang saya berikan tadi? Apakah arti dari kata “bisa” antar satu kalimat dengan kalimat yang 

lain memiliki arti yang sama?   

Kata “bisa” pada kalimat pertama memiliki arti dapat atau mampu. Sedangkan kata 

“bisa” pada kalimat kedua memiliki arti racun. Dalam kalimat di atas, kata yang sama 

memiliki 2 makna yang berbeda. Itulah salah satu konsep Polymorphism. Untuk lebih jelas 

mengenai konsep polymorhism, saya akan menjelaskannya pada sub bab berikutnya.  

  

53 

 

A. Polymorphism  

Polymorhism merupakan konsep OOP dimana variable/method dari sebuah kelas, 

dipanggil ulang pada kelas turunannya dengan perilaku yang berbeda-beda antar tiap kelas. 

Perhatikan contoh gambar berikut ini:  

  

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 gambar di atas, maka pendeklarasian objek yang dibuat (di-instanskan) berasal 

dari class induknya, yakni class Hewan. Sehingga objek tersebut berbentuk array-of-class.  

Penerapan konsep polymorphism dapat dilihat di soal latihan.  

 Kriteria penggunaan Polymorphism  

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

 Method dari kelas turunan yang akan dieksekusi, dipanggil oleh objek dari kelas induk 

Nama method yang digunakan pada kelas induk harus ditulis ulang (overriding method) 

pada kelas turunannya, dengan asumsi nama dan tipe data method harus sama  

  

B. Overriding Method  

Overriding method adalah proses pendeklarasian ulang nama method pada kelas utama 

kepada kelas turunannnya, Dalam pembuatan overriding method, nama dan tipe data method 

harus sama dengan kelas induknya guna pembuatan polymorphism. Untuk lebih jelasnya, 

akan saya bahas pada soal latihan.  

  

54 

 

7.4 Soal Latihan  

Perhatikan gambar di bawah ini!  

 

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%  

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

Tambahkan pula class Utama yang digunakan untuk memanggil class Mahasiswa. 

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

 

Jawabannya adalah…  

Setelah anda membaca soal tersebut dengan baik dan seksama, langkah pertama yang 

harus anda lakukan adalah mengidentifikasi class mana yang harus dibuat terlebih dahulu.  

 Langkah 1: class Manusia (ketikkan script berikut)  

a. Membuat kerangka class Manusia  

   

55 

 

Setelah anda membuat class Manusia, simpan file tersebut dengan nama Manusia.java. 

Di dalam class Manusia, saya juga menyediakan tempat untuk mendeklarasikan 

variabel, constructor, getter dan method HtgBBI() untuk menghitung berat badan ideal.  

b. Mendeklarasi variabel yang dibutuhkan  

Setelah kita membuat kerangka class, maka diperlukan pendeklarasian variabel yang 

nantinya digunakan sebagai tempat menyimpan data yang bersifat sementara 

(temporary). Gambar di bawah ini menunjukkan  

pendeklarasian variabel.  

 

 

c. Mendeklarasi constructor  

Setelah membuat variabel yang dibutuhkan pada class Manusia, langkah selanjutnya 

anda membuat constructor Manusia. Constructor ini nantinya akan digunakan dalam 

class Laki_Laki dan class Perempuan. Gambar di bawah ini menunjukkan deklarasi 

constructor.  

 

Coba perhatikan kembali script yang telah anda buat seperti gambar di atas. Karena 

terdapat perbedaan deklarasi nama variabel pada class Manusia dan deklarasi variabel 

pada constructor Manusia, maka keyword this boleh digunakan atau tidak (optional). 

Untuk lebih jelas mengenai keyword this, anda dapat melihat modul 1.  

  

  

56 

 

 

d. Membuat method getter  

Setelah membuat constructor, anda tinggal membuat method getter untuk mengambil 

nilai dari masing-masing variabel. Hal ini bertujuan untuk mengambil nilai dari variabel 

pada class Manusia yang nantinya akan kita gunakan ke dalam class Laki_Laki maupun 

class Perempuan. Perlu diketahui pula, 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.  

 

e. Membuat method HtgBBI()  

Setelah membuat method getter(), anda tinggal membuat method HtgBBI() yang 

bertugas untuk menghitung berat badan ideal berdasarkan tinggi badan. Karena di 

dalam class Manusia, belum terdapat rumus (hanya mendeklarasikan saja) dan meminta 

nilai balik (return), maka diberikan nilai default 0.0. Gambar di bawah ini menunjukkan 

deklarasi method HtgBBI().  

  

57 

 

 

  

 Langkah 2: class Laki_Laki (ketikkan script berikut)  

 

Setelah anda membuat class Laki_Laki, simpan file tersebut dengan nama 

Laki_Laki.java. Di dalam class Laki_Laki, terdapat penggunaan extends yang 

menunjukkan bahwa class Laki_Laki merupakan turunan dari class Manusia.   

Coba perhatikan kembali script yang telah anda buat seperti gambar di atas. Pada 

constructor Laki_Laki, terdapat keyword “super”. Keyword ini akan memanggil 

constructor Manusia (sesuai isi parameter) yang merupakan class induk. Sedangkan 

pada method HtgBBI() dilakukan pendeklarasian kembali (overriding method) sesuai 

dengan kelas induknya, dimana method HtgBBI() diberi rumus untuk menghitung berat 

badan ideal laki-laki.  

 

  

  

  

  

58 

 

Langkah 3: class Perempuan (ketikkan script berikut)  

 

Setelah anda membuat class Perempuan, simpan file tersebut dengan nama Perempuan.java. 

Di dalam class Perempuan, terdapat penggunaan extends yang menunjukkan bahwa class 

Perempuan merupakan turunan dari class Manusia.  

Seperti halnya dengan class Laki_Laki, class Perempuan memiliki constructor dan method 

HtgBBI() yang sama. Perbedaannya terletak pada nama class, nama constructor, dan isi 

rumus method HtgBBI().  

 

 Langkah 4: class Utama (ketikkan script berikut)  

a. Membuat kerangka class Utama  

 

 

Setelah anda membuat class Utama, simpan file tersebut dengan nama Utama.java. Di 

dalam class inilah, program anda akan dijalankan. Sebagai catatan, dalam pembuatan 

class di atas, saya sudah menambahkan class BufferedReader (line 6) yang berada pada 

package java.io.* (line 1) yang digunakan untuk menerima inputan user.  

b. Membuat instance of class  

Setelah anda membuat class Utama, langkah berikutnya yang anda lakukan adalah 

membuat sebuah objek yang bertipe kelas induknya, yaitu class Manusia. Di sinilah 

  

  

59 

 

konsep polymorphism digunakan. Karena class Manusia memiliki 2 kelas turunan, 

maka objek yang kita buat berbentuk array-of-class. Untuk itu, diperlukan panjang 

elemen array guna menampung data, baik yang terdapat pada class Laki_Laki maupun 

class Perempuan (dimisalkan panjang elemen adalah 2). Perlu diketahui pula, bahwa 

panjang elemen array yang diberi nilai 2, bukan berasal dari 2 kelas turunan pada kelas 

induknya, melainkan karena inputan yang ingin dilakukan adalah sebanyak 2 kali. Data 

bisa diperoleh dari 2 orang laki-laki, 2 orang perempuan, atau 1 orang laki-laki dan 1 

orang perempuan.  

 

c. Mendeklarasikan variable dan perulangan inputan user  

Langkah berikutnya adalah mendeklarasikan variabel guna membantu dalam 

menghitung index array pada objek “m”. Selain itu, diperlukan perulangan dalam 

mengisi inputan user.  

 

Pada line 20, yang berisi “x++;”, terdapat proses increment untuk menambah isi+1pada 

variable x  

 

d. Membuat inputan yang diisi user  

Selanjutnya kita membutuhkan inputan user untuk mengisi data tersebut.  

  

  

60 

 

Berikut adalah contoh script-nya.  

  

 

e. Mengecek inputan user dan mencetak penghitungan berat badan ideal Setelah 

membuat inputan user, maka dilakukan pengecekan apakah jenis kelamin yang dipilih 

adalah laki-laki atau perempuan. Hal ini akan menentukan kelas turunan mana yang 

akan diakses.  

• Line 24: penggunaan method “equals()” untuk mengecek inputan bertipe String 

dan String. Sedangkan method “toUpperCase()” digunakan untuk menconvert 

semua inputan user (baik ditulis dalam huruf keci atau huruf besar) menjadi 

huruf besar semua.  

• Line 26 dan line 32: menunjukkan penggunaan objek pada kelas turunannya.   

 

 

  

  

61 

 

7.5 Tugas 

1. Perhatikan program di bawah ini 

 

a. Berikan penjelasan tentang program tersebut.  

b. Gambarkan skema yang mungkin dibuat 

c. Ketikkan program dan lakukan kompilasi, apakah terjadi kesalahan syntax? Jika 

masih ada yang salah, silakan dibenarkan 

d. Apa luarannya 

 

 

 

 

 

 

 

 

 

 

 

 

62 

 

MODUL 8 

 Kelas Abstrak (Abstract Class) 

  

8.1 Capaian Pembelajaran 

 

Mahasiswa dapat mengenal dan memahami konsep abstract class, abstract method  dan 

keyword “final” serta penerapannya dalam konsep OOP  

 

 

8.2 Indikator 

 

Mampu menjelaskan dan mengimplementasika konsep abstract class, abstract method  dan 

keyword “final” serta penerapannya dalam konsep OOP 

 

8.3 Uraian Materi 

  

  

Anda pasti masih ingat contoh program yang menghitung berat badan ideal berdasarkan 

tinggi badan. Di dalam contoh tersebut, terdapat class Manusia, class Laki_Laki, dan class 

Perempuan seperti contoh bagan di bawah ini.  

  

Dalam abstract class, class tertinggi merupakan kelas Manusia. Apabila dalam kelas 

abstract terdapat abstract method, maka method tersebut hanya mendeskripsi method tanpa 

isi methodnya. Untuk lebih jelas, simak konsep abstract method di bawah ini.  

63 

 

 A Abstract Class  

Abstract Class merupakan kelas yang berada pada posisi tertinggi dalam sebuah 

hierarki kelas. Sesuai dengan namanya, abstract class dapat didefinisikan pada class itu 

sendiri. Berikut adalah cara mendeklarasikan abstract class:  

  

Contoh:  

  

Di dalam abstract class dapat juga diberi abstract method (optional). Penggunaan 

abstract method tidak diperlukan statement dalam method tersebut.  

Berikut adalah cara mendeklarasikan abstract method pada abstract class:  

 

Contoh:  

 

Catatan:  

 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. Untuk lebih jelas penggunaan overriding 

method, dapat dilihat pada soal latihan  

 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  

  

 

 

 

  

  

64 

 

B. 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:  

  

Contoh:  

  

Sedangkan cara mendeklarasikan “final” pada method adalah sebagai  

berikut:  

 

Contoh  

 

Untuk lebih detail dalam penggunaan keyword “final”, akan dibahas lebih lanjut 

melalui soal latihan  

  

  

  

  

65 

 

8.4 Latihan  

Perhatikan gambar di bawah ini!  

 

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%  

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

Tambahkan pula class Utama yang digunakan untuk memanggil class Mahasiswa. 

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

 

Jawabannya adalah…  

Ketika anda perhatikan baik-baik bagan soal latihan modul ini  dengan soal latihan 

modul sebelumnya, maka anda akan menemukan perbedaan sebagai berikut:  

66 

 

 

  

Langkah 1: class Manusia (ketikkan script berikut)  

a. Membuat kerangka class Manusia  

 

 

Setelah anda membuat class Manusia, simpan file tersebut dengan nama Manusia.java. 

Di dalam class Manusia, saya juga menyediakan tempat untuk mendeklarasikan 

variabel, constructor, getter dan method HtgBBI() untuk menghitung berat badan ideal.  

b. Mendeklarasi variabel yang dibutuhkan  

Setelah kita membuat kerangka class, maka diperlukan pendeklarasian variabel yang 

nantinya digunakan sebagai tempat menyimpan data yang bersifat sementara 

(temporary). Gambar di bawah ini menunjukkan pendeklarasian variabel.  

 

      

      

menjadi  

menjadi  

  

  

67 

 

c. Mendeklarasi constructor  

Setelah membuat variabel yang dibutuhkan pada class Manusia, langkah selanjutnya 

anda membuat constructor Manusia. Constructor ini nantinya akan digunakan dalam 

class Laki_Laki dan class Perempuan. Gambar di bawah ini menunjukkan deklarasi 

constructor.  

 

Coba perhatikan kembali script yang telah anda buat seperti gambar di atas. Karena 

terdapat perbedaan deklarasi nama variabel pada class Manusia dan deklarasi variabel 

pada constructor Manusia, maka keyword this boleh digunakan atau tidak (optional). 

Untuk lebih jelas mengenai keyword this, anda dapat melihat modul 1.  

 

d. Membuat method getter  

Setelah membuat constructor, anda tinggal membuat method getter untuk mengambil 

nilai dari masing-masing variabel. Hal ini bertujuan untuk mengambil nilai dari variabel 

pada class Manusia yang nantinya akan kita gunakan ke dalam class Laki_Laki maupun 

class Perempuan. Perlu diketahui pula, 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.  

  

68 

 

 

e. Membuat method HtgBBI()  

Setelah membuat method getter(), anda tinggal 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. 

Gambar di bawah ini menunjukkan deklarasi method HtgBBI().  

 

 

 Langkah 2: class Laki_Laki (ketikkan script berikut)  

Karena class Laki_Laki pada soal latihan 4 = soal latihan 5, maka script ini tidak mengalai 

perubahan. Adapun scriptnya adalah sebagai berikut:  

  

  

69 

 

 

Setelah anda membuat class Laki_Laki, simpan file tersebut dengan nama 

Laki_Laki.java. Di dalam class Laki_Laki, terdapat penggunaan extends yang 

menunjukkan bahwa class Laki_Laki merupakan turunan dari class Manusia.  

Coba perhatikan kembali script yang telah anda buat seperti gambar di atas. Pada 

constructor Laki_Laki, terdapat keyword “super”. Keyword ini akan memanggil 

constructor Manusia (sesuai isi parameter) yang merupakan class induk. Sedangkan 

pada method HtgBBI() dilakukan pendeklarasian kembali (overriding method) sesuai 

dengan kelas induknya, dimana method HtgBBI() diberi rumus untuk menghitung berat 

badan ideal laki-laki.  

 Langkah 3: class Perempuan (ketikkan script berikut)  

 

Setelah anda membuat class Perempuan, simpan file tersebut dengan nama 

Perempuan.java. Di dalam class Perempuan, terdapat penggunaan extends yang 

menunjukkan bahwa class Perempuan merupakan turunan dari class  

Manusia.  

Seperti halnya dengan class Laki_Laki, class Perempuan memiliki constructor dan 

method HtgBBI() yang sama. Perbedaannya terletak pada nama class, nama 

constructor, dan isi rumus method HtgBBI().  

  

  

70 

 

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 4: class Utama (ketikkan script berikut)  

Adapun scriptnya adalah sebagai berikut:  

 

Untuk penjelasan script pada class Utama, dapat dilihat pada soal latihan modul 4. Perlu 

diketahui pula, bahwa instance of class pada class Utama tidak wajib menggunakan 

array of Class (konsep Polymorphism), tapi anda bisa juga membuat objek 

berdasarkan kelas turunannya.  

8.5 Tugas 

 

1. Buat program untuk mencetak ciri makhluk hidup (manusia, hewan, tumbuhan). Ciri 

ciri didefiniskan kedalam suatu method yang bertipe abstrak dalam sebuah abstract 

class. Kemudian buatlah class baru (manusia, hewan, dan tumbuhan) untuk meng-

extends class tersebut. 

2. Diberikan oleh dosen pengampu 

 

 

  

71 

 

BAB 9 

Interface  

 

9.1 Capaian Pembelajaran 

 

Mahasiswa dapat mengenal dan memahami konsep interface, serta penerapan dalam 

interface dalam konsep OOP  

 

9.2 Indikator 

 

Mampu menjelaskan dan mengimplementasika konsep interface, serta penerapan dalam 

interface dalam konsep OOP  

 

9.3 Uraian Materi 

  

Ilustrasi 1  

Ketika anda diberi tugas menerjemahkan sebuah buku berbahasa 

Inggris ke dalam bahasa Indonesia, namun ada beberapa kata dalam buku 

tersebut yang sangat asing bagi  

anda. Apa yang akan anda lakukan untuk memecahkan masalah tersebut?  

Ilustrasi 2  

 

Meminjam kamus adalah salah satu alternatif jawaban dalam ilustasi 1. Mengapa? 

Karena di dalam kamus tersimpan kumpulan kata (atau biasa disebut dengan vocabulary) 

yang anda butuhkan untuk membantu anda dalam  

mengartikan kata tersebut   

Demikian juga untuk ilustrasi 2. Apabila jawaban anda adalah melihat daftar isi, 

berarti anda mengerti kegunaan daftar isi. Karena di dalam daftar isi, terdapat halaman dari 

tiap bab yang akan membantu anda dalam mempermudah mencari informasi yang anda 

butuhkan   

Kamus dan daftar isi merupakan alat bantu berupa kumpulan informasi sebagai sarana 

pendukung dalam membantu anda untuk mengolah dan mengembangkan informasi yang 

anda peroleh. Seperti halnya ketika anda menggunakan Interface pada pemrograman berbasis 

72 

 

objek. Interface berisi sekumpulan konstanta/deklarasi method tanpa menyertakan/ 

menuliskan body methodnya. Method atau variabel yang terdapat pada kelas Inteface dapat 

digunakan lebih dari satu kelas dengan cara memanggil kelas interface tersebut.  

Interface adalah kumpulan method yang hanya memuat deklarasi dan struktur method 

tanpa detail implementasinya. Cara mendeklarasikan interface adalah sebagai berikut:  

 

Contoh:  

 

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 berisi kumpulan konstanta maupun method tanpa 

menyertakan/ menuliskan body methodnya.  

Perlu diketahui pula, bahwa an interface is not a class and classes can only 

implement interfaces (sebuah interface bukanlah sebuah kelas dan kelas hanya bisa 

mengimplementasi interface). Sehingga jangan anda menganggap bahwa interface adalah 

super class dimana memiliki kelas trurunan.  

 Penggunaan (implementasi) interface dalam sebuah kelas dapat anda lihat melalui skema 

OOP di bawah ini:  

 

Coba anda lihat anak panah yang berwarna ungu tersebut. Anak panah itu merupakan 

gambaran bahwa class Kalkulator merupakan implementasi dari interfaces Operasi, 

dimana method-method yang terdapat pada interface Operasi harus dideklarasi ulang 

(overriding method) pada kelas Kalkulator. Interface dilambangkan dengan anak panah 

dengan garis putus-putus, sedangkan inheritance dilambangkan dengan anak panah dengan 

garis lurus ( ).  

Dalam pemrograman OOP, implementasi interfaces menggunakan keyword 

implements. Berikut adalah cara mengimplementasikan interface ke dalam pemrograman 

Java:  

  

      

73 

 

  

Contoh:  

 

 

Agar anda lebih memahami bagaimana implementasi interface dalam sebuah kelas, 

simak contoh latihan di bawah ini.  

  

9.4 Soal Latihan  

Berdasarkan contoh di atas tentang kalkulator, buatlah program sesuai dengan skema di 

bawah ini:  

 

Adapun fungsi methodnya adalah sebagai berikut:  

 Method Penjumlahan() digunakan untuk menjumlahkan dua buah bilangan, yakni 

Bil1 dan Bil2  

 Method Pengurangan() digunakan untuk mengurangi dua buah bilangan, yakni Bil1 

dan Bil2 Method Perkalian() digunakan untuk mengalikan dua buah bilangan, yakni 

Bil1 dan Bil2  

 Method Pembagian() digunakan untuk membagi dua buah bilangan, yakni Bil1 dan 

Bil2  

  

      

74 

 

Tambahkan pula class Utama yang digunakan untuk memanggil class Kalkulator. 

Ketika class Utama dijalankan, hasilnya akan tampak seperti di bawah  

ini:  

 

Jawabannya adalah…  

Setelah anda membaca soal tersebut dengan baik dan seksama, langkah pertama yang 

harus anda lakukan adalah mengidentifikasi class atau interface yang harus dibuat terlebih 

dahulu.  

 Langkah 1: interface Operator (ketikkan script berikut)  

a. Membuat kerangka interface Operator  

  

Setelah anda membuat interface Operasi, simpan file tersebut dengan nama 

Operasi.java. Di dalam interface Operasi, saya juga menyediakan tempat untuk 

mendeklarasikan method yang akan digunakan pada class Kalkulator.  

b. Mendeklarasi method  

 

Dalam interface Operator, anda cukup mendeklarasikan method tanpa isi method (body 

method)  

  

75 

 

  Langkah 2: class Kalkulator (ketikkan script berikut)  

a. Membuat kerangka class Kalkulator  

Setelah anda membuat class Kalkulator, simpan file tersebut dengan nama 

Kalkulator.java. Kelas Kalkulator merupakan hasil implementasi dari interface 

Operasi. Untuk itu, pada line 1 terdapat keyword “implements”. Khusus pada langkah 

ini, anda jangan merasa bingung apabila anda mendapat 1 error pada saat program di-

compile. 

 

 

Error yang berisi Kalkulator is not abstract and does not override abstract method  

Pembagian() in Operasi menandakan bahwa method Penjumlahan(), Pengurangan(), 

Perkalian(), Pembagian() harus dideklarasikan ulang (overriding method) ke dalam 

class Kalkulator. Error ini akan terus ada sampai anda menyelesaikan poin (e).  

b. Mendeklarasi variabel yang dibutuhkan  

Setelah kita membuat kerangka class, maka diperlukan pendeklarasian variabel yang 

nantinya digunakan sebagai tempat menyimpan data yang bersifat sementara 

(temporary). Gambar di bawah ini menunjukkan  

pendeklarasian variabel.  

 

c. Mendeklarasi constructor  

Setelah membuat variabel yang dibutuhkan pada class Kalkulator, langkah selanjutnya 

anda membuat constructor Kalkulator. Constructor ini nantinya akan digunakan dalam 

class Utama. Gambar di bawah ini menunjukkan  

deklarasi constructor.  

  

  

76 

 

 

Pada gambar di atas, saya menggunakan Overloading Constructor (bagi yang lupa 

tentang Overloading Constructor, anda dapat melihat kembali pada modul 2 tentang 

Constructor. Constructor pertama digunakan untuk standard awal dalam melakukan 

instance of class. Sedangkan constructor kedua digunakan untuk mengeset data 

bilangan pertama dan bilangan kedua yang diperoleh dari kelas Utama.  

 

d. Membuat method getter  

Setelah membuat constructor, anda tinggal membuat method getter untuk mengambil 

nilai dari masing-masing variabel. Hal ini bertujuan untuk mengambil nilai dari variabel 

pada class Kalkulator yang nantinya akan kita kembalikan ke dalam class Utama. Perlu 

diketahui pula, 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.  

 

  

  

  

77 

 

e. Implementasi method  

Setelah membuat constructor, anda wajib melakukan deklarasi ulang (overriding 

method) ke dalam class Kalkulator seperti pada script di bawah  

ini.  

 

Perlu diketahui pula, bahwa method Penjumlahan() dan Pengurangan merupakan sub 

program berjenis prosedur. Sedangkan method Perkalian() dan Pembagian() merupakan 

sub program berjenis fungsi. Untuk itu, ada perbedaan cara memanggil method dalam 

kelas Utama.  

  

  

  

78 

 

Langkah 3: class Utama (ketikkan script berikut)  

Berikut adalah script kelas utama kalkulator:  

 

Keterangan:  

Line 9  = deklarasi instance of class, dimana variabel tersebut  bertipe kelas Kalkulator, yang 

merupakan turunan dari  kelas Operasi . Line 12-15  = inputan user, dimana bilangan 1 

ditampung ke dalam  variabel a dengan tipe data double. Sedangkan bilangan 2  ditampung ke 

dalam variabel b dengan tipe data double. Line 17  = mentransfer data pada variable a dan b 

ke dalam  constructor Kalkulator.   Line 19  = sebagai jarak antara isi input dan output ketika 

program  dijalankan. Line 22-26  = cara memanggil method Penjumlahan dan Pengurangan  

yang merupakan sub  program bertipe void. Karena di  dalam isi void terdapat 

System.out.println, maka      pemanggilan method dilakukan di luar kelas. Line 28-30  = 

cara memanggil method Penjumlahan dan Pengurangan  yang merupakan sub program bertipe 

void. Karena di  dalam isi function tidak terdapat System.out.println dan hanya 

mengembalikan return (nilai balik), maka pada class  Utama, pemanggilan method dilakukan 

di dalam  System.out.println().  

 

9.5. Tugas 

Diberikan oleh dosen pengampu  

  

  

79 

 

BAB 10 

Pemrograman Berbasis GUI (1) 

 

10.1 Capaian Pembelajaran 

 

Setelah mempelajari bab ini, mahasiswa diharapkan: 

1. Memahami cara penggunaan IDE Netbeans untuk membangun aplikasi berbasis 

GUI. 

2. Memahami konsep pemrograman berbasis GUI. 

3. Memahami fungsi dari komponen-komponen swing GUI pada Java. 

 

10.2 Indikator 

 

1. Mahasiswa mampu menggunakan IDE Netbeans untuk membangun aplikasi 

2. Mahasiswa mampu menjelaskan konsep pemrograman berbasis GUI pada Java 

3. Mahasiswa mampu menggunakan komponen-komponen swing GUI dalam membuat 

aplikasi 

 

10.3 Uraian Materi 

Pada bab ini, kita akan menggunakan IDE Netbeans untuk membantu mempermudah 

pembuatan program berbasi Graphic User Interface (GUI). Untuk itu, akan dibahas terlebih 

dahulu mengenai IDE Netbeans. 

 

A. Pengenalan IDE Netbeans 

Netbeans adalah salah satu IDE yang popular yang sering digunakan untuk 

mengembangkan aplikasi berbasis Java. Meskipun demikian, Netbeans juga bisa digunakan 

untuk mengembangkan aplikasi berbasis bahasa pemrograman lain, seperti C++ atau PHP. 

Netbeans awalnya merupakan IDE yang dikembangkan oleh Sun Microsystems, namun saat 

ini telah diakuisisi oleh Oracle Corporation. Gambar di bawah ini menampilkan antarmuka 

dari IDE Netbeans. 

 

80 

 

 

 

Pemrograman di dalam Netbeans berbasis pada project yang disimpan dalam format 

package. Oleh sebab itu, setiap kali akan memulai pengembangan sebuah aplikasi, maka 

programmer diharuskan membuat New Project dengan nama tertentu, yang kemudian nama 

tersebut secara otomatis menjadi nama file dari kode program yang disimpan. Selain itu, pada 

baris paling atas dari kode program akan tampil tulisan package <nama_proyek>, misalnya 

package proyek_1, seperti yang terlihat pada gambar di atas. 

 

B. Membuat New Project 

Untuk memulai membuat sebuah aplikasi berbasis Java menggunakan IDE Netbeans, 

maka pertama kali kita perlu membuat New Project melalui menu “File  New Project”, 

kemudian pilih “Java” pada kolom Categories dan pilih “Java Application” pada kolom 

Projects. Setelah itu klik tombol Next, lalu ketikkan nama proyek yang akan dibuat pada 

bagian Project Name, misalnya “Proyek_1” dan tentukan direktori penyimpanan proyek pada 

bagian Project Location. Terakhir klik tombol Finish, maka akan tampil file kode program 

berkestensi *.java dari proyek yang kita buat s