Siapa tidak mengenal sqlite? Database engine yang kecil dan ringan! Bahkan kalau kalian menggunakan Python maka sudah tersedia API tanpa melakukan install package sqlite, seringkali penulis menggunakan sqlite sebagai database logger karena sederhana sekali nggak pakai ribet. Silahkan kalian baca saja Python dan SQLite untuk membuat operasi CRUD https://softscients.com/2020/05/17/menyimpan-jutaan-record-data-berbasis-sql-dengan-python-secara-mudah/ . Nah bagi kalian yang menggunakan Matlab bisa juga koq menggunakan SQLite yang bisa di download di https://sourceforge.net/projects/mksqlite/files/ yang berbentuk *.mex A MATLAB(R) Mex-DLL to SQLite Databases
Setup Library
Contents
Setelah kalian download dan extract akan dihasilkan folder mksqlite-2.7-win64\bin yang berisi
Langkah selanjutnya yang harus kalian lakukan agar library tersebut bisa diakses secara global yaitu addpath() secara permanen yang bisa kalian pelajari https://softscients.com/2020/03/29/buku-pemrograman-matlab-mengenal-dan-setup-global-function/. Sebaiknya kalian letakan folder diatas di C:\mksqlite-2.7-win64\bin biar nggak kehapus suatu saat nanti
Untuk mencoba apakah sudah global function, maka ketikan saja perintah
help mksqlite
Bila tidak terjadi error, maka setpath global yang kalian lakukan berhasil! akan tampil dokumentasi berbahasa jerman karena yang bikin orang jerman! heee heee. Tapi tenang saja, saya buatkan untuk kalian untuk mencoba function SQLite tersebut yang sangat cihuy! sederhana sekali.
Untuk dokumentasi bahasa english ketikan saja perintah
help mksqlite_eng
kalau masih tetap bingung ya wajar saja, tinggal baca postingan ini saja
Membuat database
Kita akan membuat operasi CRUD seperti di python agar dengan membuat database kontak.db yang sangat simple sekali perintahnya yaitu cukup 1 baris saja.
clc;clear all;close all; kontak = 'kontak.db'; %nama database dbid = mksqlite(0, 'open',kontak); %open atau close mksqlite(dbid, 'close'); %jangan lupa untuk close
Variable dbid merupakan handler jadi harus kita pakai terus untuk mengaitkan
Membuat table pada database Sqlite
Untuk membuat table pada database sqlite seperti layaknya menggunakan perintah SQL pada umumnya, adapun desain dari table yang akan kita buat yaitu
Nama table tersebut yaitu biodata, hal yang harus diperhatikan dalam membua table
- Nama table dan nama kolom table menggunakan huruf kecil
- Setiap nama kolom harus diberikan atribut tipe variabel seperti integer, string, primary key
untuk perintah SQL secara umum yaitu
-- table: biodata CREATE TABLE IF NOT EXISTS biodata ( id integer PRIMARY KEY, nama text NOT NULL, umur integer, pekerjaan text );
Perintahnya juga sangat simple sekali
clc;clear all;close all; kontak = 'kontak.db'; %nama database dbid = mksqlite(0, 'open',kontak); %open atau close %buat SQL untuk membuat table sql_create_table = 'CREATE TABLE IF NOT EXISTS biodata (id integer PRIMARY KEY,nama text NOT NULL,umur integer, pekerjaan text );'; mksqlite(dbid,sql_create_table); mksqlite(dbid, 'close'); %jangan lupa untuk close
Insert record
Tentu setiap table kita harus isi jangan dibiarkan kosong, kita akan mencoba untuk mengisi beberapa record seperti berikut
Kita tidak perlu mengisi id karena akan terisi sendiri (primary key),oiya dengan menggunakan place holder berupa tanda ? maka perintah SQL menjadi lebih mudah
clc;clear all;close all; kontak = 'kontak.db'; %nama database dbid = mksqlite(0, 'open',kontak); %open atau close %insert record bejo = {'Bejo Pamungkas',26,'Marketing'}; mksqlite(dbid,'INSERT INTO biodata(nama,umur,pekerjaan) VALUES(?,?,?)',bejo); bintang = {'Bintang Pambudi',30,'Desainer'}; mksqlite(dbid,'INSERT INTO biodata(nama,umur,pekerjaan) VALUES(?,?,?)',bintang); fira = {'Fira Lesmana',35,'Fotografer'}; mksqlite(dbid,'INSERT INTO biodata(nama,umur,pekerjaan) VALUES(?,?,?)',fira); fajar = {'Fajar Kurniawan',24,'Help Desk'}; mksqlite(dbid,'INSERT INTO biodata(nama,umur,pekerjaan) VALUES(?,?,?)',fajar); mksqlite(dbid, 'close'); %jangan lupa untuk close
Select Record
Akan mengembalikan sebuah struct https://softscients.com/2020/03/29/buku-pemrograman-matlab-struct-cell-container-data/ Misalkan untuk menampilkan semua biodata gunakan perintah berikut
clc;clear all;close all; kontak = 'kontak.db'; %nama database dbid = mksqlite(0, 'open',kontak); %open atau close disp('menampilkan semua biodata') sql_select_all ='SELECT * FROM biodata'; biodata = mksqlite(dbid,sql_select_all); for i=1:length(biodata) disp([num2str(biodata(i).id),' ',biodata(i).nama,' ' biodata(i).pekerjaan,' ',num2str(biodata(i).umur)]); end mksqlite(dbid, 'close'); %jangan lupa untuk close
Adapun misalkan kita ingin menampilkan umur >=26
clc;clear all;close all; kontak = 'kontak.db'; %nama database dbid = mksqlite(0, 'open',kontak); %open atau close disp('Menampilkan biodata yang berumur > 26') sql_select_by_umur ='SELECT * FROM biodata WHERE umur >= ?'; biodata = mksqlite(dbid,sql_select_by_umur,26); for i=1:length(biodata) disp([num2str(biodata(i).id),' ',biodata(i).nama,' ' biodata(i).pekerjaan,' ',num2str(biodata(i).umur)]); end mksqlite(dbid, 'close'); %jangan lupa untuk close
Update record
Adakalanya kita akan melakukan sebuah update record, maka yang dibutuhkan hanyalah sebuah id (primary key) seperti contoh berikut
Akan diganti umur dan pekerjaan sedangkan namanya tetap
clc;clear all;close all; kontak = 'kontak.db'; %nama database dbid = mksqlite(0, 'open',kontak); %open atau close disp('Lakukan update atas nama bintang') sql_update_umur_pekerjaan ='UPDATE biodata SET umur = ?,pekerjaan = ? WHERE id = ?'; bintang = {20,'Writer',2}; mksqlite(dbid,sql_update_umur_pekerjaan,bintang); %lakukan update %menampilkan hasil setelah dilalkukan update biodata = mksqlite(dbid,sql_select_all); for i=1:length(biodata) disp([num2str(biodata(i).id),' ',biodata(i).nama,' ' biodata(i).pekerjaan,' ',num2str(biodata(i).umur)]); end mksqlite(dbid, 'close'); %jangan lupa untuk close
Delete record
Operasi selanjutnya yaitu untuk delete sebuah record, maka yang dibutuhkan berupa id (primary key) nya, misalkan kita ingin menghapus id = 1 atas nama bejo pamungkas
clc;clear all;close all; kontak = 'kontak.db'; %nama database dbid = mksqlite(0, 'open',kontak); %open atau close sql_delete_by_id = 'DELETE FROM biodata WHERE id=?'; mksqlite(dbid,sql_delete_by_id,1); %lakukan delete untuk id==1 mksqlite(dbid, 'close'); %jangan lupa untuk close
atauapun menghapus semua record.
clc;clear all;close all; kontak = 'kontak.db'; %nama database dbid = mksqlite(0, 'open',kontak); %open atau close sql_delete_all = 'DELETE FROM biodata'; mksqlite(dbid,sql_delete_all); %lakukan delete ALL mksqlite(dbid, 'close'); %jangan lupa untuk close