Apa itu RegEx? Wikipedia mengatakannya sebagai berikut:

Ekspresi reguler, regex atau regexp (terkadang disebut ekspresi rasional), dalam ilmu komputer teoretis dan formal teori bahasa, rangkaian karakter yang menentukan pola pencarian. Biasanya pola ini kemudian digunakan oleh algoritma pencarian string untuk operasi “find” atau “find and replace” pada string, atau untuk validasi input.

Ketika saya pertama kali menemukan RegEx, saya diberitahu bahwa RegEx bukanlah keahlian yang “harus dimiliki” tetapi merupakan keahlian yang “bagus untuk dimiliki”. Ini sangat membantu dan efisien ketika Anda berurusan dengan string. Tampaknya ini benar: sering kali ketika satu baris kode dapat menyelesaikan sebuah prompt/masalah, tanpa RegEx, saya harus menulis baris ganda, tiga kali lipat, atau bahkan lebih untuk mencapai tujuan yang sama. Pemrogram yang baik memiliki reputasi yang baik sebagai pemrogram yang malas dan KERING. Saya ingin menjadi programmer yang baik, jadi saya menambahkan pembelajaran RegEx ke dalam daftar tugas saya dan menetapkan tenggat waktu untuk itu.

RegEx adalah hal yang mudah dipelajari dan diikuti, tidak ada kesulitan bagi saya. Saya mengikuti salah satu tutorial yang direkomendasikan oleh Fullstack selama Foundation. Pekerjaan mudah! Saya dapat menyelesaikan tutorialnya dalam waktu kurang dari sehari. Namun, tidak ada yang masuk ke dalam otakku. Saya masih belum tahu bagaimana menerapkan pola yang saya pelajari dalam menulis kode. Pola di RegEx sebenarnya cukup banyak, seperti banyak skill baru lainnya, jika tidak digunakan maka akan mudah terlupakan. Tidak ada kejutan dan permainan yang adil! Saya tidak bisa mengeluh apa pun tentang hal itu.

Kedua kalinya saya mempelajari RegEx adalah melalui FreeCodeCamp. FreeCodeCamp memiliki reputasi yang baik untuk kurikulum pengkodeannya yang kuat. Saya masih ingin belajar RegEx dan berharap suatu hari nanti saya bisa menjadi salah satu programmer keren di Codewars yang bisa menulis satu baris kode yang bagus untuk memecahkan masalah yang kompleks. Saya pikir saya akan mencobanya lagi hanya untuk berharap yang kedua kalinya akan tenggelam.

Kali ini saya menyebarkan pembelajarannya sedikit demi sedikit setiap hari sambil mempelajari Javascript tingkat lanjut. Sekali lagi, tantangan-tantangan tersebut sangat sederhana dan mudah dimengerti. Tapi entah kenapa mereka hanya “masuk ke satu telinga dan keluar dari telinga yang lain”. Selama waktu itu, saya mendengar beberapa suara lain: beberapa pemrogram mengeluh bahwa RegEx membuat pengkodean sulit dibaca, ditulis, dan dipelihara. Tiba-tiba saya merasa lega karena saya tidak mendapatkannya bahkan setelah percobaan kedua. Mungkin saya akan mengabaikan RegEx saja.

Saat saya belajar dan berlatih lebih banyak tentang pengkodean, saya menyadari bahwa saya salah dengan mengambil dua ekstrem: terlalu menyukainya atau mengabaikannya sama sekali. Cara yang lebih netral dalam memandang RegEx adalah: Ketika ada beberapa situasi di mana RexEx memberikan solusi yang efektif dan ringkas terhadap suatu masalah (tentu saja tidak terlalu sulit untuk dipahami), LAKUKANLAH! Di lain waktu, lebih baik menggunakan bagian kode yang mudah dibaca dan dipelihara.

Untungnya dengan pola pikir terbuka ini, saya menemukan cara yang lebih efisien untuk mempelajari RegEx: berlatihlah di Codewars dan bandingkan solusi saya sendiri dengan solusi lain dan bersikap skeptis terhadap solusi menggunakan RegEx. Jika saya (sebagai pemula di RegEx) menemukan solusi menggunakan RegEx mudah dimengerti, kemungkinan besar banyak programmer lain (junior atau senior) akan merasakan hal yang sama, sehingga menjadikannya kasus yang baik untuk menggunakan RegEx daripada bagian yang bertele-tele kode. Saya kemudian akan melihat dokumentasi dan mempelajari penggunaan pola RegEx tertentu. Dengan cara ini, apa yang saya pelajari dapat meresap secara alami.

TAKEAWAY saya adalah:

  • Dapatkan pemahaman tingkat tinggi tentang RegEx dan sintaksnya, tidak perlu mempelajari dan memahami setiap pola secara detail (ada begitu banyak pola sehingga Anda akan mudah tersesat)
  • Temukan beberapa masalah pengkodean yang terkait dengan string dan pahami bagaimana orang lain menggunakan RegEx untuk menyelesaikan masalah tersebut (saat melakukan ini, inilah saat yang tepat bagi Anda untuk menggali pola tertentu dan memahami cara menggunakannya dalam kode Anda)
  • Sekali lagi bersikap skeptis terhadap RegEx: gunakan bila diperlukan. Menurut saya saat ini penggunaan yang paling sering adalah membersihkan string dengan menggunakan ".replace". Jangan menghabiskan terlalu banyak waktu untuk mempelajari dan menulis beberapa kode menggunakan pola/penggunaan yang sangat canggih. Kemungkinan besar programmer lain tidak menghargainya sama sekali karena lebih sulit untuk dipahami dan lebih sulit untuk dipelihara.

Saya harap tips kecil ini dapat bermanfaat bagi orang lain yang berencana mempelajari RegEx.