Langsung ke konten utama

Postingan

Symfony 5 - Form

 Ketika membuat sistem menggunakan PHP, besar kemungkinan kita akan menggunakan form untuk menerima input. Namun menggunakan form akan sangat melelahkan karena kita akan menuliskan kode yang berulang-ulang seperti pembuatan input, validasi dll.Di Symfony kita disediakan component Form yang akan mempersingkat waktu kita dalam membangun sebuah sistem. Untuk menggunakan komponen form, kita bisa melakukan instalasi dengan menggunakan composer: composer require symfony/form tunggu beberapa saat sampai proses instalasi selesai. Penggunaan Form Kita punya sebuah entity Task yang kita anggap sebagai representasi dari tabel task seperti kode berikut: <?php namespace App\Entity; /** * Description of Task * * @author apple */ class Task { protected $task ; protected $dueDate ; public function getTask () : string { return $this -> task ; } public function setTask (string $task ) : void { $this -> task = $ta
Postingan terbaru

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 function start () : bool { $this -&g

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 mempunyai function work() dan sleep() dan juga eat() yang nantinya akan di implementasi oleh Class s

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 baru. Lampu yang kita gunakan sebelumnya adalah bohlam lampu pijar yang fun

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 3 pekerj