Kursus
Jupyter Notebooks merupakan bagian penting dari alur kerja Ilmu Data; begitu pentingnya hingga banyak organisasi seperti Netflix menganggapnya tak tergantikan. Lingkungan komputasi berbasis browser, dipadukan dengan format dokumen yang dapat direproduksi, menjadikannya pilihan utama bagi jutaan data scientist dan peneliti di seluruh dunia. Jupyter memiliki komunitas internasional yang besar, hadir hampir dari setiap negara. Komunitas ini juga telah mengembangkan banyak kernel.
Jupyter Lab adalah antarmuka pengguna generasi berikutnya untuk Project Jupyter yang menawarkan semua komponen familiar dari Jupyter Notebook klasik seperti notebook, terminal, editor teks, penjelajah berkas, keluaran kaya, dan lainnya. Namun, berbeda dengan notebook klasik, semua fitur ini disediakan dalam antarmuka pengguna yang fleksibel dan kuat. Gagasan dasar Jupyter Lab adalah menghadirkan semua komponen yang ada di notebook klasik, ditambah beberapa hal baru, dalam satu tempat.

JupyterLab menampilkan area kerjanya dengan notebook, berkas teks, terminal, dan keluaran notebook yang semuanya dapat saling berinteraksi.
Mari kita pasang dan jalankan Jupyter Lab di sistem kita terlebih dahulu.
Instalasi
JupyterLab dapat dipasang menggunakan conda, pip, atau pipenv.
conda install -c conda-forge jupyterlab
or
pip install jupyterlab
or
pipenv install jupyterlab
pipenv shell
Lihat dokumentasi instalasi resmi untuk detail lebih lanjut.
Memulai JupyterLab
Anda dapat memulai Jupyter dengan mengetik perintah berikut di konsol:
jupyter lab
JupyterLab akan otomatis terbuka di browser dengan antarmuka seperti di bawah ini. Ini menandakan semuanya sudah siap, dan Anda bisa mulai bekerja.

Area kerja utama adalah tempat aktivitas utama berlangsung. Area ini mencakup notebook, dokumen, konsol, terminal, dan sebagainya. Cukup klik ganda atau seret sebuah berkas ke area ini untuk mulai bekerja.
Antarmuka SQL ke JupyterLab

Sering kali, data yang kita gunakan disimpan dalam berkas yang disebut basis data, dan tugas penting seorang Data Scientist adalah dapat mengakses data dari basis data lalu menganalisisnya. Karena itu, memiliki antarmuka yang mulus antara basis data SQL dan Jupyter Notebook/Lab adalah ide yang sangat baik agar akses dan manipulasi data menjadi lebih mudah dan efisien. Antarmuka ini dapat dicapai dengan dua cara berikut:
1. Menggunakan ekstensi IPython SQL Magic
Perintah magic adalah sekumpulan fungsi praktis di Jupyter Notebooks yang dirancang untuk menyelesaikan beberapa masalah umum dalam analisis data standar. Anda dapat melihat semua magic yang tersedia dengan %lsmagic.
Ekstensi IPython SQL magic memungkinkan Anda menulis kueri SQL langsung di sel kode serta membaca hasilnya langsung ke pandas DataFrame (Sumber). Ini berfungsi baik untuk notebook tradisional maupun Jupyter Lab modern.
Memasang modul SQL di notebook
!pip install ipython-sql
Memuat modul SQL
%load_ext sql
Perintah magic di atas memuat ekstensi ipython-sql. Kita dapat terhubung ke basis data apa pun yang didukung oleh SQLAlchemy. Di sini kita akan terhubung ke basis data SQLite. Masukkan perintah berikut di sel kode:
%sql sqlite://
Jika Anda mendapatkan keluaran berupa ‘Connected: @None', artinya koneksi telah berhasil dibuat.
- Membuat basis data
Terakhir, kita membuat tabel demo bernama EMPLOYEES untuk menunjukkan fungsinya.
%%sql
CREATE TABLE EMPLOYEE(firstname varchar(50),lastname varchar(50));
INSERT INTO EMPLOYEE VALUES('Tom','Mitchell');
INSERT INTO EMPLOYEE VALUES('Jack','Ryan');
Sekarang kita dapat mengeksekusi kueri pada basis data kita.
%sql SELECT * from EMPLOYEE;
----------------------------------
* sqlite://
Done.
Kueri di atas menghasilkan tabel berikut.

- Bekerja dengan basis data yang sudah ada
Kita juga dapat terhubung ke basis data yang sudah ada menggunakan fungsi magic. Untuk tutorial ini, kita akan menggunakan basis data SQL_SAFI (Studying African Farmer-led Irrigation (SAFI) database). "Proyek SAFI adalah proyek penelitian yang menelaah metode pertanian dan irigasi yang digunakan petani di Tanzania dan Mozambik. Dataset ini terdiri dari data survei terkait rumah tangga dan pertanian" (Sumber). Anda dapat mengunduhnya dari tautan ini.
#Specifying the path of the database
%sql sqlite:////Users/Parul/Desktop/SQL_SAFI.sqlite
-----------------------------------------------------------
'Connected: @/Users/Parul/Desktop/SQL_SAFI.sqlite'
Pernyataan di atas membuka basis data bernama SQL_SAFI.sqlite yang berada di jalur: Users/Parul/Desktop. Mari pilih tabel Crops dan tampilkan isinya.
%sql select * from Crops

Menampilkan beberapa baris pertama dari tabel Crops
%sql select * from Crops where D_curr_crop = "maize" AND ID <= 3;

Hasilnya juga dapat dikonversi menjadi pandas dataframe, sebagai berikut:
result = %sql select * from Crops where D_curr_crop = "maize" AND ID <= 3;
dataframe = result.DataFrame()

dataframe.info()

2. Ekstensi jupyterlab-sql
Sebelum melangkah lebih jauh, mari bahas sedikit tentang ekstensi Jupyter secara umum.
Ekstensi JupyterLab
Ekstensi adalah salah satu fitur paling berguna dari Jupyter Lab dan dapat meningkatkan pengalaman menggunakan Jupyter Lab. Jupyter Lab pada dasarnya adalah lingkungan yang dapat diperluas, dengan notebook, terminal, dan editor yang semuanya hadir sebagai ekstensi.
"Ekstensi JupyterLab adalah paket npm (format paket standar dalam pengembangan Javascript)"(Sumber). Ekstensi menyediakan cara untuk menyesuaikan dan meningkatkan pengalaman JupyterLab dengan menawarkan berbagai opsi berguna seperti tema baru, penampil, pintasan keyboard, opsi pengaturan lanjutan, dan lain-lain. Ada banyak ekstensi yang dikembangkan komunitas di GitHub. Anda dapat mencari topik GitHub jupyterlab-extension untuk menemukan ekstensi.
Untuk memasang ekstensi JupyterLab, Anda perlu memasang Node.js yang bisa dipasang dari situs web mereka atau sebagai berikut.
conda install -c conda-forge nodejs
or
brew install node #for MacOS users
Ekstensi jupyterlab-sql adalah salah satu ekstensi berguna yang memungkinkan Anda menambahkan antarmuka pengguna SQL ke Jupyter Lab. Ini memiliki dua keuntungan utama:
- Tabel SQL dapat dieksplorasi dengan mudah melalui klik dan tunjuk.
- Tabel juga dapat dimodifikasi dan dibaca dengan kueri kustom.
Anda dapat membaca lebih lanjut di repositori Github resminya.
Instalasi
Untuk memasang jupyterlab-sql, jalankan perintah berikut secara berurutan:
pip install jupyterlab_sql
jupyter serverextension enable jupyterlab_sql --py --sys-prefix
jupyter lab build
Setelah itu Anda perlu me-restart server Jupyter yang sedang berjalan.
Perlu dicatat juga bahwa jupyterlab-sql hanya bekerja dengan Python 3.5 ke atas.
Mulai
Setelah Anda me-restart Jupyter Lab, sebuah ikon SQL baru akan muncul di launcher

Ini berarti semuanya terpasang dengan benar, dan Anda siap menghubungkan instance Anda ke sebuah basis data.
Koneksi
Untuk terhubung ke basis data, Anda perlu memiliki URL basis data yang valid. jupyterlab-sql telah diuji secara ekstensif pada basis data SQLite, PostgreSQL, dan MySQL (Sumber). Ikuti panduan SQLAlchemy tentang URL. URL harus berupa URL basis data, misalnya:
postgres://localhost:5432/postgres
postgres://username:password@localhost:5432/postgres
mysql://localhost/employees
sqlite://
sqlite:///myfile.db
Mari kita hubungkan ke basis data SQL_SAFI yang sudah ada, yang kita gunakan sebelumnya. Klik ikon SQL di launcher dan ketik URL basis data. Tekan enter untuk terhubung.

Begitu basis data terhubung, Anda dapat melihat semua tabel di dalamnya.


Selanjutnya, kita juga dapat menulis kueri SQL kustom untuk mendapatkan data yang diinginkan dari tabel.
Kesimpulan
Menggunakan SQL dan JupyterLab bersama-sama membawa analisis data ke level berikutnya. Antarmuka jupyter-sql memudahkan menghubungkan SQL Server ke ekosistem Jupyter dan mengekstrak data langsung ke dalamnya, tanpa harus meninggalkan antarmuka Jupyter.
Jika Anda ingin mempelajari lebih lanjut tentang SQL, ikuti kursus Data-Driven Decision Making in SQL dari DataCamp.
Coba juga tutorial Remote Python and R in SQL kami.
