Pilih bahasa pemograman sesuai kebutuhan


Saat ini, hampir semua bidang keilmuan tidak luput dari komputasi. Bukan hanya bidang eksak saja, bahkan juga bidang sosial, psikology dan bahasa misalnya. Paling tidak, selama berhubungan dengan data observasi, dalam penarikan kesimpulan dan pengujian model statistik, tools statistik sudah hal yang tinggal digunakan dan semakin hari pilihan penyajian data semakin beragam. Sehingga sangat memudahkan dan membuka peluang yang lebih luas untuk menggali pengetahuan. Memang sudah jauh berbeda dari masa ilmu pengetahuan dulu yang kebanyakan produknya adalah konsep dan teori, era pengetahuan zaman sekarang menuntut hal yang lebih presisi. Hal ini tidak lain adalah akibat dari perkembangan komputerisasi yang cepat, dan penerapannya yang tidak kalah cepat di segala bidang.

Saya rasakan pribadi, adalah terdapt tiga hal utama yang begitu membantu pekerjaan dengan komputer: 1. Bahasa yg semakin ‘manusia’, 2. kapasitas memory penyimpanan dan kecepatan hitung komputer yang semakin besar dan cepat, 3. pilihan visualisasi data yang semakin beragam dan mudah.  Terkait point(1), saya  masih ingat bagaimana di kuliah “Komputasi Matematika” sekitar 1 dekade lalu, pertama kali dikenalkan dengan bahasa Pascal, bahasa mesin yang primitif. Sehingga untuk menyelesaikan Sistem Persamaan Linier (SPL) , kita harus menuliskan code yang cukup panjang dan juga harus lebih hati-hati untuk menghindari melakukan bug yg nantinya akan membuat bingung sendiri.

Bagi mahasiswa yang baru mengenal bahasa pemograman, tentu belum terbiasa mengenai bagaimana membuat kode dari konsep numerik yang sudah dipahami. Wajib bagi mahasiswa komputasi untuk memahami betul konsep dasar numerik, seperti opsimisasi dalam regresi linear, metode-metode umum yang digunakan untuk SPL, menghitung fungsi integral atau ODE secara numerik, walupun sudah banyak pakage library siap digunakan, namun dalam penggunaannya tentu saja kita harus tahu konsep kerjanya, agar cara kita menggunakan software-software tersebut akan lebih tepat sesuai kebutuhan. Untuk memulai belajar programming, saya merekomendasikan 2 bahasa pemograman berikut.

  1. Bahasa “C++” dengan program visualisasi berbasis commad-line “Gnuplot”. Compiler c++ sendiri tidak memiliki library untuk plotting/visualisasi data. Jadi umumnya, kita membuat output komputasi sedemikian rupa dari program yg kita buat dengan menggunakan C++ , untuk selanjutnya bisa diplot menggunakan Gnuplot. Karena berbasis command-line, sangat mungkin untuk membuat rangkaian command/perintah dalam script. Sehingga mungkin bagi kita untuk membuat rangkaian data dengan isualisasinya sesuai keperluan kita. (Tutorial dasar C++ dan visualisasi gnuplot, saya tulis disini.
  2. Python. Python menjadi semakin banyak diminati karena librarynya yang lengkap dan bahasanya yang lebih “manusiawi”. Banyak diminati terutama untuk pengembangan Data Sciences, karena Python memiliki pilihan package statistik pendukung data learning yang berguna dan memudahkan para data saintis. Untuk keperluan kalkulasi science sendiri, sudah cukup dengan “numpy” dilengkapi dengan standar plot library nya, yaitu matplotlib.pyplot. Untuk data, python memiliki “pandas” yang jauh lebih mudah digunakan daripada menggunakan class di C++. Yahh. tentu saja baik C++ maupun python, keduanya mendukung program berbasis Object Oriented Programming (OOP). (kapankapan saya akan tulis ini). Bahkan importing data dari file dengan python jauh lebih sederhana daripada C++. Lebih powerful lagi, secara jauh lebih mudah kita bisa import data online dari API (Application Programming Interface) yang disediakan oleh perusahaan-perusahaan penyedia jasa online yang baik hati bersedia membagi data-data tertentu penggunanya. Hal ini sangat fleksible untuk para peminat Data Sciences.

Walaupun penggunakan python lebih “manusia” daripada C/C++, namun tetap tidak bisa dielakkan bahwa C/C++ tetap memiliki performance komputasi yang lebih cepat daripada Python. Hal ini akan terasa sekali ketika melibatkan komputasi yan besar. Maka ada kalanya, digunakan keduanya untuk mengoptimalkan performa. Sebetulnya masih banyak bahasa pemograman untuk komputasi bertipe sama dengan python, yaitu Octave, R, Scilab, Java, php, dan masih banyak lagi. Pilihan disesuaikan dengan kebutuhan. Pada initinya, kemampuan yg perlu dibiasakan adalah : mengerti logika dasar pemograman, memahami bahasa (metode2, class2 ) terkait fungsi yg dibutuhkan, dan paham konsep terkait apa yg akan dikomputasikan sehingga kita bisa melakukan pengetestan apakah program kita sudah betul atau tidak.

Selain untuk komputasi yang bersifat numerik, ada juga software-software yang dikembangkan untuk keperluan komputasi symbolic. Tools ini sangat memudahkan dalam mengurangi kesalahan perhitungan penurunan formula/rumus, juga pre-modeling persamaan matematika. Beberapa informasi software opensorce perhitungan symbolic ini, bisa dilihat di sini.


Leave a Reply