Kursus
Apa itu SQLite?
Jika Anda familier dengan sistem basis data relasional, kemungkinan Anda pernah mendengar nama besar seperti MySQL, SQL Server, atau PostgreSQL. Namun, SQLite adalah RDBMS lain yang berguna, sangat mudah dipasang dan dioperasikan, serta memiliki banyak keunggulan dibanding basis data relasional lainnya. Fitur-fitur tersebut meliputi:
- Tidak memerlukan server: Artinya, tidak ada proses server yang perlu dijalankan, dihentikan, atau dikonfigurasi. Tidak perlu administrator basis data untuk menetapkan instance atau mengelola izin akses pengguna.
- Berkas Basis Data yang Sederhana: Basis data SQLite adalah satu berkas disk biasa yang dapat disimpan di direktori mana pun. Ini juga memudahkan untuk dibagikan karena berkas basis data dapat dengan mudah disalin ke flash drive atau dikirim melalui email.
- Manifest Typing: Mayoritas mesin basis data SQL bergantung pada pengetikan statis. Artinya, Anda hanya dapat menyimpan nilai dengan tipe data yang sama seperti yang diasosiasikan dengan kolom tertentu. Namun, SQLite menggunakan manifest typing, yang memungkinkan penyimpanan data apa pun dalam jumlah berapa pun ke kolom mana pun tanpa memedulikan tipe data yang dideklarasikan untuk kolom tersebut. Perhatikan bahwa ada beberapa pengecualian terhadap aturan ini. Salah satunya adalah kolom primary key bertipe integer, yang hanya dapat menyimpan bilangan bulat.
Seperti kebanyakan hal, ada juga beberapa keterbatasan SQLite dibanding mesin basis data lainnya. Misalnya, SQLite tidak memiliki opsi untuk melakukan Right atau Full Outer Join, dan sifatnya yang tanpa server juga dapat menjadi kelemahan untuk keamanan dan perlindungan terhadap penyalahgunaan data. Namun demikian, ini adalah alat yang sangat kuat dan sangat berguna untuk situasi tertentu. Misalnya, saya menggunakan basis data SQLite dalam proyek kerja analisis media sosial baru-baru ini untuk menyimpan $edge \space list^{1}$ dari jutaan pengguna Twitter dengan cara yang sangat sederhana dan efisien.
Maka, untuk tutorial pemula ini, saya akan menunjukkan cara bekerja dengan basis data SQLite. Kita akan membahas pemasangan SQLite, pembuatan dan operasi tabel, perintah titik SQLite, serta cara menggunakan kueri SQL sederhana untuk memanipulasi data di dalam basis data SQLite.
$^{1}$ Edge list atau adjacency list adalah kumpulan daftar tak berurutan yang digunakan untuk merepresentasikan sebuah graf dalam analisis jaringan. Setiap daftar mendeskripsikan himpunan tetangga dari sebuah node atau simpul dalam graf.
Cara Memasang dan Menyiapkan SQLite
Hal pertama yang akan kita bahas adalah cara memasang SQLite di komputer Anda. Ini sangat sederhana. Jika Anda melihat Tutorial SQLite dengan Python oleh Sayak Paul, Anda akan mengetahui bahwa ada alat GUI bernama DB Browser for SQLite yang bisa membantu Anda mulai dengan mudah. Namun, demi variasi, saya akan menunjukkan cara menggunakan alat baris perintah, yang juga terkadang lebih saya sukai.
Hal pertama yang perlu Anda lakukan jika menggunakan perangkat Windows adalah membuka situs berikut dan mengunduh sqlite-tools-win32-x86-3270200.zip. Setelah mengekstrak foldernya, Anda akan melihat tiga berkas berikut:

Setelah itu, memulai baris perintah SQLite semudah mengeklik aplikasi sqlite3, yang akan memunculkan jendela baris perintah seperti ini:

Sekarang Anda mungkin menyadari bahwa bawaan SQLite adalah menggunakan basis data sementara di memori. Hampir sepanjang waktu Anda tidak ingin menggunakannya. Sebagai gantinya, kita akan membuat basis data baru menggunakan perintah titik .open diikuti nama yang ingin Anda berikan untuk berkas basis data baru Anda (Lihat di bawah):

Hanya dengan itu, Anda telah membuat basis data baru. Perhatikan juga bahwa penting untuk menambahkan .db setelah nama basis data yang diinginkan untuk membuat berkas basis data. Kami menamai basis data Tweet_Data.db karena saya akan menggunakan tweet untuk mengisi tabel dalam basis data.
Membuat Tabel
Setelah basis data dibuat, kita dapat melanjutkan membuat tabel tweet. Kita dapat melakukannya dengan dua cara. Pertama, kita cukup mengimpor berkas .csv dan menjadikannya sebuah tabel. Ini dilakukan dengan mengatur SQLite ke mode csv menggunakan perintah titik .mode diikuti csv, dan dengan perintah titik .import yang menerima sebuah berkas (dalam hal ini csv yang berada di folder yang sama, tetapi bisa berupa csv mana pun di komputer Anda jika Anda mengetikkan path lengkap) dan nama tabel pilihan Anda. Anda juga mungkin ingin menampilkan header kolom menggunakan perintah titik .headers diikuti on. (Lihat di bawah)

Setelah selesai, Anda dapat menggunakan perintah .tables untuk menampilkan semua tabel yang tersedia dalam berkas basis data serta perintah .schema diikuti nama tabel untuk menampilkan struktur tabel. Selain itu, Anda dapat menjalankan kueri sederhana seperti SELECT $$ FROM Table_Name* untuk memverifikasi bahwa datanya ada.

Selain membuat tabel dengan mengimpor berkas seperti csv, Anda juga dapat membuat tabel menggunakan CREATE TABLE dan kemudian menyisipkan baris baru menggunakan INSERT INTO. Pada contoh berikut, Anda akan melihat bagaimana membuat tabel dari nol dan menyisipkan dua baris baru.
Catatan: Di baris perintah SQLite, jika Anda ingin tetap menulis kueri yang sama pada baris berikutnya seperti yang saya lakukan di contoh, cukup tekan Enter saat Anda ingin baris baru. Kueri akan dievaluasi setelah menekan Enter ketika ada titik koma di akhir.

Mengekspor dari SQLite
Jika pada suatu saat Anda memutuskan ingin mengekspor hasil kueri ke berkas eksternal seperti csv, Anda juga dapat melakukannya menggunakan kemampuan SQLite. Untuk ekspor rapi ke csv, Anda dapat menggunakan proses yang mirip dengan saat mengimpor. Pertama, gunakan .header diikuti on dan .mode diikuti csv. Lalu, gunakan perintah titik .output diikuti nama berkas csv yang Anda inginkan dan, akhirnya, jalankan kueri SQL yang ingin Anda ekspor dan keluar dari SQLite menggunakan perintah .exit. Mari coba mengekspor ke csv tabel baru yang kita buat pada langkah sebelumnya.

Ini dia berkas csv yang baru dibuat dengan data dari Sample_Tweets_2.

Memperbarui Tabel
Selain membuat dan mengekspor tabel, Anda juga dapat menggunakan pernyataan SQL UPDATE/SET dan DROP TABLE untuk memperbarui baris dalam tabel atau menghapus tabel sepenuhnya. Pada contoh berikut kita akan memperbarui tweet kedua dalam tabel mainan Sample_Tweets_2.

Sekarang mari ucapkan selamat tinggal pada tabel mainan Sample_Tweets_2 dan hapus dari berkas basis data menggunakan DROP TABLE:

Menggunakan Basis Data SQLite untuk Menangani Data Twitter
Sekarang, Anda sudah cukup memahami hal-hal penting tentang cara bekerja dengan basis data SQLite dan memanipulasi tabel, yang tersisa hanyalah menurunkan informasi berguna menggunakan kueri SQL. Untuk saat ini, saya akan menunjukkan beberapa kueri yang relatif sederhana yang saya jalankan selama proyek analisis media sosial Twitter. Anda bisa menganggapnya sebagai studi kasus kecil untuk menggambarkan penerapan dunia nyata dari basis data SQLite.
Mari mulai dengan sesuatu yang sederhana; mencari semua nama layar (screen name) pengguna Twitter yang unik di tabel Sample_Tweets. Dalam proyek tempat saya menggunakan tweet-tweet ini, sangat penting bagi saya untuk menemukan semua pengguna unik yang kicaunya saya kumpulkan karena saya perlu mengambil pengikut mereka untuk membuat edge list yang saya sebutkan di awal tutorial ini.

26.860 pengguna unik dalam basis data. Itu adalah sampel yang sangat baik mengingat topik yang saya pantau adalah lokalisasi situs web dan penerjemahan. Mari kita lihat 20 pengguna teratas yang memiliki tweet terbanyak dalam sampel menggunakan kueri SQL yang sedikit lebih kompleks (retweet dikecualikan):

Coba lihat, jumlah tweet terbanyak milik sebuah bot! Namun, ternyata anggota terakhir dari daftar itu, UweMuegge, cukup berpengaruh menurut berbagai statistik jaringan yang saya hitung untuk proyek tersebut. Akan tetapi, dia jelas bukan yang paling penting.
Terakhir, mari kita lihat beberapa tweet yang ditulis UweMuegge menggunakan kueri SQL lain:

Tampaknya ada dua topik utama, iklan lowongan kerja penerjemahan dan konferensi penerjemahan. Masuk akal mengapa orang di bidang tersebut mengikuti dia di Twitter.
Hal lain yang menonjol dari cuplikan layar di atas adalah Anda menemui salah satu keterbatasan antarmuka baris perintah SQLite. Jika Anda memiliki kolom teks yang besar, tampilan tidak akan rapi dan akan sulit dibaca. Itulah mengapa merupakan ide bagus untuk menggunakan DB Browser for SQLite dalam kasus ini.
Ringkasan
Dalam tutorial ini, Anda telah mempelajari cara membuat basis data SQLite dan memanipulasi tabel menggunakan perintah titik dan pernyataan SQL. Selain itu, Anda telah melihat studi kasus kecil dunia nyata di mana saya menggunakan basis data SQLite untuk menangani data dari Twitter. Cukup banyak, jadi selamat!
Perlu dicatat bahwa basis data SQLite paling berguna ketika dikombinasikan dengan R dan Python. Anda dapat memanipulasi basis data SQLite melalui Python menggunakan modul sqlite3 (jika Anda ingin mempelajari lebih lanjut, lihat tutorial SQLite dengan Python) atau dengan R menggunakan RSQLite. Faktanya, edge list dari pengikut pengguna Twitter yang saya sebutkan sebelumnya disimpan dalam basis data SQLite yang saya buat menggunakan RSQLIte dengan menambahkan jaringan pengikut masing-masing pengguna ke sebuah tabel. Pada langkah proyek ini, penggunaan SQLite sangat penting karena hal-hal seperti pemadaman listrik atau pembaruan otomatis Windows dapat mematikan komputer Anda secara paksa dan membuat Anda harus mulai mengumpulkan jaringan pengikut dari awal. Ini dapat memakan waktu sekitar 4 minggu karena batas laju API Twitter, jadi mulai dari 0 jika hal ini terjadi sangat tidak diinginkan. Namun, jika Anda menyimpan jaringan pengikut dalam basis data SQLite seiring berjalannya proses, bahkan jika komputer Anda mati secara paksa, Anda dapat mulai mengumpulkan lagi dari pengguna setelah yang terakhir Anda miliki di basis data, yang sangat menghemat waktu.
Itu hanyalah satu contoh bagaimana basis data SQLite bisa menjadi alat yang luar biasa dalam perangkat seorang data scientist. Saya mendorong Anda untuk meneliti lebih lanjut basis data SQLite dan SQL melampaui apa yang dibahas dalam tutorial ini. Teruslah belajar; langit adalah batasnya!
Jika Anda ingin mempelajari lebih lanjut tentang SQL, ikuti kursus DataCamp Introduction to Relational Databases in SQL.
