Rekayasa Perangkat Lunak
Pemrograman Berorientasi Objek
Modul 5
Interface
Kompetensi Dasar
3.8 Memahami pembuatan interface
4.8 Menyajikan hasil pembuatan aplikasi dengan interface
Materi
Interface
Pengantar interface
Perbedaan interface dan Class
Pewarisan antar interface
Referensi
Fikri, Rijalul. 2005. Pemrograman Java. Yogyakarta: Penerbit Andi.
Hermawan, Benny. 2004. Menguasai Java 2 dan Object Oriented Programming.
Yogyakarta: Penerbit Andi
Musnter, Christian. 2006. Java 2 JDK 5 – Grundlagen Herdt – Verlag for
bildungsmedien Gagh. Bodenheilm
Wu, C. Thomas. 2001. An Introduction to Object-Oriented Programming with
Java. Nort America: McGraw Hill
Deitel. 2002. Java How to program. New jersey. Prentice Hall.
Joyce Avestro. 2003. Introduction Programming 1, Java Education Development
Initiatif.
Patric Noughton. 2006. The Java Handbook. McGrawHill, Inc.
Sianipar, R.H. 2013. Teori dan Implementasi Java. Bandung: Informatika.
Modul PBO Edo Yonatan Koentjoro, S. Kom STIKOM Surabaya
Juliana Mansur
[Link]@[Link]
Rekayasa Perangkat Lunak
Pemrograman Berorientasi Objek
A. Pengantar
Ilustrasi 1
Ketika kita mendapatkan tugas menerjemahkan sebuah artikel berbahasa Inggris
ke dalam baha Indonesia, namun ada beberapa kata dalam artikel tersebut yang tidak
kita ketahui. Apa yang akan kita lakukan untuk memecahkan masalah tersebut?
Ilustrasi 2
Ketika kita hendak meminjam buku dan kita ingin mengetahui informasi apa saja
yang ada dalam buku tersebut, apa yang akan kita lakukan?
Pembahasan ilustrasi 1 & ilustrasi 2:
Meminjam kamus merupakan salah satu jawaban dari ilustrasi 1. Mengapa
demikian? Karena di dalam kamus tersimpan kumpulan kata (vocabulary) yang kita butuhkan
untuk membantu kita dalam mengartikan suatu kata. Demikian pula untuk ilustrasi 2. Apabila
jawaban kita adalah melihat daftar isi, berarti kita mengerti fungsi dari daftar isi. Karena
dalam daftar isi terdapat halaman dari tiap bab yang akan membantu kita dalam
mempermudah mencari informasi yang kita butuhkan.
Kamus dan daftar isi merupakan alat bantu berupa kumpulan informasi sebagai
sarana pendukung dalam membantu kita untuk mengolah dan mengembangkan informasi
yang kita peroleh. Seperti halnya ketika kita menggunakan Interface pada pemrograman
berbasis objek. Interfacei berisi sekumpulan konstanta/deklarasi method tanpa
menyertakan/menuliskan body methodnya. Method atau variabel yang terdapat pada kelas
Interface dapat digunakan lebih dari satu kelas dengan cara memanggil kelas interface
tersebut. Mari kita bahasa lebih detail tentang Interface, simak penjelasannya di bawah ini:
B. Interface
Interface adalah kumpulan method yang hanya memuat deklarasi dan struktur method
tanpa detail implementasinya. Cara mendeklarasikan interface adalah sebagai berikut:
Contoh:
Juliana Mansur
[Link]@[Link]
Rekayasa Perangkat Lunak
Pemrograman Berorientasi Objek
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 bahwa an interface is not a class and classes can only implement
interface (sebuah interface bukanlah sebuah kelas dan hanya bisa mengimpementasi
interface). Sehingga jangan menganggap bahwa interface adalah super class dimana
memiliki keals turunan.
C. Implementasi Interface
Penggunaan/implentasI interface dalam sebuah kelas dapat dilihat melalui skema
OOP di bawah ini:
Kita lihat tanda panah berwarna ungu, anak panah tersebut merupakan gambaran
bahwa class Kalkulator implementasi dari interface 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 cara mengimplementasikan interface ke dalam pemrograman JAVA.
Juliana Mansur
[Link]@[Link]
Rekayasa Perangkat Lunak
Pemrograman Berorientasi Objek
Contoh:
D. Soal Latihan
Berdasarkan contoh di atas tentang Kalkulator, buatlah program sesuai dengan
skema di bawah ini:
E. Pembahasan
1. Langkah 1: Membuat kerangka class Manusia
a. Membuat kerangka class Manusia
Juliana Mansur
[Link]@[Link]
Rekayasa Perangkat Lunak
Pemrograman Berorientasi Objek
Setelah kita membuat class Manusia, simpan file tersebut dengan nama
[Link]. dalam class Manusia, kita akan menyediakan tempat untuk mendeklarasikan
variabel, constructor, getter dan method HtgBBI() untuk menghitung berat badan ideal.
b. Mendeklarasikan variabel yang dibutuhkan
Setelah kita membuat kerangka class, maka selanjutnya diperlukan pendeklarasian
variabel yang nantinya digunakan sebagai tempat penyimpanan data yang bersifat
sementara (temporary).Berikut contoh pendeklarasian variabel:
c. Mendeklarasikan 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.
Juliana Mansur
[Link]@[Link]
Rekayasa Perangkat Lunak
Pemrograman Berorientasi Objek
Coba perhatikan kembali script yang telah kita 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, buka kembali Modul 1 ya!
d. Membuat method getter
Setelah kita membuat method setter, selanjutnya kita buat method getter untuk
mengambil nilai dari masing-masing variabel. Hal ini bertujuan untuk mengambil nilai dari
variabel pada class Manusia yang nantinya akan dikembalikan ke dalam class Laki_Laki
dan class Perempuan. Ingat! dalam pembuatan variabel pada parameter method getter,
harus sesuai dengan tipe data pada variabel yang dideklarasikan di kelas.
Juliana Mansur
[Link]@[Link]
Rekayasa Perangkat Lunak
Pemrograman Berorientasi Objek
e. Membuat method HtgBBI()
Setelah kita membuat method getter(), selanjutnya kita buat method HtgBBI() yang
bertugas untuk menghitung berat badan ideal berdasarkan tinggi badan. Karena di 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()
Juliana Mansur
[Link]@[Link]
Rekayasa Perangkat Lunak
Pemrograman Berorientasi Objek
2. Langkah 2: class Laki_Laki (ketikkan syntax berikut)
Setelah kita 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.
Mari kita perhatikan kembali script yang kita 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.
3. Langkah 3: class Perempuan (ketikkan syntax berikut)
Setelah kita membuat class Perempuan, simpan file tersebut dengan nama
[Link]. Di dalam class Laki_Laki, terdapat penggunaan extends yang
menunjukkan bahwa class Perempuan merupakan turunan dari class Manusia.
Seperti halnya pada class Laki_Laki, class Perempuan memiliki constructor dan
method HtgBBI() yang sama. Perbedaannya terletak pada nama class, nama constructor dan
isi rumus method HtgBBI()
Juliana Mansur
[Link]@[Link]
Rekayasa Perangkat Lunak
Pemrograman Berorientasi Objek
4. Langkah 4: class Utama (ketikkan script di bawah ini)
a. Membuat kerangka class Utama
Setelah kita membuat class Utama, simpan file tersebut dengan nama [Link].
Di dalam class Utama inilah progam akan dijalankan. Sebagai catatan, dalam pembuatan
class di atas, kita sudah menambahkan class BufferedReader (line 6) yang berada pada
package [Link].* (line 1) yang digunakan untuk menerima inputan user.
b. Membuat instance of class
Setelah kita membuat class Utama, selanjutnya kita buat sebuah objek yang bertipe
kelas induknya, yaitu class Manusia. Disinilah 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 untuk menampung data, baik yang terdapat pada
class Laki_Laki maupun class Perempuan (misalkan panjang elemen 2). Perlu kita pahami
bersama bahwa panjang elemen array yang diberi nilai 2, bukan berasal dari 2 kelas turunan
pada class 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.
Juliana Mansur
[Link]@[Link]
Rekayasa Perangkat Lunak
Pemrograman Berorientasi Objek
c. Mendeklarasikan variabel dan perulangan inputan user
Mendeklarasikan variabel bertujuan untuk 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+1 pada
variable x
d. Membuat inputan yang diisi user
Selanjutnya kita membutuhkan inputan user untuk mengisi data tersebut. Berikut
adalah contoh script-nya
Juliana Mansur
[Link]@[Link]
Rekayasa Perangkat Lunak
Pemrograman Berorientasi Objek
e. Mengecek inputan user dan mencetak perhitungan berat badan ideal
Setelah membuat inputan user selanjutnya kita perlu melakukan pengecekan
apakah jenis kelamin yang dipilih adalah laki-laki atau perempuan. Hal tersebut 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 kecil maupun huruf capital) menjadi
huruf capital semua.
Line 26 dan line 32: menunjukkan penggunaan objek pada kelas turunannya.
SUKSES YA…
#RPLWajibNgulik
Juliana Mansur
[Link]@[Link]