Langsung ke konten utama

Postingan

Menampilkan postingan dengan label SOLID

SOLID - Prinsip Desain Arsitektur Di Dalam Pemrograman Object Oriented (Dependency Inversion Principal)

Akhirnya kita sampai di bagian paling akhir dari seri tulisan SOLID Principal yaitu untuk huruf D.  Ketika kita bekerja menggunakan bahasa pemrograman berorientasi object, kita pasti akan menggunakan Class. Class tersebut pada akhirnya akan saling terkait /  ketergantungan satu dan yang lain untuk melakukan tugas tertentu.  Ketergantungan ini disebut dengan istilah  Dependency.  Dependency ini bisa terjadi antar Class di dalam satu  Code Base  yang sama, atau bahkan antar  Library.  Controhnya seperti potongan kode berikut. <?php namespace App\DependencyInversion; /** * Description of Engine * * @author programmer */ class Engine { private KeihinCarburator $carburator ; private NGKSpark $spark ; public function __construct (KeihinCarburator $carburator , NGKSpark $spark ) { $this -> carburator = $carburator ; $this -> spark = $spark ; } public funct...

SOLID - Prinsip Desain Arsitektur Di Dalam Pemrograman Object Oriented (Interface Segregation Principal)

 Clients should not be forced to depend upon interfaces that they do not use Definisi Interface Segregation      Sesuai dengan pengertian di atas, Interface segregation merupakan prinsip yang bertujuan untuk mencegah suatu interface / abstract class mempunyai banyak fungsi yang tidak saling terkait yang menyebabkan penggunaan class implementasi menjadi lebih kompleks.       Mirip seperti  konsep Single Responsibility , tujuan prinsip Interface Segregation bertujuan untuk mengurangi ketergantungan Class yang disebabkan oleh suatu class / interface yang mempunyai banyak fungsi yang tidak saling terkait, yang kemudian membaginya menjadi beberapa interface yang lebih kecil yang lebih independent.          Untuk lebih jelasnya, kita akan membahasnya melalui contoh. Contoh Pelanggaran Prinsip Interface Segregation           Anggap kita punya karyawan WorkerInterface, dimana interface tersebut mempun...

SOLID - Prinsip Desain Arsitektur Di Dalam Pemrograman Object Oriented (Liskov's Substitution Principal)

Liskov's Subtitution Principal Pada prinsip ketiga ini, berkaitan erat dengan prinsip kedua yaitu Open / CLose Principal, namun lebih fokus terhadap behaviour antara Parent Class dan Child Class. Let  Φ(x)  be a property provable about objects  x  of type  T . Then  Φ(y)  should be true for objects  y  of type  S  where  S  is a subtype of  T  bingung ? oke kira-kira simpelnya gini:  Object dari Parent Class bisa diganti dengan Object dari Child Class tanpa merusak aplikasi / membuat aplikasi berhenti (error) Jadi suatu object dari Parent Class atau turunannya, harus bisa dengan mudah diganti dengan Object / Instance dari Class Turunan tanpa mengganggu jalannya program. Kita bisa menerapkan konsep ini dengan menggunakan abstraksi / interface. Kalau masih bingung, mari kita belajar langsung dengan contoh. Contoh Kasus Bayangkan kita punya 1 soket lampu di teras rumah yang mati dan akan kita ganti dengan yang ...

SOLID - Prinsip Desain Arsitektur Di Dalam Pemrograman Object Oriented (Open / Close Principal)

 O - Open / Close  Bayangkan jika kita punya sepeda motor atau barang apapun yang sudah satu kesatuan yang ketika rusak sparepart nya tidak bisa diganti. Bayangkan jika ketika komponent nya rusak, kita harus langsung memperbaikinya di komponen tersebut tanpa bisa di ganti dengan komponen sejenis yang baru. Pasti akan sangat merepotkan bukan ?. Nah pada prinsipnya Open / Close ini untuk menghindari hal-hal yang demikian. Objects or entities should be open for extension but closed for modification. Prinsip Open / Close mengharuskan suatu Class / Komponen untuk bisa dimodifikasi logic / behaviour melalui Class turunan (Open) tanpa harus memodifikasi langsung pada kode di Class Utama (Close). Prinsip ini bertujuan agar kode yang kita buat bisa dengan mudah untuk di modifikasi logic / alur dalam melakukan sesuatu melalui Class turunan nya tanpa harus merubah kode yang ada di Class yang bersangkutan. Implementasi Bayangkan kita punya 1 buah blender, dimana blender ini bisa melakukan...

SOLID - Prinsip Desain Arsitektur Di Dalam Pemrograman Object Oriented (Single Responsibility)

Pendahuluan Ketika kita menulis program dengan menggunakan paradigma OOP / Object Oriented baik menggunakan Java, PHP ataupun yang lain, kita akan banyak berinteraksi dengan Class maupun Object. Dan tidak dapat dipungkiri bahwa interaksi antar Object tersebut akan memunculkan tantangan baru, yaitu kode akan susah dibaca, kode menjadi susah dikembangkan, dan ketika di kembangkan memunculkan BUG dan lain sebagainya. Oleh karena beberapa kendala tersebut, maka ada baiknya kita perlu mempelajari beberapa prinsip penulisan kode di dalam OOP yang dikenal dengan nama SOLID.  SOLID SOLID sendiri merupakan sebuah prinsip yang dikenalkan oleh RObert J Martin (Uncle Bob) di dalam paper yang diterbitkan pada tahun 2000 dengan tujuan untuk membuat kode yang lebih mudah dimengerti, dapat dibaca dan mudah dalam melakukan testing.  tonton di sini . SOLID sendiri merupakan singkatan / akronim dari beberapa prinsip, antara lain:  S - Single Responsibility O - Open / Close L - Liskov Substi...