Modul Visual Revis I
Modul Visual Revis I
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.
3.
4.
5.
6.
7.
8.
9.
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
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
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:
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++
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.
13
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.
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
Komponen
Form1
Properti
BorderStyle
Caption
Font
Height
Name
Position
Width
Single
Aplikasi Segitiga
Verdana 10
300
FUtama
poScreenCenter
300
Label1
Caption
Font
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
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:
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
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
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
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:
28
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
30
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
11. Tekan Alt + F9 untuk kompilasi. Jika tidak ada yang error, tekan F9 untuk
menjalankan aplikasi. Hasil akhir seperti tampilan berikut:
33
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
36
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:
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:
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:
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
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
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
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
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
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
55
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
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:
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
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
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
Klik ganda pada BitBtn1, isi sintaks sebagai beriku untuk melelatakkan alamat folder
tempat gambar berada di DBEdit6:
66
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
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:
BitBtn2
Properti
CharCase
Text
Nilai
ecUpperCase
(kosong)
Caption
Default
Cari
True
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
71
72
73
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.
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
Setelah paham mengenai perintah SQL, lanjutkan dengan pembuatan form transaksi.
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)
Edit6
CharCase
MaxLength
Text
ecUpperCase
6
(kosong)
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.
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
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
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
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
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
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
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
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
103
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:
105
Lalu pada unit Menu (Fmenu), tambahkan sintak di bawah ini pada event
FmenuShow:
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
Nama Field
kodemobil
jenismobil
merkmobil
tarif
catatan
Type
Text
Text
Text
Number
Text
Size
5
15
20
Long Integer
100
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
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 :
Komponen
Form1
MainMenu1
Properti
BorderStyle
Caption
Font
Height
Name
Position
Width
FormStyle
(Lihat gambar)
Nilai
Single
PT Never Give Up
Fmenu
poScreenCenter
.
.
112
Komponen
DataModule
Properti
Name
ADOConnection
Name
ConnectionString
- Provider
Nilai
DM1
koneksi
- Connection
Login Prompt
Connected
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
114
115
No
1
Komponen
Form1
Properti
BoderStyle
Caption
Font
Height
Name
Position
Width
FormStyle
BorderIcons
WindowState
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
117
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
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
122
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
Button6
Button7
Label18
Caption
Caption
Caption
Pilih menu Events di Fsewa, klik ganda pada event OnShow pada form
Fsewa, isi sintaks berikut ini (sesuaikan field Edit dengan program Anda):
126
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 :
129
130
Untuk meng-Update data yang telah ada, ketikkan sintaks berikut pada
Button3 (Update) :
131
132
133
134
135
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
138
139
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
141
142
8. Form
Report
Harian
(FReportHarian,
UReportHarian.cpp,
UReportHarian.h)
Buat sebuah Form baru, kemudian gunakan komponen-komponen yang
ada di tab QReport.
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
144
145
9. Form
Konfirmasi
Report
Bulanan
UFKReportBulanan.cpp, UFKReportBulanan.h)
(FKReportBulanan,
146
10. Form
Report
Bulanan
(FReportBulanan,
UReportBulanan.cpp,
UReportBulanan.h)
Lakukan cara yang sama dengan point 8 (Report Harian).
Tampilan desain :
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
150