Object-Oriented Programming #1: Inheritance & Abstract

Andre Saftari
2 min readNov 18, 2020
Java Programming Logo

Selamat datang di Object Oriented Programming series, pada serial ini kita akan membahas mengenai basic dari pemrograman berorientasi objek, sebuah paradigma pemrograman yang berkonsep “object” sesuai kehidupan nyata.

Nah pada kesempatan kali ini, kita akan membahas sebuah soal mengenai Inheritance dan Abstract yang kebetulan merupakan tugas Pra Assessment di mata kuliah saya. Oke, langsung saja kita mulai yaaa. Untuk soalnya, bisa langsung lihat atau download di sini.

Pertama, kita perlu membuat dulu UML design atau desain dari diagram class/object class yang akan kita kembangkan

UML design

Pada UML design di atas, memang sedikit membingungkan apabila kita belum mengetahui cara bacanya hehe. Nah, jadi saya akan berikan penjelasan mengenai desain di atas.

  • Classes
  1. Class Perpustakaan sebagai concrete class (kelas utama/prime) yang akan berisi method aksi seperti Create (add) koleksi dan Read (display) koleksi.
  2. Kemudian untuk melakukan sorted display, saya menggunakan class TitleComparator untuk sort judul secara ascending, PublisherComparator untuk sort penerbit secara ascending, dan ReleaseComparator untuk sort tanggalTerbit secara ascending
  3. Untuk inheritance, induk kelas (superclass) pada UML di atas adalah abstract class Koleksi yang berisi komponen umum yang akan dimiliki/diwarisi ke kelas anak-anaknya (subclass)
  4. Terakhir ada 4 buah kelas anakan (subclass) yang diturunkan dari class Koleksi, yaitu class Buku, Koran, Majalah, dan CakramDigital. Nah, masing-masing dari class ini akan meng-extend kelas Koleksi, sehingga akan menerima setiap function/method yang diturunkan dari induk kelasnya
  5. Driver class, ini adalah class dimana kita akan menjalankan program kita, sebut saja nama kelasnya adalah class Main. Class ini disebut driver karena fungsinya hanya untuk menjalankan program kita, maka itu kelas ini tidak digambarkan pada UML karena bukan termasuk proses bisnis
  • Modifier
  1. Public, ditandai dengan simbol plus atau tambah (+), umumnya untuk method yang dapat digunakan di class lain, contohnya seperti method addKoleksi() dan displayAll()
  2. Private, ditandai dengan simbol minus atau kurang (-), umumnya digunakan untuk variable pada tiap kelas (kecuali induk kelas/superclass)
  3. Protected, memiliki simbol crash/hashtag atau tanda pagar (#), digunakan untuk variable/method yang akan diwariskan ke kelas anak pada superclass (kecuali konstruktor)

Kedua, buat kodingan sesuai dengan hubungan dan UML design yang sudah dibuat

Dengan mengikuti UML design saya di atas, maka kurang lebih bentuk programnya akan seperti ini. Program di bawah sudah termasuk driver class (Main.java)

Codelab Perpustakaan

Run and test your program!

Nah, sudah jadi nih! Bisa langsung kita run dan coba-coba programnya. Apabila masih bingung dengan code di atas, bisa mampir ke link di bawah yaaaa…

Jangan lupa clapnya, thank you :)

--

--