Anda di halaman 1dari 13

Perancangan basis data

3 Diagram/Metode Entity Relationship -ER(hubungan antar entitasi)


§ Berisi komponen himpunan entitas dan relasi yang masing2 dilengkapi dengan atribut yg mewakili seluruh fakta dari
duia nyata yg ditinjau
§ Menggunakan jenis relasi antar tabel untuk menentukan kunci penghubungnya/penyelesaian basis datanya.

3.1 Istilah
Relationship :keterkaitan/hubungan
Entitas (entity) : satu kesatuan data tentang suatu hal/obyek/peristiwa
Relasi : - hubungan
- tabel
Kamus Data : atribut yang melekat pada suatu entitas
Atribut : sebutan untuk data tersebut
Kunci primer (primary key) : filed atau kumpulan field yang mengidentifikasi/mewakili record dalamsuatu tabel
Kunci tamu/asing (foreign key) : atribut/field yang menunjuk/menghubungkan ke kunci primer tabel lain.

3.2 Simbol-simbol yang dipakai dalam metode ini

3.2.1 Model 1

Nama
entitas : simbol entitas

: simbol relasi/hubungan antar entitas

3.2.2 Model 2

Nama entitas : himpunan entitas (atau disebut entitas saja)

atribut : atribut anggota

atribut
: atribut kunci (key)

: hubungan/relasi

: himpunan relasi

1
3.3 Tahapan
[1] Penyusunan Kamus Data dan pengelompokan dalam entitas (obyek/hal/persitiwa)
[2] Penentuan jenis relasi
[3] Penentuan kunci penghubung
[4] Penyusunan Diagam ER
[5] Implementasi (coding/pembuatan program)

3.3.1 Penyusunan Kamus Data dan pengelompokan dalam entitas


Misal : Database untuk penyimpanan data buku di Perpustakaan

Buku Penerbit Pengarang


Judul buku Nama Penerbit Nama
Jumlah Alamat Penerbit Pengarang
Tahun E_mail

3.3.2 Penentuan jenis relasi (derajad kardinalitas) dan penyelesaian relasinya


Jenis relasi atau disebut juga derajad kardinalitas pada Diagram ER ini memiliki 3 jenis
[1] One to One Relationship (OOR) –Relasi satu ke Satu
Disebut relasi OOR bila satu record pada entitas/tabel terkait hanya dengan satu record denhan tabel yang lain. Begitu juga sebalikya

Misal :
Nama Ayah Nama Ibu
nama alamat

mahasiswa 1 memiliki 1 Orang tua

Alamat ortu

Solusi
Kedua entitas/tabel dapat DIGABUNGKAN

Pada basis data, untuk menentukan relasi bersifat PENDEKATAN, dicari


kecenderungan yang paling besar

Kesepadanan istilah
Konsep/teori Implementasi
Entitas Tabel
Atribut/kolom Field/Column
Baris (row) Record/Row

4 SQL – Structured Query Language


4.1 Pengertian
SQL merupakan subbahasa pemrograman yang khusus dipergunakan untuk memanipulasi basis data.
SQL adalah salah satu DBMS (database management system) yang saat ini banyak digunakan untuk operasi basis data dan embedded
(ditempelkan) di hampir semua bahasa pemrograman yang mendukung basis data relasional.

2
Perbedaan penggunaan SQL pada masing-masing bahasa biasanya pada sintaks2 khusus. Misalnya : INSERT INTO … VALUE. Pada bahasa
yang lain INSERT INTO …VALUES…, dll.
Bahasa yang mendukung SQL antara lain : V Basic, C++ Builder,Delphi, ORACLE, MySQL,PostGreeSQL,JAVA,dll

4.2 Kategori
SQL memiliki 3 kategori perintah
1. Data Definition Language (DDL), yakni perintah2 yang digunakan untuk mendefinisikan (menciptakan, tambah/mengubah/hapus) sturktur
data/tabel
2. Data manipulation language (DML), yakni perintah yang digunakan untuk memanipulasi database (melihat, menenusuri, filtering, summarize,
perhitungan, dll)
3. Data Control Language (DCL, digunakan untuk mengedalikan database

4.3 DDL
v perintah-perintah dibawah ini menggunakan standar MySql, karena saat ini banyak digunakan pada berbagai aplikasi
[2] Menciptakan database

CREATE DATABASE nama_database

[3] Menciptakan tabel

CREATE TABLE nama_tabel(nama_field1 jenis_data1(lebar1), nama_field2 jenis_data2(lebar2), )


v lebar à jumlah byte/karakter maksimal pd field tersebut
[4] Mengubah field
ALTER TABLE nama_tabel CHANGE field1 field2 jenis_data( lebar )
v Field1 : field lama
v Field2: field Baru

[5] Menambah field


ALTER TABLE nama_tabel ADD nama_field jenis_data( lebar )
[6] Menghapus field

ALTER TABLE nama_tabel DROP field


v field à nama field yg dihapus.

4.4 Data Manipulation Language


Contoh :
Contoh terdapat database: Mahasiswa
Dengan tabel sbb

Pribadi Jurusan
*Nomhs *Kodejur
Nama Namajur
Ketua
**Kodejur

Tabel : Pribadi Tabel : jurusan


Nomhs Nama **Kodejur *Kodejur NamaJur Ketua
210100 Rina Gunawan 2 1 Sistem Informasi Harnaningrum,S.Si
210090 Gani Suprapto 1 2 Teknik Informatika EnnySela,S.Kom.,M.Kom
210012 Alexandra 2 3 Teknik Komputer Berta Bednar,S.Si,M.T.
210099 Nadine 3
210002 Rizal Samurai 1

4.4.1 Membaca/mengambil (dari disk/storage ke memori) isi tabel

3
[7] Semua record semua field

SELECT * FROM tabel

Contoh:
SELECT * FROM Pribadi

Hasil :
Nomhs Nama Kodejur
210100 Rina Gunawan 2
210090 Gani Suprapto 1
210012 Alexandra 2
210099 Nadine 3
210002 Rizal Samurai 1

[8] Semua record, field tertentu

SELECT field1, field2, FROM tabel


Contoh :
SELECT nomhs,nama FROM Pribadi

Hasil :

Nomhs Nama
210100 Rina Gunawan
210090 Gani Suprapto
210012 Alexandra
210099 Nadine
210002 Rizal Samurai

[9] Menyaring data (filtering)


Agar data yang diambil sesuai dengan kebutuhan (pada contoh diambil semua field)

v Dengan 1 kriteria/kondisi
SELECT * FROM tabel WHERE kondisi
Catatan :
Kondisi =
field [ =,>,<,>=,<=,!=] kunci
[ ] = pilih salah satu dari operator relasi
Field : nama field dimana data disaring
Kunci : nilai/data sebagai kunci penyaringan

Contoh :
SELECT * FROM Pribadi WHERE nama=”Nadine”

Hasil :
Nomhs Nama Kodejur
210099 Nadine 3

v Dengan >1 kriteria/kondisi

SELECT * FROM tabel WHERE kondisi1 {AND,OR,XOR,NOT} kondisi2 ..


{ } : opeartor logika

Contoh :
SELECT * FROM Pribadi WHERE nama=”Nadine” OR kodejur=”2”

Hasil :

Nomhs Nama Kodejur


210100 Rina Gunawan 2
210012 Alexandra 2
210099 Nadine 3

v Menyaring data dengan karakter tengah

SELECT * FROM tabel WHERE field LIKE %kunci%

4
% : wildcard/ diabaikan
%kunci : karakter didepan kunci diabaikan
Kunci% : karakter dibelakang kunci diabaikan
%kunci%:karakter didepan dan dibelakang kunci diabaikan

Contoh :
SELECT * FROM Pribadi WHERE nama LIKE “%ra%”

Hasil :
Nomhs Nama Kodejur
210090 Gani Suprapto 1
210012 Alexandra 2
210002 Rizal Samurai 1

[10] Relasi antar tabel


Digunakan untuk menghubungkan antar satu tabel dengan tabel lainnya. Kedua tabel akan ber relasi bila nilai data dari kedua tabel tersebut sama

SELECT * FROM tabel1,tabel2 WHERE tabel1.kunci tamu= tabel2.kunci primer


v Tabel1.kunci tamu dan tabel2.kunci primer dapat dibalik sesuai keadaan relasi yang sesunguhnya

Contoh :
SELECT * FROM Pribadi,jurusan WHERE pribadi.kodejur=jurusan.kodejur

Nomhs Nama Kodejur *Kodejur NamaJur Ketua


210100 Rina Gunawan 2 2 Teknik Informatika EnnySela,S.Kom.,M.Kom
210090 Gani Suprapto 1 1 Sistem Informasi Harnaningrum,S.Si
210012 Alexandra 2 2 Teknik Informatika EnnySela,S.Kom.,M.Kom
210099 Nadine 3 3 Sistem Informasi Harnaningrum,S.Si
210002 Rizal Samurai 1 1 Sistem Informasi Harnaningrum,S.Si

SELECT nomhs,nama,namajur FROM Pribadi,jurusan WHERE pribadi.kodejur=jurusan.kodejur


Hasil :
Nomhs Nama NamaJur
210100 Rina Gunawan Teknik Informatika
210090 Gani Suprapto Sistem Informasi
210012 Alexandra Teknik Informatika
210099 Nadine Sistem Informasi
210002 Rizal Samurai Sistem Informasi

SELECT nomhs,nama,namajur FROM Pribadi,jurusan WHERE pribadi.kodejur=jurusan.kodejur AND


Namajur=”Teknik Informatika”

Hasil :
Nomhs Nama NamaJur
210100 Rina Gunawan Teknik Informatika
210012 Alexandra Teknik Informatika

[5] Pengurutan
SELECT * FROM tabel1 .... ORDER BY field ASC/DESC
v ..: jenis tabel dapat tabael tunggal maupun berrelasi
v Field : kunci pengurutan
v ASC : urut naik default DSC : urut turun
Contoh:
SELECT Nomhs,Nama FROM Pribadi ORDER BY nama

Hasil :
Nomhs Nama
210012 Alexandra
210090 Gani Suprapto
210099 Nadine
210100 Rina Gunawan
210002 Rizal Samurai

[6] Summarizing/perhitungan/Recapitulation
Yakni untuk perhitungan baik yang bersifat statistik, penjumlahan , dan lain sebagainya

5
v Menghitung jumlah record
SELECT COUNT(*) FROM tabel [kondisi] [relasi]

[kondisi] dan [relasi] : bila diperlukan


Contoh :
SELECT COUNT(*) FROM Pribadi

Hasil :
COUNT(*)
5 ßjumlah record pada tabel pribadi

SELECT ”Jumlah Mhs TI :”, COUNT(*) FROM Pribadi ,Jurusan WHERE


Pribadi.kodejur=jurusan.kodejur AND namaJur=”Teknik Informatika”

Hasil :
Jumlah Mhs TI : 2

v Menjumlah suatu field


SELECT SUM(field) FROM tabel [kondisi] [relasi]
Tabel pribadi ditambah dengan field jumsks (jumlha sks yg telah ditempuh)
Tabel : Pribadi
Nomhs Nama **Kodejur jumsks
210100 Rina Gunawan 2 100
210090 Gani Suprapto 1 90
210012 Alexandra 2 58
210099 Nadine 3 110
210002 Rizal Samurai 1 77

Contoh :
SELECT SUM(jmsks) FROM Pribadi

Hasil :
i. ß hasil penjumlahan kolom jumsks

v Menghitung rata-rata
SELECT AVG(field) FROM tabel [kondisi] [relasi]
Contoh :
SELECT AVG(jmsks) FROM Pribadi

Hasil :
87 ß hasil rata-rata

v Mengetahui data/nilai maksimum/minimum


SELECT MAX(field) FROM tabel [kondisi] [relasi] atau
SELECT MIN(field) FROM tabel [kondisi] [relasi]

Contoh :
SELECT MAX(jmsks) FROM Pribadi

Hasil :
87 ß hasil rata-rata

v Kalkulasi
Ø Misal Hitung UMUR (dihiutng dari tanggal lahir)
SELECT field1,field 2, , current_DATE-tgl lahir FROM tabel [kondisi] [relasi]

Ø Misal Hitung UMUR rata-rata (dihitung dari tanggal lahir)

SELECT AVG(current_DATE-tgl lahir)/10000 FROM tabel [kondisi] [relasi]

Tabel pribadi ditambah dengan field tgl_lahir


Tabel : Pribadi
Nomhs Nama **Kodejur jumsks Tgl_lahir
210100 Rina Gunawan 2 100 1990-12-21
210090 Gani Suprapto 1 90 1985-10-24
210012 Alexandra 2 58 1989-03-30

6
210099 Nadine 3 110 1998-04-35
210002 Rizal Samurai 1 77 1987-10-10

Contoh :
SELECT Nama,(current_date()-tgl_lahir)/10000 as umur FROM Pribadi

@ Current_date() : tanggal saat ini (misal : 2007-12-12)


Hasil :
Nama Umur
Rina Gunawan 17
Gani Suprapto 22
Alexandra 18
Nadine 19
Rizal Samurai 20
(Umur dibulatkan )

SELECT “Umur rata-rata : “, AVG( (current_date()-tgl_lahir)/10000) FROM Pribadi

Hasil :
Umur rata-rata : 19,2

[7] Pengelompokan
SELECT * FROM tabel GROUP BY field
v Pengelompokkan dengan GROUP BY digunakan
§ Mengelompokkan atas dasar field tertentu, dan record hanya muncul 1 kali
§ Banyak digunakan untuk keperluan summarizing

SELECT * FROM tabel GROUP BY field HAVING kondisi


v HAVING digunakan untuk filter hasil dari pengelompokkan

[8] Pengelopokkan dan summarizing


Bila rekapitulasi atas dasar kelompok/ group maka perintah no [6] dan [7] harus di kombinasikan.
Contoh :
§ Menghitung jumlah mahasiswa tiap jurusan

SQL :
SELECT namajur,COUNT(*) FROM mhs, jurusan
WHERE mhs.kodejur=jurusan.kodejur
GROUP BY namajur à atau GROUP BY ketua

Hasil :
Namajur COUNT(*)
Teknik Informatika 2
Sistem Informasi 2
Teknik Komputer 1

[9] Multi relasi


Multi relasi yaitu bila suatu tabel berrelasi dengan banyak tabel sekaligus
Misal :

Pribadi Jurusan
*Nomhs *Kodejur
Namajur
Nama Ketua
**Kodejur

Nilai MataKuliah
**Nomhs *kodemk
**kodemk namamk
Tahun semester
nilai sks

7
Menampilkan daftar nilai mahasiswa

SELECT Namajur,nomhs,nama, kodemk,namamk,sks, nilai


FROM Pribadi,Nilai,MataKuliah
WHERE Relasi tabel Nilai dg MataKuliah
Nilai.kodemk=MataKuliah.kodemk AND
Nilai.nomhs=pribadi.nomhs AND
Pribadi.kodejur=Jurusan.kodejur Relasi tabel Nilai dg Pribadi

Relasi tabel pribadi dg jurusan

[10] Relasi dengan JOIN


Contoh data di tambah :

Tabel : Pribadi Tabel : jurusan


Nomhs Nama **Kodejur *Kodejur NamaJur Ketua
210100 Rina Gunawan 2 1 Sistem Informasi Harnaningrum,S.Si
210090 Gani Suprapto 1 2 Teknik Informatika EnnySela,S.Kom.,M.Kom
210012 Alexandra 2 3 Teknik Komputer Berta Bednar,S.Si,M.T.
210099 Nadine 3 4 Manajemen Ir Sudarmanto,M.T.
Informatika
210002 Rizal Samurai 1
201000 Gina
200010 Sani 5

Menampilkan record dengan data berelasi


SELECT * FROM tabel1 INNER JOIN tabel2 ON tabel1.kunci tamu=tabel2.kunci primer

Setara dengan
SELECT * FROM tabel1,tabel2 WHERE tabel1.kunci tamu= tabel2.kunci primer

Misal :
SELECT Nomhs,nama,namajur FROM Pribadi INNER JOIN Jurusan ON
Pribadi.kodejur=jurusan.kodejur

Hasil : seperti 4.4.1 [4]

Memunculkan record dengan data yang berelasi dan yang tidak berrelasi untuk tabel kiri

SELECT Nomhs,nama,namajur FROM Pribadi LEFT JOIN Jurusan ON


Pribadi.kodejur=jurusan.kodejur

Hasil :
Nomhs Nama NamaJur
210100 Rina Gunawan Teknik Informatika
210090 Gani Suprapto Sistem Informasi
210012 Alexandra Teknik Informatika
210099 Nadine Sistem Informasi
210002 Rizal Samurai Sistem Informasi
201000 Gina Null
200010 Sani Null
Muncul walau tidak ada
relasi
Memunculkan record dengan data yang berelasi dan yang tidak berrelasi pada tabel KANAN

SELECT Nomhs,nama,namajur FROM Pribadi RIGHT JOIN Jurusan ON


Pribadi.kodejur=jurusan.kodejur

Hasil :
Nomhs Nama NamaJur
210100 Rina Gunawan Teknik Informatika
210090 Gani Suprapto Sistem Informasi
210012 Alexandra Teknik Informatika
210099 Nadine Sistem Informasi
210002 Rizal Samurai Sistem Informasi Muncul walau tidak ada relasi
Null Null Manajemen Informatika

Memunculkan record dengan data yang berelasi dan yang tidak berrelasi

8
SELECT Nomhs,nama,namajur FROM Pribadi OUTER JOIN Jurusan ON
Pribadi.kodejur=jurusan.kodejur

Nomhs Nama NamaJur


210100 Rina Gunawan Teknik Informatika
210090 Gani Suprapto Sistem Informasi
210012 Alexandra Teknik Informatika
210099 Nadine Sistem Informasi
210002 Rizal Samurai Sistem Informasi
201000 Gina Null
200010 Sani Null
Null Null Manajemen Informatika

5 Aplikasi (sederhana) basis data Dengan C++ Builder dan Paradox (.db)
5.1.1 Database
1. Siapkan rancangan basis data untuk di impelementasikan dengan program

Database : mahasiswa

Tabel : pribadi Tabel : jurusan Tabel : kab_kota


*Nomhs * kodejur *Kode_tempat
Nama namajur kabupaten
**Kodejur
**Kode_tempat
Tgl_lahir

Rancangan diatas diimplementasikan dengan program (dengan Database Desktop-editor database/tabel):

2. Membuat database
a. Siapkan folder dimana tabel-tabel berada. Folder ini nantinya akan di identifikasi sebagai nama database
b. Atur alias database (untuk memberi nama lain dari database) dengan alias manager pada Database Desktop,
i. Klik Tools- Alias manager-New
ii. Isi Database Alias : akako
iii. Klik : Browse- ,cari dimana folder/ database berada, klik OK
iv. Jangan lupa beri tanda P pada Public alias

3. Klik File-New-table, masukkan field name,type, size, shg menjadi sbb

9
4. Simpan desiaj diatas dengan klik Save as – pilih Akako pada Combo Alias , kemudian ketika pribadi pada File name. akan tercipta tabel
pribadi
5. untuk uji coba tabel dapt diisi data dengan klik ikon Edit Data

5.1.2 Menampilkan data


1. membuat aplikasi/ form untuk menampilkan data
a. menggunakan DBGrid untuk penampilan data ke form (layar)
i. buka form baru
ii. masukkan komponen DBGrid (dari tab Data Control) ke form
iii. masukkan komponen :database, SQL,Dataset (dari tab Data Access), shg menjadi sbb

Atur property sbb


Komponen Property
Database Alias name : akakomyogya Alias name harus Digunakan untuk
sama dengan alias
Database Name: akakomyogya database dari alian
koneksi ke database
Connected: true manager
Login Prompt : false Database name :
Name : Database1 (default) bebas

Query Database name : akakomyogya Untuk menuliskan


Active : true printah SQL
SQL : SELECT * FROM PRIBADI
Name : Query1 (default)
DataSourse Dataset: Query1 Untuk
Name : DataSource1 (default) menghubungkan ke
Query dengan
DBGrid
DBGRID Data Source : DataSource1 Untuk menampilkan
hasil query dalam
bentuk tabulasi

b. Menggunakan QuickReport untuk printable (format sesuai cetakan via printer)


i. Buka form baru
ii. Tempelkan komponen Quick Rept
iii. Tambahkan komponen Database,Query pada form tersebut.
iv. Klik komponen QRBand dengan Property BandType : rbTitle.Letakkan di jendela QuickRep.QRBand-rbTitle ini
digunakan sbg judul laporan.
v. Tempatkan QR Label pada QRBand-rbTitle.
vi. Klik komponen QRBand dengan Property BandType : rbColumnHeader (digunakan untuk menempatkan judul
kolom).kemudian tempatkan komponen QRLabel sesuai dengan jumlah kolom yg diinginkan dan isi Caption dari Qrlabel
sesuai judul kolom masing-masing.
vii. Klik komponen QRBand dengan Property BandType : rbDetail (digunakan untuk menempatkan data yang berasal dari
database)
viii. Tempatkan Button untuk tombol Preview dan Print, kemudian isi properti seperti dibawah ini

Database QRBand
Band Type :rbTitle (default)

10
Quer QRLabel
y QRBand
Band Type :rbColumn Header

QRBand
Band Type :rbDetail

Button
QRDBText
Button
QuickRep

Komponen Property Event keterangan


Database Alias name : akakomyogya Digunakan untuk koneksi ke
Database Name: akakomyogya database
Connected: true
Login Prompt : false
Name : Database1 (default)
Query Database name : akakomyogya Untuk menuliskan printah SQL
SQL : SELECT nomhs,nama,namajur FROM PRIBADI,jurusan
WHERE pribadi.kodejur=jurusan.kodejur
Active : true
Name : Query1 (default)
DataSource Dataset: Query1 Untuk menghubungkan ke
Name : DataSource1 (default) Query dengan DBGrid
Data Source : DataSource1 Untuk menampilkan hasil
QuickRep query dalam bentuk tabulasi
QRLabel1 Caption : DAFTAR MAHASISWA Memberi judull aporan
QRLabel2 Caption : Nama Memberi judul kolom
QRLabel3 Caption : Nomor mahasiswa Memberi judul kolom
QRLlabel4 Caption : Jurusan Memberi judul kolom
QRDBText1 Dataset: Query1 Agar kolom diisi data dari field
DataField: nama nama
QRDBText2 Dataset: Query1 Agar kolom diisi data dari field
DataField: nomhs nomhs
QRDBText3 Dataset: Query1 Agar kolom diisi data dari field
DataField: namajur namajur
Button1 Caption : Preview Event-OnClick Hasil tercetak di layar
TForm1::Button1Click(TObject *Sender)
{
QuickRep1->Preview();
}
Button2 Caption : Print Event-OnClick Agar hasil tersetak di printer
TForm1::Button1Click(TObject *Sender)
{
QuickRep1->Preview();
}
Form1 Event-OnCreate Untuk menyembunyikan
TForm1::FormCreate(TObject *Sender)
{ format Quick Report, shg yang
QuickRep1->Visible=false; nampak hanya form dialog
}

ix. Jalankan form diatas

5.1.3 Menampilkan data dengan filtering


[11] Buat form baru
[12] Tempelkan komponen : DBGrid,DBCOmboBox,Database,Query
[13] Tambahkan komponen Button pada disebelah DBComboBox

11
[14] Isi data pada pilihan DBCOmboBox dengan data dari tabel jurusan. Ketika perintah pada FormCreate:

void __fastcall TForm1::FormCreate(TObject *Sender)


{
//untuk mengisi DBCOmboBox dengan data berasal dari tabel jurusan
//baca data dari tabel
Query1->SQL->Clear();
Query1->SQL->Add("select * from jurusan");
Query1->Open(); ß eksekusi untuk mengambil data dari tabel jurusan
Query1->First();ß tempatkan pointer pada recored ke-1
//tempelkan ke ComboBox
while(!Query1->Eof)
{
DBComboBox1->Items->Add(Query1->FieldByName("jurusan")->AsString);ß Ambil data dari setiap record untuk mengisi combobox
Query1->Next();ß tempatkan pointer record berikut
}

[15] tulis kode pada tombol OK – onClick


void __fastcall TForm1::Button1Click(TObject *Sender)
{
//filtering data yang tampil di Grid.
Query2->Close();
Query2->SQL->Clear();
Query2->SQL->Add("SELECT nomhs,nama,jurusan FROM pribadi,jurusan ");
Query2->SQL->Add("WHERE pribadi.kodejur=jurusan.kodejur and jurusan.jurusan=:jr");
Query2->ParamByName("jr")->AsString = DBComboBox1->Text;ß ambil nama jurusan dari ComboBox, di transfer ke variabel jr
Query2->Prepare();
Query2->Open(); ß Eksekusi SQL
//mengisi parameter di Datasource
DataSource1->DataSet=Query2; ß Mengatur sumber data beradal dari Query2
//isi data pada dbgrid
DBGrid1->DataSource=DataSource1; ß mengisi DBGrid dari Dataseorce
}

6 Pemasukan data interaktif


1. Buat form baru, tempatkan komponen control : Label, Text,RadioGroup, Button dan komponen data access : Database, Query menjadi sbb.

2. Atur property sbb

Komponen Property
Database Alias name : akakomyogya Alias name harus Digunakan untuk koneksi ke
sama dengan alias database
Database Name: akakomyogya database dari alian
Connected: true manager
Login Prompt : false Database name :
Name : Database1 (default) bebas

Query1 Database name : akakomyogya Untuk menuliskan printah SQL-


mengisi DBComboBox
Active : true

12
SQL : SELECT * FROM JURUSAN
Name : Query1 (default)
Query2 Database name : akakomyogya Untuk menuliskan printah SQL
merekam data
SQL : -
Name : Query2 (default)
Edit1 Name : Edit1 Pemasukan data nomor
mahasiswa
Edit2 Name : Edit2 Pemasukan data Nama
mahasiswa
RadoiGroup1 Name : RadioGroup1 Untuk memilih jenis kelami
Items : Pria
Wanita
Column: 2
Button1 Caption: Rekam
2. Tulis kode pada Form1-Create sbb

void __fastcall TForm1::FormCreate(TObject *Sender)


{

Query1->Close();
Query1->SQL->Clear();
Query1->SQL->Add("SELECT * FROM jurusan;");
Query1->Prepare();
Query1->Open();
Query1->First();
while(!Query1->Eof)
{
DBComboBox1->Items->Add(Query1->FieldByName("jurusan")->AsString);
Query1->Next();
}
}

3. Tulis kode pada Button1-Click

void __fastcall TForm1::Button1Click(TObject *Sender)


{
AnsiString kdj,sx_huruf;
int sx;
//cari record yang dipilih via COmboBox
Query1->Close();
Query1->SQL->Clear();
Query1->SQL->Add("SELECT kodejur,jurusan FROM jurusan WHERE jurusan = :nm");
Query1->ParamByName("nm")->AsString =DBComboBox1->Text;ß Pilihan dari combobox untuk mencari record agar kodejur ditemukan
Query1->Prepare();
Query1->Open();
kdj= Query1->FieldByName("kodejur")->AsString; ß transfer kidejur ke variabel

//ambil data radio button.Itemindex urutan pilihan dimulai dari 0,1 dst
sx=RadioGroup1->ItemIndex;
if (sx==0)
sx_huruf="P";
else
sx_huruf="W" ;

//rekam ke tabel pribadi


// ingat : yang direkam ke tabel kodejur bukan nama jurusannya, dan P/W bukan pria/wanita
Query2->Close();
Query2->SQL->Clear();
Query2->SQL->Add("INSERT INTO pribadi(nomhs,nama,kodejur,sex)");
Query2->SQL->Add("VALUES ( :no, :nm, :kdj1,:sx1)");
Query2->ParamByName("no")->AsString = Edit1->Text;
Query2->ParamByName("nm")->AsString = Edit2->Text;
Query2->ParamByName("kdj1")->AsString = kdj;
Query2->ParamByName("sx1")->AsString = sx_huruf;

Query2->Prepare();
Query2->ExecSQL();
}

4. Jalankan aplikasi ini

13