Anda di halaman 1dari 8

Pemrograman Database Sederhana Menggunakan Gambas

Pemrograman Database Sederhana Menggunakan Gambas

1. Persiapan Database
Sebelum melakukan pemrograman dengan menggunakan database, terlebih dahulu kita harus
mempersiapkan database dan tabel-tabel yang akan dipergunakan.
Database yang akan digunakan pada pemrograman ini menggunakan database Mysql yang
terinstal pada Localhost.
Berikut langkah-langkah pembuatan database :

•  buka halaman phpmyadmin dengan mengetikkan : http://localhost/phpmyadmin/ pada


web broser
• buat database baru dengan nama : latihan
• kemudian buat tabel dengan nama phonebook dengan jumlah field sebanyak 5 field pada
database latihan yang telah dibuat, dengan field-field sebagai barikut :
Nama Field Tipe Data Panjang Data Index Auto Increment
(A_I)
id Int 11 Primary Yes
nama_depan Char 15
nama_belakang Char 15
alamat Text
telp Char 13
2. Pembuatan Projek baru di Gambas
Buatlah proyek baru di Gambas dengan langkah-langka sebagai berikut :
• buka Aplikasi Gambas
• klik New Project
• pada jendela Project Type, centang opsi Database access pada frame Option, kemudian klik
tombol Next
• pada jendela Project Directory, atur dimana tempat aplikasi akan disimpan kemudian klik
tombol Next
• pada jendela Project Information, isi nama (Name) dan judul (Title) aplikasi.
• Pada aplikasi Gambas tambahkan beberapa Componen baru, dengan cara klik Project –
Properties.
• Setelah aplikasi berhasil dibuat, pada jendela Project Properties pilih tab Componen,
centang komponen-komponen berikut :
gb.qt
gb.qt.ext
gb.qt.kde
gb.qt.kde.html

kemudian hapus centang pada komponen :


gb.gui
• kemudian tambahkan Module baru dengan cara : klik kanan pada Module, kemudian pilih
New – Module...
• beri nama Module dengan dbModule, kemudian klik Ok.
• Ketik perintah berikut pada Modul.

PUBLIC db AS NEW Connection


PUBLIC rs AS Result

'bagian untuk mengkoneksikan database'


PUBLIC FUNCTION koneksi() AS Boolean
WITH db
.close
.Type = "mysql"
.Host = "localhost"
.Login = "root"
.Password = "1"
.Name = "latihan"
.Open
END WITH
RETURN TRUE
CATCH
Message.Warning("Ada masalah, tidak dapat terhubung ke server sql ", "OK")
RETURN FALSE
END

PUBLIC SUB isi(tbv AS GridView, sql AS String)


DIM i AS Float
rs = db.exec(sql)
WITH rs
tbv.rows.count = 0
IF .count <> 0 THEN
tbv.columns.count = .fields.count
tbv.rows.count = .count
END IF
END WITH
END

Buatlah Form Seperti Dibawah ini

 
• Ketik perintah berikut pada form FMain :

'Gambas class file


'mendeklarasikan variabel
arrtable[5] AS String

PRIVATE sql AS String


PRIVATE rs AS Result

hFile AS File
flname AS String

PUBLIC SUB _new()

END

PUBLIC SUB Form_Open()

dbModul.koneksi

tampilkan()

flname = Application.Path & "laporankendaraan"

TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
TextBox5.Text = ""

TextBox1.Enabled = FALSE

Button1.Text = "Simpan"
Button2.Text = "Tambah"
Button3.Text = "Edit"
Button4.Text = "Hapus"
Button5.Text = "Keluar"
Button6.Text = "Cetak"

GridView1.Mode = 1
GridView1.Header = 3

ME.Center

END

'bagian untuk menampilkan data kedalam gridview1, data yang dipanggi adalah
seluruh data pada tbl_mobil
SUB tampilkan()
WITH GridView1
.Rows.count = 0
.Columns.Count = 5
.Columns[0].Text = "ID"
.Columns[1].Text = "Nama Depan"
.Columns[2].Text = "Nama Belakang"
.Columns[3].Text = "Alamat"
.Columns[4].text = "Telepon"
END WITH
dbModul.isi(GridView1, "SELECT id, nama_depan, nama_belakang, alamat, telp FROM
phonebook ORDER BY id")

END

' bagian untuk menampilkan isi tabel kedalam gridview


PUBLIC SUB GridView1_Data(Row AS Integer, Column AS Integer)

arrtable[0] = "id"
arrtable[1] = "nama_depan"
arrtable[2] = "nama_belakang"
arrtable[3] = "alamat"
arrtable[4] = "telp"
WITH dbModul
.rs.MoveTo(row)
GridView1.Data.Text = Str(.rs[arrtable[column]])
END WITH
END

'perintah pada saat gridview1 di klik


PUBLIC SUB GridView1_Click()
TextBox1.Text = GridView1[GridView1.Row, 0].Text
TextBox2.Text = GridView1[GridView1.Row, 1].Text
TextBox3.Text = GridView1[GridView1.Row, 2].Text
TextBox4.Text = GridView1[GridView1.Row, 3].Text
TextBox5.Text = GridView1[GridView1.Row, 4].Text
CATCH
Message.Info("Data masih kosong", "OK")
END

PUBLIC SUB Button5_Click()


ME.Close
END

'perintah simpan data


PUBLIC SUB Button1_Click()

WITH dbModul
'perintah untuk memasukkan data kedalam database (tabel : phonebook)
sql = "INSERT INTO phonebook VALUES ('" & "" & "','" & TextBox2.Text & "', '" &
TextBox3.Text & "', '" & TextBox4.Text & "', '" & TextBox5.Text & "')"
.db.Exec(sql)
' jika proses penyimpanan berhasil maka akan muncul pesan
IF NOT ERROR THEN
Message.Info("Data Berhasil Disimpan", "Ok")
ENDIF
tampilkan()
END WITH
CATCH
END

'perintah tambah data


PUBLIC SUB Button2_Click()

TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
TextBox5.Text = ""
TextBox2.SetFocus

END

'perintah edit data


PUBLIC SUB Button3_Click()

WITH dbModul
sql = "UPDATE phonebook SET nama_depan ='" & TextBox2.Text & "', nama_belakang
='" & TextBox3.Text & "', alamat ='" & TextBox4.Text & "', telp ='" &
TextBox5.Text & "' WHERE id ='" & TextBox1.Text & "'"
.db.Exec(sql) 'jalankan perintah sql diatas
IF NOT ERROR THEN
Message.Info("Data Berhasil di Edit", "Ok")
ENDIF
tampilkan()
TextBox2.SetFocus
END WITH
CATCH

END

'perintah hapus data


PUBLIC SUB Button4_Click()

WITH dbModul
sql = "DELETE FROM phonebook WHERE id ='" & TextBox1.Text & "'"
.db.Exec(sql)
'menampilkan ulang data dari tbl_mobil ke dalam gridview1
IF NOT ERROR THEN
Message.Info("Data Berhasil di Hapus", "Ok")
ENDIF
tampilkan()
TextBox2.SetFocus
END WITH
CATCH

END

'perintah cetak daftar phonebook


PUBLIC SUB Button6_Click()

SELECT CASE Message.Question("Cetak ke Layar atau printer ?", "Layar",


"Printer", "Batal")
CASE 1 'perintah bila ingin mencetak ke layar
printit(FALSE)
CASE 2 'perintah bila ingin mencetak ke printer
printit(TRUE)
END SELECT

END

'perintah menampilkan header dari file laporan


PUBLIC SUB header(prn AS Boolean)
'membuat tabel dengan perintah html+gambas
PRINT #hFile, "<html>"
PRINT #hFile, "<head><title>Daftar Phonebook Saya</title></head>"
PRINT #hFile, "<body topmargin='0' leftmargin='0'"
IF prn = TRUE THEN PRINT #hFile, " onload='window.print()'"
PRINT #hFile, ">"
PRINT #hFile, "<table border='1' width=FormCetak.Width cellpadding='4'
cellspacing='0'>"
PRINT #hFile, "<tr>"
PRINT #hFile, "<td colspan='5' align='center'>"
PRINT #hFile, " <h3>Daftar Phonebook</h3>"
PRINT #hFile, " </td>"
PRINT #hFile, " </tr>"
PRINT #hFile, " <tr><td></td></tr>"
PRINT #hFile, " <tr>"
PRINT #hFile, " <td width='5%' align='center'><b>ID</b></td>"
PRINT #hFile, " <td width='25%' align='center'><b>Nama Depan</b></td>"
PRINT #hFile,"<td width='25%' align='center'><b>Nama Belakang</b></td>"
PRINT #hFile, " <td width='30%' align='center'><b>Alamat</b></td>"
PRINT #hFile, " <td width='15%' align='center'><b>Telepon</b></td>"
PRINT #hFile, " </tr>"
END

'tambah kolom di tabel laporan


PUBLIC SUB content(p1 AS String, p2 AS String, p3 AS String, p4 AS String, p5 AS
String)
PRINT #hFile, " <tr>"
PRINT #hFile, " <td align='center'>" & p1 & "</td>"
PRINT #hFile, " <td>" & p2 & "</td>"
PRINT #hFile, " <td>" & p3 & "</td>"
PRINT #hFile, " <td>" & p4 & "</td>"
PRINT #hFile, " <td>" & p5 & "</td>"
PRINT #hFile, " </tr>"
END

'perintah menampilkan footer pada file laporan


PUBLIC SUB footer()
PRINT #hFile, "</table>"
PRINT #hFile, "</body>"
PRINT #hFile, "</html>"
END
'perintah untuk mencetak file laporan
PUBLIC SUB printit(prn AS Boolean)
DIM i AS Float
WITH dbModul
sql = "SELECT * FROM phonebook ORDER BY id"
.rs = .db.Exec(sql)
IF .rs.count <> 0 THEN
IF Exist(flname) THEN KILL flname
OPEN flname FOR WRITE CREATE AS #hFile
'tampilkan header disini
header(prn)
i = 0
WHILE i < .rs.count
'tampilkan semua data disini
content(CStr(.rs!id), CStr(.rs!nama_depan), CStr(.rs!nama_belakang), CStr(.rs!
alamat), CStr(.rs!telp))
i = i + 1
.rs.MoveNext
WEND
'tampilkan footer disini
footer
CLOSE #hFile
'menampilkan laporan
FormCetak.SetPath(flname)
FormCetak.ShowModal
ENDIF
END WITH
END

• Kemudian tambahkan satu form baru yang diberi nama FormCetak, dan desain form
tersebut seperti gambardibawah

• Kemudian ketik perintah seperti dibawah pada FormCetak

'Gambas class file


PUBLIC SUB SetPath(sPath AS String)
WebBrowser1.Path = sPath
END

PUBLIC SUB Form_Resize()


WebBrowser1.Move(0, 0, ME.ClientWidth, ME.ClientHeight - 68)
button1.Move(ME.clientwidth - 130, ME.ClientHeight - 55)

END

PUBLIC SUB Form_Open()


button1.Text = "Keluar"
ME.center
WebBrowser1.Width = ME.Width
END

PUBLIC SUB Button1_Click()

ME.Close

END