SQLite

Selain menggunakan file biasa, saat menggunakan C atau C++ kalian juga bisa menyimpan data di dalam database seperti SQL atau database lainnya. Salah satu library yang bisa kalian gunakan untuk menyimpan database adalah SQLITE. Kalian bisa menggunakan query SQL dalam SQLITE untuk menambahkan, menghapus, mengubah, dan menampilkan database.

Saat ini, versi terbaru dari sqlite adalah sqlite3. Untuk menginstal SQLite3 di ubuntu kalian bisa menggunakan terminal dan ketik "sudo apt-get install sqlite3" di terminal, dan tekan enter setelah selesai mengetik. Kalau kalian menggunakan windows atau OS lain, kalian bisa mendownload SQlite di https://www.sqlite.org/download.html.

Membuat Database dengan Sqlite3 Command Line

Setelah sqlite3 diinstal, jika kalian menggunakan linux dan sudah menginstall sqlite3, kalian bisa membuka sqlite3 command line di terminal dengan mengetik "sqlite3 nama_file" dan menekan enter. Setelah itu, kalian seharusnya bisa membuat database baru. Sqlite akan menyimpan database dalam bentuk file, dan kalian bisa mengaksesnya setelah kalian meletakkan file yang berisi database di folder project atau program yang sudah kalian buat.

Jika kalian menggunakan windows, kalian harus mendownload "sqlite3 command line" secara terpisah. Kalian juga perlu meng-compile source code untuk library-nya sebelum bisa menggunakan sqlite3 dalam kode program kalian.

Berikut ini adalah yang harus kalian ketik di terminal atau console untuk membuat database setelah kalian berhasil menginstal sqlite.

sqlite3 Nama_Database.db

Kalian harus menentukan direktori-nya dengan "cd nama_direktori" terlebih dahulu sebelum membuat database. Setelah kalian mengetik tulisan di atas di terminal dan menekan enter, kalian sekarang bisa menggunakan query SQL. Misalnya, kita bisa membuat tabel Siswa dengan nama dan alamat menggunakan Query :

"Create Table Siswa(Nama varchar(30), Alamat Varchar(30));"

Setelah kalian membuat tabel pertama kalian, file sesuai nama database kalian akan dibuat. Kalian bisa menambahkan data ke dalam database kalian dengan menggunakan "Insert Into ....". Database yang sudah dibuat di folder yang aktif bisa dilihat dengan menggunakan .databases. Untuk keluar dari sqlite command line, kalian bisa mengetik .quit, lalu tekan enter.

Selain menggunakan Command Line yang disediakan oleh Sqlite3, kalian juga bisa menggunakan "Database browser" atau software lainnya.

Btw, untuk menghapus database dalam SQL kalian bisa menggunakan query "Drop Table nama_tabel". Kalian juga bisa menggunakan query lainnya seperti select, insert, update, delete dan beberapa agregate function.

Menggunakan Database Sqlite3 dalam Kode Program

Jika kalian sudah menginstall library-nya lewat terminal, kalian sudah bisa membuat program yang menggunakan sqlite3.

Kalian sebaiknya sudah memiliki database sqlite3 di folder project kalian. Jika belum ada filenya, sebenarnya sqlite3 akan secara otomatis membuatkan filenya saat kalian menggunakan function sqlite3_open. Tapi, file yang baru dibuat tersebut belum berisi tabel. Kalian perlu menggunakan query untuk membuat tabelnya. Query adalah perintah yang digunakan di dalam SQL untuk mengolah isi database.

Kalian bisa membuat project baru dan mengetikkan kode program di bawah ini!

#include <sqlite3.h>
#include <stdio.h>

int callback(void *notused, int jkolom, char **dataku, char **kolom){
 for(int i=0;i<jkolom;i++)printf("%s = %s\n", kolom[i], dataku[i]);
 printf("\n");
 return 0;
}

int main(){
sqlite3 *db;
char *err;
 sqlite3_open("databaseku.db", &db);
 int hasil=sqlite3_exec(db, "Select * FROM Employee ORDER BY Firstname DESC", callback, 0, &err);
 if(hasil!=0){
  sqlite3_exec(db, "Create Table Employee(Firstname Varchar(25), Lastname Varchar(25));", callback, 0, &err);
  sqlite3_exec(db, "INSERT INTO Employee(Firstname, Lastname) VALUES('Gerimisya', 'Geri')", callback, 0, &err);
  int hasil=sqlite3_exec(db, "Select * FROM Employee ORDER BY Firstname DESC", callback, 0, &err);
 }
 sqlite3_close(db);
 return 0;
}

Query SQL dieksekusi dengan function sqlite3_exec. Contoh di atas menggunakan create untuk membuat tabel baru jika tabel tidak ada. Setelah tabel ada, kalian bisa menggunakan insert untuk menambahkan data baru ke dalam tabel.

Function yang Biasa Digunakan

Ada 3 function yang akan sering kalian gunakan dalam sqlite3. Function-function tersebut yaitu :

  • sqlite3_open (nama_database, koneksi_sqlite3) => Membuka database.
  • sqlite3_exec (koneksi_sqlite3, query, callback, data, error) => Menggunakan query sql.
  • sqlite3_close (koneksi_sqlite3) => Menutup koneksi sql.

Parameter koneksi_sqlite3 adalah parameter dengan tipe data sqlite3*. Kalian akan memerlukannya di function-function yang disediakan sqlite.

Tipe data SQL

Setiap kolom dalam database SQL memiliki tipe data yang menentukan cara penyimpanan dan pengolahan datanya. Tipe data tersebut ditentukan saat tabel dibuat dengan statement Create.

  • Null
  • TEXT : string atau teks
  • INTEGER : Bilangan bulat
  • REAL : pecahan desimal.
  • BLOB : Disimpan apa adanya.

Sqlite3 membolehkan penggunakan varchar di dalam statement create. Walaupun begitu, tipe data varchar akan disimpan sebagai text.

Sqlite3 tidak menyediakan tipe data date dan time. Kalian bisa menyimpan tanggal dengan tipe data teks. Format penulisan tanggal dan waktu bisa menggunakan "YYYY-MM-DD HH:MM:SS.SSS" sesuai ISO8601.

Cara Meng-compile Kode Program

Jika kalian menggunakan C++, untuk mengcompile-nya kalian bisa menggunakan g++ di terminal atau console. Kalian juga bisa menggunakan bahasa C, dan mengganti g++ dengan gcc.

g++ nama_file.cpp -lsqlite3 -o nama_program

Untuk menjalankan programnya, ketik "./nama_program" dan tekan enter.

Kalian perlu menggunakan sqlite3_open untuk membuka file database yang akan digunakan. Database yang akan digunakan harus diletakkan di folder program atau project kalian. Setelah database dibuka, kalian seharusnya bisa menggunakan function sqlite3_exec untuk mengeksekusi query SQL.

Menggunakan Sqlite3 dengan Code::Block dan Windows

Jika kalian menggunakan windows, kalian tidak bisa menginstall sqlite dengan terminal seperti saat menggunakan linux. Kalian perlu meng-compile sqlite dari source code-nya yang bisa kalian dapatkan di situs resminya. Cara meng-compile sqlite3 juga bisa kalian temukan di salah satu halaman situs tersebut. Kalian bisa menggunakan compiler dari mingw, cygwin, atau Visual Studio. Kalian juga bisa menggunakan codeblock kalau kalian tahu cara meng-compile library.

Jika kalian menggunakan windows, kalian juga perlu menentukan letak library dan file headernya di Build Options... yang bisa kalian temukan di menu Project. Kalian bisa mengaturnya setelah memilih tab Search directories.

Untuk mengcompile kode program yang menggunakan library sqlite3 di Code::block, kalian perlu menambahkan sesuatu di Linker setting. Kalian perlu menambahkan -lsqlite3 untuk bisa meng-compile dengan sqlite3.

Kalau error muncul setelah kalian menggunakan -lsqlite3, maka kalian perlu menggunakan tombol add untuk menambahkan file library-nya. File library ekstensinya adalah "*.lib" atau "*.a".

Selain itu, kalian harus menempatkan runtime library berupa file dll di folder yang sama dengan project atau programnya. Kalau kalian menjalan langsung, letak dll-nya adalah di folder yang sama dengan program. Tapi, kalian seharusnya meletakkan library-nya di dalam folder project kalian kalau kalian menjalankannya dari code::block atau IDE lainnya.

Apa yang sudah saya tulis di atas mungkin lebih mudah diterapkan di ubuntu karena tidak memerlukan runtime library dan pengaturan search directory. Karena saya jarang pakai windows, untuk pengguna windows, kalian bisa mendapatkan versi lain dari project dan source codenya di sini, dan pelajari sendiri source codenya.