Bahasa Pemrograman Gambas Pertemuan 11 Bahasa Pemrograman Gambas
Gambas Software ini merupakan tools yang digunakan untuk membuat program aplikasi baik itu berbasis science maupun database pada Sistem operasi linux, bersifat open source
Tampilan awal Gambas
Buat Project Baru, dari menu utama lalu buka new project. Isi dengan nama administrasi dengan title siswa Aktifkan komponen yang diperlukan adalah sebagai berikut :
gb gb.db - - - > untuk menghubungkan kedatabase gb.qt gb.qt.ext gb.qt.kde gb.qt.kde.html - - - - > untuk menampilkan tabel laporan dari database
4. Setelah komponen diaktifkan, langkah selanjutnya adalah membuat sebuah modul untuk mendeklarasikan program yang akan dibuat, caranya: ○ klik kanan pada direktori projects lalu pilih New > Module. Dengan nama Mglobal ○ Setelah itu, double klik pada mglobal untuk mengetik kode program
' Gambas module file PUBLIC db AS NEW Connection PUBLIC rs AS Resul t PUBLIC btn AS Button PUBLIC btnok AS String PUBLIC btnno AS String 'bagian untuk mengkoneksikan database' PUBLIC FUNCTION koneksi(host AS String, lgn AS String, pass AS String) AS Boolean
d b.close d b.Type = "mysql" d b.Hos t = Hos t d b.Login = lgn db.Pas sword = pass db.Open RETURN TRUE CATCH Message.Warning("Password yang anda masukkan salah", "OK") RETURN FALSE END
'bagian untuk menambahkan baris dan kolom' PUBLIC SUB isi(tbv AS GridView, sql AS String) DIM i AS Float rs = d b.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
Mendesign koneksi Server : My SQL , Host : Local Host, Username : root, Password : “ “
Properti Gambar diatas
Properti Gambar diatas
Properti Gambar diatas Form koneksi merupakan tampilan awal ketika program dijalankan. Maka kita harus mengatur form tersebut dengan cara klik kanan form tersebut lalu pilih startup class
Setelah form koneksi dibuat, ketiklah program berikut : Gambas class file PUBLIC SUB Form_Open() ME.center ME.Caption = "Koneksi baru" END PUBLIC SUB ginput_KeyPress() IF Key.code = Key.enter OR Key.code = Key.return THEN SELECT CASE LAST.tag
CASE 1 textbox2.setfocus CASE 2 Textbox3.setfocus CASE 3 button1.setfocus END SELECT END IF END PUBLIC SUB gbtn_Click() DIM dbname AS String DIM tbname AS String DIM htable AS Table
SELECT CASE LAST.tag CASE 1 'tombol koneksi dbname = "administrasi" tbname = "siswa" WITH Mglobal .btnok = "&Yes" .btnno = "&No" 'periksa keabsahan user IF .koneksi(textbox1.text, textbox2.text, textbox3.text) = TRUE THEN 'membuat database jika belum tersedia IF NOT .db.Databases.Exist(dbname) THEN .db.Databases.Add(dbname) .db.Close .db.Name = dbname .db.Open
'membuat tabel jika belum tersedia 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, 40) htable.Fields.Add("kelamin", gb.String, 10) htable.Fields.Add("alamat", gb.String, 100) htable.PrimaryKey = ["id"] htable.Update END IF ELSE 'jika sudah tersedia database digunakan .db.Close .db.Name = dbname
Design Form Data
Kode program untuk form tersebut: ' Gambas class file arrtable[4] AS String PUBLIC sql AS String PUBLIC rs AS Result hFile AS File flname AS String
Kode program untuk form tersebut: ' bagian untuk menampilkan nama field SUB tampilkan() WITH gdv .Rows.count = 0 .Columns.Count = 4 .Columns[0].Text = "ID" .Columns[1].Text = "Nama" .Columns[2].text = "Jenis Kelamin" .Columns[3].Text = "Alamat" END WITH Mglobal.isi(gdv, "select*from siswa order by id") END
' bagian untuk mengatur tombol SUB aturtombol(tambah AS Boolean, ubah AS Boolean, hapus AS Boolean, simpan AS Boolean, batal AS Boolean, cari AS Boolean) btntambah.Enabled = tambah btnubah.Enabled = ubah btnhapus.Enabled = hapus btnsimpan.Enabled = simpan btnbatal.Enabled = batal btncari.Enabled = cari END
' bagian untuk mengatur textbox SUB aturtxt(id AS Boolean, nama AS Boolean, kelamin AS Boolean, alamat AS Boolean, cari AS Boolean) txtid.Enabled = id txtnama.Enabled = nama ComboBox1.Enabled = kelamin txtalamat.Enabled = alamat txtcari.Enabled = cari END ' bagian untuk menghilangkan tulisan di area textbox SUB bersih() txtid.Text = ""
'ComboBox1.Text = "Pilih Salah Satu" txtnama.Text = "" txtalamat.Text = "" END PUBLIC SUB Form_Open() DIM i AS Float aturtombol(TRUE, FALSE, FALSE, FALSE, FALSE, TRUE) aturtxt(FALSE, FALSE, FALSE, FALSE, TRUE) gdv.Enabled = TRUE ComboBox1.Add("Laki-Laki") ComboBox1.Add("Perempuan")
flname = User.home & "/datasiswa.html" ME.center ME.Caption = "Data Siswa" tampilkan() END PUBLIC SUB Form_Close() 'hapus laporan ketika form ditutup IF Exist(flname) THEN KILL flname
' bagian untuk menampilkan isi tabel kedalam gridview PUBLIC SUB gdv_Data(Row AS Integer, column AS Integer) arrtable[0] = "id" arrtable[1] = "nama" arrtable[2] = "kelamin WITH Mglobal .rs.MoveTo(row) gdv.Data.Text = Str(.rs[arrtable[column]]) END WITH END
'event gridview saat diklik PUBLIC SUB gdv_Click() txtid.Text = gdv[gdv.Row, 0].Text txtnama.Text = gdv[gdv.Row, 1].Text ComboBox1.Text = gdv[gdv.Row, 2].Text txtalamat.Text = gdv[gdv.Row, 3].Text aturtombol(TRUE, TRUE, TRUE, FALSE, FALSE, TRUE) aturtxt(TRUE, TRUE, TRUE, TRUE, TRUE) CATCH Message.Info("Data masih kosong", "OK") END
PUBLIC SUB btntambah_Click() aturtombol(FALSE, FALSE, FALSE, TRUE, TRUE, FALSE) aturtxt(TRUE, TRUE, TRUE, TRUE, FALSE) bersih() gdv.Enabled = FALSE END PUBLIC SUB btnsimpan_Click() IF txtid.Text = "" OR txtnama.Text = "" OR txtalamat.Text = "" THEN Message.Warning("Data belum lengkap", "OK") ELSE WITH Mglobal
'perintah sql untuk memasukkan data kedalam database sql = "insert into siswa values ('" & txtid.Text & "', '" & txtnama.Text & "', '" & ComboBox1.Text & "','" & txtalamat.Text & "')" .db.Exec(sql) 'jalankan perintah sql diatas tampilkan() gdv.Enabled = TRUE aturtombol(TRUE, FALSE, FALSE, FALSE, FALSE, TRUE) txtcari.Enabled = TRUE END WITH END IF CATCH
Message.Info("Data sudah ada dalam database", "OK") aturtombol(TRUE, FALSE, FALSE, FALSE, FALSE, TRUE) txtcari.Enabled = TRUE bersih() gdv.Enabled = TRUE END PUBLIC SUB btnhapus_Click() sql = "delete from siswa where id ='" & txtid.Text & "'" Mglobal.db.Exec(sql) btnhapus.Enabled = FALSE btnubah.Enabled = FALSE tampilkan()
PUBLIC SUB btnbatal_Click() aturtombol(TRUE, FALSE, FALSE, FALSE, FALSE, TRUE) aturtxt(FALSE, FALSE, FALSE, FALSE, TRUE) bersih() gdv.enabled = TRUE END PUBLIC SUB btnubah_Click() sql = "update siswa set id ='" & txtid.Text & "', nama ='" & txtnama.Text & "', kelamin ='" & ComboBox1.Text & "', alamat ='" & txtalamat.Text & "' where id ='" & txtid.Text & "'" Mglobal.db.Exec(sql) tampilkan()
PUBLIC SUB btncari_Click() aturtxt(TRUE, TRUE, TRUE, TRUE, TRUE) sql = "select * from siswa where id ='" & txtcari.Text & "'" rs = Mglobal.db.Exec(sql) txtid.Text = rs!id txtnama.Text = rs!nama ComboBox1.Text = rs!kelamin txtalamat.Text = rs!alamat CATCH Message.Info("Data tidak ditemukan", "OK") END
PUBLIC SUB txtcari_GotFocus() txtcari.Text = "" END PUBLIC SUB txtcari_LostFocus() PUBLIC SUB btnkeluar_Click() Mglobal.db.Close ME.Close PUBLIC SUB gbtn_Click() SELECT CASE LAST.tag CASE 1 'tampilkan kelayar printit(FALSE) CASE 2 'cetak ke printer printit(TRUE) END SELECT
END PUBLIC SUB header(prn AS Boolean) 'membuat tabel dengan perintah html +gambas PRINT #hFile, "<html >" PRINT #hFile, "<head > <title >Contoh Data Siswa oleh insan Sutejo < / 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 ='500' cellpadding ='4' cellspacing ='0'>" PRINT #hFile, " < tr >" PRINT #hFile, " < t d colspan ='4' align ='center'>" < h3 >Daftar Nama Siswa < / h3 >" < / t d >"
PRINT #hFile, " < / tr >" PRINT #hFile, " < tr > < td > < / t d > < / tr >" PRINT #hFile, " < tr >" PRINT #hFile, " < t d width ='15%' align ='center'> <b >Nomor Induk < / b > < / t d >" < t d align ='center'> <b >Nama < / b > < / t d >" < t d align ='center'> <b >Jenis Kelamin < / b > < / t d >" < t d align ='center'> <b >Alamat < / b > < / t d >" END
'tambah kolom di tabel laporan PUBLIC SUB content(p1 AS String, p2 AS String, p3 AS String, p4 AS String) PRINT #hFile, " < tr >" PRINT #hFile, " < t d >" & p1 & "< /td >" < t d >" & p2 & "< /td >" < t d >" & p3 & "< /td >" < t d >" & p4 & "< /td >" PRINT #hFile, " < / tr >" END PUBLIC SUB footer() PRINT #hFile, "< /table >" PRINT #hFile, "< /body >" PRINT #hFile, "< / html >"
PUBLIC SUB printit(prn AS Boolean) DIM i AS Float WITH mglobal .rs = .db.exec("select * from siswa order by id") 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), CStr(.rs!kelamin), CStr(.rs!alamat)) i = i + 1 .rs.MoveNext WEND 'tampilkan footer disini footer CLOSE #hFile 'menampilkan laporan Fpreview.SetPath(flname) Fpreview.ShowModal ENDIF END WITH END
Design form preview, aturlah setiap elemen seperti pada gambar berikut :
Setelah form dibuat, ketik program dibawah ini : ' Gambas class file PUBLIC SUB Form_Open() ME.center END PUBLIC SUB Form_Resize() webbrowser1.Move(0, 36, ME.ClientWidth, ME.ClientHeight - 70) button1.Move(ME.clientwidth - 88, ME.ClientHeight - 32, 88, 32) PUBLIC SUB Button1_Click() ME.close PUBLIC SUB SetPath(sPath AS String) WebBrowser1.Path = sPath
LATIHAN SOAL S O 1. Software gambas merupakan Bhs Pemrograman yang berorientasi, a. objek b. Prosedural c. System d. Terstruktur e. salah semua 2. Database yang didukung oleh gambas adalah a. My SQL d. SQL-Lite b. Postgree e. MS Access c. Semua salah
2. Database yang didukung oleh gambas adalah a. My SQL d. SQL-Lite b. Postgree e. MS Access c. Semua salah Dalam Slaxware, proses pembuatan distro disebut dengan : a.Remastering d. B dan C Benar b.Recompiling e. B dan C Salah c.Repositori
Dalam Slaxware, proses pembuatan distro disebut dengan : a.Remastering d. B dan C Benar b.Recompiling e. B dan C Salah c.Repositori Type data yang didukung oleh gambas a. String d. Bolean b. Text e. Number c. A & D Benar
Type data yang didukung oleh gambas a. String d. Bolean b. Text e. Number c. A & D Benar Membuat tampilan form message dalam gambas, adalah a.Message Box b.Message info c. Message tools d. Semua salah e. semua Benar
Membuat tampilan form message dalam gambas, adalah a.Message Box b.Message info c. Message tools d. Semua salah e. semua Benar 1. Software gambas merupakan Bhs Pemrograman yang berorientasi, a. objek b. Prosedural c. System d. Terstruktur e. salah semua