Lewati ke konten utama

Mengapa Ilmuwan Sebaiknya Menggunakan Python untuk Komputasi Ilmiah

Pelajari cakupan Python untuk riset, mengapa ilmuwan sebaiknya menggunakan Python untuk komputasi ilmiah, dan bagaimana komunitas Python dapat secara efektif membantu penelitian ilmiah.
Diperbarui 28 Sep 2026  · 12 mnt Baca

Jelajahi bersama AI

ChatGPTClaudePerplexity

Tahun ini di PyCon 2017, dua keynote disampaikan oleh anggota komunitas Python ilmiah: Dr Jake VanderPlas membahas mengapa para ilmuwan telah dan seharusnya merangkul Python; Dr Kathryn Huff membahas bagaimana komunitas Python dapat membantu komunitas ilmiah dan mengapa mereka seharusnya melakukannya. Kedua presentasi ini bersama-sama menghadirkan pandangan holistik dan koheren tentang bagaimana riset ilmiah dan pemrograman Python saling melengkapi, mengapa banyak ilmuwan saat ini akan sangat terbantu dengan mengadopsi Python, serta mengapa dan bagaimana komunitas Python dapat secara efektif membantu penelitian ilmiah.

Efektivitas Tak Terduga Python dalam Komputasi Ilmiah

Jake VanderPlas adalah astronom di eScience Institute, University of Washington, Seattle. Ia juga aktif di komunitas Python ilmiah yang lebih luas, dengan kontribusi pada SciPy, scikit-learn, dan altair di antara paket Python lainnya.

Kebanyakan orang membayangkan astronom berada di dasar teleskop raksasa, menatap lensa; namun Jake meyakinkan kita bahwa sebagian besar astronom tidak pernah melihat melalui teleskop dalam karier profesional mereka, melainkan menghabiskan sebagian besar waktu pengambilan data menggunakan kueri basis data. Namun basis data sesungguhnya hanyalah puncak gunung es dalam hal keterampilan komputasi astronom, yang diperlukan oleh tugas-tugas yang mereka hadapi, dan Jake memberikan beberapa contoh yang mencerahkan. Ambil visualisasi Sistem Eksoplanet TRAPPIST-1 berikut, misalnya:

scientific computing python

Mudah untuk berpikir bahwa ini adalah gambar fotorealistik, tetapi sebenarnya ini adalah interpretasi seorang seniman: itu bukan data asli. Keberadaan planet disimpulkan dari bintang yang mengalami gerhana, dan menggunakan pemodelan statistik atas sistem tersebut pada data berikut dan selanjutnya (dalam bentuk gambar, data dari Ethan Kruse):

python for research

Bagaimana semua inferensi dan analisis statistik ini dilakukan? Tentu saja dengan Python. Dan melalui 'pemodelan statistik sistem yang sangat rumit'; lebih jauh, menemukan jenis sistem seperti ini, kata Jake, 'bertumpu pada penulisan kode statistik dalam sebuah pipeline analisis data yang rumit'.

Ini adalah salah satu dari beberapa proyek ilmiah (di bidang astronomi) yang ditunjukkan Jake yang menggunakan bahasa pemrograman Python dalam pemrosesan data dan pipeline analitiknya. Perlu dicatat bahwa semua proyek ini tidak hanya ditulis dalam bahasa pemrograman sumber terbuka, tetapi mereka juga menaruh kodenya di GitHub, misalnya, Kepler dan JWST, yang terakhir berupaya menemukan gas di atmosfer planet lain untuk mengendus komposisi kimia planet di sekitar bintang lain demi mencari tanda-tanda kimiawi kehidupan lain — proyek-proyek ini ditulis dalam Python, dihosting di GitHub, dan menggunakan Jupyter notebook, di antara alat lainnya.

Apakah ini sekadar anekdot, yakni segelintir proyek Python yang merupakan pengecualian, bukan kebiasaan umum? Tidak, setidaknya tidak di astronomi. Jake telah melakukan analisis yang menunjukkan bahwa publikasi yang menggunakan Python meningkat secara stabil:

python scientific computing

Lihat tongkat hoki Python itu! Jadi kita telah memastikan bahwa ilmuwan semakin banyak menggunakan Python, tetapi mengapa mereka menggunakannya?

4 Alasan Menggunakan Python dalam Komputasi Ilmiah

Jake bertanya, 'Mengapa Python begitu efektif untuk sains?'

1. Interoperabilitas dengan bahasa lain.

Python sebagai lem: secara historis, banyak ilmuwan bekerja dengan pipeline data yang canggung, kompleks, dan pada dasarnya merepotkan untuk membawa mereka dari eksperimen dan/atau data menuju hasil yang dapat dikomunikasikan, melibatkan kueri basis data, trik baris perintah, penggunaan perangkat lunak khusus atau proprieter, hingga alat visualisasi data. Jake VanderPlas mengutip Dave Beazley, sebagian karena Dave mengatakannya dengan baik:

'Para ilmuwan... bekerja dengan beragam sistem mulai dari kode simulasi, paket analisis data, basis data, alat visualisasi, dan perangkat lunak rumahan — masing-masing menghadirkan seperangkat antarmuka dan format file yang berbeda. Akibatnya, seorang ilmuwan dapat menghabiskan banyak waktu hanya untuk mencoba membuat semua komponen ini bekerja bersama dengan cara tertentu...'

Dan Python dapat berinteroperasi dengan sebagian besar alat yang ingin Anda gunakan dalam penelitian ilmiah: ia mengikat, ia adalah lem. Seperti kata Jake, Python digunakan untuk 'merekatkan campur aduk alat yang digunakan orang; sintaks Python tingkat tinggi membungkus pustaka C/Fortran tingkat rendah ini.'

2. "Baterai Terpasang" + modul pihak ketiga

Alasan lain para peneliti berbondong-bondong ke Python (dan mengapa mereka yang belum melakukannya "seharusnya") adalah bahwa

  1. Python memiliki banyak "baterai terpasang" dan
  2. untuk yang belum ada, tersedia ekosistem Python Ilmiah (SciPy) yang sangat besar sebagai modul pihak ketiga.

"Baterai terpasang" memungkinkan Anda melakukan scraping web, meluncurkan server web, bekerja dengan sistem file dan basis data, membaca JSON, dan banyak lagi!

Modul "pihak ketiga" adalah bagian yang benar-benar menarik. Contohnya termasuk, namun tentu tidak terbatas pada:

  • NumPy untuk komputasi array;
  • IPython dan Jupyter untuk IDE di atas Python, serta sarana menulis dokumen ilmiah dan berkomunikasi serta berkolaborasi pada riset/hasil;
  • Numba dan Dask untuk skala dan komputasi terdistribusi;
  • Pandas untuk DataFrame;
  • Matplotlib dan Bokeh (misalnya) untuk visualisasi data (ada seluruh ekosistem pustaka dataviz di Python itu sendiri);
  • Scikit-learn untuk Machine Learning;
  • NetworkX untuk membuat, memanipulasi, dan mempelajari jaringan kompleks;
  • Scikit-image untuk pemrosesan citra;
  • PyMC untuk Markov Chain Monte Carlo;
  • Dan masih banyak lagi.

Seperti kata Jake, "jika Anda punya masalah untuk dipecahkan, hampir pasti Anda dapat menemukan pustaka yang membantu dan kemungkinan besar ada di GitHub!"

research with python

3. Kesederhanaan dan Sifat Dinamis

Python relatif mudah ditulis, terutama dibandingkan dengan bahasa seperti C. Seperti kata Jake, 'Di Python, khususnya jika Anda datang dari, misalnya, C, Anda menulis apa yang Anda ingin terjadi dan itu terjadi; ini semacam menulis pseudo-code yang dapat dieksekusi'.

Ia juga mengutip Perry Greenfield, yang mengatakan 'Python adalah bahasa yang sangat kuat bagi pengembang, tetapi juga mudah diakses oleh Astronom. Mendapatkan dua kelompok orang ini menggunakan alat yang sama, menurut saya, memberikan manfaat besar yang tidak selalu disadari atau disebutkan.'

Berkat alat seperti IPython dan Jupyter notebook, misalnya, ada peluang luar biasa untuk pemrograman dinamis dan analisis data yang eksploratif dan iteratif secara langsung. Ini menghasilkan hambatan masuk yang rendah karena pengkodean ilmiah itu sendiri bersifat nonlinier dan eksploratif. Jake menyoroti bahwa ada yang mungkin mengeluh atau merasa bahwa alat-alat ini lambat, tetapi untuk tujuan penelitian ilmiah, yang utama adalah kecepatan pengembangan, bukan kecepatan eksekusi, sehingga alat-alat ini menjadi ideal.

4. Etos keterbukaan yang selaras dengan sains

Perangkat lunak sumber terbuka memiliki etos yang cocok dengan kebutuhan keterbukaan dalam riset ilmiah (bahkan, mungkin lebih daripada banyak penelitian ilmiah). Kita akan membahas ini lebih rinci saat membahas keynote Katy Huff, tetapi sains tidak hanya terjadi pada makalah yang dipublikasikan; sains terjadi pada hasil serta instruksi/protokol dan kemampuan untuk mereproduksi hasil tersebut; inilah tepatnya yang dicita-citakan dalam pengembangan perangkat lunak sumber terbuka. Jake memberikan kutipan berikut dari Buckheit dan Donoho (1995, memparafrasekan Jon Claerbout)

Sebuah artikel tentang hasil komputasi adalah iklan, bukan karya ilmiah. Karya ilmiah yang sesungguhnya adalah keseluruhan lingkungan perangkat lunak, kode, dan data yang menghasilkan hasil tersebut.' -- Buckheit and Donoho, 1995

Apa yang disediakan perangkat lunak sumber terbuka dan etos ekosistem Python (ilmiah dan lainnya) adalah kerangka kerja yang semoga membantu kita keluar dari krisis reprodusibilitas ilmiah: 'memecahkan reprodusibilitas adalah tentang sains terbuka' dan sifat kolaboratif, telaah-sejawat, serta dapat dipublikasikan di GitHub dari penelitian ilmiah dalam ekosistem Python adalah kunci bagi keterbukaan ini dalam sains. Jika saya ingin memeriksa bagaimana gelombang gravitasi (yang diprediksi Einstein) dideteksi pada 2016, yang perlu saya lakukan hanyalah membuka repositori LIGO di sini. Atau jika Anda termasuk dari semakin banyak astronom yang menggunakan paket Astropy untuk penelitian mereka, Anda dapat menemukan kodenya dan komunitas yang mengembangkannya di sini dan fakta bahwa ini begitu terbuka adalah hasil langsung dari komunitasnya yang meneladani etos sumber terbuka dan sains terbuka yang mereka temukan dalam komunitas Python yang lebih luas. Lihat tabel untuk melihat apa yang menurut Jake (diadaptasi dari Perry Greenfield) dipelajari komunitas astronomi dari komunitas Python:

Lakukan Demi Sains

"Saya di sini untuk memanfaatkan kekuatan Anda untuk keperluan saya sendiri" kata Dr. Kathryn Huff kepada komunitas PyCon dan ia kemudian menyampaikan argumen yang meyakinkan tentang bagaimana dan mengapa komunitas pemrograman Python pada umumnya dapat membantu sains menyelamatkan dunia. Keynote-nya memberikan argumen yang rinci dan penuh semangat tentang mengapa pengembangan perangkat lunak sumber terbuka pada umumnya, dan Python pada khususnya, terbukti sangat efektif dalam Komputasi Ilmiah serta riset dan praktik ilmiah secara keseluruhan. Lebih jauh, ia menunjukkan banyak bidang di mana komunitas pemrograman dan pengembangan Python secara luas dapat menggunakan keterampilan Python mereka untuk membantu komunitas ilmiah dan menyelamatkan dunia. Jika Anda berpikir air adalah isu serius bagi umat manusia, atau kesehatan atau energi, Kathryn telah menyiapkan proyek dan repositori GitHub dengan isu terbuka yang bisa langsung Anda garap untuk membantu. Ia memberikan lusinan contoh proyek dan paket terbuka dengan isu yang bisa Anda kontribusikan.

Kathryn (Katy) adalah Insinyur Nuklir, kontributor lama komunitas SciPy, terlibat dalam Journal of Open Source Software dan mendedikasikan banyak waktunya untuk The Hacker Within serta Software dan Data Carpentries, yang membantu ilmuwan menjadi lebih mahir menggunakan komputer dan membuat penemuan, sehingga meningkatkan reprodusibilitas dan memudahkan ilmuwan dalam menggunakan komputer.

Misi Katy adalah meningkatkan cara energi nuklir dihasilkan; dan apa alat pilihannya? Python! Sebelum membahas beragam cara komunitas Python dapat membantu komunitas riset ilmiah, Katy menyampaikan argumen kuat mengapa hal ini memang diperlukan. Katy mengutip R. K. Merton (1945) yang menggambarkan sains sebagai sesuatu yang memerlukan ketelitian, struktur, penelaahan komunitas (definisi kerja yang baik tentang seperti apa skeptisisme terorganisasi itu); semuanya ini tak terbantahkan merupakan kualitas komunitas Python sumber terbuka.

Katy menegaskan pentingnya hal ini ketika ia menguraikan prinsip-prinsip dasar sains dan menjelaskan bahwa pengembangan perangkat lunak sumber terbuka telah melakukan pekerjaan yang lebih baik daripada komunitas mana pun dalam memegang teguh prinsip-prinsip ini sejak Era Pythagoras (abad ke-6 SM). Prinsip-prinsip dasar sains tersebut adalah:

  • telaah sejawat
  • skeptisisme
  • transparansi
  • atribusi
  • akuntabilitas
  • kolaborasi
  • dampak

Komputer "seharusnya" membantu ilmuwan melakukan hal-hal berikut:

Lalu apa tantangannya untuk membuat lebih banyak ilmuwan menggunakan perangkat lunak sumber terbuka seperti Python agar komputer dapat membantu mereka?

  • Ilmuwan tidak dilatih untuk menggunakan komputer secara efektif;

Maka seruan Katy kepada komunitas Python:

"Saya ingin melibatkan Anda".

Dan penggalangan semangat seperti ini merupakan alasan lain bagi para peneliti aktif untuk menggunakan Python: adanya komunitas besar programmer sumber terbuka yang siap membantu. Katy, seperti disebutkan, terlibat dalam pendekatan lain, yakni mengedukasi ilmuwan aktif dalam menggunakan komputer untuk pekerjaan mereka. Ada beberapa program semacam itu. Saya mendorong semua ilmuwan aktif untuk melihat Software Carpentry dan Data Carpentry untuk melihat apakah mereka dapat membantu kelompok, departemen, atau universitas Anda (jawabannya: jika Anda komputasi, kemungkinan besar mereka bisa).

Lalu bagaimana saran Dr Katy Huff agar para programmer membantu? Dalam empat langkah sederhana:

  1. Rasa ingin tahu;
  2. Pilih proyek;
  3. Berkontribusi pada sains;
  4. Selamatkan Dunia.

Mengapa Python untuk Riset?

  • Ekosistem Python berisi kumpulan alat komputasi yang matang dan terus berkembang untuk ilmuwan aktif.
  • Ilmuwan berbondong-bondong ke Python dalam jumlah yang semakin besar karena Python memiliki
    • Interoperabilitas dengan bahasa lain;
    • "Baterai terpasang" dan modul pihak ketiga untuk hampir semua hal yang ingin Anda lakukan;
    • Kesederhanaan dan sifat dinamis
    • Etos keterbukaan yang selaras dengan sains
  • Komunitas Python Ilmiah berkembang dan pustakanya terus dikembangkan; komunitasnya terbuka;
  • Komunitas pengembangan Sumber Terbuka berpegang pada prinsip-prinsip dasar penelitian ilmiah lebih daripada komunitas mana pun; prinsip-prinsip tersebut adalah:
    • telaah sejawat
    • skeptisisme
    • transparansi
    • atribusi
    • akuntabilitas
    • kolaborasi
    • dampak
  • Ada komunitas yang lebih luas dari programmer Python yang bukan ilmuwan dan ingin berkontribusi pada dampak Python terhadap sains dan dunia serta isu-isu yang mereka yakini; untuk sedikit memelintir kata-kata Perry Greenfield,

'Python adalah bahasa yang sangat kuat bagi pengembang, tetapi juga mudah diakses oleh [ilmuwan]. Mendapatkan dua kelompok orang ini menggunakan alat yang sama, menurut saya, memberikan manfaat besar yang tidak selalu disadari atau disebutkan'.

Jika Anda punya pemikiran, tanggapan, dan/atau renungan, silakan hubungi saya di Twitter: @hugobowne.

Topik
Python
Terkait

blogs

Tutorial Korelasi di R

Dapatkan pengenalan dasar-dasar korelasi di R: pelajari lebih lanjut tentang koefisien korelasi, matriks korelasi, plotting korelasi, dan sebagainya.
David Woods's photo

David Woods

13 mnt

blogs

Spaghetti Plot dan Jalur Badai

Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Hugo Bowne-Anderson's photo

Hugo Bowne-Anderson

13 mnt

blogs

40 Pertanyaan Wawancara DBMS Teratas di 2026

Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Dario Radečić's photo

Dario Radečić

15 mnt

blogs

12 Alternatif ChatGPT Terbaik yang Bisa Anda Coba pada 2026

Artikel ini menyajikan daftar alternatif ChatGPT yang akan meningkatkan produktivitas Anda.
Javier Canales Luna's photo

Javier Canales Luna

14 mnt

Lihat SelengkapnyaLihat Selengkapnya