Anda di halaman 1dari 150

KONSEP DA N A PLIKASI

PEMROGRA MA N MENGGUNAKAN
BOR LA ND C++ BUILDER 6

BAGIAN 2:
APLIKASI VISUAL DATABASE
DENGAN ADO .NET
( M S AC C E S S & M S S Q L S E RV E R 2 0 0 0 )
M .

F A C H R U R R O Z I

F E R R Y

G U S T I A W A N

Daftar Isi
MUQADDIMAH
1.

PENDAHULUAN

2.

KONSEP DASAR PEMROGRAMAN VISUAL

3.

PEMROGRAMAN VISUAL MENGGUNAKAN BORLAND C++ BUILDER 6

4.

KONSEP DASAR PERANCANGAN DATABASE

5.

PENGENALAN BORLAND DATABASE DESKTOP INTERFACE

6.

APLIKASI DATABASE SEDERHANA MENGGUNAKAN BORLAND DATABASE ENGINE


(BDE)

7.

APLIKASI DATABASE MENGGUNAKAN ADO.NET MS ACCESS DATABASE

8.

APLIKASI DATABASE MENGGUNAKAN ADO.NET MS SQL SERVER DATABASE

9.

TIPS & TRIKS

10. PENUTUP
REFERENSI
RIWAYAT HIDUP

Muqaddimah

Allah mengangkat derajat orang yang beriman dan orang yang berilmu pengetahuan
beberapa derajat. (Mujaddalah 11)

Abu Hurairah r.a. berkata: Rasulullah SAW bersabda: Barang siapa yang ditanya suatu
ilmu agama lalu menyembunyikannya, maka akan dikendalikan mulutnya pada hari
kiamat dengan kendali dari api neraka. (Abu Dawud, Attirmidzi)
Tiada akan pernah mampu seseorang dalam mengerjakan sesuatu tanpa pernah
mencobanya terlebih dahulu.
Dari ketiga sumber ilmu inilah penulis ingin berusaha membuat sesuatu yang
bermanfaat bagi orang lain, walaupun masih banyak kekurangan yang terdapat di
dalam buku ini.

Buku merupakan lanjutan dari Konsep dan Aplikasi Pemrograman mengunakan Borland C++
Builder 6 Bagian 1 : Aplikasi Konsol. Buku ini membahas mengenai permograman secara
visual yang berorientaskan database. Adapun jenis database yang digunakan adalah MS
Acces dan MS SQL Server 2000. Sebagian besar isi dari buku ini merupakan rangkuman
dari sumber-sumber yang telah dibuat penulis lain. Penulis berharap agar buku ini dapat
bermanfaat bagi semua kalangan pembaca. Terima kasih untuk semuanya yang telah
memberikan banyak kritik dan saran serta dukungan dalam penulisan buku ini. Dunia
akan selalu indah karena kejujuran dan kebersamaan.
Palembang,

Penulis

Juni 2005

1. Pendahuluan
Situasi persaingan bidang teknologi informasi membuat semua kalangan berlombalomba untuk menjadi yang terbaik. Dimulai dari produk sistem informasi yang berbasis
konsol (dos) maupun yang berbasis wndow. Perusahaan-perusahaan telah melirik ke
arah pengembangan sistem informasi yang berbasis window, selain penggunaannya
tidak sulit, fungsi dan fasilitasnya sudah memnuhi kebutuhan mereka. Seperti kalu
dilihat pada masa lalu, perusahaaan menggunakan aplikasi dos untuk pelayanan
terhadap kastamernya.. Selain penggunaannya yang berbelit-belit, penampilan dan
fasilitasnya tidak memenuhi kebutuhan mereka.
Ambil sebuah contoh kasus sederhana. Sebuah perusahaan yang bergerak di bidang
tekstil. Perusahaan terserbut memiliki bagian-bagian kerja yang saling berkait. Ada
bagian keuangan yang mengatur pengeluaran dan pemasukkan perusahaan, ada bagian
produksi yang hanya memproduksi saja, ada bagian personalia yang mengatur jumlah
dan kinerja para karyawan, dan ada bagian pemasaran yang akan menawarkan produk
ke konsmen. Bayangkan, jika perusahaan tersebut tidak mempunyai sistem informasi
yang baik untuk pengelolaan perusahaannya, bagaimana bagian pemasarannya bisa
bekerja jika informasi dari bagian produksi tidak cepat diterima atau tidak sama sekali,
bagaimana bagian produksi bisa menghasilkan sebuah produk yang baik jika informasi
kinerja dan kebutuhan pegawai produksi lambat diterima oleh bagian personalia, dan
bagaimana bagian keuangan bisa menerima dan mengeluarkan dana jika informasi dari
personalia dan pemasaran tidak jelas diterima. Maka akan terjadi inefisiensi dari
perusahaan tersebut, baik dari segi waktu, maupun dari segi materi.
Masalah di atas banyak terjadi di perusahaan-perusahaan, untuk itu perlu dirancang
sebuah sistem informasi yang tepat untuk mengelola alur kerja di perusahaan tersebut.
Analisa penyebab keterlambatan penyampaian informasi, misalkan informasi yang
digunakan masih menggunakan kertas., tidak terkomputerisasi, atau data yang
dimasukkan tiap-tiap bagian tidak terintegrasi ke satu tempat, sehingga menyebabkan
data yang ada di tiap bagian itu berbeda satu sama lain.
Dikarenakan keadaan inilah Beberapa pengembang meningkatakan kemampuan
mereka dengan mendalami software yang berbasi window untuk membangun sebuah
sistem informasi yang dapat memenuhi kebutuhan kastamer. Salah satu software
pengembang yang mampu memberikan hal itu adalah Borland C++ Builder 6.
Borland C++ Builder 6 memiliki fasilitas-fasilitas yang penuh dalam mendukung
pengembang software sistem informasi, selain mampu untuk aplikasi-aplikasi yang

sederhana, ia juga mampu untuk pengembangan softaware yang berorientasikan


database standalone (tunggal) maupun client-server (database jaringan).
Sampai saat ini, pembuatan aplikasi visual dengan menggunakan bahasa C++ masih
merupakan sebuah mimpi buruk bagi para programmer, karena di dalamnya banyak
menuntut pembuatan file-file library yang sangat rumit. Namun sekarang Borland C++
Builder 6 telah mengembangkan aplikasi visual secara mudah dan cepat dimengerti.
Namum bagi para pemula yang ingin mengembangkan aplikasi visual dengan bahasa
C++, ada baiknya tanamkan konsep-konsep dasarnya dulu yang disediakan di buku dari
Konsep dan Aplikasi Pemrograman mengunakan Borland C++ Builder 6 Bagian 1 : Aplikasi
Konsol, karena di dalam buku ini merupakan lanjutan dari buku tersebut dan tidak
membahas lagi mengenai sintak-sintak dasar bahasa C++.

2. Konsep Dasar
Pemrograman Visual
Borland C++ Builder 6 merupakan salah aplikasi pengembang terbaik yang mempunyai
fasilitas yang lengkap. Aplikasi secara visual secara logika hampir sama dengan aplikasi
secara konsol, karena aplikasi secara visual merupakan pengembangan aplikasi secara
konsol.
PERBEDAAN PEMROGRAMAN VISUA L
PEMROGRAMAN TERSTRUKTUR

DENGAN

Dalam pengeksekusian kode programnya, pemrograman visual menerapkan konsep


event-driven, yaitu peksekusian yang didasarkan atas kejadian (event) tertentu. Setiap
kejadian tersebut mempunyai kode program sendiri yang disimpan dalam sebuah
fungsi. Berbeda dengan pemrograman terstruktur atau prosedural yang mengeksekusi
kode-kode programnya mulai dari awal sampai akhir program secara beruntun.
Pada dasarnya konsep pemrograman visual sama dengan konsep pemrograman
prosedura, yaitu adanya input, proses dan output. Tapi ada penambahan konsep
pemilihan untuk mengeksekusi proses programnya. Konsep pemilihan inilah yang
dipakai untuk menjalankan eventnya.

event execute

yes

Input

no
other action

Process

Output

Untuk memahami konsep dasar pemrograman secara visual yang menerapkan konsep
event-driven, perhatikan pada saat menggunakan aplikasi-aplikasi yang yang terdapat
pada Microsoft Windows. Pada Windows pertama kali berjalan (running), aplikasi
tersebut masih berada dalam keadaan diam. Jika ingin menampilkan menu start, maka
harus mengklik tombol start yang terdapat di pojok kanan paling bawah, tampilan yang
akan muncul sebagai berikut:

Gambar 2.1 Menu Start


artinya, event (kejadian)nya adalah apakah tombol Start diklik. Jika diklik, maka akan
melakukan input data yang diperlukan, lalu memproses pengalohan data, kemudian
menampilkan data , yaitu menampilkan menu start seperti pada Gambar 2.1., dan hanya
proses itu yang dilakukan oleh aplikasi windows, aplikasi lainnya tetap berjalan seperti
semula.
Secara umum konsep pemrograman visual dapat digambarkan sebagai berikut:

Unit

Prosedur A

Prosedur B

Prosedur C

Prosedur D

Project

Unit 1

Unit 2

Unit 3

Unit 4

Dari gambar di atas, dapat dijelskan bahwa setiap prosedur atau fungsi yang terdapat di
dalam unit, dapat saling bebas mengekspresikan pernyataan di dalam tubuhnya masingmasing, namun bisa juga saling membutuhkan. Jika suatu prosedur membutuhkan
informasi dari prosedur lain, maka ia harus mendefinisikan atau memasukkan (include)
nama prosedur yang ia ingingkan tersebut. Begitu juga yang terjadi di dalam suatu
project.

10

3. Pemrograman Visual
Menggunakan Borland C++
Builder 6
Borland C++ Builder 6, merupakan bahasa pemrograman yang mempunyai cakupan
kemampuan yang luas dan sangat canggih. Berbagai jenis aplikasi dapat dibuat dengan
software ini, termasuk aplikasi untuk mengolah teks, grafik, angka, database dan aplikasi
web. Khusus untuk pemrograman database, software ini menyediakan object yang
sangat kuat, canggih dan lengkap, sehingga memudahkan pemrogram dalam
merancang, membuat dan menyelesaikan aplikasi database yang diinginkan. Selain itu
software ini juga menangani data dalam berbagai format database, misalnya format MS
Access, Sybase, Oracle, FoxPro, dBase, Informix, MS SQL Server, MySQL dan lain-lain.
Namun secara default software menggunakan format Paradox dan dBase.
APLIKASI SEDERHAN
BUILD ER 6

MENGUNAKAN

BORLAND

C++

Untuk membuat aplikasi baru, langkah-langkah yang harus dilakukan yaitu:


1. Tutup semua aplikasi yang ada dengan cara memilih menu File Close All.
2. Buka aplikasi baru dengan memilih menu File New Application, seperti
pada tampilan berikut:

11

3. Setelah itu akan muncul aplikasi baru dengan tampilan Form awal yang masih
kosong.

4. Untuk aplikasi pertama ini, pengaturan properti untuk aplikasi ini, tetap
dibiarkan secara default terlebih dahulu, sebagai dasar pemahaman kerja sebuah
aplikasi visual. Simpan aplikasi baru yang telah dibuat dengan memilih menu
File Save All. Pastikan selalu memilih Save All setiap kali penyimpanan,

12

karena semua file-file yang terbentuk (file project, file source, file h, dll) akan
tersimpan secara keseluruhan.
5. Buat folder baru sebagai tempat penyimpanan file-file aplikasi, agar tidak
berantakan dan bercampur dengan file-file selain file aplikasi yang telah dibuat.

6. Pada setelah menyimpan, beberapa file terbentuk (created) secara otomatis,


seperti terlihat pada tampilan berikut:

13

a. File Project1.bpr (berektensi bpr)


File ini merupakan file project yang berfungsi sebagai penggabung antara
unit unit yang terbentuk dengan program utama.
b. File Project1.cpp (berektensi cpp)
File ini merupakan program utama yang berisi kode untuk proses inisialisasi
dan jalannya aplikasi (application running). Bagi programmer pemula, file
ini biasanya tidak diubah. Namun bagi programmer yang berpengalaman
sering kali melakukan penambahan kode program pada file ini untuk
keperluan keperluan tertentu. Untuk melihat isi file ini, pilihlah menu
project view source pada C++ Builder IDE. Adapun kerangka dari file ini
dapat di lihat pada listing dibawah ini.
//---------------------------------------------------------------------------

14

#include <vcl.h>
#pragma hdrstop
//--------------------------------------------------------------------------USEFORM("Unit1.cpp", Form1);
//--------------------------------------------------------------------------WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
try
{
Application->Initialize();
Application->CreateForm(__classid(TForm1), &Form1);
Application->Run();
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
catch (...)
{
try
{
throw Exception("");
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
}
return 0;
}
//--------------------------------------------------------------------------c. Unit1.h (berekstensi h)
File ini merupakan file header yang berisi pendeklarasian data dan fungsi
fungsi yang akan digunakan di dalam pembuatan aplikasi. Untuk melihat
dan memodifikasi isi file ini, tekanlah tombol F12 dan memilih tab Unit1.h di
bawah source code atau lakukan klik kanan pada Code Editor dalam IDE
C++ Builder, kemudian akan tampil sebuah popup menu, pilih menu open

15

source / header file. Adapun kerangka dari file ini dapat dilihat pada listing
di bawah ini.
//--------------------------------------------------------------------------#ifndef Unit1H
#define Unit1H
//--------------------------------------------------------------------------#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//--------------------------------------------------------------------------class TForm1 : public TForm
{
__published: // IDE-managed Components
private:
// User declarations
public:
// User declarations
__fastcall TForm1(TComponent* Owner);
};
//--------------------------------------------------------------------------extern PACKAGE TForm1 *Form1;
//--------------------------------------------------------------------------#endif
d. Unit1.cpp (berekstensi cpp)
File ini merupakan file yang bertipe C++ Builder Source dan akan digunakan
untuk mendefinisikan fungsi fungsi yang telah dideklarasikan pada file
header (unit1.h) di atas. Pada file inilah programmer akan banyak bekerja
untuk menuliskan kode kode program. Adapun kerangka dari file ini dapat
dilihat pada listing di bawah ini.
//--------------------------------------------------------------------------#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------

16

#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//--------------------------------------------------------------------------__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//--------------------------------------------------------------------------e. Unit1.dfm (berekstensi dfm)
File ini berfungsi menyimpan form yang dibuat.
f. Project1.res (berekstensi res)
File ini berfungsi sebagai compiled resource yang berisi file-file pelengkap
yang digunakan oleh aplikasi, misalnya file gambar ataupun suara.
Setelah aplikasi disimpan, maka aplikasi siap untuk dimodifikasi sesuai kebutuhan.
BORLAND

C++

BUILD ER

BAGI

PROGRAMMER

C++

C++ Builder tentu mudah sekali digunakan oleh mereka yang telah terbiasa
membuat program dengan compiler C++. Meskipun demikian terdapat sedikit
perbedaan antara bahasa C++ tradisional dengan C++ Builder. C++ Builder tidak
mengizinkan programmer C++ untuk melakukan visualisasi program seperti yang
biasa mereka lakukan dalam compiler C++. Perbedaan yang paling terlihat adalah
bahwa C++ Builder itu didasarkan pada pemrograman dengan model property
method event (PME), sedangkan C++ masih bersifat prosedural.
VCL

(VI SUAL

COMPON ENT

LIBRARY)

Istilah VCL (Visual Component Library) pada C++ Builder sebenarnya adalah
sebuah kelas juga, sama halnya dengan kelas kelas yang didefinisikan di dalam
C++. Namun keduanya berbeda dalam hal hal berikut.
- VCL dan kelas dalam C++ mempunyai induk hirarki yang berbeda. Semua
VCL pada C++ Builder diturunkan dari kelas TObject.
- Pada VCL proses pengesetan data dilakukan melalui propertinya, sedangkan
pada C++ dilakukan melalui penggunaan atau pendefenisian fungsi.

17

Setiap VCL hanya dapat dialokasikan pada head memory, bukan pada stack.
Artinya, VCL harus dibuat dengan menggunakan operator new, sedangkan
kelas dalam C++ masih dapat dialokasikan di dalam stack.

Komponen-komponen yang sering digunakan di dalam aplikasi visual Borland


C++ Builder 6.
Gambar

Nama
Komponen

Default
Name

Posisi
Tab

Button

Button1

Standard

Edit

Edit1

Standard

ListBox

ListBox1

Standard

ComboBox

ComboBox1

Fungsi Dasar
Proses/event

MaskEdit,
LabeledEdit, DBEdit
DBListBox,
DBLookupListBox

Standard

Input berupa
pilihan

DBComboBox,
DBLookupComboBox

Input/output
dengan length
yang lebih
panjang

DBMemo

Memo1

Standard

Label

Label1

Standard

CheckBox

CheckBox1

Standard

RadioButton

RadioButton1

Standard

GroupBox

GroupBox1

Standard

Panel

Panel1

Standard

Image

Image1

Additional

Memasukkan
gambar

Additional

Membuat
bentuk gambar
bulat,
lingkaran dll

System

Proses
perulangan
menggunakan
satuan interval 1

Timer

Shape1

Timer1

BitBtn, SpeedButton

Input/output
berupa teks
Input/output
berupa pilihan

Memo

Shape

Komponen Sejenis

18

Teks tetap,
output
Input dengan
nilai True or
False
Input berupa
pilihan
Group
beberapa
komponen
Group
beberapa
komponen

DBLabel
DBCheckBox
RadioGroup,
DBRadioGroup
Panel

GroupBox
DBImage

MainMenu

MainMenu1

Standard

UpDown

UpDown1

Win32

mili detik
Membuat menu
aplikasi
Menambahkan/
mengurangkan
nilai dengan step
tertentu

CSpinEdit

Kasus 1 (Penerapan konsep dasar pemrograman visual):


Buat Aplikasi menghitung Luas Segitiga sama kaki.
Langkah-langkah:
1. Buat aplikasi baru, lalu set properti-properti komponen sebagai berikut:
No
1

Komponen
Form1

Properti
BorderStyle
Caption
Font
Height
Name
Position
Width

Single
Aplikasi Segitiga
Verdana 10
300
FUtama
poScreenCenter
300

Label1

Caption
Font

Mencari Luas Segitiga


Verdana 12 Bold

3
4
5

Label2
Label3
Label4

Caption
Caption
Caption

Luas Alas
Tinggi
Luas

Button1

Caption

Hitung

7
8
9

Edit1
Edit2
Edit3

MaxLength
MaxLength
ReadOnly

5
5
true

Hasilnya seperti pada tampilan berikut:

19

Nilai

2. Simpan aplikasi dengan memilih menu File Save All. Pada saat menyimpan,
buat folder tersendiri untuk aplikasi ini dengan nama Aplikasi_Segitiga.
Ganti Unit1.cpp dengan nama lain yaitu dengan nama utama.cpp.
Ganti Project1.bpr dengan nama lain yaitu dengan nama Segitiga.bpr.
3. Lihat ke bagian object inspector Button1 event Klik 2 kali pada event
OnClick atau langsung double klik pada komponen Button1, akan muncul
tampilan source code sebagai berikut:

Isi dengan sintak seperti pada tampilan berikut:

20

Artinya, sintak yang ada di dalam fungsi ini akan diproses pada saat Button1
diklik satu kali.
Penjelasan sintak:
StrToInt, berfungsi untuk mengkonversi nilai string ke integer. Dalam kasus
di atas, jika nilai dari Edit1 dan Edit2 yang diinput tidak dikonversi, maka
angka yang dibaca oleh komputer adalah sebagai string, artinya tidak dapat
dieksekusi secara aritmatik. Ilustrasinya seperti berikut:
Jika nilai 2 dan 3 bertipe string, maka:
2 + 3 = 23,
2 * 3 = Error
Jika nilai 2 dan 3 bertipe integer, maka:
2+3=5
2 * 3 = 6.
Edit1->Text dan Edit2-> Text, adalah mengambil nilai yang berupa
teks/string di komponen Edit1 dan Edit2.
Edit3-> Text = Luas, adalah nilai Luas akan dioutputkan di komponen Edit3.

4. Lihat ke bagian object inspector FUtama event Klik 2 kali pada event
OnCreate atau langsung double klik pada komponen FUtama, akan muncul
tampilan source code sebagai berikut:

21

Isi dengan sintak sebagai berikut:

Artinya, Text di Edit1, Edit2 dan Edit3 akan dihapus (dikosongkan). Sintaksintak yang ada di dalam fungsi ini akan diproses pada saat Futama dibuat
(create).
5. Simpan aplikasi, lalu tekan Alt + F9 untuk Compiling. Jika ada error, akan
muncul pesan error. Lihat letak kesalahan yang dibuat, lalu perbaiki.
Contoh kesalahan yang terjadi terlihat pada tampilan berikut:

22

Keterangan error:
Statement Missing ; , artinya ada baris yang tidak memberikan tanda tutup
baris dengan Semicolon (;).
Undefined symbol t, artinya variabel t tidak dideklarasikan dahulu,
sehingga program tidak kenal dengan variabel tersbut.
Warning, A is assigned a value that is never used, artinya variabel
dideklarasikan, tapi tidak berfungsi pada program tersebut.
6. Setelah semua program benar, maka tekan F9 untuk menjalankan aplikasi,
seperti pada tampilan berikut ini:

23

Seluruh source program di utama.cpp adalah sebagai berikut:


//--------------------------------------------------------------------------#include <vcl.h>
#pragma hdrstop
#include "utama.h"
//--------------------------------------------------------------------------#pragma package(smart_init)
#pragma resource "*.dfm"
TFUtama *FUtama;
//--------------------------------------------------------------------------__fastcall TFUtama::TFUtama(TComponent* Owner)
: TForm(Owner)
{
}
//--------------------------------------------------------------------------void __fastcall TFUtama::Button1Click(TObject *Sender)
{
int A,t;
float Luas;

24

A = StrToInt(Edit1->Text);
t = StrToInt(Edit2->Text);
Luas = 0.5 * A * t;
Edit3->Text = Luas;

}
//--------------------------------------------------------------------------void __fastcall TFUtama::FormCreate(TObject *Sender)
{
Edit1->Clear();
Edit2->Clear();
Edit3->Clear();
}
//--------------------------------------------------------------------------Isi dari file header utama.h adalah sebagai berikut:
//--------------------------------------------------------------------------#ifndef utamaH
#define utamaH
//--------------------------------------------------------------------------#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//--------------------------------------------------------------------------class TFUtama : public TForm
{
__published: // IDE-managed Components
TLabel *Label1;
TLabel *Label2;
TLabel *Label3;
TLabel *Label4;
TButton *Button1;
TEdit *Edit1;
TEdit *Edit2;

25

TEdit *Edit3;
void __fastcall Button1Click(TObject *Sender);
void __fastcall FormCreate(TObject *Sender);
private:
// User declarations
public:
// User declarations
__fastcall TFUtama(TComponent* Owner);
};
//--------------------------------------------------------------------------extern PACKAGE TFUtama *FUtama;
//--------------------------------------------------------------------------#endif

Kasus 2 (Penerapan konsep logika pemilihan):


Buat aplikasi dimana user harus memasukkan password untuk masuk ke aplikasi
tertentu.
Langkah-langkah:
1. Tutup semua aplikasi yang sedang berjalan dengan memilih menu File Close
All.
2. Buka aplikasi baru dengan memilih menu File New Application.
3. Setelah tampilan aplikasi baru muncul, atur tampilan seperti terlihat di bawah
ini:

4. Atur properti komponen sebagai berikut

26

No
1

2
3

Komponen
Form1

Properti
BorderStyle
Caption
Font
Height
Name
Position
Width

Nilai
Single
Login
Verdana 12
250
FUtama
poScreenCenter
400

Edit1
Edit2

MaxLength
MaxLength
PasswordChar

20
20
#

5. Simpan seluruh unit aplikasi dengan memilih menu File Save All. Ganti
nama unit1.cpp dengan password1.cpp dan project dengan Password.bpr.
6. Klik 2 kali di Button1 (login) untuk event Button1Click, isi sintak seperti berikut:

7. Klik 2 kali di FUtama untuk event FormCreate, isi sintak sebagai berikut:

27

8. Klik 2 kali di Button2 (Exit) untuk event Button2Click, isi sintak sebagai berikut:

9. Tekan Alt + F9 untuk kompilasi. Jika tidak ada yang error, tekan F9 untuk
menjalankan aplikasi. Hasil akhir seperti tampilan berikut:

Isi sintak secara keseluruhan di password1.cpp


//--------------------------------------------------------------------------#include <vcl.h>
#pragma hdrstop
#include "password1.h"
//--------------------------------------------------------------------------#pragma package(smart_init)

28

#pragma resource "*.dfm"


TFUtama *FUtama;
//--------------------------------------------------------------------------__fastcall TFUtama::TFUtama(TComponent* Owner)
: TForm(Owner)
{
}
//--------------------------------------------------------------------------void __fastcall TFUtama::Button1Click(TObject *Sender)
{
if(Edit1->Text=="User"&&Edit2->Text=="oke")
{
ShowMessage("Selamat datang di aplikasi ini");
}
else
{
ShowMessage("Username dan Password Anda SALAH!");
}
}
//--------------------------------------------------------------------------void __fastcall TFUtama::FormCreate(TObject *Sender)
{
Edit1->Clear();
Edit2->Clear();
}
//--------------------------------------------------------------------------void __fastcall TFUtama::Button2Click(TObject *Sender)
{
Application->Terminate();
}
//--------------------------------------------------------------------------Isi sintak di password1.h:
//--------------------------------------------------------------------------#ifndef password1H
#define password1H
//---------------------------------------------------------------------------

29

#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//--------------------------------------------------------------------------class TFUtama : public TForm
{
__published: // IDE-managed Components
TLabel *Label1;
TLabel *Label2;
TButton *Button1;
TButton *Button2;
TEdit *Edit1;
TEdit *Edit2;
void __fastcall Button1Click(TObject *Sender);
void __fastcall FormCreate(TObject *Sender);
void __fastcall Button2Click(TObject *Sender);
private:
// User declarations
public:
// User declarations
__fastcall TFUtama(TComponent* Owner);
};
//--------------------------------------------------------------------------extern PACKAGE TFUtama *FUtama;
//--------------------------------------------------------------------------#endif

Kasus 3 (Latihan logika TRUE dan FALSE pada komponen)


Buat aplikasi untuk menghitung total biaya pembelian untuk suatu barang tertentu.
Langkah-langkah
1. Tutup semua aplikasi yang sedang berjalan dengan memilih menu File Close
All.
2. Buka aplikasi baru dengan memilih menu File New Application.
3. Setelah tampilan aplikasi baru muncul, atur tampilan seperti terlihat di bawah
ini:

30

4. Atur properti komponen sebagai berikut


No
1

Komponen
Form1

Properti
BorderStyle
Caption
Font
Height
Name
Position
Width

Single
Total Biaya Pembelian
Verdana 12
300
FUtama
poScreenCenter
400

Panel1

Caption
BorderStyle
Height&Width

(kosong)
Single
Sesuaikan dengan tampilan

Edit1

MaxLength

20

Edit2

MaxLength
Text

10
0

Edit3

ReadOnly
Text

true
0

31

Nilai

CSpinEdit
(Tab Sample)

Increment
Max Value
TabOrder

50
1000000
1

UpDown1

Associate
Increment
Max

Edit2
1
200

BitBtn1

Caption
Glyph

BitBtn2

Caption
Glyph

Mulai
Browse (*.bmp), biasanya ada
di
C:\Program
Files\Common Files\Borland
Shared\Images\Buttons
Selesai
Browse (*.bmp)

5. Simpan seluruh unit aplikasi dengan memilih menu File Save All. Ganti
nama unit1.cpp utama.cpp dan project dengan Barang.bpr.
6. Klik 2 kali di FUtama untuk event FormCreate, isi sintak sebagai berikut:

7. Klik 2 Kali di Edit2 untuk event Edit2Change, artinya proses akan dijalankan
pada saat nilai di dalam Edit2 berubah. Isi sintak sebagai berikut:

32

8. Klik 2 Kali di CSpinEdit1 untuk event CSpin1EditChange, artinya proses akan


dijalankan pada saat nilai di dalam CSpinEdit1 berubah. isi sintak sebagai
berikut:

9. Klik ganda di BitBtn1, lalu isi sintak dibawah ini:

10. Klik ganda di BitBtn2, lalu isi sintak dibawah ini:

11. Tekan Alt + F9 untuk kompilasi. Jika tidak ada yang error, tekan F9 untuk
menjalankan aplikasi. Hasil akhir seperti tampilan berikut:

33

Isi sintak secara keseluruhan di utama.cpp


//--------------------------------------------------------------------------#include <vcl.h>
#pragma hdrstop
#include "utama.h"
//--------------------------------------------------------------------------#pragma package(smart_init)
#pragma link "CSPIN"
#pragma resource "*.dfm"
TFUtama *FUtama;
//--------------------------------------------------------------------------__fastcall TFUtama::TFUtama(TComponent* Owner)
: TForm(Owner)
{
}
//--------------------------------------------------------------------------void __fastcall TFUtama::FormCreate(TObject *Sender)
{
Edit1->Clear();
BitBtn1->Enabled = true;
BitBtn2->Enabled = false;
Panel1->Enabled = false;

34

}
//--------------------------------------------------------------------------void __fastcall TFUtama::Edit2Change(TObject *Sender)
{
Edit3->Text = StrToInt(CSpinEdit1->Text) * StrToInt(Edit2->Text);
}
//--------------------------------------------------------------------------void __fastcall TFUtama::CSpinEdit1Change(TObject *Sender)
{
Edit3->Text = StrToInt(CSpinEdit1->Text) * StrToInt(Edit2->Text);
}
//--------------------------------------------------------------------------void __fastcall TFUtama::BitBtn2Click(TObject *Sender)
{
BitBtn1->Enabled = true;
BitBtn2->Enabled = false;
Panel1->Enabled = false;
}
//--------------------------------------------------------------------------void __fastcall TFUtama::BitBtn1Click(TObject *Sender)
{
BitBtn1->Enabled = false;
BitBtn2->Enabled = true;
Panel1->Enabled = true;
}
//--------------------------------------------------------------------------Isi utama.h secara keseluruhan
//--------------------------------------------------------------------------#ifndef utamaH
#define utamaH
//--------------------------------------------------------------------------#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <Buttons.hpp>

35

#include <ComCtrls.hpp>
#include "CSPIN.h"
#include <ExtCtrls.hpp>
//--------------------------------------------------------------------------class TFUtama : public TForm
{
__published: // IDE-managed Components
TBitBtn *BitBtn1;
TBitBtn *BitBtn2;
TPanel *Panel1;
TLabel *Label1;
TLabel *Label2;
TLabel *Label3;
TLabel *Label4;
TEdit *Edit1;
TEdit *Edit2;
TEdit *Edit3;
TUpDown *UpDown1;
TCSpinEdit *CSpinEdit1;
void __fastcall FormCreate(TObject *Sender);
void __fastcall Edit2Change(TObject *Sender);
void __fastcall CSpinEdit1Change(TObject *Sender);
void __fastcall BitBtn2Click(TObject *Sender);
void __fastcall BitBtn1Click(TObject *Sender);
private:
// User declarations
public:
// User declarations
__fastcall TFUtama(TComponent* Owner);
};
//--------------------------------------------------------------------------extern PACKAGE TFUtama *FUtama;
//--------------------------------------------------------------------------#endif

Kasus 4 (Aplikasi menggunakan komponen ComboBox, CheckBox dan


RadioButton).
Buat aplikasi untuk menghitung total biaya pembelian untuk suatu barang, dengan
diskon tertentu.

36

Jika pembeli adalah langganan lama, maka diskon 20%.


Jika pembeli membayar dengan LUNAS, maka diskon 10%.
Langkah-langkah:
1. Tutup semua aplikasi yang sedang berjalan dengan memilih menu File Close
All.
2. Buka aplikasi baru dengan memilih menu File New Application.
3. Setelah tampilan aplikasi baru muncul, atur tampilan seperti terlihat di bawah
ini:

4. Atur properti komponen sebagai berikut


No
1

Komponen
Form1

Properti
BorderStyle
Caption

37

Nilai
Single
Total Biaya Pembelian

Font
Height
Name
Position
Width

Verdana 12
420
FUtama
poScreenCenter
400

Panel1

Caption
BorderStyle
Height&Width

(kosong)
Single
Sesuaikan dengan tampilan

ComboBox1

MaxLength
CharCase
Text
Items

20
ecUpperCase
NAMA BARANG
PENA
PENSIL
PENGHAPUS

Edit1

ReadOnly
Text

true
0

CSpinEdit
(Tab Sample)

Increment
Max Value

1
100

RadioGroup1

Caption
Columns
Items

Langganan?
2
Ya
Tidak

CheckBox1

Caption
State

Lunas
cbChecked

Edit2

Text
ReadOnly

0
true

Edit3

Text
ReadOnly

0
true

38

10

Edit4

Text
ReadOnly

0
true

11

BitBtn1

Caption
Glyph

12

BitBtn2

Caption
Glyph

Hitung
Browse (*.bmp), biasanya ada
di
C:\Program
Files\Common Files\Borland
Shared\Images\Buttons
Keluar
Browse (*.bmp)

5. Simpan seluruh unit aplikasi dengan memilih menu File Save All. Ganti
nama unit1.cpp dengan utama.cpp dan project dengan Barang2.bpr.
6. Klik ganda di komponen ComboBox1 untuk event ComboBox1Change, isi sintak
berikut:

7. Klik ganda di komponen BitBtn1 (Hitung) dan isi sintak berikut:

39

8. Klik ganda di BitBtn2 (Keluar) untuk event BitBtn2Click, isi sintak sebagai
berikut:

40

9. Simpan aplikasi, tekan Alt + F9 untuk kompilasi. Jika tidak ada yang error, tekan
F9 untuk menjalankan aplikasi. Hasil akhir seperti tampilan berikut:

Isi sintak utama.cpp secara keseluruhan:


//--------------------------------------------------------------------------#include <vcl.h>
#pragma hdrstop
#include "utama.h"
//---------------------------------------------------------------------------

41

#pragma package(smart_init)
#pragma link "CSPIN"
#pragma resource "*.dfm"
TFUtama *FUtama;
//--------------------------------------------------------------------------__fastcall TFUtama::TFUtama(TComponent* Owner)
: TForm(Owner)
{
}
//--------------------------------------------------------------------------void __fastcall TFUtama::ComboBox1Change(TObject *Sender)
{
if(ComboBox1->Text == "PENA")
{
Edit1->Text = 10000;
}
else if(ComboBox1->Text == "PENSIL")
{
Edit1->Text = 7000;
}
else if(ComboBox1->Text == "PENGHAPUS")
{
Edit1->Text = 4000;
}
else
{
Edit1->Text = 0;
}

}
//--------------------------------------------------------------------------void __fastcall TFUtama::BitBtn1Click(TObject *Sender)
{
float Jumlah, Total;
float Diskon1,Diskon2,TotDisk;
/* Jumlah awal */
Jumlah = StrToInt(Edit1->Text) * StrToInt(CSpinEdit1->Text);

42

Edit2->Text = Jumlah;
/* Diskon Langganan */
if(RadioGroup1->ItemIndex == 0)
{
Diskon1 = 0.2;
}
else
{
Diskon1 = 0;
}
/* Diskon Lunas */
if(CheckBox1->State == cbChecked)
{
Diskon2 = 0.1;
}
else
{
Diskon2 = 0;
}
TotDisk = Jumlah * (Diskon1 + Diskon2);
Total = Jumlah - TotDisk;
Edit3->Text = TotDisk;
Edit4->Text = Total;

}
//--------------------------------------------------------------------------void __fastcall TFUtama::BitBtn2Click(TObject *Sender)
{
Application->Terminate();
}
//---------------------------------------------------------------------------

43

KONSEP

TIMER

Secara umum Timer didefinisikan sebagai event/proses yang terjadi secara berulang
dengan satuan/interval waktu tertentu. Konsep kerja Timer adalah menggunakan
konsep perulangan for, hanya saja proses dan step perulangan ditentukan oleh
interval waktu yang ditentukan. Sebagai contoh, untuk penulisan jam. Jika tanpa
menggunakan timer, output yang dihasilkan menunjukkan jam pada saat proses itu
saja, dan tidak berubah lagi selayaknya jam pada umumnya. Jika menggunakan
timer, maka akan menunjukkan yang selalu berubah hasilnya setiap interval waktu
1 detik.
Kasus 5 (penerapan konsep Timer):
Membuat aplikasi jam digital.
Langkah-langkah:
1. Tutup semua aplikasi yang sedang berjalan dengan memilih menu File Close
All.
2. Buka aplikasi baru dengan memilih menu File New Application.
3. Setelah tampilan aplikasi baru muncul, atur tampilan seperti terlihat di bawah
ini:

4. Atur properti komponen sebagai berikut


No
1

Komponen
Form1

Properti
BorderStyle
Caption

44

Nilai
Single
Jam Digital

Font
Height
Name
Position
Width

Verdana 22
200
FUtama
poScreenCenter
300

Timer1

Interval

1000

Label1

Alignment
Autosize

taCenter
false

5. Simpan seluruh unit aplikasi dengan memilih menu File Save All. Ganti
nama unit1.cpp dengan utama.cpp dan project dengan JamDigital.bpr.
6. Klik ganda di komponen Timer1 untuk event Timer1Timer, isi sintak berikut:

7. Simpan aplikasi, tekan Alt + F9 untuk kompilasi. Jika tidak ada yang error, tekan
F9 untuk menjalankan aplikasi. Hasil akhir seperti tampilan berikut:

45

4. Konsep Dasar
Perancangan Database
Sebelum merancang sebuah aplikasi database, haruslah dipahami dulu apa itu database,
bagaimana konsep database dan bagaiman merancang sebuah database.
APA

I TU

DATABASE

Database adalah suatu unit yang berisikan data-data yang tersimpan di dalam tabel dan
query.
Tabel adalah tempat record disimpan berdasarkan baris dan kolom.
Query adalah satu kolom atau lebih yang diambil dan diacu dari satu atau beberapa
tabel dalam satu database.

Tabel

Tabel

Tabel

Query

Tabel

Query

Database

TIPS

PERANCANGAN

DATABASE

Dalam perancangan database, perhatikan betul mana data-data yang harus diinput,
jangan sembarangan dalam menentukan kolom-kolom tabel. Buatlah kolom-kolom
sesuai dengan kebutuhan klien.
Dalam hal perancangan, database dibedakan menjadi 3 jenis tempat data disimpan,
yaitu:
1. Data Master

46

Data master adalah identitas yang didapat dari objek tertentu. Misalkan data
mahasiswa, mata kuliah, barang, pegawai, dll.
2. Data Transaksi
Data transaksi adalah data yang diambil dengan mengacu ke data lain. Misalkan
data pembelian, penjualan, pengambilan mata kuliah, dll.
3. Data Report
Data yang dikeluarkan ke laporan berdasarkan data-data yang ada di data transaksi
dan data master. Misalnya Rekap tahunan penjualan, rekap bulanan pembelian, dll.
Contoh Kasus:
Sebuah toko alat tulis ingin membuat sistem pendataan secara komputerisasi untuk data
barang yang masuk dan data barang yang keluar. Data yang masuk artinya barang yang
dibeli dari agen, dan data yang keluar artinya barang yang dijual ke pelanggan. Dari
hasil transaksi penjualan dan pembelian akan direkap setiap satu bulan sekali.
Kebutuhan:
- Jumlah inventaris barang (stock) ditampilkan dalam satu tabel/query
Perancangan database:
Nama database : dbtoko.
Dari kasus di atas, data dapat dibagi menjadi 3 bagian, yaitu:
1. Data Master
a. Data Barang (nama tabel : barang)
b. Data Agen (nama tabel : agen)
c. Data Pelanggan (nama tabel : pelanggan)
2. Data Transaksi
a. Data Penjualan Bulanan (nama tabel : t_jual)
b. Data Pembelian Bulanan (nama tabel : (t_beli)
3. Report (Laporan) yang berupa Rekap.
a. Rekap Penjualan Bulanan (nama query : q_jual)
b. Rekap Pembelian Bulanan (nama query : q_beli)

47

Dari hasil survei terhadap toko tersebut, diperoleh filed-field yang dibutuhkan untuk
diinput dari ketiga jenis data di atas, yaitu:
1. Data Master : Data Barang (nama tabel : barang)
Index
0
1
4
5
6
7

Nama
Field
kodebrg
namabrg
satuan
hjual
hbeli
gambar

Type

Size

Char
Char
Char
Number
Number
Char

6
50
20
10
10
50

Default

0
0

Allow
NULL
No
No
Yes
Yes
Yes
Yes

Unique Primary
Yes
No
No
No
No
No

Yes
No
No
No
No
No

Arahan
Kode Barang
Nama Barang
Satuan Ukuran
Harga Jual
Harga Beli
Gambar Barang

Mengapa Field gambar menggunakan Char? Karena data gambar tidak disimpan di
tabel, field tersebut hanya berisikan alamat tempat gambar itu berada.
2. Data Master : Data Agen (nama tabel : agen)
Index
0
1
2
3

Nama
Field
kodeagen
namagen
alamat
telepon

Type

Size

Char
Char
Char
Char

6
50
50
25

Default

Allow
NULL
No
No
Yes
Yes

Unique Primary
Yes
No
No
No

Yes
No
No
No

Arahan
Kode Agen
Nama Agen
Alamat Agen
Nomor Telepon

3. Data Master : Data Pelanggan (nama tabel : pelangan)


Index
0
1
2
3

Nama
Field
kodeplgn
namaplgn
alamat
telepon

Type

Size

Char
Char
Char
Char

6
50
50
25

Default

Allow
NULL
No
No
Yes
Yes

Unique Primary
Yes
No
No
No

Yes
No
No
No

Arahan
Kode Pelanggan
Nama Pelanggan
Alamat Pelanggan
Nomor Telepon

4. Data Transaksi : Data Penjualan Bulanan (nama tabel : t_jual)


Inde
x
0

Nama
Field
bulan

Type
Char

Siz
e
10

Defaul
t

48

Allow
NULL
No

Arahan
Bulan Pembelian

Keterangan

tahun

2
3

kodeplgn
kodebrg

4
5

qty
lunas

Char

No

Tahun Pembelian

Char
Char
Numbe
r
Logical

6
6

No
No

Kode Agen
Kode Barang
Jumlah
Pembelian
Status Pelunasan

No
Yes

dari tabel
pelanggan
dari tabel barang

True atau False

5. Data Transaksi : Data Pembelian Bulanan (nama tabel : t_beli)


Index
0
1
2
3
4
5

Nama Field
bulan
tahun
kodeagen
kodebrg
qty
lunas

Type
Char
Char
Char
Char
Number
Logical

Size
10
4
6
6
4

Default

Allow NULL
No
No
No
No
No
Yes

Arahan
Bulan Pembelian
Tahun Pembelian
Kode Pelanggan
Kode Barang
Jumlah Pembelian
Status Pelunasan

Keterangan

dari tabel agen


dari tabel barang
True atau False

6. Data Report : Rekap Penjualan Bulanan (nama tabel : q_jual)


Index
0
1
2
3
4
5
6
7
8
9

Nama Field
bulan
tahun
kodeplgn
namaplgn
kodebrg
namabrg
satuan
hjual
qty
lunas

Type
Char
Char
Char
Char
Char
Char
Char
Number
Number
Logical

Size
10
4
6
50
6
50
20
10
3

Arahan
Bulan Pembelian
Tahun Pembelian
Kode Pelanggan
Nama Pelanggan
Kode Barang
Nama Barang
Satuan Ukuran
Harga Satuan
Jumlah Pembelian
Status Pelunasan

dari
dari
dari
dari
dari
dari
dari
dari
dari
dari

Keterangan
tabel t_jual
tabel t_jual
tabel t_jual
tabel pelanggan
tabel t_jual
tabel barang
tabel barang
tabel barang
tabel t_jual
tabel t_jual

7. Data Report : Rekap Pembelian Bulanan (nama tabel : q_beli)


Index
0
1
2
3

Nama Field
bulan
tahun
kodeagen
namagen

Type
Char
Char
Char
Char

Size
10
4
6
50

Arahan
Bulan Pembelian
Tahun Pembelian
Kode Pelanggan
Nama Pelanggan

49

dari
dari
dari
dari

Keterangan
tabel t_beli
tabel t_beli
tabel t_beli
tabel agen

4
5
8
9
11
12

kodebrg
namabrg
satuan
hbeli
qty
lunas

Char
Char
Char
Number
Number
Logical

6
50
20
9
3

Kode Barang
Nama Barang
Satuan Ukuran
Harga Satuan
Jumlah Pembelian
Status Pelunasan

dari
dari
dari
dari
dari
dari

tabel
tabel
tabel
tabel
tabel
tabel

t_jual
barang
barang
barang
t_beli
t_beli

Tabel Relationships
1. Transaksi Penjualan

2. Transaksi Pembelian

Setelah rancangan database dibuat, tentukan jenis format tabel yang sesuai. Misalnya
dengan dBase, Ms Access, MySQL, MS SQL Server, dll. Format ini ditentukan sesuai
dengan kebutuhan.
1. Untuk aplikasi yang standalone (tunggal), gunakan dBase atau Paradox.
2. Untuk aplikasi yang datanya terintegrasi ke satu komputer, gunakan MS Access,
MySQL atau MS SQL Server atau Oracle.

50

51

5. Pengenalan Borland
Database Desktop Interface
Borland Database Desktop Interface adalah salah satu program aplikasi yang tergabung
di Borland C++ Builder 6. Fasilitas ini berfungsi untuk membuat dan mengolah database
yang menggunakan Jenis Borland Database Engine (BDE) dengan format utama adalah
dBase dan Paradox. Fasilitas ini terinstal secara bersamaan pada saat menginstal Borland
C++ Builder 6.
MENGGUNAKAN

DATABASE

DESK TO P

Cara memanggil aplikasi ini yaitu dengan mengklik menu Start Programs Borland
C++ Builder 6 Database Desktop. Setelah aplikasi terbuka, akan muncul tampilan
awal seperti berikut:

52

File Database
Secara default, database yang digunakan di aplikasi ini adalah dengan nama
BCDEMOS, dengan dBase dan Paradox (STANDARD) sebagai format tabelnya.
Namun jika ingin membuat database selain itu, caranya adalah:
1. Pilih menu Tools Alias Manager. Muncul tampilan berikut:

2. Klin New, kemudian ketik nama database dan pilih format tabelnya.
Membuat Tabel Baru
1. Pilih menu File New Table sehingga muncul tampilan berikut ini:

53

2. Pilih jenis tabel yang diinginkan, lalu klik OK. Lalu akan muncul tampil an sebagai
berikut:

Keterangan:
Pada kolom Field Name, tentukan nama field yang diinginkan. Nama Field
adalah nama pengenal kolom dalam tabel database. Aturan pemberian nama
filed adalah sebagai berikut:
i. Panjang maksimum 10 karakter untuk format dBase, dan 25 Karakter untuk
Paradox.
ii. Tidak boleh diawali dengan spasi, tapi boleh mengandung spasi.
iii. Harus unik, artinya setiap nama field harus berbeda dalam satu tabel.
iv. Jangan menggunakan tanda koma (,), tanda pipe (|) dan data seru (!).
v. Hindarkan penggunaan kata perintah SQL, misalnya SELECT, WHERE,
COUNT.
Pada kolom Type, tentukan tipe field yang tepat sesuai kebutuhan. Tekan spasi
untuk menampilkan pilihan yang tersedia. Untuk format dBase, jenis tipe yang
ada, yaitu:

54

i. Character (C), untuk menampung kumpulan karakter huruf, angka dan


karakter ASCII dapat tercetak, ukuran field tipe ini antara 1 sampai 255 byte.
Jenis ini tidak dapat dieksekusi secara aritmatika.
ii. Float (F), untuk menampung kumpulan angka yang dapat diproses secara
aritmatika dengan range dari -10307 sampai dengan 10308 dengan 15 digit
angka signifikan.
iii. Number (N), untuk menampung kumpulan angka yang dapat diproses secara
aritmatika dengan range dari -2147483648 sampai dengan 2147483647.
iv. Date (D), untuk menampung tanggal sampai dengan 31 Desember 9999.
v. Logical (L), untuk menampung data yang berjenis boolean.
vi. Memo (M), untuk menampung kumpulan karakter huruf, angka dan karakter
ASCII dapat tercetak, ukuran field tipe ini antara 1 sampai 255 MB. Jenis ini
tidak dapat dieksekusi secara aritmatika.
3. Setelah semuanya diisi, klik Define untuk menentukan kolom kunci (index primary
key) tabel tersebut. Klik ganda pada filed yang akan dijadikan index seperti tampilan
berikut ini:

55

Jika selesai tekan OK.


4. Setelah semuanya selesai, simpan dengan menekan Save As, letakkan di folder yang
tepat, misalnya di folder data bersamaan dengan folder aplikasi yang akan dibuat.
5. Untuk memodifikasi tabel, pilih menu Table Restructure.
Setelah semua tabel dibuat, selanjutkan menghubungkan tabel-tabel tersebut ke dalam
aplikasi Borland C++ Builder 6.

56

6. Aplikasi Database
Sederhana Menggunakan
Borland Database Engine
(BDE)
MEMBUAT

APLIKASI

DATABASE

SEDERHANA

Dari tabel yang telah dirancang di bab 4 di atas, sekarang bagaimana merancang aplikasi
dengan menggunakan tabel tersebut.
Persiapan:
- Software Borland C++ Builder 6
- Database Desktop
- Jenis Database menggunakan Borland Database Engine (BDE)
- Tabel menggunakan format dBase IV
Perancangan Form Aplikasi dengan Borland C++ Builder 6
No
1
2
3
4
5
6
7
8
9
10
11
12

Nama
Form
Menu Utama
Fmenu
Data Modul untuk database
DM1
Input Data Barang
Fbarang
Input Data Agen
Fagen
Input Data Pelanggan
Fpelanggan
Transaksi Penjualan
Ft_jual
Transaksi Pembelian
Ft_beli
Lookup Data Barang, Data Agen, Flookup
Data Pelanggan
Konfirmasi Rekap Bulanan Penjualan FKRek
dan Pembelian
Report Rekap Bulanan Penjualan
FRekJual
Report Rekap Bulanan Pembelian
FRekBeli
Password
Fpassword
Arahan

57

*.cpp

*.h

menu.cpp
modul1.cpp
barang.cpp
agen.cpp
pelanggan.cpp
t_jual.cpp
t_beli.cpp
lookup.cpp

menu.h
modul1.h
barang.h
agen.h
pelanggan.h
t_jual.h
t_beli.h
lookup.h

krek.cpp

krek.h

RekJual.cpp
RekBeli.cpp
password.cpp

RekJual.h
RekBeli.h
password.h

Persiapan Folder:
Buat Folder baru dengan nama Aplikasi_BDE untuk meletakkan data-data aplikasi dan
tabel yang akan dibuat. Di dalam folder tersebut buat 2 folder lagi dengan nama Data
dan Program. Folder Data sebagai tempat menyimpan tabel dan folder Program tempat
menyimpan data program aplikasi Borland C++ Builder 6, hasilnya seperti pada
tampilan berikut:

Pembuatan Tabel:
Sebelum membuat tabel, atur dulu Working Directory di Database Desktop, arahkan
(browse) ke Folder Data yang telah dibuat di atas. Kemudian buat tabel-tabel dengan
spesifikasi seperti tabel-tabel pada kasus di bab 4 dengan menggunakan Database
Desktop (cara membuat tabel dijelaskan di bab 5). Letakkan semua folder di dalam folder
Data dengan hasil akhir seperti pada tampilan berikut:

58

Pembuatan Form Aplikasi:


Setelah semua tabel dibuat, buka aplikasi baru di Borland C++ Builder 6, dengan
menutup semua aplikasi yang berjalan terlebih dahulu.
1. Form Menu Utama (Fmenu, menu.cpp, menu.h)
Form menu ini adalah form pertama pada saat membuka aplikasi baru. Tambahkan
komponen-komponen ke dalam form ini seperti terlihat pada tampilan berikut:

59

Klik ganda di toolbar Menu yang ada di Form, isi menu sesuai kebutuhan
ditambahkan dengan menu Help yang isinya ada pilihan Exit:

60

Setelah selesai, tutup isian Menu, kemudian pilih menu Exit, lalu isi sintak seperti di
bawah ini:

Atur properti komponen seperti dalam tabel berikut:


No
1

Komponen
Form1

Properti
BorderStyle
Caption
Font
Height
Name

61

Nilai
Single
Toko Maya
Verdana 10
450
Fmenu

Position
Width
FormStyle
2

MainMenu1

poScreenCenter
600
fsMDIForm

(lihat di gambar
6.2)

Simpan seluruh aplikasi (Save All), ganti project dengan nama TokoMaya.bpr

2. Data Modul (DM1, modul1.cpp, modul1.h)


Untuk membuat Data Modul,pil menu File New Data Modul. Karena kasus ini
menggunakan format tabel dBase, maka digunakan Database STANDARD yang
ditambahkan dari tab BDE. Seperti pada tampilan berikut:

DataSource, berfungsi sebagai penghubung antar tabel/query ke form

Atur properti komponen sebagai berikut:


No
1
2

Komponen
DataModule1
Database1

Properti

Nilai

Name

DM1

DatabaseName
Name
DriverName
LoginPrompt
Connected

dbtoko
dbtoko
STANDARD
false
True

62

Tabel1

DatabaseName
TableName
IndexFieldName
Name
Active

dbtoko
../data/barang.dbf
KODEBRG
barang
true

Tabel2

DatabaseName
TableName
IndexFieldName
Name
Active

dbtoko
../data/agen.dbf
KODEAGEN
agen
true

Tabel3

DatabaseName
TableName
IndexFieldName
Name
Active

Dbtoko
../data/pelanggan.dbf
KODEPLGN
pelanggan
true

DataSource1

Name
DataSet

DSbarang
barang

DataSource2

Name
DataSet

DSagen
agen

DataSource3

Name
DataSet

DSpelanggan
pelanggan

Query1

DatabaseName
Name

dbtoko
Qjual

10

Query2

DatabaseName
Name

dbtoko
Qbeli

11

Query3

DatabaseName
Name

dbtoko
Qlookup

12

DataSource4

Name
DataSet

DSQjual
Qjual

13

DataSource5

Name
DataSet

DSQbeli
Qbeli

14

DataSource6

Name
DataSet

DSlookup
lookup

63

3. Form Input Data Barang (Fbarang, barang.cpp, barang.h)


Buka Form baru, dengan memilih menu File New Form. Lalu tambahkan dan
atur setiap komponen dengan mengacu pada rancangan tabel yang telah dibuat,
seperti pada tampilan berikut:
Tab Data Controls

Tambahkan unit Modul (DM1) ke barang.cpp dengan sintak sebagai berikut:

No
1

Komponen
Form1

Properti
BorderStyle

64

Nilai
bsNone

Caption
Font
Height
Name
Position
Width
FormStyle
BorderIcons
WindowStatae

Data Barang
Verdana 10
400
Fbarang
poMainFormCenter
590
fsMDIChild
[biMaximize]
wsMaximized

Panel1

Caption
BorderStyle

(kosong)
bsSingle

DBEdit1

DataSource
DataField
CharCase

DSbarang
KODEBRG
ecUpperCase

DBEdit2

DataSource
DataField
CharCase

DSbarang
NAMABRG
ecUpperCase

DBEdit3

DataSource
DataField

DSbarang
SATUAN

DBEdit4

DataSource
DataField

DSbarang
HJUAL

DBEdit5

DataSource
DataField

DSbarang
HBELI

DBEdit6

DataSource
DataField

DSbarang
GAMBAR

BitBtn1

Caption
Glyph

Browse

10

OpenDialog1

DefaultExt
Filter

*.bmp
Bitmap Files|*.bmp|

65

JPEG Files|*.jpg
11

DBNavigator1

DataSource
Show Hints

DSbarang
true

Tampilan Filter di OpenDialog1

Klik ganda pada BitBtn1, isi sintaks sebagai beriku untuk melelatakkan alamat folder
tempat gambar berada di DBEdit6:

66

Kemudian masukkan unit ini (barang.h) ke unit menu dengan menambahkan


sintaks di unit menu.cpp sehingga form menu dapat memanggil form barang, seperti
berikut:

Tips:
- cara ini bisa juga dilakukan dengan memilih menu File Include Unit Hdr (ALT
+ F11).
- Tekan F12 untuk pindah antar unit.
- Tekan Shift + F12 untuk melihat Form yang lain
- Tekan Ctrl + F12 untuk melihat Unit source yang lain.
Kemudian pada Form menu, klik pada menu Data Master Barang, isikan sintak di
bawah ini.

Tekan Alt+F9 untuk Compile, jika tidak ada error tekan F9 untuk menjalankan
aplikasi, seperti tampilan berikut:

67

First, ke record yang pertama


Previous (Prior), ke record sebelumnya
Next, ke record berikutnya
Last, ke record terakhir
Insert, menambah record
Delete, menghapus record
Edit, mengedit record
Post, konfirmasi Insert atau Edit
Cancel, batal Insert atau Edit
Refresh Data
Untuk melakukan pencarian terhadap record, ada beberapa metode yang dapat
digunakan, antara lain yaitu:
- Menggunakan kolom kunci (index column).
- Menggunakan perintah SQL
Berikut adalah metode pencarian dengan menggunakna kolom kunci (index column)

68

Langkah-langkah:
- Pastikan pada saat membuat tabel, sudah ditentukan kolom (field) kunci terlebih
dahulu, seperti dijelaskan di bab 5.
- Di di Data Module (DM1), pada komponen tabel barang, pastikan set properti
IndexFieldName sudah terisi sesuai dengan kolom kunci yang telah ditentukan.
- Kemudian pada kasus di atas, tambahkan komponen-komponen di form barang
sehingga, seperti tampilan berikut:

Komponen yang ditambahkan:


Komponen
Edit1

BitBtn2

Properti
CharCase
Text

Nilai
ecUpperCase
(kosong)

Caption
Default

Cari
True

Klik ganda pada BitBtn2 (Cari) lalu isi sintak berikut:

69

Jalankan aplikasi (tekan F9), lalu coba ketikkan kode barang di Edit dan tekan
tombol Cari. Jika data ditemukan maka akan langsung mengeset record ke kode
yang dicari, jika tidak ketemu, maka akan mengeluarkan pesan Data tidak
ditemukan!. Tampilan form saat dijalankan akan seperti berikut:

70

Tips:
o
o

Pelajari juga mengenai FindNearest, FindKey dan GotoNearest.


Pelajari untuk mencari berdasarkan nama barang.

4. Form Input Data Agen (Fagen, agen.cpp, agen.h)


Lakukan cara yang sama dengan point 3 (Data Barang).
Tampilan desain:

Tampilan saat aplikasi dijalankan:

71

5. Form Input Data Pelanggan (Fpelanggan, pelanggan.cpp, pelanggan.h)


Lakukan cara yang sama dengan point 3 (Data Barang).
Tampilan desain:

72

Tampilan saat aplikasi dijalankan:

Pengenalan Perintah SQL


Sebelum masuk ke pembuatan form transaksi dan seterusnya, akan dikenalkan apa dan
bagaimana perintal SQL itu.
Perintah SQL (Structured Query Language) adalah bahasa yang berbasis pada hubungan
relasi kalkulus (relasi aljabar) dan banyak digunakan dalam lingkungan back end, baik
untuk membuat tabel, manipulasi data, maupun untuk pengontrolan transaksi yang
dilakukan di dlam database. Di dalam Borland C++ Builder 6, SQL dapat digunakan
melalui komponen Query.
Seara umum SQL dibagi ke dalam tiga kategori, yaiut Data Definition (DDL), Data
Manipulation Language (DML) dan Data Control Language (DCL). SQL juga dilengkapi
dengan kemampuan untuk melakukan fungsi-fungsi khusus lainnya seperti menghitung
banyaknya record (count), melakukan penjumlahan nilai dari sebuah field (sum),
menentukan nilai maksimum (max) dan sebagainya.
Berikut adalah sintak SQL yang sering digunakan di dalam transaksi.

73

Insert, digunakan untuk memasukkan sebuah record baru ke dalam tabel.


Contoh:

insert into barang values(ATK003,PENGHAPUS,Kodi,1000,2000,C:\)

Update, digunakan untuk mengubah nilai-nilai field yang terdapat pada suatu
tabel.
Contoh:
Update barang set SATUAN = Lusin where KODEBRG = ATK003
Perintah ini akan mengubah nilai SATUAN menjadi Lusin dari tabel barang
yang memiliki KODEBRG = ATK003.

Select, digunakan untuk menampilkan field-field yang terdapat pada tabel


dalam database.
Bentuk Umum:
select field1,field2,field3,...,fieldn from nama_tabel
Contoh:
select KODEBRG, NAMABRG, SATUAN from barang
Peintah ini akan menampilkan field KODEBRG, NAMABRG dan SATUAN dari
tabel barang.
select * from barang
Perintah ini akan menampilkan seluruh field dari tabel barang,
select * from barang where KODEBRG = ATK001
Perintah ini akan menampilkan seluruh field dari tabel barang dengan klausa
(kondisi) KODEBRG = ATK001.
select KODEBRG, NAMABRG, SATUAN from barang
where HJUAL = 2000 and AND Hbeli = 3000
Perintah ini akan menampilkan field KODEBRG, NAMABRG dan SATUAN dari
tabel barang yang mempunyai nilai HJUAL = 2000 dan HBELI = 3000.
select * from barang where NAMABRG like %PEN%

74

Perintah ini akan menampilkan seluruh field dari tabel barang dengan nilai
NAMABRG = ??????PEN?????, artinya seluruh NAMABRG yang mempunyai
kata PEN.
Tips:
o
o
o
o
o

Perbanyak latihan dengan menggunakan perintah SQL.


Pelajari juga mengenai perintah membuat dan menghapus tabel, menambah
field.
Pelajari mengenai penggabungan 2 tabel atau lebih.
Pelajari mengenai berbagai macam klausa yang lain.
Pelajari perintah fungsi0fungsi yang lain.

Setelah paham mengenai perintah SQL, lanjutkan dengan pembuatan form transaksi.

6. Form Transaksi Pembelian (Ft_beli, t_beli.cpp, t_beli.h)


Tampilan desain awal:

Atur properti komponen sebagai berikut:

75

Komponen
Form1

Properti
BorderStyle
Caption
Font
Height
Name
Position
Width
FormStyle
BorderIcons
WindowStatae

bsNone
Transaksi Pembelian
Verdana 10
400
Ft_beli
poMainFormCenter
590
fsMDIChild
[biMaximize]
wsMaximized

Panel1

Caption
BorderStyle

(kosong)
bsSingle

Panel2

Caption
BorderStyle

(kosong)
bsSingle

ComboBox1 CharCase
Items

Nilai

ecUpperCase

Arahan

Bulan

JANUARI
FEBRUARI
MARET
.
.
.
DESEMBER

Style
Text

csDropDown
BULAN

CSpinEdit1

MaxValue
MinValue
Value

3000
2000
2000

Tahun

Edit1

CharCase
MaxLength
Text

ecUpperCase
6
(kosong)

Kode Barang

Button1

Caption

List

Edit2

CharCase

ecUpperCase

76

Kode Agen

MaxLength
Text

6
(kosong)

Button2

Caption

List

Edit3

Text

0
ReadOnly

Harga Beli
true

CSpinEdit2

MaxValue
MinValue
Value

5000
0
0

Quantity

Edit4

Text

0
ReadOnly

Harga Beli
true

Panel3

Caption
BorderStyle

(kosong)
bsSingle

BitBtn1
BitBtn2
BitBtn3

Caption
Caption
Caption

Simpan
Update
Hapus

Panel4

Caption
BorderStyle

(kosong)
bsSingle

ComboBox2 CharCase
Items

CSpinEdit3

ecUpperCase

Bulan

JANUARI
FEBRUARI
MARET
.
.
.
DESEMBER

Style
Text

csDropDown
BULAN

MaxValue
MinValue
Value

3000
2000
2000

Tahun

77

Edit5

CharCase
MaxLength
Text

ecUpperCase
6
(kosong)

Cari Kode Barang

Edit6

CharCase
MaxLength
Text

ecUpperCase
6
(kosong)

Cari Kode Agen

BitBtn4
BitBtn5
DBGrid1

Caption
Caption
DataSource

Semua Kriteria
Refresh
DM1->DSQbeli
Align

alClient

Pilih menu Event di Ft_beli, klik ganda pada event OnShow pada form Ft_beli untuk
event FormShow, isi sintak sebagai berikut:

Tambahkan sintak berikut ini untuk mendefiniskan dua buah prosedur, yaitu:

78

EQbeli(), untuk mengeksekusi perintah SQL yang diberikan oleh str1. Perintah ini
hanya akan berjalan dengan perintah SQL yang menggunakan perintah selain
select.
OQbeli(), untuk mengeksekusi perintah SQL yang diberikan oleh str2. Perintah
ini hanya akan berjalan dengan perintah SQL yang menggunakan perintah select.

Tambahkan juga deklarasi prosedur di t_beli.h seperti tampilan berikut:

Deklarasikan variabel str1 dan str2 di kode t_beli.cpp paling atas (variabel bersifat
global), seperti berikut:

Klik ganda pada Edit1 untuk event Edit1OnChange, artinya proses di prosedur ini
akan berjalan pada saat nilai di dalam Edit1 berubah. Isi sintak sebagai berikut:

79

Sintak ini untuk memeriksa apakah kode barang yang ada di Edit1 ada di tabel
barang. Jika ada maka akan menuliskan nama barang di Label6.
Sama halnya untuk validasi kode agen, klik ganda di Edit2 untuk event OnChange,
isi sintak di bawah ini:

80

Klik ganda di CSpinEdit2 untuk event OnChange. Prosedur ini adalah untuk
menghitung jumlah harga dari pembelian. Isi sintak sebagai berikut:

Komponen Button1 dan Button2 (List) digunakan untuk melihat data barang dan
agen. Cara membuat Form Flookup dan menghubungkannya dengan form transaksi
dapat dilihat di point 8.
Klik ganda di BitBtn1 (Simpan) untuk event OnClick. Prosedur ini untuk
menyimpan data ke dalam record baru, dengan memvalidasi jika data telah ada,
maka tidak akan disimpan ke data baru.

81

82

Kemudian, klik ganda pada BitBtn2 (Update) untuk event OnClick. Prosedur ini
digunakan untuk mengupdate data yang telah ada, dengan mencari data tersebut
terlebih dahulu. Acuan yang digunakan adalah ComboBox2, CSpinEdit3, Edit5,
Edit6, CSpinEdit4 danCheckBox2. Isi sintak seperti di bawah ini:

83

Kemudian klik ganda di BitBtn3 (Hapus) untuk even OnClick. Prosedur ini
digunakan untuk menghapus data berdasarkan klausa ada di ComboBox2,
CSpinEdit3, Edit5, Edit6, CSpinEdit4 danCheckBox2. Isi sintak seperti di bawah ini:

84

Kemudian klik ganda di ComboBox2 untuk event OnChange. Prosedur ini untuk
mencari data di tabel transaksi pembelian dengan klausa BULAN. Isi sintak di
bawah ini:

85

Kemudian klik ganda di CSpinEdit3 untuk event OnChange. Prosedur ini untuk
mencari data di tabel transaksi pembelian dengan klausa TAHUN. Isi sintak di
bawah ini:

Kemudian klik ganda di Edit5 untuk event OnChange. Prosedur ini untuk mencari
data di tabel transaksi pembelian dengan klausa KODEBRG. Isi sintak di bawah ini:

Kemudian klik ganda di Edit6 untuk event OnChange. Prosedur ini untuk mencari
data di tabel transaksi pembelian dengan klausa KODEAGEN. Isi sintak di bawah
ini:

86

Kemudian klik ganda di CSpinEdit4 untuk event OnChange. Prosedur ini untuk
mencari data di tabel transaksi pembelian dengan klausa QTY. Isi sintak di bawah
ini:

Kemudian klik ganda di CheckBox2 untuk event OnClick. Prosedur ini untuk
mencari data di tabel transaksi pembelian dengan klausa LUNAS. Isi sintak di bawah
ini:

87

Kemudian klik ganda di BitBtn4 (Semua Klausa) untuk event OnClick. Prosedur ini
untuk mencari data di tabel transaksi pembelian dengan semua klausa di Panel4, jika
ketemu akan menuliskan hasilny ake Panel2. Isi sintak di bawah ini:

88

89

Kemudian klik ganda di BitBtn5 (Refresh) untuk event OnClick. Prosedur ini untuk
menampilkan seluruh data di tabel transaksi pembelian. Isi sintak di bawah ini:

Jika semuanya telah selesai, jalankan aplikasi. Jika tidak ada yang error, tampilan
form akhir saat dieksekusi sebagai berikut:

90

Kemudian masukkan unit ini (t_beli.h) ke unit menu dengan menambahkan sintaks
di unit menu.cpp sehingga form menu dapat memanggil form barang, seperti
berikut:

Tips:
- cara ini bisa juga dilakukan dengan memilih menu File Include Unit Hdr (ALT
+ F11).
- Tekan F12 untuk pindah antar unit.
- Tekan Shift + F12 untuk melihat Form yang lain
- Tekan Ctrl + F12 untuk melihat Unit source yang lain.

91

Kemudian pada Form menu, klik pada menu Transaksi Pembelian, isikan sintak
di bawah ini.

Tombol List digunakan untuk meliahat daftar barang, agen dan pelanggan yang
ditampilkan dalam bentuk tabel di Grid. Tabel ini dibuat di form baru dengan nama
Flookup . Cara pembuatan Form akan dijelaskan di nomor 8.
7. Form Transaksi Penjualan (Ft_jual, t_jual.cpp, t_jual.h)
Dengan cara yang sama dengan point 6, Buatlah Form untuk transaksi penjualan.
Tampilan desain form:

92

Tampilan akhir form saat dieksekusi:

8. Form Lookup Data Barang, Data Agen, Data Pelanggan (Flookup, lookup.cpp,
lookup.h)
Komponen
Form1

Properti
BorderStyle
Caption
Font
Height
Name
Position
Width
FormStyle
BorderIcons

Nilai
bsSingle
Tabel Lookup
Verdana 8
350
Flookup
poScreenCenter
430
fsStayOnTop
[biSystemMenu,biMinimize]

Panel1

Caption
BorderStyle

(kosong)
bsSingle

93

Arahan

Align
ComboBox1 CharCase
Items

DBGrid1

alTop
ecUpperCase
BARANG
AGEN
PELANGGAN

Style
Text

csDropDown
TABEL LOOKUP

DataSource
Align

DM1->DSQlookup
alClient

include modul first

Tampilan Desain awal:

Komponen ComboBox1 berfungsi untuk memilih tabel yang akan dilihat, yaitu tabel
barang, agen dan pelanggan. Jika salah satu tabel dipilih, maka secara otimatis akan
menampilkan data-data yang ada di tabel tersebut di Grid1.
Klik ganda di komponen ComboBox1 untuk even OnChange. Isikan sintak di bawah
ini:

94

Kemudian kenalkan (include) unit ini (lookup.h) ke unit transaksi pembelian


(t_beli.h) dan unit penjualan (t_jual.h) agar unit ini dapat dipanggil dengan
menggunakan tombol list.
Kemudian klik ganda di setiap tombol list, baik itu di Form Pembelian maupun di
Form Penjualan (unit lookup.h telah dikenalkan terlebih dahulu), lalu isi sintak di
bawah ini:

9. Form Konfirmasi Rekap Bulanan Penjualan dan Pembelian (FKRek, krek.cpp, krek.h)

95

Sebelum membuat Report, terlebih dahulu buat Form untuk konfirmasinya, antara
lain untuk konfirmasi bulan berapa, tahun berapa dan report apa yang akan
ditampilkan.
Untuk membuat Form Konfirmasi report, langkah pertama yaitu buat Form dan
letakkan komponen-komponen baru dengan rincian sebagai berikut:
Komponen
Form1

Properti
BorderStyle
Caption
Font
Height
Name
Position
Width
FormStyle
BorderIcons

ComboBox1 CharCase
Items

Style
Text
ComboBox2 CharCase
Items

Nilai

Arahan

bsSingle
Konfirmasi Report
Verdana 10
200
FKRek
poScreenCenter
300
fsNormal
[biSystemMenu,biMinimize]
ecUpperCase

Bulan

JANUARI
FEBRUARI
MARET
.
.
.
DESEMBER

csDropDown
BULAN
ecUpperCase

Rekap

PENJUALAN
PEMBELIAN

Style
Text

csDropDown
REKAP

CSpinEdit1

MaxValue
MinValue
Value

3000
2000
2000

BitBtn1

Caption

Preview

Tahun

96

BitBtn2

Caption

Tutup

Tampilan desain awal:

Klik ganda di BitBtn2 (Tutup), isi sintak sebagai berikut:

Sebelum sintak di BitBtn1 (Preview) diisi, buatlah dulu Form untuk Reportnya
terlebih dahulu.
Kemudian Klik ganda di BitBtn1 (Preview), isi sintak di bawah ini:

97

98

Tambahkan unit Form Rekap Penjualan dan Pembelian di unit ini.

10. Form Report Rekap Bulanan Penjualan (FRekJual, RekJual.cpp, RekJual.h)


Pada prinsipnya, sama dengan komponen-komponen standard, Komponenkomponen yang digunakan di report terdapat di Tab QReport.

Untuk membuat Form report, langkah pertama yaitu buat Form dan letakkan
komponen-komponen baru dengan rincian sebagai berikut:

99

Komponen
Form1

Properti
BorderStyle
Caption
Font
Height
Name
Position
Width
FormStyle
BorderIcons
AutoScroll

Nilai

Query1

Name
QRJual
DatabaseName DM1 : dbtoko
SQL String
SELECT D.NAMABRG, D1.NAMAPLGN,

Arahan

bsSingle
Konfirmasi Report
Verdana 10
480
FrekJual
poScreenCenter
700
fsNormal
[biSystemMenu,biMinimize]
true

D2.BULAN, D2.TAHUN, D2.KODEPLGN,


D2.KODEBRG, D2.QTY, D2.LUNAS
FROM "..\Data\barang.DBF" D,
"..\Data\pelanggan.DBF" D1,
"..\Data\t_jual.DBF" D2
WHERE
(D2.KODEPLGN = D1.KODEPLGN)
AND (D2.KODEBRG = D.KODEBRG)
ORDER BY D.NAMABRG, D1.NAMAPLGN,
D2.BULAN, D2.TAHUN, D2.KODEPLGN,
D2.KODEBRG, D2.QTY, D2.LUNAS

Active

true

DataSource1 Name
DataSet

DSQRJual
QRJual

QuickRep1

QRJual
HasColumnHeader = true

Dataset
Bands

HasDetail = true

HasPageFooter = true
HasPageHeader = true
HasSummary = true

100

tempat
meletakkan
nama kolom
(field)
tempat
melatakkan
record

Tampilan desain awal:

Sebelum menambahkan komponen lain, akan dijelaskan beberapa komponen yang


sering di Qreport, yaitu:
Nama Komponen
QuickRep
QRSubDetail
QRStringsBand
QRband
QRChildBand
QRGroup
QRLabel
QRDBText
QRExpr
QRSysData
QRMemo

Deskripsi
Induk awal dari Report

101

QRShape
QRImage
QRDBImage
Kemudian tambahkan komponen-komponen QRLabel, QRDBText, QRExpr, dan
QRShape sehingga tampilan seperti di bawah ini:
Tampilan desain:

Tampilan setelah properti tiap kkomponen diisi dengan DataSource dan DataField
yang sesuai:

102

Tampilan pada saat di Preview:

103

Tambahkan unit modul1 (DM1) di unit rekjual.cpp seperti di bawah ini:

11. Form Report Rekap Bulanan Pembelian (FRekBeli, RekBeli.cpp, RekBeli.h)


Untuk pembuatan Form Report Pembelian, lakukan cara yang sama dengan Form
Report Penjualan.
12. Form Password (Fpassword, password.cpp, password.h)
Komponen
Properti
Form1
BorderStyle
Caption
Font
Height
Name
Position
Width
FormStyle
BorderIcons
WindowStatae

Nilai
Arahan
bsNone
Transaksi Pembelian
Verdana 10
400
Ft_beli
poMainFormCenter
590
fsMDIChild
[biMaximize]
wsMaximized

Panel1

Caption
BorderStyle

(kosong)
bsSingle

BitBtn1

Caption
Default
Caption

Login
true
Exit

BitBtn2

Tampilan desain:

104

Kemudian tambhakna unit menu di unit ini dengan sintak di bawah ini:

Klik ganda di BitBtn1 (Login), isi sintak di bawah ini:

105

Tambahkan sintak di bawah ini untuk event FpasswordShow:

Lalu pada unit Menu (Fmenu), tambahkan sintak di bawah ini pada event
FmenuShow:

Tampilan hasil akhir aplikasi:

106

107

6. Aplikasi Database
Menggunakan ADO
Microsoft Access
Kasus :
Sebuah perusahaan sewa mobil ingin membuat sistem pendataan sewa
secara komputerisasi. Perusahaan mempunyai pelanggan tetap dan tidak
tetap. Pelanggan harus membayar uang muka sebesar 10% dari total biaya
sewa. Setiap ada penyewaan akan dicek terlebih dahulu status mobil apakah
sudah dipesan atau sedang dipesan. Akan dibuat rekap harian dan bulanan
dari data yang ada.
Perancangan Database :
Nama database : dbsewamobil.
Dari kasus di atas dapat dibagi menjadi tiga bagian :
1. Data Master
a. Data Mobil
b. Data Pelanggan
2. Data Transaksi
a. Data Sewa
3. Report
a. Rekap Sewa Harian
b. Rekap Sewa Bulanan
Berdasarkan hal di atas maka rancangan tabelnya adalah sebagai berikut :

108

1. Data Master : Data Mobil (nama tabel : mobil)


Index
0
1
2
3
4

Nama Field
kodemobil
jenismobil
merkmobil
tarif
catatan

Type
Text
Text
Text
Number
Text

Size
5
15
20
Long Integer
100

2. Data Master : Data Pelanggan (nama tabel : pelanggan)


Index
0
1
2
3
4
5
6
7
8

Nama Field
kodepelanggan
namapelanggan
kontak
alamat
kota
kodepos
telpon
fax
catatan

Type
Text
Text
Text
Text
Text
Text
Text
Text
Text

Size
6
20
15
50
20
5
15
15
100

3. Data Transaksi : Data Transaksi Sewa (nama tabel : datasewa)


Index
0
1
2
3
4
5
6
7
8
9

Nama Field
nofaktur
kodepelanggan
tglsewa
blnsewa
thnsewa
kodemobil
lamasewa
uangmuka
biayasewa
sisabayar

Type
Text
Text
Text
Text
Text
Text
Number
Number
Number
Number

109

Size
10
6
2
10
4
5
Long Integer
Long Integer
Long Integer
Long Integer

10

catatan

Text

100

Setelah rancangan database dibuat, tentukan jenis format tabel yang dibuat
(dalam hal ini menggunakan MS Access).
Buat sebuah folder, tempat menyimpan program dan database Anda.
Pembuatan Form Aplikasi
Setelah semua tabel dibuat, buka aplikasi Boland C++ Builder 6, dengan
menutup semua aplikasi yang berjalan terlebih dahulu (File Close All).
1. Form Menu Utama (Fmenu, Umenu.cpp, Umenu.h)
Form menu ini adalah form pertama pada saat membuka aplikasi. Klik
File New Application, untuk setiap pembuatan aplikasi baru.
Tambahkan komponen-komponen ke dalam form ini seperti terlihat pada
tampilan berikut :

Klik ganda di toolbar Menu yang ada di Form, isi menu sesuai kebutuhan.

110

111

Setelah selesai, tutup isian Menu, kemudian pilih menu Exit, lalu isi sintak
seperti di bawah ini :

Atur properti komponen seperti berikut :


No

Komponen
Form1

MainMenu1

Properti
BorderStyle
Caption
Font
Height
Name
Position
Width
FormStyle
(Lihat gambar)

Nilai
Single
PT Never Give Up

Fmenu
poScreenCenter
.
.

2. Data Modul (DM1, Umodul.cpp, Umodul.h)


Untuk membuat Data Modul, klik File New Data Module. Karena
kasus ini menggunakan MS Access, maka gunakan komponen-komponen
pada tab ADO.

112

Atur properti komponen sebagai berikut :


No
1

Komponen
DataModule

Properti
Name

ADOConnection

Name
ConnectionString
- Provider

Nilai
DM1
koneksi

- Connection
Login Prompt
Connected

Microsoft Jet 4.0 OLE DB


Provider
dbsewamobil.mdb
false
true

ADOTable1

Name
Connection
TableName
IndexFieldName
Active

mobil
koneksi
mobil
kodemobil
true

ADOTable2

Name
Connection
TableName
IndexFieldName

pelanggan
koneksi
pelanggan
kodepelanggan

113

Active

true

DataSource1

Name
DataSet

DSmobil
mobil

DataSource2

Name
DataSet

DSpelanggan
pelanggan

ADOQuery1

Name
Connection

Qcari
koneksi

ADOQuery2

Name
Connection

Qsewa
koneksi

DataSource3

Name
DataSet

DSdatasewa
Qsewa

10

ADOQuery3

Name
Connection

Qvalidasi
koneksi

3. Form Entry Data Mobil (Fmobil, Umobil.cpp, Umobil.h)


Buka fom baru, dengan memilih File New Form. Gunakan
komponen pada tab Data Controls. Atur tampilan seperti berikut :

114

Tambahkan unit modul (DM1) ke Umobil.cpp dengan sintak sebagai berikut :

115

No
1

Komponen
Form1

Properti
BoderStyle
Caption
Font
Height
Name
Position
Width
FormStyle
BorderIcons
WindowState

Entry Data Mobil

Fmobil

Panel1

Caption
BorderStyle

(kosong)

DBEdit1

DataSource
DataField
CharCase

DSmobil
kodemobil
ecUppercase

DBEdit2

DataSource
DataField
CharCase

DSmobil
jenismobill
ecUppercase

DBEdit3

DataSource
DataField
CharCase

DSmobil
merkmobil
ecUpperCase

DBEdit4

DataSource
DataField

DSmobil
tarifsewa

DBEdit5

DataSource
DataField

DSmobil
catatan

DBNavigator1

DataSource
ShowHint

DSmobil
true

116

Nilai

DBGrid1

DataSource
Column

10

Edit1

CharCase

DSmobil
Klik kanan pada jendela
EditingDBGrid1-->Add
All Fields. Klik pada
Field yang ingin dirubah,
pada Object Inspector
klik Title, Ubah Captionnya.
Alignment -> taCenter
ecUpperCase

11

Button1

Caption
Default

Cari
True

12

Button2

Caption

Refresh

Klik ganda pada Button1 (Cari), isi sintaks sebagai berikut :

117

Klik Button2 (Refresh), isi sintaks berikut :

Kemudian masukkan unit ini (Umobil.h) ke unit menu dengan


menambahkan sintaks di unit Umenu.cpp sehinggan form menu dapat
memanggil form mobil, seperti berikut :

Kemudian pada Form menu, klik menu Master Mobil, isikan sintaks
berikut :

Agar field entry pada form Mobil kosong ketika form tersebut
ditampilkan, dan kursor berada di field Kode Mobil, klik Fmobil, pilih
tab Event pada Object Inspector, kemudian klik ganda OnShow, ketikkan
sintaks di bawah ini :

118

Sintaks SetFocus(); digunakan untuk meletakkan posisi kursor


komponen yang dimaksud.

pada

Setelah selesai, Compile program dengan menekan Alt+F9, bila tidak ada
error jalankan program dengan menekan F9. Tampilannya akan seperti
gambar di bawah ini :

119

Coba isikan kode mobil pada Edit lalu klik Cari, jika data ditemukan
maka field-field akan langsung berisi data yang dicari sesuai dengan
kode yang diketikkan, begitu juga pada DBGrid akan menampilkan
record yang dimaksud.

120

Bila data yang dimaksud tidak ditemukan maka field-field akan kosong,
begitu juga DBGrid.

4. Form
Entry
Data
Pelanggan
(Fpelanggan,
Upelanggan.cpp,
Upelanggan.h)
Lakukan cara yang sama seperti membuat form Mobil di atas.
Tampilan Desain :

121

Tampilan saat form dijalankan :

122

5. Form Transaksi Sewa (Fsewa, Utransaksisewa.cpp, Utransaksisewa.h)


Tampilan desain :

Atur properti komponen sebagai berikut :


No
1

Komponen
Form1

Properti
BorderStyle
Caption
Font
Height
Name
Position
Width

123

Nilai

Fsewa

FormStyle
BorderIcons
WindowState

Panel

Caption
BorderStyle

(Kosong)
bsSingle

Edit1

CharCase
MaxLength
Text

ecUpperCase
6
(kosong)

Edit2

CharCase
MaxLength
Text

ecUpperCase
5
(kosong)

CSpinEdit1

Increment
MaxValue
MinValue
Value

1
31
1
1

ComboBox1

CharCase
Items

Text

ecUpperCase
JANUARI
FEBRUARI
.
.
DESEMBER
BULAN

CSpinEdit2

Increment
MaxValue
MinValue
Value

1
3000
2006
2006

Edit3

CharCase
MaxLength

ecUpperCase
4

124

Text

(kosong)

Edit4

Text
ReadOnly

(kosong)
True

10

Edit5

Text
ReadOnly

(kosong)
True

11

Edit6

Text
ReadOnly

(kosong)
True

12

Edit7

Text

(kosong)

13

Edit8

Text
ReadOnly

(kosong)
True

14

Edit9

Text
ReadOnly

(kosong)
True

15

Edit10

Text
ReadOnly

(kosong)
True

16

Edit11

Text

(kosong)

17

Button1

Caption

Hitung

18

Button2

Caption

Simpan

19

Button3

Caption

Update

20

Button4

Caption

Hapus

21

Button5

Caption

Cari

22

DBGrid1

DataSource

DM1->datasewa

125

(atur juga tampilan judul


field/kolom seperti DBGrid
diatas)
23
24
25

Button6
Button7
Label18

Caption
Caption
Caption

Refresh Data Sewa


Refresh Form
Label18

Pilih menu Events di Fsewa, klik ganda pada event OnShow pada form
Fsewa, isi sintaks berikut ini (sesuaikan field Edit dengan program Anda):

126

Untuk menampilkan nama pelanggan pada Label18 ketika Anda


mengetikkan kode pelanggan pada Edit2, Klik ganda Edit2, isi sintaks
berikut :

127

Untuk menampilkan Jenis, Merk, dan Tarif Sewa mobil begitu Anda
mengetikkan Kode Mobil, isikan sintaks berikut pada Edit6 (sesuaikan
dengan Edit Anda) :

128

Untuk melakukan proses perhitungan biaya sewa, uang muka dan sisa
bayar, klik ganda button1 (Hitung), ketikkan sintaks berikut :

Untuk proses penyimpanan, klik ganda button2 (Simpan), ketikkan


sintaks berikut :

129

130

Untuk meng-Update data yang telah ada, ketikkan sintaks berikut pada
Button3 (Update) :

Untuk proses penghapusan data di tabel database, ketikkan sintaks


berikut pada Button4 (Hapus) :

131

Sebelum melakukan proses Update dan Hapus sebaiknya ada proses


pencarian terlebih dahulu data yang akan di-update atau dihapus. Klik
ganda Button5 (Cari) ketikkan sintaks berikut untuk proses pencarian
dan menampilkan hasil dari pencarian tersebut :

132

133

Setelah proses pencarian dilakukan DBGrid hanya akan menampilkan


record yang dicari. Agar DBGrid menampilkan kembali data-data di tabel
ketikkan sintaks berikut pada Button6 (Refresh Data Sewa) :

Untuk mengosongkan kembali field-field pada form, ketiik sintaks


berikut pada Button7 (Refresh Form) :

134

Masukkan unit ini (Utransaksisewa.h) ke unit menu.


Tampilan form setelah dijalankan :

135

6. Form View Sewa (Fviewsewa, Uviewsewa.cpp, Uviewsewa.h)


Form ini digunakan untuk menampilkan data sewa, mobil yang telah
dipesan / sedang disewa, sehingga diketahui ketersediaan mobil yang
akan disewa.
Tampilan desain :

Atur properti komponen sebagai berikut :


No
1

Komponen
Form1

Properti
BorderStyle
Caption
Font
Height
Name
Position
Width
FormStyle
BorderIcons

136

Nilai
.
.
.
.
Fviewsewa
.
.
.
.

WindowState

ComboBox1

Text

Tanggal

ComboBox2

Items

Text

JANUARI
..
..
DESEMBER
Bulan

CSpinEdit1

Increment
MaxValue
MinValue
Value

1
3000
2006
2006

ComboBox3

Text

Kode Mobil

Label4

Caption

Label4

Label6

Caption

Label6

DBGrid1

DataSource

DM1->DSdatasewa

137

Pada event form OnShow ketik sintaks berikut :

Pencarian berdasarkan perubahan pada ComboBox3. Ketikkan sintaks


berikut pada ComboBox3Change :

138

Kemudian masukkan unit ini (Uviewsewa.h) ke unit menu.

139

7. Form Konfirmasi Report Harian (FKReportHarian, UFKReportHarian.cpp,


UFKReportHarian.cpp)
Sebelum membuat report, terlebih dahulu buat Form Konfirmasi report
untuk tanggal, bulan dan tahun berapa.
Tampilan desain :

Atur properti sebagai berikut :


No
1

Komponen
Form1

Properti
BorderStyle
Caption
Font
Height
Name
Position
Width

Nilai
.
Konfirmasi Report Harian
.
.
FKReportHarian
poScreenCenter
.

ComboBox1

Items

1
2

31

140

ComboBox2

Text

Tanggal

Items

Text

JANUARI

DESEMBER
Bulan

CSpinEdit1

Increment
MinValue
MaxValue
Value

1
2006
3000
2006

Button1

Caption

Tampilkan

Button2

Caption

Tutup

Klik ganda button2 (Tutup), isi sintak berikut :

Langkah berikut adalah membuat Form Reportnya. Setelah Form Report


Harian dibuat klik ganda button1 (Tampilkan), isi sintaks berikut :

141

Kemudian include-kan unit UReportHarian ke unit ini.

142

8. Form
Report
Harian
(FReportHarian,
UReportHarian.cpp,
UReportHarian.h)
Buat sebuah Form baru, kemudian gunakan komponen-komponen yang
ada di tab QReport.

Atur properti komponen sebagai berikut :


No
1

Komponen
Form1

Properti
BorderStyle
Caption
Font
Height
Name
Position
Width
AutoScroll

Nilai

Report Harian

FReportHarian
poScreenCenter

true

ADOQuery

Connection
Name
SQL String

DM1->koneksi
QRHarian

Active

true

Name

DSQReportHarian

DataSource1

143

SELECT datasewa.nofaktur,
pelanggan.namapelanggan,
datasewa.tglsewa, datasewa.blnsewa,
datasewa.thnsewa, mobil.jenismobil,
mobil.merkmobil, datasewa.lamasewa,
datasewa.uangmuka, datasewa.biayasewa,
datasewa.sisabayar
FROM (mobil INNER JOIN datasewa ON
mobil.kodemobil = datasewa.kodemobil)
INNER JOIN pelanggan ON
datasewa.kodepelanggan =
pelanggan.kodepelanggan;

QuickRep1

Dataset

QRHarian

DataSet
Bands

QRHarian
HasColumnHeader = true
HasDetail = true
HasPageFooter = true
HasPageHeader = true
HasSumarry = true

Kemudian tambahkan komponen QRLabel, QRDBText, QRExpr,


QRSysData dan QRShape. Kemudian tentukan DataSet dan DataField
untuk setiap QRDBText. Tentukan jumlah total penerimaan uang muka
untuk tanggal tersebut dengan menggunakan QRExpr, dengan
menggunakan fungsi SUM, dan field yang diambil adalah uangmuka.
Setelah semua selesai tampilan form akan seperti berikut ini :

144

Tampilan pada saat preview :

Tambahkan unit modul (Umodul.h) ke unit ini.

145

9. Form
Konfirmasi
Report
Bulanan
UFKReportBulanan.cpp, UFKReportBulanan.h)

(FKReportBulanan,

Lakukan cara yang sama dengan point 7 (Form Konfirmasi Report


Harian).
Tampilan desain :

Tampilan saat form dijalankan :

146

10. Form
Report
Bulanan
(FReportBulanan,
UReportBulanan.cpp,
UReportBulanan.h)
Lakukan cara yang sama dengan point 8 (Report Harian).
Tampilan desain :

Tampilan saat form dijalankan :

147

148

Referensi
Al-Quran & Al-Hadits.
Heriyanto, Imam, Budi Raharjo (2003). Pemrograman Borland C++ Builder. Informatika
Bandung..
Indrajit, Richardus Eko. Manajemen Sistem Informasi dan Teknologi Informasi.
Indrajit, Richardus Eko. Kajian Strategis Analisa Cost-Benefit Investasi Teknologi Informasi.
Lidya, Leoni, rinaldi Munir (2002). Algoritama dan Pemrograman dalam Bahas Pascal dan C.
Informatika Bandung.
Solichin, Achmad (2003). Pemrograman Bahasa C dengan Turbo C. IlmuKomputer.Com.
Wahono, Romi Satria(2003). Cepat MahirBahasa. IlmuKomputer.Com.

149

Riwayat Hidup

Muhammad Fachrurrozi dilahirkan di Palembang, 22 Mei1980.


Saat ini mengabdikan dirinya untuk sebuah lembaga pendidikan yaitu Program
Diploma Komputer Universitas Sriwijaya di Palembang sebagai Tenaga Laboran dan
Staff Pengajar. Menyelesaikan studi sarjananya di Jurusan Matematika Fakultas MIPA
Universitas Sriwijaya Desember 2002. Memulai debutnya di bidang komputer pada usia
11 tahun, dengan berbagai pengalaman selama mendalami dan memahani komputer
baik dari sisi hardware maupun software. Saat duduk di bangku kuliah semester 3, ia
telah dipercaya untuk menjadi salah satu asisten laboratorium komputer di jurusannya
di bidang pemrograman. Saat waktu di bangku kuliah juga ia telah ditempa berbagai
pengalaman dalam bidang teknologi informasi, yaitu pada tahun 2001 dan 2002
dipercaya sebagai asissten dan instruktur untuk Pelatihan Internet dan Database untuk
pegawai Pendidikan Nasional se-Sumsel. Sejak setelah menamatkan kuliahnya ia
mengabdikan diri di Program Diploma Komputer Universitas Sriwijaya. Sehari-hari
dapat dihubungi melalui email m_fach@unsri.ac.id .

150

Anda mungkin juga menyukai