PBO-Memperbaiki Struktur dengan Inheritance


Pengantar Inheritance

Inheritance (pewarisan) adalah mekanisme dalam pemrograman berorientasi objek (OOP) yang memungkinkan sebuah kelas (child class) untuk mewarisi atribut dan metode dari kelas lain (parent class). Tujuannya adalah untuk meningkatkan struktur program, menghindari pengulangan kode, dan meningkatkan keterbacaan serta pemeliharaan kode.

Manfaat Inheritance

Inheritance memberikan berbagai manfaat struktural pada kode:

  • Reusabilitas Kode: Memungkinkan reuse kode yang sudah ada pada parent class di child class.
  • Konsistensi dan Keterbacaan: Dengan inheritance, struktur aplikasi dapat diatur secara hierarkis sehingga alur logika dan struktur program menjadi lebih jelas.
  • Pemeliharaan Kode Lebih Mudah: Jika perubahan diperlukan pada fitur umum, kita hanya perlu mengubahnya di parent class, dan semua child class otomatis mewarisi perubahan tersebut.
Untuk penjelasan lebih lanjut akan dibahas tentang Network Example. 

Studi kasus The Network Project dalam buku Object First oleh David Barnes memperkenalkan konsep-konsep dasar dari pemrograman berorientasi objek (OOP) melalui simulasi aplikasi jejaring sosial sederhana. Tujuan utamanya adalah memberikan pemahaman tentang bagaimana struktur program dapat diatur dan ditingkatkan menggunakan konsep OOP seperti inheritance, encapsulation, dan polymorphism.



Deskripsi Proyek

The Network Project bertujuan untuk membuat prototipe aplikasi jejaring sosial yang sangat sederhana. Dalam konteks ini, proyek hanya mencakup bagian kecil dari fitur dasar sebuah aplikasi jejaring sosial, seperti mengelola pengguna, menambahkan postingan, dan memanipulasi data pengguna.

Struktur dan Kelas Utama

Pada intinya, proyek ini memiliki beberapa kelas utama yang menggambarkan entitas sosial dalam aplikasi jejaring sosial:

  • User: Kelas User merepresentasikan individu pengguna dalam aplikasi. Atributnya mungkin termasuk username, name, dan status. Metode di dalamnya memungkinkan interaksi seperti meng-update status dan melihat informasi profil.

  • Post: Kelas Post menggambarkan sebuah postingan yang bisa dibuat oleh pengguna. Setiap postingan mungkin memiliki atribut seperti content, timestamp, author, dan likes. Metode pada kelas ini mungkin mencakup tindakan untuk menambah atau menghapus like.

  • Network: Kelas Network berperan sebagai tempat untuk menyimpan daftar pengguna dan postingan dalam aplikasi. Kelas ini memungkinkan fungsi untuk menambah atau menghapus pengguna serta memanipulasi daftar postingan yang tersedia di aplikasi.

Implementasi Inheritance dalam Proyek

Studi kasus ini bisa mencakup penggunaan inheritance dalam menambah fitur pada aplikasi. Contohnya:

  • Inheritance pada User Type: Anda bisa mengembangkan aplikasi ini dengan menambahkan beberapa tipe pengguna yang berbeda. Misalnya, Anda bisa membuat subclass AdminUser atau RegularUser, yang masing-masing memiliki akses dan hak yang berbeda dalam sistem.
  • Polymorphism untuk Aksi Postingan: Dengan menerapkan inheritance pada Post, kita bisa membuat jenis-jenis postingan yang berbeda, seperti ImagePost atau TextPost. Setiap jenis postingan bisa memiliki cara yang berbeda dalam menampilkan konten atau mengolah data.


Encapsulation dan Akses Kontrol

Encapsulation atau pengkapsulan digunakan untuk melindungi data internal pada setiap kelas. Misalnya:

  • Data pribadi dari User harus diakses melalui metode getter dan setter, bukan secara langsung.
  • Atribut content pada Post sebaiknya bersifat private atau protected untuk menjaga integritas data.

Contoh Kasus Penggunaan

  • Menambahkan User: Administrator dapat menambah pengguna baru ke jaringan menggunakan metode di kelas Network.
  • Memposting Status: Pengguna dapat membuat objek Post baru yang berisi status atau gambar. Posting ini akan ditambahkan ke daftar posting di kelas Network.
  • Interaksi pada Postingan: Pengguna dapat menambah atau menghapus "like" pada posting, yang ditangani melalui metode di dalam kelas Post.

Manfaat dari Struktur OOP di The Network Project

Studi kasus ini menunjukkan bahwa dengan struktur OOP:

  • Program lebih modular dan mudah untuk dikembangkan lebih lanjut.
  • Kode lebih mudah dipelihara, karena tiap kelas bertanggung jawab atas fungsinya sendiri.
  • Fleksibilitas untuk memperluas sistem tanpa mengubah struktur dasar kode berkat penerapan inheritance dan encapsulation.

Peluang Pengembangan Lanjutan

  • Menambah Komentar pada Postingan: Dengan membuat subclass Comment, kita dapat mengimplementasikan fitur komentar yang dapat ditautkan ke objek Post.
  • Follower System: Dengan menambahkan atribut followers dan following pada kelas User, pengguna bisa mengikuti satu sama lain, mirip dengan aplikasi media sosial modern.
  • Pengelolaan Data: Peningkatan pada struktur data, misalnya dengan menggunakan koleksi (list, map) yang lebih efisien untuk menampung pengguna dan postingan.



Latihan

Aplikasi Rental Kendaraan

Deskripsi: Buatlah sebuah sistem manajemen rental untuk berbagai jenis kendaraan. Semua kendaraan memiliki merk, model, dan tahunProduksi. Khusus untuk Mobil dan Motor, tambahkan atribut jumlahRoda. Sementara untuk Sepeda, tambahkan atribut jenis Sepeda (misalnya BMX, balap).

  1. Buat rancangan class diagram dengan menggunakan inheritance
  2. Buat aplikasi yang bisa menampilkan list kendaraan yang tersedia, dan juga daftar nama penyewa beserta informasi detail kendaraan yang disewa


Solusi Lain network application

Share this

Related Posts

Previous
Next Post »

108 komentar

komentar
November 18, 2018 at 9:48 AM delete

Nama : Samuel Marcellinus
NRP : 05111740000134
Link : Link

Reply
avatar
November 18, 2018 at 1:27 PM delete

Nama : Yuki Yanuar Ratna
NRP : 05111740000023
Kelas : PBO A
Link : Tugas Database Akademik

Reply
avatar
November 18, 2018 at 1:27 PM delete This comment has been removed by the author.
avatar
November 18, 2018 at 1:28 PM delete

Nama : Satria Ade Veda Karuniawan
NRP : 05111740000130
Kelas : PBO A
Link : Database

Reply
avatar
November 18, 2018 at 2:18 PM delete

Nama : Ifta Jihan N
NRP : 05111740000034
Kelas : PBO A
Link : Tugas

Reply
avatar
November 18, 2018 at 3:48 PM delete

Nama : Bobbi Aditya
NRP : 05111740000099
Kelas : PBO A
Link : ini linknya

Reply
avatar
November 18, 2018 at 4:29 PM delete

Nama : Bima S. Ramadhan
NRP : 05111740000081
Kelas : PBO A
Link : click me

Reply
avatar
November 18, 2018 at 4:53 PM delete

Nama : Bastian Farandy
NRP : 05111740000190
Kelas : PBO A
Link : Database Akademik

Reply
avatar
November 18, 2018 at 5:14 PM delete

Nama : Reza Adipatria Maranatha
NRP : 05111740000186
Kelas : PBO A
Link : Link

Reply
avatar
November 18, 2018 at 5:29 PM delete

Nama : Yudhistiro Adi Nugroho
NRP : 05111740000165
Kelas : PBO A
Link : Link

Reply
avatar
November 18, 2018 at 5:50 PM delete

Nama : Karina Soraya P
NRP : 05111740000003
Kelas : PBO - B
Link : Database Akademik

Reply
avatar
November 18, 2018 at 6:07 PM delete

Nama: Paramastri Ardiningrum
NRP: 05111740000019
Kelas: PBO-B
Link: Tugas Membuat Database Akademik

Reply
avatar
November 18, 2018 at 6:33 PM delete

Nama: Ayu Mutiara Sari
NRP: 05111740000149
Kelas: PBO A
Link: tugas

Reply
avatar
November 18, 2018 at 6:37 PM delete This comment has been removed by the author.
avatar
November 18, 2018 at 6:40 PM delete This comment has been removed by the author.
avatar
November 18, 2018 at 6:42 PM delete

Nama: Donny Fitrado
NRP: 05111740000171
Kelas: PBO A
Link: Link Tugas

Reply
avatar
November 18, 2018 at 6:53 PM delete

Nama : Isnaini Nurul KurniaSari
NRP : 05111740000010
Kelas: PBO-B
Link : Database Akademik

Reply
avatar
November 18, 2018 at 7:08 PM delete

Nama : Vinsensius Yuda Pratama
NRp : 05111740000156
Kelas: PBO B

Link: Database mahasiswa

Reply
avatar
November 18, 2018 at 7:09 PM delete This comment has been removed by the author.
avatar
November 18, 2018 at 7:29 PM delete

Nama : Yemima Sutanto
NRP : 05111740000049
Kelas : PBO A
LINK : SIM Mahasiswa

Reply
avatar
November 18, 2018 at 7:57 PM delete

Nama : Yasinta Yusniawati
NRP : 05111740000054
Kelas : PBO - B
link : klik here

Reply
avatar
Anonymous
November 18, 2018 at 8:20 PM delete

Nama : Wasilatul Dewi Ningrum
NRP : 05111740000004
Kelas : PBO B
Link : Database Akademik Sederhana

Reply
avatar
November 18, 2018 at 8:29 PM delete

Nama : Putri Endah Puspitasari
NRP : 05111740000039
Kelas: PBO - B
Link : database akademik

Reply
avatar
November 18, 2018 at 8:31 PM delete

Nama : Zahrul Zizki Dinanto
NRP : 05111740000168
Kelas : PBO - b
link TUGAS PBO

Reply
avatar
November 18, 2018 at 8:40 PM delete

Nama : Mohammad Rizaldi Huzein Prastomo
Kelas: PBO B
NRP : 05111740000024
Link : Link tugas

Reply
avatar
November 18, 2018 at 8:44 PM delete

Nama : Ahmad Syauqi
Kelas: PBO B
NRP : 05111740000093
Link : Link tugas

Reply
avatar
November 18, 2018 at 8:45 PM delete

Nama : Hendra Ramadani
NRP : 05111740000055
Kelas : PBO-B
Link : Database Akademik

Reply
avatar
November 18, 2018 at 8:54 PM delete

Nama: Arino Jenynof
NRP: 05111740000096
Kelas: PBO B
Link: Database

Reply
avatar
November 18, 2018 at 8:59 PM delete

Nama : Chaniyah Zulfa M.
NRP : 05111740000115
Kelas: PBO-B
LInk : Tugas_Database

Reply
avatar
November 18, 2018 at 9:14 PM delete

Nama : M Thalut Nadhil Q
NRP : 05111740000143
Kelas : PBO B
Link : Database

Reply
avatar
November 18, 2018 at 9:19 PM delete

Nama: Indira Nursyamsina Hazimi
NRP: 05111740000082
Kelas: PBO A
Link: Link Sistem Akademik

Reply
avatar
November 18, 2018 at 10:21 PM delete

Nama; Muhammad Naufal Refadi
NRP: 05111740000097
Kelas: PBO-A
Link: Database Akademik

Reply
avatar
November 18, 2018 at 11:52 PM delete

Nama: Elkana Hans Widersen
NRP: 05111740000127
Kelas: PBO A
Link: Database Akademik

Reply
avatar
November 19, 2018 at 1:25 AM delete This comment has been removed by the author.
avatar
November 19, 2018 at 1:28 AM delete

Nama: Muhammad Aufa Wibowo
NRP: 05111640000184
Kelas: PBO A
Link: Database Akademik

Reply
avatar
November 19, 2018 at 3:00 AM delete

Nama : Sherly Rosa Anggraeni
NRP : 05111740000018
Kelas : PBO-A
Link Tugas

Reply
avatar
November 19, 2018 at 7:00 AM delete

Nama: Mohammad Nafis Naufally
NRP: 05111640000038
Kelas: PBO B
Link: Di sini

Reply
avatar
November 19, 2018 at 7:38 AM delete

Nama: Zico Ritonda Bahen
NRP: 05111740000064
Kelas: PBO A
Link: Link

Reply
avatar
November 20, 2018 at 12:41 PM delete

Nama : Lutfiyanti
NRP : 05111740000036
Kelas : PBO-B
Link : Database Akademik

Reply
avatar
November 20, 2018 at 4:07 PM delete

Nama : Atika Rizki Nurakhmah
NRP : 05111740000015
Kelas : PBO A
Link : database akademik blue j

Reply
avatar
November 21, 2018 at 3:29 AM delete

Nama : Timothyus Tanner
NRP : 05111740000018
Kelas PBO-A
Link Sistem Akademik

Reply
avatar
November 21, 2018 at 4:45 AM delete

Nama : Ismail Arifin
NRP : 05111740007007
Kelas : PBO B
Link : Database Akademik Sederhana

Reply
avatar
November 21, 2018 at 8:44 PM delete

Nama : Nandha Himawan
NRP : 05111740000180
Kelas : PBO A
Link : Sistem akademik

Reply
avatar
November 22, 2018 at 3:05 AM delete

Nama: I Gede Agung Krisna Pamungkas
NRP: 05111740000135
Kelas: PBO-A
Link: SIAKAD

Reply
avatar
November 22, 2018 at 9:29 AM delete

Nama : Nitama Nurlingga Yotifa
NRP : 05111740000059
Kelas : PBO A
Link : Sistem akademik

Reply
avatar
November 23, 2018 at 9:00 PM delete

Nama :Arini Puspitasari
NRP : 05111740000040
Kelas: PBO-B
Link : database akademik

Reply
avatar
November 24, 2018 at 8:08 PM delete

Nama : Edgar Andrew Hutauruk
NRP : 05111740000166
Kelas : PBO B
Link : database akademik

Reply
avatar
November 25, 2018 at 1:21 AM delete This comment has been removed by the author.
avatar
November 25, 2018 at 1:23 AM delete

Nama :Hafidz Firman Asqalany
NRP : 05111740000195
Kelas: PBO A
Link :ini linknya

Reply
avatar
November 25, 2018 at 3:18 PM delete

Nama : Muhammad Fadhlan Min Robby
NRP : 05111740000123
Kelas : PBO B
Link : database

Reply
avatar
November 25, 2018 at 7:54 PM delete

Nama : Ghannie Wijaya
NRP : 05111640000048
Kelas : PBO B
Link : Di sini

Reply
avatar
November 25, 2018 at 8:10 PM delete

Nama : Fadhlan Aulia
NRP : 05111640000125
Kelas : PBO B
Link : Database Akademik

Reply
avatar
ch
November 25, 2018 at 8:15 PM delete

Nama : Chrisnady Anggaiswara
NRP : 05111640000153
Kelas : PBO B
Link : Database Akademik

Reply
avatar
November 26, 2018 at 12:07 PM delete

Nama : Nadia Hasna
NRP : 05111740000077
Kelas : PBO A
Link : Database

Reply
avatar
November 27, 2018 at 3:44 PM delete

Nama : Shawn Timothy Mulya Putra
NRP : 05111740000095
Kelas : PBO A
Link : Jawaban

Reply
avatar
December 3, 2018 at 11:42 PM delete

Nama : Puguh Santosa D
NRP : 5116100049
KElas : PBO - A
Link : Database akademik

Reply
avatar
December 5, 2018 at 9:10 PM delete

Nama : Ahmad Yahya Abdul Aziz
NRP : 05111740000128
Kelas : PBO - A
Link : Civitas Akademika ITS

Reply
avatar
December 9, 2018 at 1:25 AM delete

Nama : Muhammad Husni Ridhart Azzikry
NRP : 05111740000122
Kelas: PBO - B
Link : Academic DB

Reply
avatar
December 9, 2018 at 9:44 AM delete

Nama : Muh. Shafwatallah Wahid
NRP : 05111740007002
Kelas: PBO - B
Link : Database

Reply
avatar
October 2, 2019 at 6:59 PM delete

Nama : Alberto Sanjaya
NRP : 05111840000150
Kelas : PBO - D
link : (Latihan Inheritance

Reply
avatar
October 2, 2019 at 7:01 PM delete

Nama : Segara Bhagas Dagsapurwa
NRP : 051118400000337
Kelas : PBO D
Tugas Inheritance

Reply
avatar
October 2, 2019 at 9:03 PM delete

Nama : Farrel Muhammad Taqi
NRP : 05111840000071
Kelas : PBO A
Link : Latihan Inheritance

Reply
avatar
October 2, 2019 at 9:31 PM delete This comment has been removed by the author.
avatar
October 2, 2019 at 9:49 PM delete

Nama : Risky Aswi Narni
NRP : 05111740000014
Kelas: PBO A
Latihan inheritance-database
link: inheritance-database

Reply
avatar
October 6, 2019 at 3:53 AM delete

Nama: Julius
NRP: 05111840000082
Kelas: PBO A
Link: Latihan Inheritance

Reply
avatar
October 6, 2019 at 9:22 PM delete

Nama: Yulia Niza
NRP: 05111840000053
Kelas: PBO A
Link: Latihan Inheritance



Reply
avatar
October 8, 2019 at 12:11 AM delete

Nama : Iqbaal Pratama Putra
NRP : 05111840000021
Kelas : PBO D
Link: Tugas 4 (Latihan Inheritance)

Reply
avatar
dae
October 8, 2019 at 8:03 AM delete

Nama : Devi Hainun Pasya
NRP : 05111840000014
Kelas : PBO A
LINK : Tugas Inheritance

Reply
avatar
October 8, 2019 at 9:36 AM delete

Nama : Fara Dinda Mutia K.
NRP : 05111840000112
Kelas : PBO D
Link : Tugas 4 PBO

Reply
avatar
October 9, 2019 at 4:25 AM delete

Nama : Syubban Fakhriya
Nrp : 05111840000042
Kelas : PBO A
Link : Tugas Inheritance

Reply
avatar
October 9, 2019 at 8:14 AM delete This comment has been removed by the author.
avatar
October 9, 2019 at 8:15 AM delete

Nama : Arjun Aksan
Nrp : 05111740000133
Kelas : PBO A
Link : Inheritance

Reply
avatar
October 9, 2019 at 9:22 AM delete

Nama : I Gusti Agung Chintya Prema Dewi
NRP : 05111840000130
Kelas : PBO D
Link : Tugas Inheritance

Reply
avatar
October 9, 2019 at 9:31 AM delete

Nama : Achmad Sofyan Pratama
NRP : 05111840000061
Kelas : PBO D
LINK : link INHERITANCE

Reply
avatar
October 9, 2019 at 11:51 AM delete

Nama : M Yusuf Mukharom
NRP : 05111740000051
Kelas : PBO A
LINK : Tugas Inheritance

Reply
avatar
October 9, 2019 at 12:32 PM delete

Nama : Adam Abelard Garibaldi
NRP : 05111840000125
Kelas : PBO A
LINK: Tugas Inheritance

Reply
avatar
October 9, 2019 at 3:03 PM delete

Nama : Rafif Ridho
NRP : 05111840000058
Kelas : PBO D
Link : Link Tugas 4

Reply
avatar
October 9, 2019 at 5:41 PM delete

Nama : Wardah Nabilah Rusyda
NRP : 05111840000046
Kelas : PBO D
Link : Tugas 4

Reply
avatar
October 9, 2019 at 9:08 PM delete

Nama : Naulia Adam Kuncoro
NRP : 05111740000155
Kelas : PBO A
Link : INHERITANCE

Reply
avatar
October 9, 2019 at 9:10 PM delete

Nama : Putu Putri Natih Devayanti
NRP : 05111840000163
Kelas : PBO-A
Link : Tugas Inheritance

Reply
avatar
October 9, 2019 at 10:51 PM delete

Nama : Elvira Catrine Natalie
NRP : 05111840000016
Kelas : PBO-A
Link : INHERITANCE

Reply
avatar
October 10, 2019 at 2:39 AM delete

Nama : Ignatius Dwiki Iskandar
NRP : 05111840000019
Kelas : PBO-D
Link : CD DVD Inheritance

Reply
avatar
October 10, 2019 at 3:29 AM delete

Nama : Dicky Maulana Rozi
NRP : 05111740000083
Kelas : PBO - A
Link : Inheritance

Reply
avatar
October 10, 2019 at 10:45 AM delete

Nama : Salsabila Harlen
NRP : 05111840000127
Kelas : PBO - A
Link : Tugas Inheritance

Reply
avatar
October 13, 2019 at 4:34 AM delete

Nama : Ida Bagus Rai Widnyana
NRP : 05111740000087
Kelas: PBO -D
Link : Tugas Inheritance

Reply
avatar
October 14, 2019 at 10:34 PM delete This comment has been removed by the author.
avatar
October 14, 2019 at 10:34 PM delete

Nama : Jordan Gilbert
NRP : 05111840000084
Kelas : PBO-D
link : Tugas PBO 4

Reply
avatar
October 15, 2019 at 10:43 AM delete

Nama: Yaniar Pradityas Effendi
NRP: 05111840000047
Kelas: PBO D
LINK TUGAS INHERITANCE

Reply
avatar
October 17, 2019 at 5:56 AM delete

Nama : Muhammad Rayhan Hakim
NRP : 05111740000160
Kelas : PBO A
Tugas : Latihan Inheritance
Link : https://gipenhakim.blogspot.com/2019/10/inheritance.html

Reply
avatar
October 19, 2019 at 12:26 PM delete

Nama : Nikodemus Siahaan
NRP : 05111840000151
Kelas : PBO A
Link : Tugas 5 Inheritance

Reply
avatar
October 23, 2019 at 8:00 AM delete

Nama : Imanuel Banifernando Simatupang
NRP : 05111840000085
Kelas : PBO d
Link :LINK TUGAS INHERITANCE
Hasil : Blog Dua Rupa

Reply
avatar
October 30, 2019 at 7:52 PM delete

Nama : Ryan Rasyid A
Kelas : PBO D
NRP : 05111840000079
Link : Link?

Reply
avatar
November 1, 2019 at 2:36 AM delete

Nama : Maisie Chiara Salsabila
Kelas : PBO D
NRP : 05111840000057
Link Tugas Inheritance

Reply
avatar
November 2, 2019 at 5:42 AM delete

Nama: Intan Kusuma R
Kelas: PBO D
NRP: 05111840000020
Link:
Link Inheritance

Reply
avatar
November 6, 2019 at 5:06 PM delete

Nama : Aflakah Nur Farhana
Kelas : PBO D
NRP : 05111840000120
link: LINK

Reply
avatar
November 24, 2019 at 5:41 PM delete

Nama : Muhammad Ilham Indiano
NRP : 05111740000177
Kelas : PBO A
Tugas : Latihan Inheritance
Link : Ini Link

Reply
avatar
November 27, 2019 at 5:34 PM delete

Nama : Imanuel Banifernando Simatupang
NRP : 05111840000085
Kelas : PBO D
Tugas : Latihan Inheritance
Link : Latihan intheritance

Reply
avatar
November 28, 2019 at 11:23 AM delete

Nama: Bayu Surya Bawono
NRP: 05111840000114
Kelas: PBO-A
Tugas: Latihan Inheritance
Link: https://etspbo.blogspot.com/2019/11/inheritance.html

Reply
avatar
December 14, 2019 at 9:14 PM delete

Nama : Muhammad Satryo Pamungkas Bimasakti
Kelas : PBO D
NRP : 05111840000070
Link : Tugas 4

Reply
avatar
December 14, 2019 at 11:50 PM delete

Nama: Abdi Dewa Maha Rupawan
Kelas: PBO D
NRP: 05111840000003
Link: Tugas Inheritance

Reply
avatar
December 15, 2019 at 2:45 AM delete

Nama : Ammar Alifian F
NRP : 05111840000007
Kelas : PBO - A
Link : Inheritance

Reply
avatar
December 16, 2019 at 4:40 AM delete

Nama : Muhammad Fawwaz Zuhdan Nauvali
NRP : 05111740000106
Kelas : PBO A
Link : Inheritance

Reply
avatar