{"id":5765,"date":"2024-08-27T09:36:07","date_gmt":"2024-08-27T02:36:07","guid":{"rendered":"https:\/\/binus.ac.id\/bekasi\/?p=5765"},"modified":"2024-08-27T09:36:07","modified_gmt":"2024-08-27T02:36:07","slug":"apa-itu-solid-principles","status":"publish","type":"post","link":"https:\/\/binus.ac.id\/bekasi\/2024\/08\/apa-itu-solid-principles\/","title":{"rendered":"Apa itu SOLID Principles?"},"content":{"rendered":"<h1><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-5766 aligncenter\" src=\"http:\/\/binus.ac.id\/bekasi\/wp-content\/uploads\/2024\/08\/A2-640x183.png\" alt=\"\" width=\"640\" height=\"183\" srcset=\"https:\/\/binus.ac.id\/bekasi\/wp-content\/uploads\/2024\/08\/A2-640x183.png 640w, https:\/\/binus.ac.id\/bekasi\/wp-content\/uploads\/2024\/08\/A2-1200x344.png 1200w, https:\/\/binus.ac.id\/bekasi\/wp-content\/uploads\/2024\/08\/A2-480x137.png 480w, https:\/\/binus.ac.id\/bekasi\/wp-content\/uploads\/2024\/08\/A2-768x220.png 768w, https:\/\/binus.ac.id\/bekasi\/wp-content\/uploads\/2024\/08\/A2-1024x293.png 1024w, https:\/\/binus.ac.id\/bekasi\/wp-content\/uploads\/2024\/08\/A2.png 1379w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/h1>\n<p style=\"text-align: center\">Figure 1. SOLID Principles (sumber: https:\/\/www.thoughtworks.com\/)<\/p>\n<p>Dalam publikasi tahun 2000an berjudul &#8220;Design Principle and Design Pattern&#8221;, Robert C. Martin, yang juga dikenal sebagai Uncle Bob, memperkenalkan konsep SOLID Principles. Tujuan dari prinsip ini adalah untuk membantu <em>software engineer<\/em> bekerja dalam kelompok dengan lebih mudah, serta untuk menghasilkan kode yang dapat digunakan kembali, dipelihara, diskalakan, dan diuji. <em>Single-responsibility principle<\/em>, <em>Open-closed principle<\/em>, <em>Liskov substitution principle<\/em>, <em>Interface segregation principle<\/em> dan <em>Dependency Inversion Principle<\/em> dikenal sebagai SOLID. SOLID adalah fondasi umum untuk pemrograman berbasis objek (OOP).<\/p>\n<h3><span style=\"font-size: 12pt\">Single responsibility principle<\/span><\/h3>\n<p><em>\u201cResponsibilities should be limited to one per class.\u201d<\/em><\/p>\n<p><em>Single responsibility<\/em> artinya class <strong>wajib<\/strong> memiliki satu tanggung jawab, jadi setiap class tidak boleh memiliki lebih dari satu tugas. Misalnya, class checkout memiliki kemampuan untuk menghitung order, mengakses database, dan mencetak faktur, yang sangat bertentangan dengan prinsip ini.<\/p>\n<h3><span style=\"font-size: 12pt\">Open-closed principle<\/span><\/h3>\n<p><em>\u201cSoftware entities should be open for extension but closed for modification\u201d<\/em><\/p>\n<p>Menurut prinsip Open-Closed, entitas perangkat lunak seperti class, modul, dan fungsi harus dapat diperluas tanpa mengubah kode yang sudah ada. Ini berarti bahwa jika kita perlu menambahkan fitur atau perilaku baru ke perangkat lunak, kita harus dapat melakukannya dengan menambahkan kode baru daripada mengubah kode yang sudah ada. Hal ini penting untuk menghindari bug yang tidak terduga dan menjaga stabilitas kode yang sudah berfungsi dengan baik.<\/p>\n<h3><span style=\"font-size: 12pt\">Liskov Substitution Principle<\/span><\/h3>\n<p><em>\u201cObjects in a program should be replaceable with instances of their subtypes without altering the correctness of that program\u201d<\/em><\/p>\n<p>Menurut prinsip Liskov substitution, objek class dapat digantikan dengan objek subclass tanpa mempengaruhi program. Dengan kata lain, jika suatu class B adalah subclass dari class A, maka kita harus dapat menggunakan objek dari class B di mana pun kita menggunakan objek dari class A, dan program harus tetap berfungsi dengan benar.<\/p>\n<h3><span style=\"font-size: 12pt\">Interface Segregation Principle<\/span><\/h3>\n<p><em>\u201cClients should not be forced to depend on interfaces they do not use\u201d<\/em><\/p>\n<p>Dalam pembuatan <em>interface<\/em>, lebih baik membuat banyak <em>interface<\/em> dengan fungsi yang spesifik. Hal ini lebih baik daripada membuat satu <em>interface<\/em> dengan fungsi yang tidak spesifik. Pemisahan interface digunakan untuk mencegah klien menggunakan kode yang tidak diperlukan.<\/p>\n<p>Misalnya, jika kita memiliki <em>interface<\/em> untuk kendaraan yang memiliki metode seperti &#8220;StartEngine&#8221; dan &#8220;Fly&#8221;, sebaiknya metode ini dipisah jika tidak semua kendaraan bisa terbang. Sebuah mobil, misalnya, seharusnya tidak perlu meng-<em>implement<\/em> metode &#8220;Fly&#8221;.<\/p>\n<h3><span style=\"font-size: 12pt\">Dependency Inversion Principle<\/span><\/h3>\n<p><em>\u201cHigh-level modules should not depend on low-level modules. Both should depend on abstractions\u201d<\/em><\/p>\n<p>Class dengan kompleksitas yang lebih rendah tidak boleh bergantung pada class yang lebih tinggi kompleksitasnya. Kemudian, untuk komunikasi antar kelas harus melalui abstraksinya, atau interface. Tujuan dari prinsip ini adalah untuk mengurangi ketergantungan antara berbagai bagian sistem, sehingga perubahan pada satu bagian tidak secara langsung memengaruhi bagian lainnya.<\/p>\n<p>&nbsp;<\/p>\n<h3><span style=\"font-size: 10pt\">Referensi<\/span><\/h3>\n<p><span style=\"font-size: 10pt\"><a href=\"https:\/\/medium.com\/tlabcircle\/prinsip-pemrograman-solid-b63c47ca7f4a\">Prinsip Pemrograman SOLID &#8211; by Asdita Prasetya | TLabCircle (medium.com)<\/a><\/span><\/p>\n<p><span style=\"font-size: 10pt\"><a href=\"https:\/\/medium.com\/javarevisited\/what-are-the-solid-principles-in-software-engineering-776e29a6c5e5\">What are the SOLID Principles in Software Engineering | by Sergio S\u00e1nchez | Javarevisited | Medium<\/a><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Figure 1. SOLID Principles (sumber: https:\/\/www.thoughtworks.com\/) Dalam publikasi tahun 2000an berjudul &#8220;Design Principle and Design Pattern&#8221;, Robert C. Martin, yang juga dikenal sebagai Uncle Bob, memperkenalkan konsep SOLID Principles. Tujuan dari prinsip ini adalah untuk membantu software engineer bekerja dalam kelompok dengan lebih mudah, serta untuk menghasilkan kode yang dapat digunakan kembali, dipelihara, diskalakan, dan [&hellip;]<\/p>\n","protected":false},"author":19,"featured_media":5766,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[345],"tags":[],"class_list":["post-5765","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-computer-science-software-engineering"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v14.4.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Apa itu SOLID Principles? - BINUS @Bekasi - Kampus Beken Asyik | Business Service and Technology<\/title>\n<meta name=\"robots\" content=\"index, follow\" \/>\n<meta name=\"googlebot\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta name=\"bingbot\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/binus.ac.id\/bekasi\/2024\/08\/apa-itu-solid-principles\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Apa itu SOLID Principles? - BINUS @Bekasi - Kampus Beken Asyik | Business Service and Technology\" \/>\n<meta property=\"og:description\" content=\"Figure 1. SOLID Principles (sumber: https:\/\/www.thoughtworks.com\/) Dalam publikasi tahun 2000an berjudul &#8220;Design Principle and Design Pattern&#8221;, Robert C. Martin, yang juga dikenal sebagai Uncle Bob, memperkenalkan konsep SOLID Principles. Tujuan dari prinsip ini adalah untuk membantu software engineer bekerja dalam kelompok dengan lebih mudah, serta untuk menghasilkan kode yang dapat digunakan kembali, dipelihara, diskalakan, dan [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/binus.ac.id\/bekasi\/2024\/08\/apa-itu-solid-principles\/\" \/>\n<meta property=\"og:site_name\" content=\"BINUS @Bekasi - Kampus Beken Asyik | Business Service and Technology\" \/>\n<meta property=\"article:published_time\" content=\"2024-08-27T02:36:07+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/binus.ac.id\/bekasi\/wp-content\/uploads\/2024\/08\/A2.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1379\" \/>\n\t<meta property=\"og:image:height\" content=\"395\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/binus.ac.id\/bekasi\/#website\",\"url\":\"https:\/\/binus.ac.id\/bekasi\/\",\"name\":\"BINUS @Bekasi - Kampus Beken Asyik | Business Service and Technology\",\"description\":\"Binus kampus komunitas kreatif Bekasi dengan visi membangun universitas yang berkelas dunia di tahun 2020 mendatang, sebagai langkah menuju visi tersebut, BINA NUSANTARA kampus komunitas kreatif mengambil suatu langkah mantap untuk membuka jaringan pendidikan di Kota Bekasi.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/binus.ac.id\/bekasi\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/binus.ac.id\/bekasi\/2024\/08\/apa-itu-solid-principles\/#primaryimage\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/binus.ac.id\/bekasi\/wp-content\/uploads\/2024\/08\/A2.png\",\"width\":1379,\"height\":395},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/binus.ac.id\/bekasi\/2024\/08\/apa-itu-solid-principles\/#webpage\",\"url\":\"https:\/\/binus.ac.id\/bekasi\/2024\/08\/apa-itu-solid-principles\/\",\"name\":\"Apa itu SOLID Principles? - BINUS @Bekasi - Kampus Beken Asyik | Business Service and Technology\",\"isPartOf\":{\"@id\":\"https:\/\/binus.ac.id\/bekasi\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/binus.ac.id\/bekasi\/2024\/08\/apa-itu-solid-principles\/#primaryimage\"},\"datePublished\":\"2024-08-27T02:36:07+00:00\",\"dateModified\":\"2024-08-27T02:36:07+00:00\",\"author\":{\"@id\":\"https:\/\/binus.ac.id\/bekasi\/#\/schema\/person\/0093f9a535f53c255093cb9273f60a88\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/binus.ac.id\/bekasi\/2024\/08\/apa-itu-solid-principles\/\"]}]},{\"@type\":[\"Person\"],\"@id\":\"https:\/\/binus.ac.id\/bekasi\/#\/schema\/person\/0093f9a535f53c255093cb9273f60a88\",\"name\":\"editorarticle\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/binus.ac.id\/bekasi\/#personlogo\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/cd7fa27148001ad24ed966c031d91645eee771a6f7fe3b565b46a75ad24f4df6?s=96&d=mm&r=g\",\"caption\":\"editorarticle\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","_links":{"self":[{"href":"https:\/\/binus.ac.id\/bekasi\/wp-json\/wp\/v2\/posts\/5765","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/binus.ac.id\/bekasi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/binus.ac.id\/bekasi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/binus.ac.id\/bekasi\/wp-json\/wp\/v2\/users\/19"}],"replies":[{"embeddable":true,"href":"https:\/\/binus.ac.id\/bekasi\/wp-json\/wp\/v2\/comments?post=5765"}],"version-history":[{"count":1,"href":"https:\/\/binus.ac.id\/bekasi\/wp-json\/wp\/v2\/posts\/5765\/revisions"}],"predecessor-version":[{"id":5767,"href":"https:\/\/binus.ac.id\/bekasi\/wp-json\/wp\/v2\/posts\/5765\/revisions\/5767"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/binus.ac.id\/bekasi\/wp-json\/wp\/v2\/media\/5766"}],"wp:attachment":[{"href":"https:\/\/binus.ac.id\/bekasi\/wp-json\/wp\/v2\/media?parent=5765"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/binus.ac.id\/bekasi\/wp-json\/wp\/v2\/categories?post=5765"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/binus.ac.id\/bekasi\/wp-json\/wp\/v2\/tags?post=5765"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}