Tag: Essay

Gunakan Bahasa Pemrograman Pada Tempatnya

Gunakan Bahasa Pemrograman Pada Tempatnya

Mengutip perkataan “buanglah sampah pada tempatnya”, kita mestinya membuang memakai bahasa pemrograman pada tempat, konteks, dan waktu yang tepat!

Saat menulis program, kita inginnya cepat dan cepat. Cepat eksekusinya, dan cepat proses developingnya. Kita juga punya kecenderungan untuk memakai bahasa tertentu–bahkan untuk keperluan apapun. Misalnya saja Mas gondrong pencinta bahasa C, mau urusan embedded system pakai C, sorting string pada file pakai C, membuat aplikasi Android pakai C (tidak percaya? Bisa lho.), membuat kernel dengan C, membuat aplikasi server dengan C. Mas gondrong sangat memuja-muja C.

Sebetulnya tak ada yang terlalu salah dengan Mas gondrong, ia mengandalkan C untuk menyelesaikan segalanya. Namun, saat kita melihat ia bekerja membuat program sorter ia kesulitan mencari library yang mantap, meskipun ia tak kesulitan saat bekerja di embedded system, dan saat bekerja di lingkungan Android dia betul-betul kesulitan.

Mas gondrong tentu tidak akan kesulitan membuat aplikasi Android dengan Java, bahasa yang memang seharusnya digunakan. Dan mungkin akan lebih mudah mensorting list dengan Lisp atau men-setup server dengan Perl misalnya.

Ada baiknya kita dengar cerita dari Google, raksasa internet. Google akhir-akhir ini banyak mem-port modul-modul yang tadinya ditulis dengan python, menjadi C. Alasannya tentu saja peningkatan performa. Lantas mengapa Google tidak langsung saja pakai C ya?

Python adalah bahasa interpreted, dalam arti Python tidak perlu dikompilasi untuk dijalankan, tujuan pemakaian Python adalah proses developing yang lebih cepat daripada C (meskipun Python juga dapat dikompilasi dengan sengaja menjadi bytecode yang akhirnya memberikan waktu eksekusi yang sama cepatnya dengan C, python memang semakin membaik), developer Google tidak ingin meng-compile source code C ribuan kali. Akan lebih baik suatu program baru dikembangkan dengan Python, dan setelah nyaris sempurna source code tersebut di-port ke bahasa lain.

Mahasiswa jurusan sains pasti kenal dengan Matlab, software komputasi yang powerful. Matlab sering dipakai untuk menghitung matriks, pemodelan, atau visualisasi data. Pada dasarnya mereka bisa saja memakai C untuk melakukan hal yang sama. Tapi yang ingin saya tekankan adalah akan lebih mudah dengan tool yang tepat.

Nah, sekarang kita beralih ke web programming. Jika ingin membuat halaman web dinamis berisi konten yang sangat cepat diupdate, HTML adalah pilihan yang jelek, kita punya PHP untuk halaman yang lebih fleksibel dan dinamis.

Saya ingin menekankan bahasa yang tepat untuk pekerjaan tertentu, ini mungkin akan membuat kita belajar bahasa-bahasa baru. Bisa saja Anda tidak sepakat sepenuhnya dengan tulisan ini, tapi saya pibadi sih tidak masalah. 🙂

Sekali lagi, buanglah sampah pada tempatnya.

Transistor, FPGA, System on Chip. Apa itu ya?

Transistor merupakan komponen paling mendasar dari perangkat digital. Beberapa jenis transistor adalah BJT (Bipolar Junction Transistor) dan MOSFET (Metal-Oxide-Silicon Field Effect Transistor). Perbedaan dari kedua jenis transistor tersebut adalah BJT bekerja pada dua kutub, dalam arti beroperasi dengan membuat gate elektron atau gate hole, sedangkan MOSFET hanya satu kutub, sehingga ada jenis NMOS dan PMOS MOSFET.

Transistor dapat dibuat menjadi sangat kecil dan terintegrasi dalam satu chip, yang disebut dengan IC (integrated circuit), meskipun didalamnya IC tidak hanya mengemas transistor. IC mampu mengemas puluhan hingga puluhan juta transistor. IC merupakan istilah umum yang merujuk pada komponen yang memuat komponen lain secara terintegrasi. Terdapat dua jenis IC yaitu IC digital dan analog.

Pada ranah IC digital, muncul berbagai istilah baru, beberapa diantaranya ada ASIC, PLA, PAL, CPLD, FPGA, prosesor, mikrokontroller, DSP (Digital Signal Processor), dan SoC (System on Chip).

ASIC (Application-Specific IC) adalah IC yang dirancang khusus untuk melakukan pekerjaan tertentu, DSP Prosesor merupakan ASIC. ASIC dapat dirancang secara full-custom, menggunakan standar-cell, atau memakai gate-array yang lebih mudah dalam proses produksi. Rangkaian yang sudah dibuat pada ASIC bersifat permanen. Agar memudahkan proses design and test, maka dipergunakan ASIC yang dapat diprogram ulang (Programmable Logic Device). Ada berbagai jenis PLD yaitu PLA (Programmable Logic Array), PAL (Programmable Array Logic), CPLD (Complex PLD), dan FPGA (Field-Programmable Gate Array), keempat jenis ini berbeda pada sisi arsitektural saja.

Selain IC yang bersifat khusus, ada pula general-purpose IC yaitu yang dapat digunakan untuk melakukan berbagai tugas. Prosesor adalah general-purpose IC yang melakukan operasi aritmatika dasar, logika, kontrol, dan input/output pada sistem sesuai instruksi yang diberikan. Meskipun terdapat register, prosesor tidak memiliki bagian untuk menyimpan seluruh instruksi yang dijalankan, prosesor hanya mengambil instruksi tersebut sesuai dengan yang diterima dari memory eksternal (RAM atau Flash).

Dalam embedded system digunakan mikrocontroller. Mikrokontroller merupakan IC yang menyatukan fungsi prosesor, memory flash, RAM, dan periferal input/output yang dapat diprogram ulang. Hanya saja, mikrokontroller umumnya memiliki memori yang kecil sehingga hanya cocok melakukan perkerjaan yang tidak terlalu berat, dan memerlukan daya yang relatif kecil.

Dalam kebutuhan sistem yang memerlukan daya kecil namun memiliki kemampuan setara prosesor (seperti dalam smartphone saat ini), maka digunakan SoC (System on Chip). Mirip seperti mikrokontroller, SoC menyatukan fungsi-fungsi dasar sebuah komputer, namun tanpa disertai memori, sehingga memerlukan RAM eksternal. Pada kasus lain, SoC dapat memuat mikrokontroler, prosesor, DSP prosesor, dan memory.

 

Ditulis oleh Rosmianto Aji Saputro di Bandung.