Sunday, November 11, 2018

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

108 comments:

  1. Nama : Samuel Marcellinus
    NRP : 05111740000134
    Link : Link

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

    ReplyDelete
  3. This comment has been removed by the author.

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

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

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

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

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

    ReplyDelete
  9. Nama : Reza Adipatria Maranatha
    NRP : 05111740000186
    Kelas : PBO A
    Link : Link

    ReplyDelete
  10. Nama : Yudhistiro Adi Nugroho
    NRP : 05111740000165
    Kelas : PBO A
    Link : Link

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

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

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

    ReplyDelete
  14. This comment has been removed by the author.

    ReplyDelete
  15. This comment has been removed by the author.

    ReplyDelete
  16. Nama: Donny Fitrado
    NRP: 05111740000171
    Kelas: PBO A
    Link: Link Tugas

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

    ReplyDelete
  18. Nama : Vinsensius Yuda Pratama
    NRp : 05111740000156
    Kelas: PBO B

    Link: Database mahasiswa

    ReplyDelete
  19. This comment has been removed by the author.

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

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

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

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

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

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

    ReplyDelete
  26. Nama : Ahmad Syauqi
    Kelas: PBO B
    NRP : 05111740000093
    Link : Link tugas

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

    ReplyDelete
  28. Nama: Arino Jenynof
    NRP: 05111740000096
    Kelas: PBO B
    Link: Database

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

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

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

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

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

    ReplyDelete
  34. This comment has been removed by the author.

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

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

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

    ReplyDelete
  38. Nama: Zico Ritonda Bahen
    NRP: 05111740000064
    Kelas: PBO A
    Link: Link

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

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

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

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

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

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

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

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

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

    ReplyDelete
  48. This comment has been removed by the author.

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

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

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

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

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

    ReplyDelete
  54. Nama : Nadia Hasna
    NRP : 05111740000077
    Kelas : PBO A
    Link : Database

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

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

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

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

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

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

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

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

    ReplyDelete
  63. This comment has been removed by the author.

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

    ReplyDelete
  65. Nama: Julius
    NRP: 05111840000082
    Kelas: PBO A
    Link: Latihan Inheritance

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



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

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

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

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

    ReplyDelete
  71. This comment has been removed by the author.

    ReplyDelete
  72. Nama : Arjun Aksan
    Nrp : 05111740000133
    Kelas : PBO A
    Link : Inheritance

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

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

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

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

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

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

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

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

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

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

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

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

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

    ReplyDelete
  86. This comment has been removed by the author.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    ReplyDelete