Ruby Method gsub yang Mungkin Belum Diketahui

Karena sudah berkomitmen untuk mendalami Ruby, saya berapi-api mencari resource yang bisa meningkatkan skill saya untuk menjadi Rubyist yang jauh lebih baik, syukur-syukur sampai tahap dewa.

Dalam secuil proses mencari itu saya nemu informasi yang melengkapi apa yang sudah saya tahu sebelumnya. Ternyata yang saya tahu tentang method gsub itu baru sedikit. Ga nyangka kalau method ini bisa bertingkah seperti itu.

Setahu saya, gsub hanya sebatas digunakan untuk mengganti kata atau kalimat atau bahkan pola dengan sesuatu yang sudah kita tentukan. Misalnya seperti ini.

Dengan pengetahuan ini, secara alami jika kita mempunyai teks seperti ini

dan ingin mengganti nama hari yang tertulis dalam bahasa Inggris menjadi bahasa Indonesia dengan bantuan hash sebagai berikut

yang terpikirkan oleh kita adalah dengan menggunakan sebuah perulangan. Iya atau tidak?

Secara default kita akan langsung mikir untuk menggunakan perulangan. Implementasinya adalah seperti ini.

Hasilnya tentu saja seperti yang kita inginkan. Akan tetapi, adakah cara lain yang bisa digunakan selain perulangan namun masih tetap menggunakan gsub ?

Kalau kamu berpikir mustahil berarti tulisan ini memang cocok untukmu, jodoh nih 😉

Masalah utama yang sepertinya dialami oleh pemula seperti saya tentang method gsub adalah, mengira parameter-parameter yang diterima adalah string. Padahal, pola regex juga bisa.

Dengan regex, method gsub akan menangkap semua pola yang diberikan tanpa harus menggunakan perulangan. Contoh sederhananya adalah begini.

Kode di atas mencari susunan karakter yang memenuhi pola untuk diganti dengan susunan karakter itu sendiri ditambahi 3 x di belakangnya. Pola regex yang dicari dari contoh ini adalah karakter-karakter yang membentuk sebuah kata. Oleh karena itu, setiap akhir kata menjadi diimbuhi 3 huruf x.

Sekarang bagimana untuk kasus kita tadi?

Bimsalabim jadi apa prok prok prok.

| di regex digunakan untuk menyatakan atau.

Ternyata selain bisa string dan regex, khusus untuk parameter kedua, bisa juga berupa hash. Jika parameter kedua berupa hash maka setiap pola yang cocok akan diganti dengan nilai dari hash yang memiliki kunci pola yang cocok tersebut.

Cool kan? 😉

Belajar hal-hal dasar yang keren seperti ini justru membuat saya senang karena gimana mau jadi dewa kalau yang dasar seperti ini saja terlewatkan hehehe.

Pasti nanti sepanjang saya belajar akan nemu ilmu yang aneh-aneh lagi dan tentunya akan selalu saya sharing.

Happy hacking!

Facebook Comments
 

Agung Setiawan

Agung Setiawan adalah software engineer di BukaLapak.com, penulis sekaligus pecinta sastra, dan pembaca buku

 
Halo, perkenalkan saya Agung Setiawan.
Saya Software Engineer di BukaLapak.
Simak pemikian saya soal dunia Software Engineering via Twitter di @agungsetiawanmu dan facebook
Blog ini saya update seminggu sekali jadi sering-sering saja mampir
Mau belajar Vim bareng saya?
Belajar ngoding dari nol menggunakan PHP

Leave a Reply

Your email address will not be published. Required fields are marked *