Inheritance Dalam Pemrograman Java

inheritance
Selamat malam sahabat setia mastertutorial, kali ini karena saya diberi tugas saya akan membagikan beberapa artikel mengenai Java. Salah satu artikelnya yang agan agan baca saat ini yaitu mastertutorial akan membaikan artikel mengenai Inheritance pada java. Yukk check it out.

1. Inheritance

Inheritance merupakan proses pewarisan data dan method dari suatu class yang telah ada kepada class baru. Class yang mewariskan disebut dengan kelas super (super class), sedangkan kelas yang mendapat warisan tersebut atau class yang diwariskan disebut dengan subkelas (sub class). Seperti contoh di atas, berarti ayah Nobita berperan sebagai super class, sedangkan Nobita berperan sebagai sub class.

inheritance

Untuk menggunakan inheritance, maka dibutuhkan keyword extends. Cara penulisannya adalah sebagai berikut:

inheritance

Contoh:

Misalkan kita memiliki beberapa software di komputer. Software tersebut beraneka ragam. Ada software game, software edukasi, dan masih banyak lagi. Biarpun berbeda jenisnya, software tersebut pasti memiliki kesamaan dengan software sejenisnya. Dengan kata lain, apabila saya melihat dari segi pemrograman, maka class Software adalah superclass, sedengakan class Game adalah turunan dari class Software (subclass). Jadi penulisan script pada class Game adalah sebagai berikut

2. Manfaat Penggunaan Inherintance

Berikut ini adalah beberapa menfaat apabila anda menggunakan konsep inheritance:

1. Bersifat Reusable

Bayangkan saja apabila anda memerlukan beberapa kelas yang berasal dan basis yang sama (data dan method yang sama), namun pada masing¬masing kelas akan ditambahkan data atau method tambahan. Dengan menggunakan inheritance, anda cukup mengambil data atau method pada class induknya dan memberikan beberapa tambahan data atau method pada class anaknya apabila diperlukan.

2. Kemudahan dalam memanage kelas yang dimiliki data dan method yang sama

Bila anda ingin memodifikasi suatu data atau method pada semua subclass, anda tidak perlu melakukan perubahan pada masing-masing kelas pada subclass. Anda cukup melakukan perubahan data atau method pada kelas super (superclass) yang mewarisi subclass tersebut

3. Keyword "super"

Keyword super digunakan oleh subclass untuk memanggil constructor atau method yang ada pada superclassnya. Berikut adalah cara penulisan "super" pada subclass untuk memanggil constructor pada superclass.


Sedangkan, cara penulisan "super" pada subclass untuk memanggil method pada superclass adalah sebagai berikut:


Untuk contoh penggunaan keyword "super" akan dijelaskan pada contoh latihan.

4. Soal Latihan

Berdasarkan contoh di atas tentang software, buatlah 3 buah class yang terdiri dan class Software, class Game dan class Utama.

Class Software harus memiliki beberapa ketentuan sebagai berikut:

1. Atribut berisi kode, nama, dan lisensi

2. Terdapat 2 buah constructor Software

a. Constructor pertama tidak memiliki parameter dan tidak ada isinya (kosongan)

b. Sedangkan constructor kedua memiliki parameter untuk mengeset nilai kode, nama, dan lisensi (freeware/shareware) berdasarkan inputan user

3. Terdapat method setter dan getter untuk mengeset/merubah dan mengambil nilai dan kode, nama, dan lisensi (freeware/shareware)

Class Game harus memiliki beberapa ketentuan sebagai berikut:

1. Atribut berisi jenis dan tipe dan diberi nilai default "Unknown"

2. Terdapat 2 buah constructor Game

a. Constructor pertama memiliki parameter untuk mengeset nilai kode, nama, dan lisensi (freeware/shareware) berdasarkan inputan user.

Data kode, nama, dan lisensi (freeware/shareware) diambil dan Constructor kedua pada class Software (gunakan keyword super)

b. Sedangkan constructor kedua memiliki parameter untuk mengeset nilai kode, nama, lisensi (freeware/shareware), jenis (offline/online), dan tipe (action/arcade/adventure/sport/puzzle) berdasarkan inputan user. Data kode, nama, dan lisensi (freeware/shareware) diambil dari setter pada class Software (gunakan keyword super)

3. Terdapat method getter untuk mengambil nilai dari variabel kode, nama, dan lisensi (freeware/shareware) pada class Software serta mengambil nilai dari variabel jenis

(offline/online) dan tipe (action/arcade/adventure/sport/puzzle)

Sedangkan pada class Utama digunakan untuk memanggil class Game.

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


 Jika pilihan =1, maka akan tampil sebagai berikut:


 Jika pilihan =2, maka akan tampil sebagai berikut:


 Jika pilihan =3, maka akan tampil sebagai berikut:


 Jika pilihan =4, maka akan tampil sebagai berikut:


F. Pembahasan

Langkah pertama yang harus kita lakukan adalah menganalisa soal tersebut dan membuat skema diagram dari soal di atas. Skema ini nantinya akan membantu kita dalam pembuatan program.

1. Langkah 1: Membuat Skema

Skema diagram digunakan untuk membantu kita dalam membuat logika program. Tanda “-“ dilambangkan sebagai private. Sedangkan tanda “+” dilambangkan sebagai public.


tidak perlu lagi dideklarasikan ulang.

2. Langkah 2: class Software (ketikkan syntax berikut)

a. Membuat kerangka class Software

Setelah kita membuat class Software. Simpan file tersebut dengan nama Software.java. Di dalam class Software, kita juga sediakan tempat untuk mendeklarasikan variabel, constructor, setter dan getter.

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 Software, langkah selanjutnya anda membuat constructor software. Constructor ini nantinya akan digunakan dalam class Game. Gambar di bawah ini menunjukkan deklarasi constructor.

Coba perhatikan kembali script yang telah kita buat seperti gambar di atas. Seperti halnya dengan penggunaan method setter(), di dalam pembuatan constructor Software dengan parameter, kita juga dapat menggunakan keyword this. Penggunaan keyword this akan mengacu kepada variabel yang dideklarasikan pada class Software (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 bawah).

Penggunaan keyword this dapat digunakan atau tidak (optional) apabila ada perbedaan deklarasi nama variabel pada class Software.

d. Membuat method setter

Setelah membuat variabel yang dibutuhkan pada class Software, selanjutnya kita buat method setter untuk masing-masing variabel. Hal ini bertujuan untuk mengeset atau mengubah nilai variabel username dan password sesuai dengan permintaan soal pada menu ke-2 di class Game. Ingat! pembuatan variabel pada parameter di method setter, harus sesuai dengan tipe data pada variabel yang dideklarasikan di kelas. Berikut contoh syntax yang menunjukkan deklarasi setter:

e. 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 Software yang nantinya akan dikembalikan ke dalam class Game. Ingat! dalam pembuatan variabel pada parameter method getter, harus sesuai dengan tipe data pada variabel yang dideklarasikan di kelas.

3. Langkah 3: class Game (ketikkan syntax berikut)

a. Membuat kerangka class Game

Setelah kita membuat class Game, simpan file tersebut dengan nama Game.java. Di dalam class Game, kita juga sediakan tempat untuk mendeklarasikan variable, constructor, dan getter. Penggunaan extends menunjukkan bahwa class Game merupakan turunan dari class Software.

b. Mendeklarasi variabel yang digunakan

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:

Perlu diketahui! Dalam pembuatan class Game tidak diperlukan pendeklarasian variabel kode, nama dan lisensi.

c. Mendeklarasi constructor

Setelah membuat variabel yang dibutuhkan pada class Game, langkah selanjutnya kita membuat constructor Game. Constructor ini nantinya akan digunakan dalam class Utama. Gambar di bawah ini menunjukkan deklarasi constructor.

Coba perhatikan kembali script yang telah kita buat seperti gambar di atas. Pada contructor pertama, terdapat keyword “super”. Keyword ini akan memanggil constructor kedua (sesuai isi parameter) pada class induknya, yaitu class Software (lihat script yang diberi kotak warna biru pada gambar di bawah ini)

Sedangkan jika kita ingin memanggil setter/getter pada class induknya, kita dapat menggunakan keyword “super” yang kemudian dilanjutkan dengan nama method yang dipanggil seperti constructor kedua pada class Game (lihat script yang diberi kotak warna biru pada gambar di atas). Artinya penggunaan keyword “super” akan mengarah kepada contructor class induknya (lihat script yang diberi kota warna orange pada gambar di atas)

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 Game yang nantinya akan dikembalikan ke dalam class Utama. Ingat! dalam pembuatan variabel pada parameter method getter, harus sesuai dengan tipe data pada variabel yang dideklarasikan di kelas.

Seperti halnya penggunaan constructor kedua pada class Game yang menggunakan super.[nama_method], maka untuk method getKode(), getNama(), gan getLisensi() menggunakan keyword “super” dikarenakan tidak dideklarasikan pada class Game.



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 Utama.java. 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 java.io.* (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 class Login. Itulah yang dinamakan instance of class. Misalkan, objek yang kita buat adalah gameA dan gameB, dimana gamA menggunakan constructor Login tanpa parameter, sedangkan gameB menggunakan constructor kedua pada class Game

Coba perhatikan kembali pembuatan instance of class. Pada line 9, objek "gameA" yang telah terbentuk akan mereferens ke constructor pertama pada parameter. Sedangkan pada line 10, kita mendeklarasikan objek "gameB" yang merefens ke constructor kedua pada class Game, dimana kedua variabel tersebut (gameA dan gameB) masih belum diketahui nilainya. Karena tipe data game Adan gameB bertipe String, maka kita gunakan tanda (“ “) untuk memberi nilai awal kosong.


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, kita gunakan 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", kita gunakan kondisi bernilai "true", dimana program tersebut akan mengulang menu tersebut berulang kali. Untuk keluar dari menu tersebut, akan kita bahas nanti pada langkah poin (e).



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

"System.out.println();" pada line 29 hanya digunakan untuk memberikan jarak antara proses dengan inputan dan user.

e. Mengecek inputan user

Inputan user yang nantinya akan diisi, akan menentukan pilihan yang dieksekusi. Untuk itu, dibutuhkan pengecekan inputan user dengan menu yang dipilih. Kita akan menggunakan switch...case... dikarenakan penggunaannya lebih mudah dalam mengecek sebuah menu.

Dalam setiap case jangan lupa tambahkan 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 sesuai dengan inputan user. Jika anda perhatikan baik-baik, "System.exit(0);" pada line 54 bertujuan untuk keluar dan menu dan mengakhiri program.



f. Mengisi Case 1 (Input Game A)

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

Line 37-45: berisi permintaan inputan kode, nama dan lisensi yang nantinya akan diisi oleh user

Line 47: merupakan proses mentransfer data kode, nama dan lisensi pada tiap variabel dalam contructor pertama class Game. Setelah berhasil, program akan mencetak tulisan ### Data Game A telah disimpan ### (line 51)

g. Mengisi Case 2 (Input Game B)

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

Line 57-69: berisi permintaan inputan kode, nama, dan lisensi, jenis dan tipe yang nantinya akan diisi oleh user

Line 71: merupakan proses mentransfer data kode, nama, dan lisensi, jenis, dan tipe pada tiap variabel dalam constructor kedua class Game. Setelah berhasil, program akan mencetak tulisan ### Data Game A telah disimpan ### (line 75)

h. Mengisi Case 3 (Lihat Data Game)

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

Itulah artikel mengenai inheritance pada pemrograman java, sampai bertemu lagi di artikel berikutnya. Salam hangat mastertutorial

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.

Joyce Avestro. 2003. Introduction Programming 2, 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


EmoticonEmoticon