Mengapa Kita Mendefinisikan Class dalam Object Oriented Programming? | OOP

Sdílet
Vložit
  • čas přidán 13. 09. 2024

Komentáře • 19

  • @tarunawahyudi4625
    @tarunawahyudi4625 Před 17 dny

    sangat masuk akal, relate banget pak :D
    hanya opini saya aja, kalo ternyata bahasa pemrograman yang dipilih juga sangat berpengaruh.
    ingat ya ini hanya pengalaman pribadi, boleh sepakat boleh tidak hehe.
    5 tahun pakai PHP dan JS untuk membuat banyak project tapi masih belum paham apa itu OOP.
    Yap, karena bahasa-bahasa tersebut tidak strict untuk urusan paradigma. Bahkan kita sudah bisa buat aplikasi super canggih hanya dengan gaya prosedural. Framework-framework nya pun sangat memanjakan para pengguna nya. Banyak class-class yang telah disediakan, bahkan sampai ada fitur generator untuk membuat class (Artisan di laravel misal nya) sehingga untuk bisa membuat aplikasi yang keren, tanpa pemahaman OOP pun bisa dilakukan.
    hmm bukan salah framework nya sih, emang tujuan framework kan untuk memudahkan para developer nya.
    Namun dibahasa yang strict akan OOP seperti di Java, mau tidak mau, suka tidak suka, kita dituntut wajib memahami OOP. Bagaimana dengan framework nya seperti spring? walaupun banyak fitur magic yang serba instant, tetep kita dituntut memahami OOP.
    So ya, setelah 5 tahun ngga paham OOP, setelah pindah ke Java rasa nya justru merepotkan membuat aplikasi tanpa class :)
    Dan saat ini saya sudah berada pada fase dimana membuat aplikasi bukan hanya sekedar jadi, tapi juga mudah untuk dimaintain, dibaca dan dipelajari.

    • @belajaridn
      @belajaridn  Před 17 dny

      Terima kasih sudah berbagi insight di sini. Saya juga yang termasuk banyak belajar seputar OOP sewaktu menggunakan Java, dan Java adalah bahasa pemrograman yang selalu saya rekomendasikan untuk serius belajar OOP 😊☕
      Dan saya juga sangat sependapat bahwa menulis kode program itu bukan sekadar jalan dan solve current problem tapi juga harus maintainable dan bisa dengan mudah mengakomodir future requrements/problems 💪😊

    • @tarunawahyudi4625
      @tarunawahyudi4625 Před 17 dny

      @@belajaridn bukan berarti bahasa lain under juga ya sama oop nya. Contoh nya sekarang PHP versi 8 ke atas udah sangat bagus ko buat belajar OOP. Di javascript modern juga syntatic sugar untuk OOP udah mulai lengkap, atau kalo kurang lengkap bisa geser sedikit ke typescript.
      Tapi ya sekali lgi saya bilang, bahasa2 di atas ngasih kelonggaran buat para pengguna nya. Sehingga orang yang baru belajar akan berfikir “udahlah, tanpa oop juga masih bisa buat aplikasi”
      di java, Bahkan cuma sekedar bikin hello world aja mesti ada class 🤣 Kita seolah olah dipecut untuk dipaksa memahami OOP. Makanya banyak yg ga sedikit orang putus asa ketika belajar pemrograman dasar, karena langsung ketemu nya Java 😂
      saya sendiri termasuk orang yg nyerah. dan mulai belajar lgi semenjak tau ada bahasa lain yg lebih manusiawi kaya PHP wkwk
      ya kalo kata orang dulu sih, sepait pait nya obat, pasti sangat bermanfaat.
      Setuju bgt sih sama yg divideo ini, belajar OOP itu ga instant. Mesti punya jam terbang ✈️

  • @jokoadianto239
    @jokoadianto239 Před 7 dny

    Mas2 dan mbak2 pprogrammer dan para pengajar - BACALAH POLA TINGKAH LAKU, STRUKTURAL, DAN PEMBUATAN OBJEK.dalam design pattern. Sebaiknya strategi pembelajaran dan pmrograman berorientasi objek berputar di sekitar pola2 tersebut.

  • @moh.yusrilmaqoshidana9679

    Seperti biasa penjelasannya sangat mudah dipahami, lanjutkan terus pak.

    • @belajaridn
      @belajaridn  Před 18 dny

      Semoga bisa bermanfaat ya. Materi selanjutnya akan membahas 4 pilars dalam OOP.

  • @adaf22karina
    @adaf22karina Před 19 dny +1

    Terima kasih insight nya pak

    • @belajaridn
      @belajaridn  Před 19 dny

      Sama-sama, semoga bisa bermanfaat ya 😊🙏

  • @allofabout7064
    @allofabout7064 Před 18 dny

    cukup jelas, namun akan lebih baik jika di ilustrasikan dalam diagram atau divisualkan apa itu OOP yang di dalamnya ada variable, function kemudian menjadi class, dan menjadi sempurna saat diimplementasikan ke bahasa pemrogramanya.
    anyway saya ucapkan terima kasih atas penjelasannya

    • @belajaridn
      @belajaridn  Před 18 dny +1

      Untuk ilustrasi terkait class dan object sudah disampaikan di video sebelumnya 😊🙏
      Pengenalan Class dan Object: czcams.com/video/_Ld8wMr4OZ4/video.html
      4 pilars dalam OOP: czcams.com/video/ULnPfJCHcEk/video.html

  • @chandragunawan4105
    @chandragunawan4105 Před 17 dny

    saya sebagai mahasiswa akhir teknik informatika yang mendalami paradigma data oriented design (DOD) sebagai topik skripsi punya pandangan berbeda mengenai OOP. OOP sebenarnya hanyalah salah satu pendekatan dalam menyelesaikan sebuah masalah pemrograman. OOP yang mana mengedepankan abstraksi dan inheritence (turunan) menyebabkan kompleksitas yang tidak diperlukan.
    contohnya dalam kasus membuat pembuatan Kursi dan Meja. Dalam OOP, pendekatannya adalah pembuatan kelas abstrak dari Kursi dan Meja. Lalu untuk membuat Kursi atau Meja yang lebih spesifik seperti KursiKayu atau MejaMakan tentunya tinggal mewarisi dari abstrak kelas tadi (inheritence). Namun, akan sulit nantinya jika kita ingin membuat KursiKuliah yang kursi tersebut memiliki meja. Dari sini pendekatan OOP menjadi ambigu. Apakah KursiKuliah merupakan turunan dari Kursi atau Meja atau keduanya ?
    Lalu untuk kasus pembuatan game yang sering terjadi perubahan desain, tentunya hal ini menjadi makin sulit OOP memperlambat iterasi. Karena jika ingin menambahkan sesuatu yang baru pada abstrak class, maka semua turunannya juga akan terpengaruh. Hal ini menyebabkan codebase menjadi tidak modular. Selain itu OOP juga memberikan efek pada performance, karena inheritance dan abstraksi itu bukan black magic (butuh banyak compute power).
    Solusinya adalah dengan menggunakan DOP. DOD memisahkan data dengan implementasi, sehingga programmer dapat dengan mudah memanipulasi implementasi dan dapat dengan mudah mengetahui state dari data yang diproses. Kemudian DOD juga cukup membantu dalam performance karena tidak berlayer-layer seperti OOP (dan salah satunya menghindari cache miss).
    jadi, take away dari penjelasan diatas adalah OOP itu bukan satu-satunya cara menulis dan mengorganisir kode. dalam dunia software engineer, semuanya adalah trade, programmer perlu paham apa yang ingin dia tuju dan solusi terbaiknya apa. dann, software tetap bisa dibangun hanya dengan metode/fungsi dan structs, tanpa fitur yang OOP sediakan. (atau simple-nya the good old way C does).
    NB: ini hanya sekedar tambahan POV tentang pemrograman itu sendiri (agak OOT sebenarnya haha). mungkin yang baca bisa terbuka pengetahuannya tentang pemrograman dan (hopefully) paham bahwa at the end of the day, tugas programmer hanyalah solving problems :D

    • @belajaridn
      @belajaridn  Před 17 dny

      Terima kasih sudah berbagi POV 🙂🙏

  • @penyepongNASA
    @penyepongNASA Před 19 dny

    halo pak budiiiiii

  • @ramabookstroremalang9131

    Kalau terbiasa baca buku logika tradisional yang di dalamnya mencakup jenus, spesies, pembeda, maka OOP cocok untuk dirinya. Setiap objek adalah individualisasi dari class.
    Akan tetapi saya bersyukur bisa Node js (functional) dan Java.

    • @belajaridn
      @belajaridn  Před 19 dny

      Wah saya malah baru tahu kalau Node js itu termasuk functional programming.

    • @ramabookstroremalang9131
      @ramabookstroremalang9131 Před 19 dny

      ​@@belajaridn Ya, memang ini kesimpulan dangkal saya. wkwkwk
      Banyak yang kerap membandingkan node js sebagai representasi fp (padahal ia runtime env) dengan bahasa-bahasa yang merepresentasikan OOP.

  • @Empaty78
    @Empaty78 Před 19 dny

    Justru mlh bingung kalo pake bahasa fungsional daripada Bahasa oop

    • @belajaridn
      @belajaridn  Před 19 dny

      Yup yup, dan juga OOP memang lebih widely accepted sih ketimbang functional. CMIIW 😊🙏