Langsung ke konten utama

Postingan

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...

Service Tagging di Symfony

 Ketika kita bekerja dengan Service di Symfony, aplikasi kita akan mempunyai banyak Service / Object yang saling berkaitan. Kadang kita ingin mengelompokkan beberapa Service dengan behaviour / kegunaan tertentu menjadi satu kelompok. Untuk mengelompokkan Service, kita bisa menggunakan Tags. Ada banyak tags bawaan dari symfony yang bisa anda baca langsung di  https://symfony.com/doc/current/reference/dic_tags.html Membuat Tags Anggap saya akan membuat perbandingan jarak antar titik. Saya akan menggunakan 2 metode yang berbeda, yaitu menggunakan rumus haversine  (lihat di sini)  dan satu lagi menggunakan crawling ke google map. Untuk itu saya membuat 2 buah Class yang masing-masing digunakan untuk membuat formula perhitungan jarak yang akan implements ke Interface DistanceCalculatorInterface seperti potongan kode berikut: <?php // src/DistanceCalculator/DistanceCalculatorInterface.php namespace App\DistanceCalculator; /** * * @author programmer */ ...

PHP : menggabungkan PHP dan HTML

Melanjutkan seri tulisan mengenai PHP, kali ini saya lanjutkan untuk menggabungkan PHP dengan HTML. Ada dua cara menggabungkan HTML dan PHP yaitu PHP yang berada didalam HTML, dan HTML yang ada di dalam PHP. PHP di dalam HTML Cara pertama adalah php di dalam HTML. Seperti kode berikut. <html> <head><title>Latihan 1</title></head> <body> <p>Tanggal Hari ini : <?php echo date ( "d M Y" ) ?> </p> </body> </html> pada kode diatas merupakan kode html yang berisi kode php untuk menampilkan tanggal server yang ditandai dengan tag <?php dan ?>. HTML di dalam PHP Cara kedua adalah HTML di dalam PHP. Di dalam PHP, tag HTML diperlakukan sebagai string yang di apit dengan tanda petik dan bisa dilakukan berbagai fungsi untuk memanipulasi string seperti menyambung dll. Contoh kode seperti pada potongan kode berikut. <?php echo '<html>' ; echo '<head...

PHP : Array

Melanjutkan tulisan mengenai PHP, kali ini saya akan lanjutkan untuk membahas array di PHP. Seperti juga bahasa pemrograman yang lain, PHP juga mempunyai tipe data berupa array atau larik. Konsep Array mirip seperti lemari yang mempunyai beberapa ruang yang masing-masing mempunyai nomor / alamat / key untuk mengaksesnya. seperti pada gambar di atas, key dimulai dari 0 sampai ke n. Dan untuk mengaksesnya dengan menggunakan nomor tersebut. Membuat Array Untuk membuat array di php seperti pada contoh berikut. <?php $data = array (); $data = []; ?> atau bisa langsung dengan disertai data / isinya seperti berikut ini. <?php $nama = array ( "Nur Hidayat" , "Irfan Haris" , "Rian Tri" ); $nama = [ "Nur Hidayat" , "Irfan Haris" , "Rian Tri" ]; ?> Mengakses Array Untuk mengakses array, kita bisa memanggilnya beserta dengan key. seperti contoh berikut. <?php $nama = array ( ...