Transcript for:
Pengenalan Desain Kelas di OOP

[Musik] baik rekan-rekan sekalian kali ini kita akan membahas desain kelas di object oriented programming dan ada tiga hal yang nanti akan kita bahas di sini Yang pertama adalah kelas konsep abstraction konsep encapsulation dan konsep inheritance dan penerapannya di object oriented dalam hal ini di C kita akan membahas segera satu demi satu saya berbicara dulu mengenai c#ar jadi saya cukup tertarik dengan c#ar karena beberapa alasan yang pertama sintaksnya lebih mudah daripada c++ ya Jadi kalau kita bicara bahasa pemrograman yang paling strong gitu ya yang paling kuat maka c++ ada jawabannya banyak platform sistem operasi atau misalnya video game semuanya basisnya c++ even c++ juga memegang koridor-koridor aplikasi pemprograman yang near Real Time seperti stok saham ya penerbangan dan sebagainya c#ap ini lebih modern seperti halnya Java teman-teman bisa melihat di sini beberapa komponen-komponennya pertama ada yang kita sebut dengan directive atau ditandai dengan kata kunci using using di sini Artinya kita akan menggunakan atau memberdaya gunakan library yang ada di sistem jadi using system artinya memberdayan library yang ada di sistem kemudian diawali dengan kelas kelas ini artinya adalah sebuah template atau nama gitu ya nama kelas di sini adalah Hello kemudian kemudian di dalamnya adalah sebuah metod dalam sebuah program c#ap minimal ada satu metod dengan nama main atau metod utama metod ini akan dipanggil pertama kali pada saat sebuah aplikasi itu digunakan sehingga dengan kata lain public Static voment artinya adalah entry point dari sebuah aplikasi ketika aplikasi tersebut dijalankan dengan bahasa pemprograman SH shar Sintak pada kelas c#ap diawali dengan sebuah kata kunci yang kita namakan kelas dalam aplikasi cshap yang dikemas dalam sebuah Project di Visual Studio sebuah aplikasi cshap terdiri dari beberapa file yang diakhiri dengan ekstensi.cs dalam sebuah kelas bisa saja terbagi menjadi beberapa file dengan menggunakan kata kunci parsial jadi kelas ini adalah sebuah inti dari bahasa pemprogram SH dalam sebuah kelas dalam sebuah Project wajib hanya ada satu metthod main atau metod utama jadi teman-teman bayangkan dalam satu Project Visual Studio hanya boleh ada satu metod utama yang disebut dengan metod ini sebagai entry point ketika aplikasi akan dieksekusi sebenarnya bisa saja dalam beberapa kelas memiliki beberapa main tetapi nanti kita harus memilih salah satunya mana Main yang akan dieksekusi di yangbih mod main ini menjadiya Tertulis secara langsung tetapi bisa kita lihat dan kita eksekusi secara langsung berikutnya kita akan membahas direktif direktif adalah satu mekanisme untuk melakukan organized namespace mengorganisasi alamat alamat apa alamat library library yang digunakan atau yang diberdayakan untuk program kita library tersebut kita susun dalam nomenklatur tersendiri Conto contohnya di sini SH shap memiliki nomenklatur sistem yang artinya semua pustaka atau semua kemampuan sistem itu bisa ditampilkan di sini tampak ada console right Line Hello world dan ini menggunakan directive ditunjukkan dengan menggunakan using kalau teman-teman perhatikan c#ar build model ini unik kode c#ap yang begitu banyak dilakukan compiler hasil compiler ini ya berupa X dan X dan dll tapi diperhatikan X dan dll-nya ini bukanlah X dan dll yang sifatnya natif atau bisa berjalan tanpa ada sebuah runtime sisap wajib menggunakan runtime yang kita sebut dengan dnet runtime ini mengatur bagaimana proses pengkodean dan eksekusi kode itu dilakukan dengan cara lebih optimal runtime ini juga mengakibatkan c#ap bisa berjalan di atas platform yang berbeda bukan bukan hanya di Windows dan yang terakhir runtime ini bertanggung jawab untuk mengkonversi kode yang tadinya intermediate language atau kita sebut dengan minage assembly menjadi kode natif yang siap berjalan di sistem operasi sebuah kelas bisa berubah menjadi sebuah objek apa ini kelas dan apa ini objek anda lebih mudah membayangkan kelas itu seperti sebuah citakan sementara objek adalah hasil dari citakan tersebut Jadi kalau kelas adalah sebuah citakan kue maka objek adalah kuueehnya dan proses penggunaan kelas ini harus melalui proses yang kita sebut dengan instating atau Instance Instance adalah Proses mengubah kelas menjadi objek Sebenarnya bukan mengubah tapi membuat sebuah objek dari kelas yang kita miliki contohnya di sini kita memiliki sebuah kelas bank account dan di sini kita membuat sebuah objek dengan nama Yours dalam satu kelas kita bisa mengcreate banyak objek dalam konteks penggunaan kelas ada kata kunci yang cukup teman-teman harus ketahui yaitu kata kunci Dis kata kunci Dis artinya mengacu pada objek yang digunakan pada metod tersebut contohnya di sini kita memiliki beberapa variabel satu variabel name yang ada di parameter dan satu variabel string yang ada di lu ar atau di dalam kelas begitu kita mengatakan dis.name maka dis.name ini mengacu pada name yang dimiliki oleh kelas jadi disk ini mengacu pada variabel atau pada objek yang saat ini aktif yang saat ini digunakan kita harus menyadari bahwa sebuah kelas juga bisa di dalamnya ada kelas lagi konsep seperti ini disebut dengan nested class contohnya kita membuat sebuah kelas bank di bawahnya kelas account atau bank di bawahnya kelas deposito maka kita bisa melakukan hal tersebut Tapi saya pribadi tidak menyarankan seperti ini karena ini mengakibatkan kompleksitas tersendiri dalam struktur sebuah kelas saya lebih menyarankan teman-teman menggunakan single class model tanpa nested kemudian diorganisasi melalui sekumpulan namespace yang kita bisa atur sebuah kelas yang nested itu bisa kita akses dengan pendekatan seperti ini pendekatan memanggil kelas tersebut Tapi pemanggilan kelas tersebut akan sangat bergantung pada akses modifier-nya Jadi kalau kelasnya itu private maka kita tidak bisa memanggil kelas di bawahnya tapi apabila kelas tersebut adalah kelas publ kita bisa memanggil kelas yang ada di bawahnya jadi konsep public dan private dan protected itu bisa diterapkan di nested class Oke Mari teman-teman kita akan mencoba sedikit demonstrasi untuk membayangkan dan juga mengaplikasikan konsep c#ar ya di Visual Studio dan di sini saya masuk ke sebuah Visual Studio dan Visual Studio adalah satu-satunya tools yang mendukung pemrograman Drag and drop teman-teman harus paham bedanya Visual Studio dengan Visual Studio code ya mainly fokusnya Visual Studio code itu adalah digunakan untuk toode editor sementara Visual Studio adalah full featured integrated development environment teman-teman melihat di sini pertama kali ada form 1.cs form 1.cs ini artinya adalah sebuah sebuah kode c#ap karena diakhiri dengan CS yang berfokus untuk mengembangkan atau menampilkan user interface kita bisa me-rename dan saya sarankan kalian mer-rename ya form tersebut menjadi form utama misalnya Kenapa harus seperti itu karena akan lebih punya makna gitu ya form utama itu apa dan sebagainya kalian bisa melakukan e naik turun atau membesar mengcilkan ini yang kita sebut dengan Surface design gitu ya design user interface dan menurut saya itu usful banget untuk mengembangkan aplikasi desktop aplikasi desktop di C sendiri ada beberapa ada beberapa model gitu ya Yang pertama adalah model terkait dengan Windows home dan yang kedua kita sebut dengan Windows presentation foundation atau yang lebih modern ada satu lagi yang kita sebut dengan universal Windows platform jadi ada tiga loh teman-teman ada tiga ya Ada tiga Framework untuk mengembangkan aplikasi desktop di atas platform Windows kita akan mencoba melakukan beberapa hal yang sederhana kalau kita lihat di program.cs di sini teman-teman bisa melihat yang terjadi adalah Eh ada sebuah method main yang kemudian metthod main tersebut menjalankan sebuah form utama jadi di sini teman-teman bisa melihat bahwa ada aktivitas pertama kali yang akan dipanggil yaitu memanggil form utama di form utama tentu saja kita bisa menambahkan banyak User Interface di sini saya bisa menambahkan Windows platform di situ kemudian saya klik button Saya klik button di sini teman-teman bisa melihat button yang ada ya kemudian saya bisaubah propertiesnya Nah di sini teman-teman baru melihat satu apa ya satu satu kesamaan ya satu kesamaan dengan seperti layaknya object oriented di sini kita punya yang kita sebut dengan properties Jadi kalau teman-teman lihat sebanyak ini ini tidak lain tidak butan adalah sebuah ee atribut ya atribut yang berfokus pada tampilan visual sebuah button gitu ya ya jangan lupa pada saat kita bicara atribut maka dia harus punya suatu objek yang unik di sini Saya beri nama Bukan button sat tapi button Hello gitu ya di sini penamaannya pun disarankan menggunakan penamaan yang lebih mudah dipahami contohnya pendekatan yang saya gunakan ini adalah pendekatan yang kita sebut dengan pendekatan Hungarian style gitu ya oke Hungarian style yang ditandai dengan tiga tiga variabel pertama itu menunjukkan kontrol apa yang diarahkan kita punya beberapa pendekatan yaitu Hungarian style Cel camel case dan Pascal case kalau teman-teman lihat penamaan file seperti ini form utama ini adalah penamaan berbasis Pascal case diawali dengan huruf besar kemudian setiap eh kata yang terpisah diawali dengan besar lagi Kemudian dijadikan S sementara kalau teman-teman pengin lihat eh camel case itu umumnya terjadi pada saat kita menyusun sebuah eh variabel gitu ya menyusun sebuah variabel Oke misalnya kita akan Klik di sini nah teman-teman bisa lihat di sini ada sebuah EV ya evnya salah satunya klik jadi saya cukup klik dua kali di sini maka saya akan memilik button ya kemudian saya akan memanggil sebuah fungsi di sini Saya memanggil fungsi message seperti ini teman-teman bisa lihat di sana ya kemudian kita akan menjalankan hasil dari tampilan ini adalah bukan sebuah Exel yang natif enggak tetapi adalah sebuah ex yang sifatnya eh hasil compilennya berupa intermediate language yang kemudian dijalankan oleh runtime sehingga bersifat natif sehingga begitu saya klik hello maka keluar di sini Hello Ya demikian demo untuk membuat aplikasi Windows fo kalian bisa explore lebih lanjut di Visual Studio di demo sebelumnya kita sudah mempelajari bagaimana penerapan object oriented di teknologi seperti Windows form Saya menyarankan teman-teman juga mempelajari teknologi yang lain untuk pengembangan aplikasi desktop seperti Windows presentation Framework atau universal Windows platform Tapi sebelum itu Yuk kita pelajari lebih dalam tentang abstraction di Classes abstraes itu seperti pendekatan bagaimana kita melakukan eliminasi selective elimination pada hal-hal yang tidak penting dalam konsep kelas kelas ini artinya adalah sebuah sebuah template yang berguna untuk menghasilkan sekumpulan objek sebuah objek memiliki tiga komponen utama yang pertama identitas ya atau kita sebut dengan object name ya kemudian behavior method ya dan juga state atau atribut nah pada saat kita bicara identity behavior state kalau di episode sebelumnya di video sebelumnya teman-teman pasti sudah pernah mendengar konsep dengan pendekatan CL desain jadi identity behavior state ini pasti ada dalam sebuah objek yang teman-teman harus ketahui adalah selain Clas ada lagi pendekatan struktur yang kita sebut dengan STR kata kunci STR ini ini berbeda dengan kelas jika kelas adalah tipe data berupa reference sementara strak ini tipe data berupa value kalau kalian kurang paham value dan reference Mari saya Jelaskan pendekatan yang paling sederhana terkait dengan value dan reference di sini kita memiliki dua buah metode penyimpanan pertama metode penyimpanan yang kita sebut dengan case yang kedua metode penyimpanan yang kita sebut dengan Random Access memory case biasanya teretak di CPU ada L1 L2 bahkan L3 nah pada saat kita membuat sebuah variabel maka yang kita lakukan adalah kita memanggil sebuah variabel tersebut di sini sebut saja variabelnya adalah integer a variabel integer a akan masuk di case dan akan diproses di case ketika variabel a ini memiliki objek dan nilainya di sini 12 maka ini disebut dengan tipe value secara sederhana jadi tipe value adalah sebuah sebuah variabel yang disimpan di case yang nilainya langsung ada di variabel tersebut sementara variabel yang sifatnya reference itu adalah variabel misalnya saya buat string gitu ya oke string B variabel yang objek identitasnya Di sini tetapi nilainya ada di sini ya Misalnya nilainya Abu misalnya seperti itu jadi string B dengan nilai Abu nilai Abu ini tidak disimpan bersamaan dengan variabelnya tapi disimpan terpisah sehingga ini yang disebut dengan reference tipe data reference adalah tipe data yang paling banyak digunakan di pemrograman karena apa tipe data reference menghasilkan fleksibilitas case ukurannya terbatas sehingga bisa saja habis sehingga case hanya digunakan untuk aspek-aspek komputasi yang sangat urgen seperti perhitungan penambahan ya kalkulasi dan sebagainya sementara tipe data reference itu digunakan untuk sesuatu yang lebih general seperti penyimpanan variabel untuk string kata kunci dan sebagainya sehingga di sini menggunakan mekanisme reference keuntungan reference adalah kita bisa membuat selebar-lebarnya data yang kita butuhkan berbeda dengan case yang sangat terbatas sehingga case hanya disimpan untuk tipe data-tipe data sederhana yang umum kita lakukan seperti integer bulean dan sebagainya sementara tipe data reference itu digunakan untuk menyimpan yang lebih beragam seperti string seperti kelas studen seperti kelas Apun itu itu diletakkan di reference karena suatu saat variabel yang sama bisa mereferensikan ya nilai yang berbeda jadi keunggulan reference adalah bisa berpindah-pindah referensinya sementara value nilainya itu selalu ada di variabel tersebut semoga teman-teman paham nih bedanya tipe data value dan tipe data reference Nah strak itu tipe value J STR itu sebenarnya secara sederhana sih hanya seperti tempat untuk menaruh variabel berbeda dengan kelas yang sifatnya itu reference jadi menyimpan Sekumpulan data Kompleks saya pribadi lebih menyarankan teman-teman menggunakan kelas dibanding STR kecuali untuk penggunaan atau pendekatan tertentu sekarang kita cobahat demo versushga tem-an paham dan saya masuk ke Visual Studio lagi Kemudian saya akan membuat sebuah kelas baru Klik Kanan di Project kemudian add kemudian kita Create new classes kemudian kita buat sebuah classes dengan nama point ya Oke saya akan memberi nama strck point untuk memudahkan kita di sini Saya tidak akan menggunakan eh Clas tapi saya akan menggunakan strck ya Oke saya akan membuat STR Oke kemudian saya akan membuat satu kelas lagi ya saya akan membuat satu kelas lagi saya akan klik add kemudian class kemudian saya akan membuat lagi saya akan memberi nama ref point di sini saya akan ubah namanya public class ref point Nah ya teman-teman bisa lihat di sini oke seperti ini kira-kira sementara yang bagian ini teman-teman bisa lihat Ya kira-kira seperti ini yang satunya strak yang satunya eh poin reference point secara sederhana teman-teman hanya melihat perbedaannya itu tergerak di kata kunci saja stru dan reference point dan kassas gitu ya Tapi pada kenyataannya perbedaannya bukan hanya itu kita akan coba uji perbedaannya satu demi satu ya di sini kita coba panggil dua kode tersebut pertama kode yang pertama kita menggunakan STR point di sini kita melakukan Instance object STR point gu ya 10,20 kemudian yang kita lakukan kita akan membuat sebuah objek baru yang namanya SP2 kemudian kita beri nilai SP kemudian nilai SP2 kita akan beri nilai 30 Berapa nilai SP khususnya untuk nilai x nanti kita lihat kemudian berikutnya kita membuat reference point dengan nilai yang sama kemudian kita juga memindahkan ke objek yang ber beda Rp2 = Rp kemudian kita beri nilai yang sama Berapakah nilai x Nah kita lihat ya kita coba jalankan kodenya saya akan Panggil eh hello dtt teman-teman bisa melihat walaupun kita ubah nilai sp2x = 30 ya nilai SP di sini tetap 10,20 karena strck point ini sifatnya value karena value terjadinya value pemberikan nilai SP2 sama dengan SP itu tidak berpengaruh karena baik SP2 dan SP memiliki salinannya masing-masing sehingga posisinya 10,20 ya Oke sekarang kita lihat yang kedua basisnya reference point reference point 1020 10 y-nya 20 kemudian kita beri nilai Rp2 = Rp Rp2 nilai x-nya 30 rpx-nya nilainya berapa ternyata Rp X ini walaupun Rp ini dinilai 10 karena terjadi mekanisme referensi Rp2 = Rp maka rp2x mengikuti nilai dari Rp1 sehingga nilainya 30 nah untuk memperjelas saya coba ilustrasikan ya jadi saya punya SP kemudian STR po itu memiliki nilai 10 20 maka teman-teman bisa lihat di sini adalah value 10 20 kemudian SP2 = SP yang yang terjadi adalah 1020 ini disalin jadi akhirnya punya dua salinan walaupun SP = SP2 karena ini strak maka disalin sehingga begitu ditanya sp2-nya dinilai 30 tapi yang ditanyakan adalah SP1 nilai x Maka hasilnya 10 beda dengan Rp begitu kita punya dua reference point reference point 10 20 kemudian Rp2 = Rp maka yang terjadi adalah seperti ini nah mereferensikan jadi enggak punya salinan masing-masing sehingga begitu Rp2 diset x-nya nilai 30 maka Rp1 nilainya akan memiliki 30 semoga jelas ya perbedaan value dan Nah itu dia STR versus walaupun strck ini menggunakan new yang artinya membuat suatu jalur dari stack ke Hip atau dari case ke ram seperti kita buat garis lurus tetapi perilakunya masih berbasis perilaku value sementara class basisnya reference seperti yang kita lihat di demo tadi Nah kalau kita bicara kelas kelas ini ada macam-macam teman-teman ada yang kita sebut dengan Instance class kelas yang wajib pakai new yang wajib di Instance ada juga Static class Static class ini kelas yang tidak punya nilai atribut objek jadi kelas ini tidak bisa diinstance Lalu ada juga abstrak clelas kelas yang bekerja sebagai template-nya kas jadi kas kalau kas itu template ini abstrak k ini templateennya template gitu ya seperti halnya kalau kita punya kelasnya adalah mobil SUV maka abstrak kasnya ini adalah mobil nah gitu ya kemudian ada juga sheld class k ini adalah yang tidak bisa di inheritance jadi kelas Instance class yang engak bisa diinheritance jadi engak bisa diturunkan abstraction secara konsep itu adalah selective ignorant jadi mengeliminasi hal-hal yang tidak penting ini sudah kita bahas di video atau di episode selanjut sebelumnya gitu ya konsep abstraction di kelas itu secara sederhana yang kita lakukan adalah berfokus pada hal-hal yang penting saja contohnya misalnya kita lihat di demo berikut oke di sini saya akan buat sebuah kelas abstrct class saya create Add dulu kemudian saya akan klik class kemudian saya akan beri classnya adalah point DCS Nah di sini alih-alih kita menggunakan eh class point saya akan buat menjadi public abstrct nah ini ya teman-teman ya public abstrct class point jadi ini adalah sebuah kelas abstrak ya kelas abstrak untuk eh Clas point di sini saya mengikuti kodenya kemudian saya akan memiliki sebuah meod yang namanya public e void measure ya seperti itu ya jadi saya membuat sebuah public void measure nah perbedaannya mulai kelihatan di sini kalau kita buat sebuah kelas semua implementasi kelas tersebut harus dilakukan tapi kalau kita membuat sebuah abstrak kelas kita bisa membuat sebuah metode yang implementasinya bisa dilakukan lain kali dengan cara menambahkan public abstract void measure sehingga begitu saya save dan kemudian saya membuat sebuah kelas di sini yang merupakan turunan dari abstrak kelas ya teman-teman bisa lihat maka teman-teman bisa melihat di sini ya teman-teman bisa melihat kodenya di sini bahwa kita wajib melakukan aktivitas yang disebut dengan override Nah gini jadi jadi ada satu komponen abstrak yaitu measure ya yang ada di sini yang measurnya ini belum didefinisikan makanya kita sebut dengan abstrak class begitu kita implementasikan di reference Point yang merupakan turunan dari poin baru kita aplikasikan dengan menambahkan override jadi itu kira-kira yang dimaksud dengan abstrak class dan konsep abstraction di sebuah kelas tujuannya tidak lain tidak bukan kita bisa meng-create list of of Method yang implementasinya dilakukan nanti jika dibutuhkan jadi itu ya konsep abstraction di kelas khususnya kelas abstrak kemudian kita bicara encapsulation kep encapsulation sudah kita lakukan berkali-kali dan kita sudah melihatnya secara sederhana kepation itu berfokus pada Bagaimana atau apa saja objek yang bisa diakses dan apa saja objek yang tidak bisa diakses dalam visualisasi ini sangat jelas kalau kita bisa membatasi Balance ini untuk tidak bisa diakses secara langsung jadi saldo yang ada di sini hanya bisa diakses melalui dua metod mengambil uang atau menaruh uang jadi tujuannya encapsulate adalah mengizinkan kontrol dan perubahan encapsulate ini macam-macam bisa encapsulate di level data method mengontrol akses Ya seperti public private dan sebagainya ya bisa eh objek data ya oke Static data dan Static method Ini contohnya kita mengkombinasi data danod jadi di sini teman-teman bisa melihat eh boundary dari sebuah encapsulation di sini dibatasi oleh sebuah meod withdraw dan deposit controlling access visibility misalnya kita bisa mengeset Balance ini private sehingga dia tidak bisa diakses kecuali menggunakan withdraw dan deposit w dan deposit pun bisa kita set statusnya dalam hal ini statusnya public sementara controlling data dan meod adalah kita menjamin bahwa data tersebut ya data tersebut tidak bisa diakses seenak teman-teman bayangkan kalau Balance ini bisa diakses seenaknya apa yang terjadi tanpa melakukan pengambilan atau penyetoran bisa kita set langsung nilainya dan itu tidak disarankan jadi teman-teman bisa melihat bahwa ada banyak fungsi untuk melakukan ee encapsul Diel Saya rasa kita sudah cukup paham sekarang kita masuk saya masuk ke Visual Studio dan kalau saya teman-teman perhatikan di reference di sini ya oke atau ya di reference di sini maka kita melihat banyak sekali nilai-nilai yang public ya pada saat kita mengubahnya menjadi e private maka terjadilah aspekapsulasi diu sain itu proseskapsulasia bisa dibantu dengan pendekatan jadi kita bisa membuat sebuah pendekatan properti di sini kita bisa buat sebuah properti ya untuk nilai ee X misalnya ya kemudian kita bisa membuat nilai untuk y misalnya maka nilai x dan nilai ini bisa diakses entah itu menggunakan membacanya atau mengesetnya dan kalau kita melakukan seperti ini maka yang terjadi adalah nilai x hanya bisa di baca saja dan nilai y hanya bisa diet saja Nah ya ini jadi sesuatu yang lebih menarik nih artinya saya bisa di atasnya read only yang di bawahnya bisa write only ya Jadi teman-teman bisa melihat pendekatan eh encapsulation yang cukup ternama itu menggunakan eh properties kita akan bahas properties di bagian selanjutnya jadi di tadi kita bicara enkapsulasi bagi bimana mengulasi dengan memberikan akses modifier berikutnya yang terakhir adalah inheritance kita sudah melakukan konsep inheritance sih tadi ya dengan cara melakukan proses penurunan ya konsep inheritance berakar dari satu konsep yang kita sebut dengan open close principle jadi lebih baik diinherit daripada modifikasi kode yang sudah ada ya hal ini untuk memudahkan kita melakukan proses backward compatibility jadi alh-alih membuat eh mengubah kode lebih baik membuat yang baru dengan menurunkan konsep inheritance itu berbeda dengan konsep Eh inheritance pada makhluk hidup inheritance di sini adalah relation yang mana modelnya semakin bawah itu semakin detail dan semakin atas itu semakin contohnyaent player akan lebihple dibanding Mus dia punyaalu ya jadi kep inhitghasilkan suatu Kel seperti ini ya Musician play musical instrumen string Musician play dan sebagainya ya Jadi kita tujuannya membuat kelas hierarki shap itu mendukung hanya single inheritance sementara siplpl mendukung multiple inheritance ada alasan yang spesifik Kenapa mendukung multiple dan single tapi kita tidak bahas itu ya secara sederhana C memilih single inheritance karena lebih sederhana ya dalam penerapannya dan menjamin kode tersebut e lebih mengikuti kaidah Open close principle dan inheritance tadi sudah kita demokan ya Sehingga teman-teman sudah jelas seharusnya jadi di video kali ini kita membahas tentang bagaimana SH programming apa saja komponennya kita sudah membahas tentang perbedaan kel dan STR dan kita mempelajari tiga konsep OB oried kep abstrak class encapsulation dengan konsep properties dan juga accsess modifier dan inheritance dengan konsep penurunan atau titik du berbasis satu kelas dengan kelas yang lain Demikian video kali ini jangan lupa ee ikuti interaktivitasnya di bagian latihan dan kuis dan semoga teman-teman dalam kondisi sehat Terima kasih