Menulis Kode Dengan Efektif Menggunakan Konsep ‘Idiomatic’

Ramdhanii Ram
BISA.AI
Published in
5 min readJan 20, 2021
Photo by ThisisEngineering RAEng on Unsplash

Pendahuluan

Di awal mula tahun 2021 ini, untuk kembali meramaikan Medium BISA AI, saya dan tim BISA AI berkesempatan untuk memulai sebuah series tulisan baru seputar mengunjungi kembali (revisit) webinar, workshop dan kegiatan online BISA AI. Tulisan-tulisan di dalam series ini bisa berbentuk rekap, penjelasan tambahan, hal unik yang berkaitan dengan webinar, dan bentuk tulisan lain yang kami harap dapat menarik dan membantu kalian belajar dalam hal apapun. Simak tulisan revisit webinar perdana ini yang bersumber dari ‘Roundtable #12 — Writing an Idiomatic Python Code

Menulis Kode Dengan Efektif

Menjadi programmer adalah salah satu pekerjaan yang membutuhkan ketelitian, imajinasi dan keinginan yang kuat. Bahasa pemrograman dengan segala framework, library, atau sintaksnya akan bekerja sesuai dengan apa yang programmer tulis. Mirip seperti kutipan di bawah yang disampaikan oleh Joshua Bloch, mantan pegawai di Google dan Sun Microsystems.

The cleaner and nicer the program, the faster it’s going to run. And if it doesn’t, it’ll be easy to make it fast.

Menulis kode dengan efektif dan rapih pun menjadi salah satu ciri programmer yang profesional dan bertanggung jawab. Kebiasaan ini harus dilakukan sejak sedini mungkin untuk menghindari efek domino buruk di kemudian hari.

Photo by Marco Lermer on Unsplash

Konsep Idiomatic Programming

Ada dua jenis programmer yang dapat dibedakan berdasarkan isi kodingannya. Yang pertama, programmer ‘yang penting jalan’, dengan kata lain tidak memikirkan sintaks, panduan dan framework yang ada. Kemudian ada programmer ‘handal’, yang saat kodingannya dilihat programmer lain akan mudah dimengerti dan terlihat indah.

Idiomatic Programming sendiri dapat diartikan sebagai cara menulis kode sebagaimana mestinya kode tersebut ditulis. Di jenis programmer kedua lah konsep ‘idiomatic programming’ bekerja.

Saat suatu logika atau ekspresi ditulis berdasarkan cara yang berbeda, misalkan berdasarkan logika bahasa lain, maka biasanya kode yang dihasilkan akan sulit dibaca atau dimengerti.

Namun konsep Idiomatic Programming ini tentu bukan hal mutlak yang harus dikuasai semua programmer, tapi pasti kode yang rapih dan mudah dimengerti disukai semua programmer.

Photo by Kelly Sikkema on Unsplash

Idiomatic Python / Pythonic

Python sendiri menurut banyak orang termasuk ke bahasa pemrograman yang mudah dibaca dan dimengerti, namun lebih jauh lagi penulisan bahasa Python dapat ditingkatkan menggunakan konsep Idiomatic, atau Pythonic.

Salah satu ‘dasar’ dari konsep Pythonic adalah sebuah kumpulan kata-kata mutiara atau filosofi yang bernama ‘The Zen of Python’, yang dapat diakses langsung dengan menuliskan:

import this

Setelah dieksekusi maka akan menampilkan tulisan sebagai berikut:

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren’t special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one — and preferably only one — obvious way to do it.
Although that way may not be obvious at first unless you’re Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it’s a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea — let’s do more of those!

Setiap baris pada filosofi di atas mempunyai arti tersendiri yang dapat mempengaruhi bagaimana seorang programmer membuat kode. Namun sekarang bukan waktu yang tepat untuk membahas hal tersebut, kita langsung lompat saja ke bagian contoh kode Pythonic.

Contoh Kode Pythonic

Semua contoh diambil dari video Roundtable #14, dan akan menampilkan dua contoh kode: kode konvesional dan kode Pythonic sebagai perbandingan.

  1. Menukar Nilai Antar Variabel
Cara Konvesional

Saat kita ingin menukar nilai antar dua variabel, selalu ada variabel ketiga sebagai variabel penampung sementara (var_tmp). Dilihat dari outputnya memang berhasil, tapi Python mempunyai cara tersendiri yang lebih singkat dan mudah dimengerti.

Cara Pythonic

Dari kode di atas, tidak diperlukan lagi variabel ketiga , namun sebagai gantinya, posisi variabel cukup ditukar yang tulis pada baris kode:

var_a, var_b = var_b, var_a

Kemudian metode ini pun dapat dilakukan untuk menukar nilai antara lebih dari dua variabel:

Cara Pythonic Menukar Nilai Antar Empat Variabel

2. Values Packing

Cara Konvesional

Values Packing bertujuan untuk membungkus banyak nilai ke suatu tipe koleksi data seperti Array. Pada contoh di atas, tiga nilai (a, b, dan c) dan satu array kosong (p) dideklarasikan terlebih dahulu hingga akhirnya array diisi satu persatu lewat baris kode:

p[0] = a
p[1] = b
p[2] = c

Yang menghasilkan p = [10, 20, 30], walaupun sudah terlihat cukup simpel, kode ini dapat dipersingkat lagi.

Cara Pythonic

Menggunakan cara Pythonic, variabel x, y, dan z cukup dideklarasikan pada satu baris. Kemudian array p langsung dibuat dan menampung nilai variabel x, y dan z tadi.

3. Values Unpacking

Cara Konvesional

Kebalikan dari masalah sebelumnya, Values Unpacking berarti mengeluarkan nilai dari suatu tipe koleksi data. Pada contoh di atas, array p sudah berisi tiga nilai yaitu: 10, 20, dan 30. Kemudian metode yang digunakan adalah dengan mendeklarasikan tiga variabel baru (x, y, z)yang berisi nilai dari masing-masing indeks array.

Cara Pythonic

Pada cara Pythonic, variabel x, y dan z langsung dideklarasikan bahwa setiap nilai indeks array p akan terdistribusi pada ketiga variabel tersebut.

Selain dari ketiga contoh di atas masih banyak lagi metode-metode Pythonic yang dapat dilakukan untuk menyelesaikan berbagai masalah, seperti:

  • Filtering
  • Mapping
  • Slicing
  • Formatting
  • Merging Dictionaries

Selengkapnya rekaman roundtable/webinar dapat dilihat langsung pada link berikut.

Jadi, apa sudah terbayang bagaimana kode ‘idiomatic’ itu bekerja? Untuk idiomatic bahasa pemrograman lain, semoga dapat BISA AI bahas dilain waktu, maka dari itu pantau terus sosial media kita!

--

--

Ramdhanii Ram
BISA.AI
Writer for

Work stuffs & making sense interesting thoughts from my brain.