The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.
Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by Surya Prangga, 2020-11-23 10:54:07

Modul Ajar Kuliah

Buku Ajar Kuliah

Gambar 8.3 Alur pembuatan tabel Ms. Access (lanjutan)

2. Membuat Skema Relasi Antar Tabel
Skema relasi merupakan sebuah cara untuk merepresentasikan hubungan antara

satu tabel dengan tabel lainnya melalui sebuah kolom kunci. Pada skema relasi sebuah
primary key suatu tabel merupakan foreign key pada tabel lainnya. Kunci tersebut
selanjutnya dapat digunakan untuk membantu kita menggabungkan informasi dari
tabel-tabel yang terpisah. Terdapat sejumlah syarat yang harus terpenuhi sebelum
skema relasi dapat dibuat di access, antara lain:
a. Setiap tabel harus memiliki primary key,
b. Tipe data pada kolom primary key dan foreign key harus sama.

Tahapan untuk membuat skema relasi antara lain:
1) Klik tab Database Tools
2) Klik Relationships
3) Pada jendela Show Table, pilih nama tabel yang akan dibuat lalu klik Add.

Lakukan proses tersebut berulang-kali sampai seluruh tabel yang akan dibuat
skemanya muncul pada lembar Relationships.
4) Hubungkan satu tabel dengan tabel lainnya dengan melakukan klik+drag pada
foreign key tabel menuju primary key tabel referensinya.
5) Pada jendela Edit Relationships, centang pada ketiga kotak yang ada dan klik
Create.

49

6) Lakukan langkah 4 dan 5 berulang kali hingga seluruh tabel terhubung satu sama
lain (foreign key terhubung dengan primary key tabel referensinya). Skema relasi
yang terbentuk selanjutnya akan terlihat seperti Gambar 8.4.

Gambar 8.4 Skema relasi tabel
Terdapat sejumlah hal yang perlu diperhatikan pada jendela Edit Relationship, antara
lain:
 Enforce Referential Integrity: pilihan ini digunakan untuk memastikan bahwa

nilai foreign key tabel anak juga terdapat dalam primary key tabel referensinya
(tabel induk). Jika aturan ini dilanggar maka perekaman data tidak dapat
dilakukan (memunculkan pesan error).

50

 Cascade Update Related Fields: pilihan ini digunakan untuk mengupdate secara
otomatis foreign key pada tabel anak jika nilai primary key pada tabel induk
berubah.

 Cascade Delete Related Record: pilihan ini digunakan untuk menghapus foreign
key pada tabel anak jika primary key pada tabel induk dihapus.

51

Modul 9
Structured Query Language (SQL)

Capaian Pembelajaran
Setelah mengikuti materi pada modul sembilan diharapkan Mahasiswa mengetahui
tentang aplikasi Structured Query Language (SQL) dalam database:
a. Structured Query Language (SQL)
b. Data Definition Language (DDL)
c. Data Manipulation Language (DML)

a. Structured Query Language (SQL)
Bahasa Query terapan yang paling populer adalah Structured Query Language

(SQL). Bahasa ini sering diterapkan dalam berbagai development tools serta program
aplikasi ketika berinteraksi dengan basis data. Bahasa SQL ini sering digunakan
karena diakomodir oleh hampir semua Relational Database Management System
(RDBMS), yaitu software pengelolaan basis data yang akan menentukan bagaimana
data diorganisasi, disimpan, diubah, dan diambil kembali.

Ada banyak sekali bahasa basis data yang pernah dibuat untuk masing-masing
DBMS. Namun ahirnya yang menjadi standar adalah SQL. Istilah Query Language
memang tidak tepat sama dengan istilah bahasa basis data (Database Language).
Bahasa basis data terdiri atas Data Definition Language (DDL) dan Data
Manipulation Language (DML). DDL merujuk pada kumpulan perintah yang dapat
digunakan untuk mendefinisikan objek-objek basis data, seperti membuat sebuah
tabel basis data atau indeks primer/sekunder.

Sedang DML mengacu pada kumpulan perintah yang dapat digunakan untuk
melakukan manipulasi data, seperti penyimpanan data ke suatu tabel, lau kemudian
mengubahnya atau menghapusnya atau hanya sekedar menampilkannya kembali.
DML inilah yang sebenarnya lebih dekat dengan Query Language (QL). Perbedaan
antara DM dan QL terletak pada penekanannya. DML lebih ditekankan pada aspek
pengenaan operasi terhadap suatu data.

Operasi tersebut dapat berupa penyimpanan data baru ke dalam tabel,
pengubahan data lama yang telah ada di dalam tabel, penghapusan data lama yang

52

telah ada di dalam tabel atau hanya sekedar mengambil data dari dalam tabel.
Sedangkan QL ebih ditekankan pada aspek pencarian data dari dalam tabel. Aspek
pencarian ini sedemikian penting karena disitulah sebenarnya inti dari segenap upaya
kita melakukan pengelolaan data.

1. Struktur Data
Sebuah ekspresi SQL dasar sebenarnya terdiri dari 3 klausa, yaitu:
1. Klausa select: untuk menetapkan daftar atribut (field) yang diinginkan sebagai
hasil query.
2. Klausa from: untuk menetapkan tabel (atau gabungan tabel) yang akan
ditelusuri selama query data dilakukan.
3. Klausa where, (optional): sebagai predikat (kriteria) yang harus dipenuhi
dalam memperoleh hasil query.
Sintaks (cara penulisan) dari ekspresi SQL dasar dengan 3 klausa tersebut adalah
select A1 [, A2,…, An]
from t1 [ , t2,…, tm]
[ where P ]
dimana:
A1, A2,…, An merupakan daftar atribut
t1, t2,…, tm merupakan daftar tabel.
P merupakan predikat query
[ ] sifatnya optional.

1.1 Klausa Select
Jika ingin menampilkan NIM dan nama mhs yang ada di tabel Mahasiswa, maka
perintah SQL yang digunakan:

select nim, nama_mhs
from mahasiswa
bedakan dengan
select nama_mhs
from mahasiswa
atau
select distinct nama_mhs
from mahasiswa

53

Menampilkan hasil query berupa tabular, atribut yang disebutkan pada klausa
select akan dijadikan sebagai header. Kita dapat mengganti header dengan
menggunakan klausa as:

select nim, nama_mhs as nama,
alamat_mhs as alamat
from mahasiswa
Jika ingin melakukan query terhadap semua atribut yang ada pada tabel yang
disebutkan pada klausa from, kita dapat menuliskan keseluruhan atribut atau
dengan menggunakan notasi *.
select *
from mahasiswa

1.2 Klausa Where
Klausa ini berguna untuk menetapkan predikat atau kriteria yang harus dipenuhi
dalam memperoleh hasil query. Contoh:
Menampilkan semua atribut untuk mahasiswa dengan nim = ‘98002’

select *
from mahasiswa
where nim = ‘98002’
Tanda kutip tunggal digunakan terhadap nilai bertipe string.
Kita juga dapat mengkombinasikannya dengan operator penghubung lainnya (<,
<=, >, >=) dan mengkombinasikannya dengan operator logika (and, or, dan not).
Contoh:
select *
from kuliah
where semester = 3 and sks > 2
Melakukan query dengan kriteria berbentuk range dengan menggunakan
tambahan klausa between, missal ingin menampilkan record-record kuliah yang
diselenggarakan antara semester 3 hingga 5:
select *
from kuliah
where semester between 3 and 5
Khusus untuk atribut bertipe string, kita dapat melakukan pencarian dengan
memanfaatkan karakter ‘%’ (percent) atau ‘_’ (underscore) dan tambahan like

54

pada klausa where. Tanda ‘%’ berarti cocok untuk semua substring, Tanda ‘_’
berarti cocok untuk semua karakter pada posisi yang sesuai.

Berikut perintah untuk menampilkan record-record mahasiswa yang namanya
diawali dengan huruf ‘A’:

select *
from mahasiswa
where nama_mhs like ‘A%’
Menampilkan mahasiswa yang huruf/karakter kedua dari namanya adalah ‘a’:
select *
from mahasiswa
where nama_mhs like ‘_a%’
Menampilkan mahasiswa angkatan 1998 dengan memanfaatkan karakter ‘%’
pada klausa where:
select *
from mahasiswa
where nim like ‘98%’

1.3 Klausa From
Klausa ini digunakan untuk menetapkan tabel yang kita jadikan sebagai

sumber (lokasi) pencarian data. Upaya-upaya pencarian data yang kita inginkan
terkadang tidak hanya terdiri dari satu tabel melainkan beberapa tabel.

Misalnya ingin menampilkan data kuliah beserta dosen-dosen yang
mengajarkannya, maka query yang kita gunakan tidak hanya dari tabel kuliah
saja melainkan juga berada pada tabel dosen. Untuk memenuhi kebutuhan
keinginan itu kita dapat menggunakan ekspresi SQL:

select*
from kuliah, dosen
where kuliah.kode_dos = dosen.kode_dos
Syarat untuk melakukan query terhadap 2 tabel, harus memiliki hubungan
(relasi). Keterhubungan diwakili oleh kesamaan nilai pada atribut kode_dos dan
kita tahu bahwa atribut ini dimiliki oleh kedua tabel.

55

Kita dapat menggunakan nama alias untuk menyederhanakan penulisan tabel
pada klausa from.

select *
from kuliah k, dosen d
where k.kode_dos = d.kode_dos
Jika kita hanya ingin menampilkan atribut tertentu saja, maka nama tabel atau
aliasnya dapat digunakan untuk memperjelas asal atribut yang ditampilkan
tersebut. Misalnya:
select k.kode_kul, k.nama_kul, d.nama_dos
from kuliah k, dosen d
where k.kode_dos = d.kode_dos
Kode di atas dapat dikembangkan lagi misal dengan mengganti header, dan
menampilkan mata kuliah yang diselenggarakan di semester 3 saja.
select k.kode_kul as kode, k.nama_kul as kuliah, d.nama_dos as dosen
from kuliah k, dosen d
where k.kode_dos = d.kode_dos and k.semester = 3
Jika pelibatan tabel boleh lebih dari 2 tabel. Di tabel nilai misalnya, kita memiliki
nim, kode kuliah, dan indeks nilai. Jika kita ingin menampilkan nama
mahasiswa, nama mata kuliah dan indeks nilainya, maka kita harus melibatkan 3
tabel sekaligus dengan ekspresi SQL:
select n.nim, m.nama_mhs, k.nama_kul, n.indeks_nil
from nilai n, mahasiswa m, kuliah k
where n.nim = m.nim and n.kode_kul = k.kode_kul

1.4 Pengurutan Hasil Query
Jika kita ingin menampilkan hasil query berdasarkan atribut tertentu, maka

kita dapat menambahkan klausa order by.
Misalnya ingin menampilkan record-record mahasiswa berdasarkan urutan
namanya:

select *
from mahasiswa
order by nama_mhs
Urutan nama tersebut disusun secara menaik (abjad terkecil hingga terbesar). Jika
ingin menampilkan berdasarkan atribut tgl_lahir tapi secara menurun (dari

56

mahasiswa termuda sampai tertua), maka pada klausa order by disertakan klausa
desc:

select *
from mahasiswa
order by tgl_lahir desc

2. Fungsi Agregasi
Disamping menampilkan nilai-nilai atribut yang ada di dalam tabel, sering

juga ada kebutuhan untuk menampilkan data-data agregasi. Terdapat beberapa
contoh penggunaan fungsi agregasi diantaranya:
Menampilkan banyaknya record mahasiswa:

select count(*)
from mahasiswa
Menampilkan banyaknya mahasiswa Angkatan 98:
select count(*)
from mahasiswa
where nim like ‘98%’
Menampilkan total sks untuk kuliah di semester 2:
select sum(sks)
from kuliah
where semester = 2
Menampilkan rata-rata sks untuk semua mata kuliah:
select avg(sks)
from kuliah
Menampilkan indeks nilai terbesar untuk mata kuliah dengan kode kuliah
‘IF-110’:
select max(indeks_nilai)
from kuliah
where kode_kul = ‘IF-110’
Menampilkan tanggal lahir paling tua yang ada di tabel mahasiswa:
select min(tgl_lahir)
from mahasiswa
Fungsi agregasi dapat dikombinasikan denga klausa group by yang menyatakan
pengelompokan record-record hasil query.

57

Jika ingin menampilkan banyaknya record dan total sks untuk mata kuliah yang
dikelompokkan berdasarkan nilai semester:

select semester, count(*), sum(sks)
from kuliah
group by semester
order by semester

b. Data Definition Language (DDL)
Data Definition Language (DDL) berkaitan dengan perintah-perintah untuk

pendefinisian objek-objek basis data. Salah satu objek terpenting adalah tabel. Berikut
merupakan sintaks SQL untuk membuat tabel baru dalam basis data:

create table t (A1 D1, A2 D2,…, An Dn)
dimana:
t adalah nama tabel yang akan dibuat
A1, A2,…, An adalah nama atribut yang akan terdapat di dalam tabel t
D1, D2,…, Dn adalah domain nilai masing-masing atribut berdasarkan tipe
datanya.

Terdapat tipe data standar dalam SQL diantaranya:
- char(n), untuk atribut bernilai string dengan panjang tetap sebesar n karakter.
- varchar(n), untuk atribut bernilai string dengan panjang fleksibel, tapi maksimum

panjang sebesar n.
- int atau integer, untuk atribut bernilai integer 2 byte.
- smallint, untuk atribut bernilai integer 1 byte.
- numeric(p,d), untuk atribut bernilai pecahan fixed point dengan panjan p dijit, d

dijit bil. Pecahan
- real, double precision, untuk atribut bernilai pecahan floating-point.
- float(n), atribut bernilai pecahan floating-point dengan presisi n dijit.
- date, atribut bernilai penanggalan
- time, atribut bernilai waktu

Contoh perintah SQL untuk membuat tabel Mahasiswa:
create table mahasiswa
(nim char(6),

58

nama_mhs varchar(30),
alamat_mhs varchar(60),
tgl_lahir date)

Tabel yang telah dibuat dapat dibatalkan (hapus) dengan perintah:
drop table t

Contoh: drop table mahasiswa

Contoh ekspresi SQL untuk pembuatan tabel Mahasiswa dengan menyertakan
primary key berdasarkan nim:

create table mahasiswa
(nim char(6),
nama_mhs varchar(30),
alamat_mhs varchar(60),
tgl_lahir date,
primary key(nim))

Jika jumlah atribut yang membentuk primary key lebih dari satu seperti yang ada di
tabel Nilai, maka printah SQL-nya:

create table nilai
(nim char(6),
kode_kul char(6),
indeks_nilai char(1),
primary key (nim, kode_kul))

Struktur sebuah tabel juga dapat diubah tanpa harus menghapus dan membuat
definisi struktur baru. Perintah pengubahan struktur selain lebih praktis, juga tidak
mengakibatkan hilangnya data. Sintaks SQL untuk perubahan struktur tabel berupa
penambahan atribut baru ke dalam tabel t:

alter table t add A D
dimana t mewakili nama tabel, A mewakili nama atribut dan D mewakili tipe data
untuk atribut A. Sedangkan untuk penghapusan atribut dari tabel t, sintaks SQL-nya
adalah:

alter table t drop A

59

Contoh ekspresi SQL untuk penambahan atribut baru bernama ip di tabel Mahasiswa:
alter table mahasiswa add ip numeric(5,2)

Jika atribut ip ingin dihapus dari tabel Mahasiswa, ekspresi SQL-nya:
alter table mahasiswa drop ip

c. Data Manipulation Language (DML)
SQL juga dilengkapi dengan perintah untuk manipulasi data yang meliputi

penambahan record baru, pengubahan nilai atribut, dan penghapusan record dalam
suatu tabel.

1. Penambahan Record
sintaks SQL untuk melakukan penambahan record pada sebuah tabel adalah:
select into t[(A1, A2,…, An)]
values (v1, v2,…, vn)
dimana:
t adalah nama tabel yang akan mengalami penambahan record
A1, A2,…,An adalah nama atribut yang akan diisi nilai
v1, v2,…,vn adalah nilai yang akan mengisi atribut-atribut tersebut.

Contoh perintah SQL untuk menambahkan record baru ke tabel mahasiswa:
insert into Mahasiswa (nim, nama_mhs, alamat_mhs, tgl_lahir)
values (‘980011’, ‘Rizky’, ‘Jl. Gn. Kelua 12, Smd’, ’13/03/1999’)

Bagaimana hasilnya jika:
insert into Mahasiswa (nim, nama_mhs, alamat_mhs)
values (‘980011’, ‘Rizky’, ‘Jl. Gn. Kelua 12, Smd’)

2. Pengubahan Record
Sintaks SQL untuk melakukan pengubahan nilai atribut pada suatu record dari
sebuah tabel.
update t
set assignment
[where P]
dimana:

60

- t adalah nama tabel yang akan mengalami perubahan
- assignment adalah ekspresi pemberian nilai baru untuk atribut yang

akan diubah.
- P merupakan kriteria untuk pemilihan record yang akan dikenai
perubahan, jika klausa where tidak digunakan maka perubahan akan
dilakukan pada semua record pada tabel t.
Contoh pengubahan nilai atribut sks untuk mata kuliah tertentu dengan
perintah SQL:
update kuliah
set sks = 4
where kode_kul = ‘IF-310’
Perintah update juga dapat melakukan perubahan dengan mengacu pada nilai
atribut lama, misalnya ingin menambahkan nama gelar di depan nama dosen
tertentu:
update dosen
set nama_dosen = ‘Prof. ‘ + nama_dosen
where kode_dosen = 2
Perintah update tanpa klausa where akan dilakukan perubahan pada semua
record.

3. Penghapusan Record
Sintaks SQL untuk penghapusan record dari sebuah tabel adalah:
delete from t
[where P]
dimana:
t adalah nama tabel yang akan mengalami penghapusan record
P merupakan kriteria untuk menentukan record mana saja yang akan dikenai
penghapusan, jika klausa where tidak digunakan maka penghapusan akan
dilakukan pada semua record dalam tabel t.

Contoh perintah SQL untuk menghapus record kuliah tertentu:
delete from kuliah
where kode_kul = ‘IF-310’

Jika ingin menghapus beberapa record di tabel Kuliah:

61

delete from kuliah
where kode_kul like ‘MA%’
Jika ingin menghapus semua record dari tabel Kuliah:
delete from kuliah

62

Modul 10
Komponen DBGrid dan StringGrid

Capaian Pembelajaran
Setelah mengikuti materi pada modul sepuluh diharapkan Mahasiswa mengetahui
tentang Komponen DBGrid dan StringGrid.

a. Komponen DBGrid
Komponen SQLTransaction dan SQLQuery dapat digunakan untuk semua

database yang didukung oleh SQLdb. Untuk menampilkan database, dapat
menggunakan komponen DBGrid yang tersedia dalam Data Controls. Lalu untuk
menghubungkan komponen DBGrid , diperlukan komponen Datasource yang tersedia
dalam Data Access. Selanjutnya adalah menghubungkan komponen DBConnection,
SQLTransaction, SQLQuery , DBGrid , dan Datasource.

Pada properti IBConnection, ubah Transaction menjadi ’SQLTransaction1’. Lalu
ubah properti Database pada SQLQuery menjadi ’IBConnection1’ dan properti
Transaction menjadi ’SQLTransaction1’. Kemudian ubah pula properti Dataset pada
Datasource menjadi ’SQLQuery1’. Terakhir, properti Datasource pada DBGrid
diubah menjadi ’DataSource1’.

Setelah komponen-komponen terhubung, lalu buat 1 buah Button dan atur seperti
Gambar 10.1. Selanjutnya tambahkan OnClick Event pada Button dengan sintaks
berikut:

SQLQuery1.Close;
SQLQuery1.SQL.Text:= 'select * from ENTITAS';
IBConnection1.Connected:= True;
SQLTransaction1.Active:= True;
SQLQuery1.Open;
DBGrid1.AutoFillColumns:=True; //opsional

Gambar 10.1 Komponen-komponen yang terhubung ke DBGrid

63

Gambar 10.2 Jendela “Editing SQL”

Untuk mengetahui bagaimana komponen SQL Query bekerja, tekan edit pada

properti SQL dalam SQLQuery. Maka akan muncul jendela “Editing SQL”, lalu

tambahan sintaks seperti pada Gambar 10.2. Untuk mengetahui hasilnya, tekan tanda

segitiga hijau (Run SQL code).

b. Komponen StringGrid

Berbeda dengan DBGrid, komponen StringGrid merupakan komponen yang

dapat digunakan untuk menyajikan (memodifikasi) database secara langsung sesuai

keinginan Pengguna. Beberapa properti yang sering digunakan adalah ColCount,

RowCount, dan Cells[kolom, baris]. Materi ini menggunakan database yang

disediakan oleh Firebird, yaitu ”employee.fdb”. Koneksikan database tersebut dengan

Lazarus. Lalu tambahkan 1 Button dengan sintaks berikut:

procedure TForm1.Button1Click(Sender: TObject);
var

i,m,n:integer;
gl,gb:Double;
begin
SQLQuery1.Close;
SQLQuery1.SQL.Text:='select old salary as gaji lama, new salary as gaji
baru from salary history';
SQLQuery1.Open;
SQLQuery1.Last;

m:=SQLQuery1.FieldCount;
n:=SQLQuery1.RecordCount;
StringGrid1.ColCount:=m+1;
StringGrid1.RowCount:=n+1;
StringGrid1.AutoFillColumns:=True;
StringGrid1.Cells[0,0]:='No.';
StringGrid1.Cells[1,0]:='Gaji Sebelum';
StringGrid1.Cells[2,0]:='Gaji Sesudah';
SQLQuery1.First;

for i:=1 to n do
begin

gl:=SQLQuery1.FieldByName('gaji lama').AsFloat;
gb:=SQLQuery1.FieldByName('gaji baru').AsFloat;

StringGrid1.Cells[0,i] := IntToStr(i);
StringGrid1.Cells[1,i] := FloatToStr(gl);
StringGrid1.Cells[2,i] := FloatToStr(gb);
SQLQuery1.Next;
end;
end;

64

Modul 11
Komponen DBNavigator dan DBEdit

Capaian Pembelajaran
Setelah mengikuti materi pada modul sebelas diharapkan Mahasiswa mengetahui
tentang komponen DBNavigator dan DBEdit.

Selain DBGrid untuk menampilkan database juga dapat menggunakan
DBNavigator dan DBEdit. Kedua komponen ini juga dapat dipadukan dengan
komponen DBGrid. Komponen DBNavigator dan DBEdit tersedia daam Data
Controls.

Gambar 10.3 Komponen DBNavigator

DBNavigator digunakan untuk menavigasi melalui dataset dalam merespon
query yang dikirim ke database. Pada Gambar 10.3 dapat dilihat bahwa komponen
DBNavigator terdiri dari beberapa tombol yakni First, Prior, Next, Last, Insert,
Delete, Edit, Post, Cancel, dan Refresh. Namun pada saat mendesain tombol-tombol
tersebut dapat ditampilkan atau disembunyikan dengan menyesuaikan properti
VisibleButtons. Untuk menghubungkan komponen DBNavigator dengan DBGrid,
maka pada properti Dataset pada Datasource menjadi “SQLQuery1” dan properti
Datasource pada DBNavigator diubah menjadi “DataSource1”. Selanjutnya adalah
menyesuaikan komponen-komponen tersebut seperti pada Gambar 10.4.

Gambar 10.4 Desain Form

65

Hal yang menarik dari pembahasan DBNavigator ini adalah perhitungan
banyaknya data. Untuk menghitung banyaknya data dalam dataset, gunakan fasilitas
RecordCount yang disediakan oleh SQLQuery. Nilai yang dihasilkan oleh
RecordCount menunjukkan banyaknya data yang dimuat dari server. Untuk alasan
performa, komponen SQLdb tidak membaca semua data ketika membuka SQLQuery.
Dalam hal ini, hanya 10 data saja yang tersedia. Sehingga untuk mengetahui
banyaknya data dalam server, gunakan navigasi Last lalu panggil RecordCount.

Gambar 10.5 Desain Form
Untuk lebih jelasnya, ganti komponen DBNavigator dengan 4 buah Button
dengan Caption masing-masing First, Prior, Next, dan Last. Lalu tambahkan 1 Label
dan Button tambahan (yang digunakan untuk menghitung banyak data). Kemudian
tambahkan beberapa procedure berikut.

procedure TForm1.Button1Click(Sender: TObject);
begin
SQLQuery1.First;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
SQLQuery1.Prior;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
SQLQuery1.Next;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
SQLQuery1.Last;
end;
procedure TForm1.Button5Click(Sender: TObject);
var n:integer;
begin
n:=SQLQuery1.RecordCount;
Label1.Caption:='Banyaknya data = '+IntToStr(n);
end;

66

Selanjutnya sesuaikan komponen-komponen tersebut dengan mengikuti Gambar 10.5,
lalu perhatikan hasil output-nya.

Komponen selanjutnya adalah DBEdit. Komponen DBEdit menunjukkan satu
entri database dalam kotak edit. Oleh karena itu, komponen ini cocok sekali ketika
dipadukan dengan komponen DBNavigator. Untuk lebih jelasnya, isikan properti SQL
pada komponen SQLQuery dengan sintaks berikut.

select * from entitas;

Lalu tambahkan 3 DBEdit. Kemudian ubah properti Datasource pada masing-masing
DBEdit menjadi “DataSource1”. Selanjutnya pilih DataField sesuai atribut yang ingin
ditampilkan. Terakhir, atur komponen-komponen tersebut seperti pada Gambar 10.6.

Gambar 10.6 Desain Form

67

Modul 12
Memanipulasi Database dengan Query

Capaian Pembelajaran
Setelah mengikuti materi pada modul sebelas diharapkan Mahasiswa mengetahui
tentang proses memanipulasi database dengan Query.

Perintah yang termasuk dalam memanipulasi data meliputi menambah,
menghapus, dan memperbaharui. Berikut adalah contoh sintaks untuk menambahkan
data.

SQLQuery1.SQL.Text:='insert into entitas values (''teks'',1234)';

Cara lain untuk menambahkan data adalah menggunakan parameter dalam query.

SQLQuery1.SQL.Text:='insert into entitas values (:a,:b)';
SQLQuery1.Params.ParamByName('a').AsString:='teks';
SQLQuery1.Params.ParamByName('b').AsInteger:=1234;

Hal ini sangat berguna ketika ingin menambahkan data yang berasal dari komponen
Lazarus yang lain. Perhatikan sintaks berikut.

SQLQuery1.SQL.Text:='insert into entitas values (:a,:b)';
SQLQuery1.Params.ParamByName('a').AsString:=Edit1.Text;
SQLQuery1.Params.ParamByName('b').AsInteger:=StrToInt(Edit2.Text);

Seperti penjelasan pada materi sebelumnya, bahwa jika ingin memanipulasi data
(menambah, menghapus, dan memperbaharui) maka dalam bahasa SQL
menggunakan perintah COMMIT. Jika ingin melakukan perintah ini dalam Lazarus,
maka gunakan sintaks berikut setelah data dimanipulasi.

SQLQuery1.ExecSQL;
SQLTransaction1.Commit;

68

Modul 13
LazReport

Capaian Pembelajaran
Setelah mengikuti materi pada modul sebelas diharapkan Mahasiswa mengetahui
tentang penggunaan komponen LazReport.

Komponen LazReport dapat melihat dan mencetak data yang disusun dengan baik.
Namun komponen ini biasanya belum terinstall, sehingga harus diinstall terlebih
dahulu. Dari menu Package, klik submenu Install/Uninstall Packages. Lalu pada
editor Available for installation, ketik lazreport dan klik Install selection. Jika
berhasil, maka komponen LazReport akan muncul dalam beberapa menit.

Komponen utama yang akan digunakan adalah frDBDataSet, frReport dan
frDesigner. Letakkan ketiga komponen tersebut pada form, lalu tambahkan beberapa
komponen pendukung sehingga form akan tampak seperti pada Gambar 13.1. Materi
ini menggunakan database yang disediakan oleh Firebird, yaitu ”employee.fdb”.
Koneksikan database tersebut dengan Lazarus. Lalu pada komponen SQLQuery,
tambahkan sintaks berikut untuk properti SQL:

select * from employee;

Kemudian properti DataSource pada frDBDataSet diubah menjadi ’DataSource1’.

Gambar 13.1 Desain Form

Klik dua kali pada ikon TfrReport (atau klik kanan, Design Report) untuk
menampilkan perancangan report seperti pada Gambar 13.2.

69

Gambar 13.2 Dialog Report Designer
LazReport memungkinkan kita untuk menautkan nama variabel ke bidang database
atau nilai sistem. Pada contoh berikut, kita akan membuat variabel untuk database
yang kita miliki meliputi NAMA_AWAL, NAMA_AKHIR dan sebagainya. Pada
menu File, klik Variable list. Maka kita dapat melihat gambaran umum tentang
variabel yang ditentukan seperti yang terlihat pada Gambar 13.3.

Gambar 13.3 Dialog Variable: Editor

Klik tombok Variables untuk mendefinisikan beberapa variabel seperti yang
ditunjukkan pada Gambar 13.4.

Gambar 13.4 Dialog Variable list

70

“Variabel baru” menyatakan suatu kategori, sedangkan entri-entri yang berada di
bawahnya menyatakan variabel. Pendefinisian variabel di awali dengan 1 spasi.
Selanjutnya, setiap variabel harus dihubungkan dengan suatu field. Pilih variabel, lalu
pilih field yang sesuai, maka akan tampak seperti pada Gambar 13.5. Lakukan hal
yang sama untuk semua variabel.

Gambar 13.5 Pencocokan variabel dan field
Setelah menutup variable editor, kita kembali kepada report designer. Selanjutnya
kita dapat menggunakan object bar. Posisi object bar terletak pada sisi kiri dari report
designer. Objek-objek tersebut terdiri dari pointer, object, band, picture object,
subreport, draw lines, TlrCrossView dan barcode object. Klik objek band, lalu klik
pula pada report surface. Setelah itu muncul beberapa tipe band seperti pada Gambar
13.6.

Gambar 13.6 Tipe-tipe band
Tipe band pertama yang akan dipelajari adalah Report title. Pilih tipe band ini lalu
letakkan pada rectangle object di atasnya. Setelah itu, akan muncul text editor. Untuk
meletakkan tanggal saat ini, pilih variable lalu pilih kategori other kemudian Date
seperti pada Gambar 13.7.

71

Gambar 13.7 Cara memilih tanggal sekarang
Untuk mengatur hasil tampilan, pilih format pada text editor. Misalkan ingin
mengatur tampilan tanggal seperti pada Gambar 13.8. Selanjutnya menyesuaikan
dengan Gambar 13.9.

Gambar 13.8 Jendela variable formatting

Gambar 13.9 Desain text editor
Tipe band selanjutnya adalah master data. Pilih frDBDataset sebagai data source
seperti pada Gambar 13.10

72

Gambar 13.10 Data source untuk master data band

Tipe band ini akan mengulang setiap record dalam data source. Untuk menambahkan
beberapa field, tambahkan rectangle object di atasnya. Tambahkan beberapa variabel
dengan kategori “Variabel baru”. Untuk perhitungan numerik, dapat menggunakan
function seperti pada Gambar 13.11.

Gambar 13.11 Menambahkan ekspresi pada text editor
Setelah membuat desain dasar untuk report, saatnya mengetahui hasil tampilan. Dari
menu File, pilih preview (tahan Ctrl+P dari keyboard ). Contoh hasil tampilan report
dapat dilihat pada Gambar 13.12.

Gambar 13.12. Tampilan report

73

Report yang telah dibuat dapat dicetak dengan menambahkan “Printer4Lazarus”

package. Tambahkan 1 Button dan 1 PrintDialog. Pada komponen Button, tambahkan

OnClick event lalu beri sintaks berikut:

procedure TForm1.TombolPrintClick(Sender: TObject);
var

FromPage, ToPage, NumberCopies: Integer;
ind: Integer;
Collap: Boolean;
begin
// Load report definition from application directory
AppDirectory:=ExtractFilePath(ParamStr(0));
frReport1.LoadFromFile('latihanlazreport.lrf');
// Need to keep track of which printer was originally selected to check
for user changes
ind:= Printer.PrinterIndex;
// Prepare the report and just stop if we hit an error as continuing

makes no sense
if not frReport1.PrepareReport then Exit;
// Set up dialog with some sensible defaults which user can change
with PrintDialog1 do
begin

Options:=[poPageNums ]; // allows selecting pages/page numbers
Copies:=1;
Collate:=true; // ordened copies
FromPage:=1; // start page
ToPage:=frReport1.EMFPages.Count; // last page
MaxPage:=frReport1.EMFPages.Count; // maximum allowed number of

pages
if Execute then // show dialog; if succesful, process user feedback
begin

if (Printer.PrinterIndex <> ind ) // verify if selected printer
has changed
or frReport1.CanRebuild // ... only makes sense if we can

reformat the report
or frReport1.ChangePrinter(ind, Printer.PrinterIndex)

//...then change printer
then
frReport1.PrepareReport //... and reformat for new printer
else
exit; // we could not honour the printer change

if PrintDialog1.PrintRange = prPageNums then // user made page
range selection

begin
FromPage:=PrintDialog1.FromPage; // first page
ToPage:=PrintDialog1.ToPage; // last page

end;
NumberCopies:=PrintDialog1.Copies; // number of copies
// Print the report using the supplied pages & copies
frReport1.PrintPreparedReport(inttostr(FromPage)+'−'+inttostr
(ToPage), NumberCopies);
end;
end;
end;

74

Daftar Pustaka

Fathansyah. (2012). Basis Data, Edisi Revisi. Bandung: Informatika.
Rizki, N.A. (2016). Catatan Kuliah Pemrograman Visual.Samarinda: Universitas

Mulawarman.
Rizki, N.A., Amijaya, F.D.T. (2019). Lecture Notes Database System (Sistem Basis

Data). Samarinda: Universitas Mulawarman.
Rockoff, L. (2017). The Language of SQL, Second Edition. New York: Addison

Wesley.
http://wiki.lazarus.freepascal.org.

75


Click to View FlipBook Version