Belajar Method Chaining dan Implementasinya dalam PHP

Belajar Method Chaining dan Implementasinya dalam PHP

Create: SaldiSaldi | Kamis, 30 Maret 2017 | 17:31:23 WITA | dibaca: 414

https://static.cdn-cdpl.com/source/5/oop-image(700x350-crop).jpg 

Method chaining merupakan salah satu konsep yang ada dalam paradigma OOP untuk mengikat / merantai method. Disini kita dapat memanggil lebih dari satu method untuk satu kali operasi dengan mengolah object yang sama. Setiap method tersebut berperan mengubah nilai property dalam object tersebut dari satu bentuk ke bentuk lainnya. Oleh karena itu method tersebut sering disebut mutator. Konsep chaining ini sendiri sudah diimplementasikan dalam berbagai bahasa pemrograman yang mendukung OOP seperti Java, Python, Javascript, Ruby, dan PHP.

Manfaat dari penggunaan method chaining adalah membuat kode yang lebih enak dibaca. Coba perhatikan contoh kode berikut ini.

// Tanpa chaining

$object = new Class();

$object->method_satu();

$object->method_dua();

$object->method_tiga();

 

// Dengan chaining

$object = new Class();

$object->method_satu()->method_dua()->method_tiga();

Nah, alih-alih memanggil method di beberapa baris kode, kita dapat membuat rantai method dalam satu baris kode. Dengan demikian kode akan terlihat lebih pendek.

Praktek Method Chaining

Mari kita coba membuat method chaining sederhana dengan menggunakan PHP. Kita akan membuat sebuah kelas bernama "StringMutator" yang berfungsi memanipulasi string. Dalam kelas tersebut, terdapat tiga method yang fungsinya sudah tidak asing lagi di telinga kita.

1.     Bold, menebalkan kalimat

2.     Italic, membuat kalimat menjadi cetak miring

3.     Underscore, menambahkan garis bawah dalam kalimat

Struktur kodenya akan terlihat seperti ini :

class StringMutator {

    // Property untuk simpan nilai-nilai mutasi

    protected $word;

 

    public function __construct($word) {

        // Konstruktor

    }

 

    public function bold() {

       // Menebalkan kata

    }

 

    public function italic() {

       // Membuat cetak miring

    }

   

    public function underscore() {

       // Menambahkan garis bawah

    }

   

    public function get() {

       // Mengambil nilai mutasi akhir

    }

}

Bisa dilihat kita membutuhkan satu property bernama $word untuk menyimpan nilai mutasi. Di baris selanjutnya kita butuh sebuah magic method construct untuk mendefinisikan kata yang mau diolah ketika object diciptakan. Selanjutnya kita butuh 3 method (Bold, Italic, Underscore) untuk kemudian kita isi operasinya.

Oke, mari kita modifikasi kelas dan mengisi setiap method dengan operasi sebenarnya. Pada kelas ini kita akan menambahkan operasi bold, italic, dan underscore dengan cara memodifikasi string dengan menambahkan "html" saja, kurang lebih hasilnya seperti ini :

class StringMutator {

 

    protected $word;

 

    public function __construct($word)

    {

        $this->word = $word;

    }

 

    public function bold() {

        $this->word = '<b>' . $this->word . '</b>';

        return $this;

    }

 

    public function italic() {

        $this->word = '<i>' . $this->word . '</i>';

        return $this;

    }

   

    public function underscore() {

        $this->word = '<u>' . $this->word . '</u>';

        return $this;

    }

   

    public function get() {

        return $this->word;

    }

}

Perhatikan method bold, italic, dan underscore yang kita buat. Setiap operasinya hanya meng-override nilai $word dan menyisipkan karakter html. Inilah salah satu contoh mutasi nilai. Perhatikan juga akhir dari setiap method, ada kode return $this;. Kode tersebut berfungsi mengembalikan object untuk kemudian dioperasikan lagi pada method selanjutnya. Dan terakhir method get() yang berfungsi untuk mengembalikan nilai final.

Mari kita coba class tersebut, kita akan mengolah string ini "Saya Belajar Method Chaining". Penjelasannya juga saya tambahkan di bagian komentar :

...

$word = 'Saya Belajar Method Chaining';

 

// Membuat object dan mendefinisikan string yang akan diolah

$string_mutator = new StringMutator($word);

 

// Contoh 1

// Operasi bold

$result = $string_mutator->bold()->get();

echo $result;

 

echo '<hr/>';

 

// Contoh 2

// Operasi bold + italic

$result = $string_mutator->bold()->italic()->get();

echo $result;

echo '<hr/>';

 

// Contoh 3

// Operasi bold + italic + underscore

$result = $string_mutator->bold()->italic()->underscore()->get();

echo $result;


Nah, hasilnya akan tampil seperti berikut :

 Contoh 1 menghasilkan operasi bold saja, contoh 2 menghasilkan operasi bold ditambah italic, dan terakhir output contoh 3 mengasilkan semua operasi.

Demikian contoh sederhana dari penggunaan method chaining. Jika ada pertanyaan silahkan isi kolom komentar. Semoga bermanfaat!

 

 



9 KOMENTAR

fake yeezys | 29 Juli 2017 || 11:13:53
" I still liked this article, good, good content, and unique design.Thank you for sharing the article. "
custom essay writing service | 04 Agustus 2017 || 13:38:35
" The article you have shared here very awesome. I really like and appreciated your work. I read deeply your article, the points you have mentioned in this article are useful. "
True Skate Apk Full Unlocked | 04 Agustus 2017 || 18:46:53
" New how to get all True Skate Apk all Skateparks free no jailbreak required youtube. Download True Skate APK Android Cracked for Free, Find a lot of best paid android apps and games cracked for any Android tablet and smartphone.True Skate APK Patched Full Unlocked Infinite Money 1.4.15. "
write my essay | 08 Agustus 2017 || 13:34:09
" 've installed dns, and cpd servers i'm using windows 2003 server. I need help with the configuration when i entered the LOOKUP> cm i had a message saying (domain unknown), also the dns console did not work, always Waiting to be activated. " "
online apps | 08 Agustus 2017 || 16:03:18
" Get Upto 80% Off On Online Shopping in India.Find the top Shopping apps and games for Android devices.Build Android App online or make your own free Google Android App online. "
Happy room | 19 Agustus 2017 || 11:14:16
" Nice! I want you to thank for your time! I like your visit regularly... "
Top Engineering College | 30 Agustus 2017 || 18:08:52
" The idea is to focus on facts and try and define a baseline problem to share. "
kolam hias | 13 September 2017 || 10:27:10
" mantap gan "
Sai baba images | 18 September 2017 || 23:11:01
" https://lordimageswallpapers.com/shirdi-sai-baba-images.ht ml "



ISI KOMENTAR

NAMA

WEBSITE

KOMENTAR


Captcha Sepakbola
Apakah anda manusia?Lebih baik lagi kalau anda menyukai sepak bola
Sebutkan pemain sepak bola disamping:

Captcha Sepakbola by codingwear






  • PELATIHAN KAMPUS
  • Pelatihan Komputer (DIGITAL SCHOOL)
  • Study Tour GoTv
  • Penerimaan Calon Anggota Angkatan XX "Explore Experience With Us"
  • IT FUN