Apa itu Notebook Jupyter? Analisis data menjadi lebih mudah

Pada titik tertentu, kita semua perlu menunjukkan hasil kerja kita. Sebagian besar pekerjaan pemrograman dibagikan baik sebagai kode sumber mentah atau sebagai executable yang dikompilasi. Kode sumber memberikan informasi yang lengkap, tetapi dengan cara yang lebih "memberi tahu" daripada "menunjukkan". Eksekusi menunjukkan kepada kita apa yang dilakukan perangkat lunak, tetapi bahkan ketika dikirimkan dengan kode sumber, sulit untuk memahami dengan tepat cara kerjanya.

Bayangkan bisa melihat kode dan mengeksekusinya di UI yang sama, sehingga Anda bisa membuat perubahan pada kode dan melihat hasil perubahan itu secara instan, dalam waktu nyata? Itulah yang ditawarkan Jupyter Notebook. 

Notebook Jupyter dibuat untuk memudahkan menampilkan pekerjaan pemrograman seseorang, dan membiarkan orang lain bergabung. Notebook Jupyter memungkinkan Anda untuk menggabungkan kode, komentar, multimedia, dan visualisasi dalam dokumen interaktif - disebut notebook, secara alami - yang dapat dibagikan , digunakan kembali, dan dikerjakan kembali. 

Dan karena Jupyter Notebook berjalan melalui browser web, notebook itu sendiri dapat dihosting di komputer lokal Anda atau di server jarak jauh. 

Manfaat Notebook Jupyter

Awalnya dikembangkan untuk aplikasi ilmu data yang ditulis dengan Python, R, dan Julia, Jupyter Notebook berguna dalam semua jenis cara untuk semua jenis proyek:

  • Visualisasi data.  Kebanyakan orang mendapatkan eksposur pertama mereka ke Notebook Jupyter melalui visualisasi data, notebook bersama yang menyertakan rendering beberapa kumpulan data sebagai grafik. Jupyter Notebook memungkinkan Anda membuat visualisasi, tetapi juga membagikannya dan memungkinkan perubahan interaktif pada kode dan kumpulan data bersama.
  • Berbagi kode.  Layanan cloud seperti GitHub dan Pastebin menyediakan cara untuk berbagi kode, tetapi sebagian besar non-interaktif. Dengan Notebook Jupyter, Anda dapat melihat kode, menjalankannya, dan menampilkan hasilnya langsung di browser web Anda.
  • Interaksi langsung dengan kode.  Kode Notebook Jupyter tidak statis; itu dapat diedit dan dijalankan kembali secara bertahap dalam waktu nyata, dengan umpan balik yang diberikan langsung di browser. Notebook juga dapat menyematkan kontrol pengguna (mis., Slider atau field input teks) yang dapat digunakan sebagai sumber input untuk kode.
  • Mendokumentasikan sampel kode. Jika Anda memiliki sepotong kode dan Anda ingin menjelaskan baris demi baris cara kerjanya, dengan umpan balik langsung di sepanjang jalan, Anda dapat menyematkannya di Notebook Jupyter. Yang terbaik dari semuanya, kode akan tetap berfungsi penuh — Anda dapat menambahkan interaktivitas bersama dengan penjelasan, menampilkan dan memberi tahu pada saat yang bersamaan.

Komponen Notebook Jupyter

Jupyter Notebooks dapat mencakup beberapa jenis bahan, masing-masing disusun menjadi blok terpisah:

  • Teks dan HTML.  Teks biasa, atau teks yang dianotasi dalam sintaks penurunan harga untuk menghasilkan HTML, dapat disisipkan ke dalam dokumen kapan saja. Gaya CSS juga dapat dimasukkan sebaris atau ditambahkan ke templat yang digunakan untuk membuat buku catatan.
  • Kode dan keluaran. Kode di notebook Jupyter biasanya adalah kode Python, meskipun Anda dapat menambahkan dukungan di lingkungan Jupyter untuk bahasa lain seperti R atau Julia. Hasil dari kode yang dieksekusi muncul segera setelah blok kode, dan blok kode dapat dieksekusi dan dieksekusi kembali dalam urutan apa pun yang Anda suka, sesering Anda suka. 
  • Visualisasi. Grafik dan grafik dapat dihasilkan dari kode, melalui modul seperti Matplotlib, Plotly, atau Bokeh. Seperti keluaran, visualisasi ini muncul sebaris di sebelah kode yang menghasilkannya. Namun, kode juga dapat dikonfigurasi untuk menuliskannya ke file eksternal jika diperlukan.
  • Multimedia. Karena Notebook Jupyter dibangun pada teknologi web, ia dapat menampilkan semua jenis multimedia yang didukung di halaman web. Anda dapat memasukkannya ke dalam buku catatan sebagai elemen HTML, atau Anda dapat membuatnya secara terprogram melalui IPython.displaymodul.
  • Data. Data dapat disediakan dalam file terpisah bersama .ipynb file yang membentuk notebook Jupyter Notebook, atau dapat diimpor secara terprogram — misalnya, dengan memasukkan kode dalam notebook untuk mendownload data dari repositori Internet publik atau untuk mengaksesnya melalui database koneksi.

Kasus penggunaan Notebook Jupyter

Kasus penggunaan yang paling umum untuk Jupyter Notebook adalah ilmu data, matematika, dan proyek penelitian lainnya yang melibatkan visualisasi data atau rumus. Selain itu, ada banyak kasus penggunaan lainnya:

  • Berbagi visualisasi, dengan atau tanpa interaktivitas.  Orang sering kali membagikan hasil visualisasi data sebagai gambar statis, tetapi itu hanya berguna sampai titik tertentu. Dengan berbagi buku catatan Jupyter, Anda memungkinkan audiens target Anda untuk terjun dan bermain-main. Mereka dapat memperoleh pemahaman menyeluruh tentang data, secara interaktif.
  • Mendokumentasikan proses dengan kode. Banyak programmer yang menulis blog tentang pengalaman pemrograman mereka menulis posting mereka di notebook Jupyter. Orang lain dapat mengunduh buku catatan mereka dan membuat ulang latihan tersebut.
  • Dokumentasi langsung untuk perpustakaan atau modul. Kebanyakan dokumentasi untuk modul Python bersifat statis; notebook Jupyter dapat digunakan sebagai sandbox interaktif untuk mempelajari cara kerja modul. Modul Python apa pun yang berjalan dengan baik di antarmuka notebook (pada dasarnya, apa pun yang menulis stdoutsebagai bagian dari perilakunya) adalah kandidat yang baik untuk ini.
  • Berbagi kode dan data secara umum.  Yang perlu Anda lakukan untuk membagikan notebook Jupyter dan file data terkaitnya adalah mengemasnya ke dalam arsip.

JupyterLab

Antarmuka pengguna generasi berikutnya untuk Notebook Jupyter, yang disebut JupyterLab, sekarang tersedia dan dianggap siap untuk penggunaan produksi.

Seperti yang dijelaskan dalam posting blog yang mengumumkan ketersediaan umum, JupyterLab lebih mudah dibentuk daripada Notebook Jupyter konvensional, memungkinkan pengguna untuk menyeret-dan-melepaskan sel di dalam dan di antara notebook dan untuk mengatur ruang kerja menjadi tab dan subbagian terpisah. Kode dapat dijalankan langsung dari file teks serta file Notebook Jupyter, dan banyak format file umum untuk kode dan data dapat dirender dengan pratinjau langsung.

JupyterLab juga dapat disesuaikan dengan ekstensi untuk menambahkan dukungan untuk format file baru, untuk memperkaya antarmuka, atau untuk menyediakan sejumlah fitur tambahan lainnya, memungkinkan rentang aplikasi notebook yang jauh lebih luas daripada Jupyter Notebook. Rencana jangka panjangnya adalah mengganti antarmuka Notebook Jupyter saat ini dengan JupyterLab, tetapi hanya setelah JupyterLab terbukti cukup stabil dan andal.

Batasan Jupyter Notebook

Sekuat dan berguna seperti Jupyter Notebook, ia memang memiliki beberapa batasan yang perlu diperhitungkan.

  • Notebook tidak mandiri. Ini adalah satu-satunya kelemahan terbesar menggunakan Notebook Jupyter: Notebook memerlukan runtime Jupyter, bersama dengan pustaka apa pun yang Anda rencanakan untuk digunakan. Ada beberapa strategi untuk membuat Jupyter Notebooks mandiri, tetapi tidak satupun yang secara resmi didukung. Sebaiknya Anda mendistribusikan buku catatan kepada orang-orang yang sudah memiliki infrastruktur untuk menjalankannya, atau tidak keberatan dengan penyiapannya (melalui Anaconda, misalnya).
  • Status sesi tidak dapat disimpan dengan mudah.  Status kode apa pun yang berjalan di notebook Jupyter tidak dapat dipertahankan dan dipulihkan dengan toolset default Notebook Jupyter. Setiap kali Anda memuat notebook, Anda perlu menjalankan ulang kode di dalamnya untuk memulihkan statusnya.
  • Tidak ada debugging interaktif atau fitur IDE lainnya.  Jupyter Notebook bukanlah lingkungan pengembangan lengkap untuk Python. Banyak fitur yang Anda harapkan untuk ditemukan di IDE — misalnya, debugging interaktif, penyelesaian kode, dan manajemen modul — tidak tersedia di sana.