Database Sederhana dengan Gambas

Database Sederhana dengan Gambas

Gambas merupakan sebuah IDE (Integrated Development Environment) yang
berorientasi pada RAD (Rapid Application Development) seperti halnya Microsoft Visual Basic.
Dengan Gambas kita dapat menggunakan aplikasi berbasis GUI (Graphical User Interface) di
Linux dengan mudah, semudah halnya kita mendesain form dengan objekobjek
dan kemudian
mengetikkan perintahnya pada code editor. Pada tulisan ini saya hanya menekankan bagaimana
aplikasi gambas dapat dihubungkan dengan mysql sebagai databasenya, pada saat tulisan ini
dibuat saya menggunakan gambas versi 1.0.17.
Studi Kasus
Pastikan aplikasi database MySQL sudah berjalan sebagaimana mestinya, kemudian
pilih komponen “gb.db” yang berguna sebagai penghubung ke database, dengan cara pilih Project
> Properties > Components. Setelah itu kita rancang terlebih dahulu user interface program seperti
gambar di bawah ini :

Kemudian Buat sebuah modul dengan nama module1 lalu ketikkan script di bawah ini :

‘ Gambas module file
PUBLIC db AS NEW Connection
PUBLIC rs AS Result
PUBLIC btn AS Button
PUBLIC FUNCTION koneksi() AS Boolean
‘fungsi untuk menghubungkan ke database
db.Close ‘jika ada koneksi yang terbuka maka tutup koneksi tersebut
db.Type = “mysql”
db.Host = “localhost”
db.Login = “root”
db.Password = “gunadarma”
db.Open ‘buka koneksi ke database
END
PUBLIC SUB isi(tbv AS TableView , sql AS String )
‘sub untuk mengisi baris dan kolom pada tableview
DIM i AS Float
rs = db.Exec (sql) ‘jalankan perintah sql lalu simpan dalam variabel rs
WITH rs
tbv.Rows.Count = 0 ‘menentukan jmlah baris tableview pertama kali dijalankan
‘jika ada maka masukkan jumlah baris dan kolom ke dalam tableview ‘berdasarkan variabel rs.
IF .count<>0 THEN
tbv.Columns.Count = .Fields.Count
tbv.Rows.count=.Count
END IF
END WITH
END
Setelah merancang user interface untuk tampilan program selanjutnya masukkan script berikut
pada form1 :

‘ Gambas class file
arrtable[3] AS String
PUBLIC sql AS String
PUBLIC rs AS Result
SUB aturtombol(tambah AS Boolean , ubah AS Boolean , hapus AS Boolean , simpan AS Boolean,
batal AS Boolean, tutup AS Boolean, cari AS Boolean)
‘sub untuk mengatur tombol button
btntambah.Enabled = tambah
btnubah.Enabled = ubah
btnhapus.Enabled = hapus
btnsimpan.Enabled = simpan
btnbatal.Enabled = batal
btntutup.Enabled = tutup
btncari.Enabled = cari
END
SUB aturtxt (id AS Boolean , nama AS Boolean , nick AS Boolean, cari AS Boolean )
‘sub untuk mengatur textbox
txtid.Enabled = id
txtnama.Enabled = nama
txtnick.Enabled = nick
txtcari.Enabled = cari
END
SUB bersihin()
‘sub untuk mengosongkan objek
txtid.Text = “”
txtnama.Text = “”
txtnick.Text = “”
txtid.SetFocus
END

PUBLIC SUB Form_Open()
‘perintah yang akan dijalankan sewaktu program dijalankan ,
‘di sini kita akan sekaligus membuat database beserta tabelnya
DIM dbname AS String
DIM tbname AS String
DIM htable AS table
txtcari.Text = “Masukkan Nama”
ME.Caption = “Simple Database”
aturtombol(TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE) ‘panggil aturtombol
aturtxt(FALSE,FALSE,FALSE,TRUE) ‘panggil sub aturtxt
dbname=”simple_database” ‘nama database yang akan dibuat
tbname=”profil” ‘nama tabel yang akan dibuat
‘di bawah ini perintah untuk membuat database beserta tabelnya
WITH module1
.koneksi ‘menghubungkan ke database
‘jika database simple_database tidak ada maka buat database
IF NOT .db.Databases.Exist (dbname) THEN
.db.Databases.Add (dbname)
.db.Close
.db.Name = dbname
.db.Open
‘jika tabel profil tidak ada maka buat tabel
IF NOT .db.Tables.Exist (tbname) THEN
htable=.db.Tables .Add (tbname)
htable.fields.add(“id”, gb.String , 10)
htable.fields.add(“nama”, gb.String , 30)
htable.Fields.Add(“nickname”, gb.string, 30)
htable.primarykey=[“id”]
htable.update
END IF
‘jika database sudah ada maka buka database tersebut
ELSE
.db.Close
.db.Name =dbname
.db.Open
END IF
END WITH
tampilkan() ‘panggil sub tampilkan
END

SUB tampilkan()
‘sub untuk menampilkan nama field
WITH tableview1
.Rows.count=0
.Columns.count=3
.Columns[0].Text =”ID”
.Columns[1].Text = “Nama”
.Columns[2].Text =”Nick”
END WITH
‘pangggil sub isi, kemudian tampilkan banyaknya baris dan kolom ke dalam ‘tableview1
module1.isi (tableview1, “select * from profil order by id”)
END
PUBLIC SUB btntambah_Click()
aturtombol(FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE)
aturtxt(TRUE,TRUE,TRUE,FALSE)
bersihin()
tableview1.Enabled = FALSE
END
PUBLIC SUB TableView1_Data(Row AS Integer, Column AS Integer)
‘sub untuk menampikan isi tabel ke dalam tableview
arrtable[0]=”id”
arrtable[1]=”nama”
arrtable[2]=”nickname”
WITH module1
.rs.MoveTo(row)
tableview1.Data.Text = Str(.rs[arrtable[column]])
END WITH
END
PUBLIC SUB TableView1_Click() ‘sub apabila objek tableview diklik
‘menampilkan data dari tabelview1 ke dalam objek textbox saat diklik
txtid.Text = tableview1[tableview1.row,0].Text
txtnama.Text = tableview1[tableview1.row,1].Text
txtnick.Text = tableview1[tableview1.row,2].Text
aturtombol(TRUE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE)
aturtxt(TRUE, TRUE,TRUE,TRUE)
CATCH
message.Info (“Data Masih Kosong”, “OK”)
END

PUBLIC SUB btnsimpan_Click()
IF txtid.Text = “” OR txtnama.Text = “” THEN
message.Warning (“Data Belum Lengkap”,”OK”)
ELSE
WITH module1
‘perintah sql untuk memasukkan data ke dalam database
sql = “insert into profil values(‘” & txtid.Text & “‘,'” & txtnama.Text & “‘,'” & txtnick.Text & “‘)”
.db.Exec (sql) ‘jalankan perintah sql di atas
tampilkan() ‘panggil sub tampilkan
tableview1.Enabled = TRUE
aturtombol(TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE)
txtcari.Enabled = TRUE
END IF
END WITH
CATCH
message.Info (“Data Sudah Ada Dalam Database”, “OK”)
aturtombol(TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE)
txtcari.Enabled = TRUE
bersihin()
tableview1.Enabled = TRUE
END
PUBLIC SUB btntutup_Click()
module1.db.Close
ME.Close
END
PUBLIC SUB btnhapus_Click()
sql = “delete from profil where id='” & txtid.Text & “‘”
module1.db.Exec (sql)
btnhapus.Enabled = FALSE
btnubah.Enabled = FALSE
bersihin()
tampilkan()
END
PUBLIC SUB btnbatal_Click()
aturtombol(TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE)
txtcari.Enabled = TRUE
bersihin()
tableview1.Enabled = TRUE
END

PUBLIC SUB btnubah_Click()
sql = “update profil set id='” & txtid.Text & “‘,nama='” & txtnama.Text & “‘,nickname='” &
txtnick.Text & “‘ where id='” & txtid.text & “‘”
module1.db.Exec (sql)
tampilkan()
aturtombol(TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE)
END
PUBLIC SUB btncari_Click()
sql = “select * from profil where nama='” & txtcari.Text & “‘”
rs = module1.db.Exec (sql)
txtid.Text = rs!id
txtnama.Text = rs!nama
txtnick.Text = rs!nickname
CATCH
message.Info (“Data Tidak Ditemukan”, “OK”)
END
PUBLIC SUB txtcari_GotFocus()
txtcari.Text =””
END
PUBLIC SUB txtcari_LostFocus()
txtcari.Text = “Masukkan Nama”
END

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s