konsep dan aplikasi pemrograman menggunakan borland c__ ...
konsep dan aplikasi pemrograman menggunakan borland c__ ...
konsep dan aplikasi pemrograman menggunakan borland c__ ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
KONSEP DAN APLIKASI<br />
PEMROGRAMAN MENGGUNAKAN<br />
BORLAND C++ BUILDER 6<br />
BAGIAN 2:<br />
APLIKASI VISUAL DATABASE<br />
DENGAN ADO.NET<br />
(MS ACCESS & MS SQL SERVER 2000)<br />
M. F ACHRURROZI
Daftar Isi<br />
MUQADDIMAH<br />
1. PENDAHULUAN<br />
2. KONSEP DASAR PEMROGRAMAN VISUAL<br />
3. PEMROGRAMAN VISUAL MENGGUNAKAN BORLAND C++ BUILDER 6<br />
4. KONSEP DASAR PERANCANGAN DATABASE<br />
5. PENGENALAN BORLAND DATABASE DESKTOP INTERFACE<br />
6. APLIKASI DATABASE SEDERHANA MENGGUNAKAN BORLAND DATABASE ENGINE<br />
(BDE)<br />
7. KONSEP DASAR PERANCANGAN SOFTWARE SISTEM INFORMASI<br />
8. APLIKASI DATABASE MENGGUNAKAN ADO.NET – MS ACCESS DATABASE<br />
9. APLIKASI DATABASE MENGGUNAKAN ADO.NET – MS SQL SERVER DATABASE<br />
10. TIPS & TRIKS<br />
11. PENUTUP<br />
REFERENSI<br />
RIWAYAT HIDUP<br />
2
Muqaddimah<br />
“Allah mengangkat derajat orang yang beriman <strong>dan</strong> orang yang berilmu pengetahuan<br />
beberapa derajat”. (Mujaddalah 11)<br />
“Abu Hurairah r.a. berkata: Rasulullah SAW bersabda: Barang siapa yang ditanya suatu<br />
ilmu agama lalu menyembunyikannya, maka akan dikendalikan mulutnya pada hari<br />
kiamat dengan kendali dari api neraka”. (Abu Dawud, Attirmidzi)<br />
“Tiada akan pernah mampu seseorang dalam mengerjakan sesuatu tanpa pernah<br />
mencobanya terlebih dahulu”.<br />
Dari ketiga sumber ilmu inilah penulis ingin berusaha membuat sesuatu yang<br />
bermanfaat bagi orang lain, walaupun masih banyak kekurangan yang terdapat di<br />
dalam buku ini.<br />
3
Buku merupakan lanjutan dari Konsep <strong>dan</strong> Aplikasi Pemrograman mengunakan Borland C++<br />
Builder 6 Bagian 1 : Aplikasi Konsol. Buku ini membahas mengenai permograman secara<br />
visual yang berorientaskan database. Adapun jenis database yang digunakan adalah MS<br />
Acces <strong>dan</strong> MS SQL Server 2000. Sebagian besar isi dari buku ini merupakan rangkuman<br />
dari sumber-sumber yang telah dibuat penulis lain. Penulis berharap agar buku ini dapat<br />
bermanfaat bagi semua kalangan pembaca. Terima kasih untuk semuanya yang telah<br />
memberikan banyak kritik <strong>dan</strong> saran serta dukungan dalam penulisan buku ini. Dunia<br />
akan selalu indah karena kejujuran <strong>dan</strong> kebersamaan.<br />
Palembang, Juni 2005<br />
Penulis<br />
4
1. Pendahuluan<br />
Situasi persaingan bi<strong>dan</strong>g teknologi informasi membuat semua kalangan berlombalomba<br />
untuk menjadi yang terbaik. Dimulai dari produk sistem informasi yang berbasis<br />
konsol (dos) maupun yang berbasis wndow. Perusahaan-perusahaan telah melirik ke<br />
arah pengembangan sistem informasi yang berbasis window, selain penggunaannya<br />
tidak sulit, fungsi <strong>dan</strong> fasilitasnya sudah memnuhi kebutuhan mereka. Seperti kalu<br />
dilihat pada masa lalu, perusahaaan <strong>menggunakan</strong> <strong>aplikasi</strong> dos untuk pelayanan<br />
terhadap kastamernya.. Selain penggunaannya yang berbelit-belit, penampilan <strong>dan</strong><br />
fasilitasnya tidak memenuhi kebutuhan mereka.<br />
Ambil sebuah contoh kasus sederhana. Sebuah perusahaan yang bergerak di bi<strong>dan</strong>g<br />
tekstil. Perusahaan terserbut memiliki bagian-bagian kerja yang saling berkait. Ada<br />
bagian keuangan yang mengatur pengeluaran <strong>dan</strong> pemasukkan perusahaan, ada bagian<br />
produksi yang hanya memproduksi saja, ada bagian personalia yang mengatur jumlah<br />
<strong>dan</strong> kinerja para karyawan, <strong>dan</strong> ada bagian pemasaran yang akan menawarkan produk<br />
ke konsmen. Bayangkan, jika perusahaan tersebut tidak mempunyai sistem informasi<br />
yang baik untuk pengelolaan perusahaannya, bagaimana bagian pemasarannya bisa<br />
bekerja jika informasi dari bagian produksi tidak cepat diterima atau tidak sama sekali,<br />
bagaimana bagian produksi bisa menghasilkan sebuah produk yang baik jika informasi<br />
kinerja <strong>dan</strong> kebutuhan pegawai produksi lambat diterima oleh bagian personalia, <strong>dan</strong><br />
bagaimana bagian keuangan bisa menerima <strong>dan</strong> mengeluarkan <strong>dan</strong>a jika informasi dari<br />
personalia <strong>dan</strong> pemasaran tidak jelas diterima. Maka akan terjadi inefisiensi dari<br />
perusahaan tersebut, baik dari segi waktu, maupun dari segi materi.<br />
Masalah di atas banyak terjadi di perusahaan-perusahaan, untuk itu perlu dirancang<br />
sebuah sistem informasi yang tepat untuk mengelola alur kerja di perusahaan tersebut.<br />
Analisa penyebab keterlambatan penyampaian informasi, misalkan informasi yang<br />
digunakan masih <strong>menggunakan</strong> kertas., tidak terkomputerisasi, atau data yang<br />
dimasukkan tiap-tiap bagian tidak terintegrasi ke satu tempat, sehingga menyebabkan<br />
data yang ada di tiap bagian itu berbeda satu sama lain.<br />
Dikarenakan keadaan inilah Beberapa pengembang meningkatakan kemampuan<br />
mereka dengan mendalami software yang berbasi window untuk membangun sebuah<br />
sistem informasi yang dapat memenuhi kebutuhan kastamer. Salah satu software<br />
pengembang yang mampu memberikan hal itu adalah Borland C++ Builder 6.<br />
Borland C++ Builder 6 memiliki fasilitas-fasilitas yang penuh dalam mendukung<br />
pengembang software sistem informasi, selain mampu untuk <strong>aplikasi</strong>-<strong>aplikasi</strong> yang<br />
5
sederhana, ia juga mampu untuk pengembangan softaware yang berorientasikan<br />
database standalone (tunggal) maupun client-server (database jaringan).<br />
Sampai saat ini, pembuatan <strong>aplikasi</strong> visual dengan <strong>menggunakan</strong> bahasa C++ masih<br />
merupakan sebuah mimpi buruk bagi para programmer, karena di dalamnya banyak<br />
menuntut pembuatan file-file library yang sangat rumit. Namun sekarang Borland C++<br />
Builder 6 telah mengembangkan <strong>aplikasi</strong> visual secara mudah <strong>dan</strong> cepat dimengerti.<br />
Namum bagi para pemula yang ingin mengembangkan <strong>aplikasi</strong> visual dengan bahasa<br />
C++, ada baiknya tanamkan <strong>konsep</strong>-<strong>konsep</strong> dasarnya dulu yang disediakan di buku dari<br />
Konsep <strong>dan</strong> Aplikasi Pemrograman mengunakan Borland C++ Builder 6 Bagian 1 : Aplikasi<br />
Konsol, karena di dalam buku ini merupakan lanjutan dari buku tersebut <strong>dan</strong> tidak<br />
membahas lagi mengenai sintak-sintak dasar bahasa C++.<br />
6
2. Konsep Dasar<br />
Pemrograman Visual<br />
Borland C++ Builder 6 merupakan salah <strong>aplikasi</strong> pengembang terbaik yang mempunyai<br />
fasilitas yang lengkap. Aplikasi secara visual secara logika hampir sama dengan <strong>aplikasi</strong><br />
secara konsol, karena <strong>aplikasi</strong> secara visual merupakan pengembangan <strong>aplikasi</strong> secara<br />
konsol.<br />
PERBEDAAN PEMROGRAMAN VISUAL DENGAN<br />
PEMROGRAMAN TERSTRUKTUR<br />
Dalam pengeksekusian kode programnya, <strong>pemrograman</strong> visual menerapkan <strong>konsep</strong><br />
event-driven, yaitu peksekusian yang didasarkan atas kejadian (event) tertentu. Setiap<br />
kejadian tersebut mempunyai kode program sendiri yang disimpan dalam sebuah<br />
fungsi. Berbeda dengan <strong>pemrograman</strong> terstruktur atau prosedural yang mengeksekusi<br />
kode-kode programnya mulai dari awal sampai akhir program secara beruntun.<br />
Pada dasarnya <strong>konsep</strong> <strong>pemrograman</strong> visual sama dengan <strong>konsep</strong> <strong>pemrograman</strong><br />
prosedura, yaitu a<strong>dan</strong>ya input, proses <strong>dan</strong> output. Tapi ada penambahan <strong>konsep</strong><br />
pemilihan untuk mengeksekusi proses programnya. Konsep pemilihan inilah yang<br />
dipakai untuk menjalankan eventnya.<br />
event execute<br />
yes<br />
Input<br />
no<br />
other action<br />
Process<br />
Output<br />
7
Untuk memahami <strong>konsep</strong> dasar <strong>pemrograman</strong> secara visual yang menerapkan <strong>konsep</strong><br />
event-driven, perhatikan pada saat <strong>menggunakan</strong> <strong>aplikasi</strong>-<strong>aplikasi</strong> yang yang terdapat<br />
pada Microsoft Windows. Pada Windows pertama kali berjalan (running), <strong>aplikasi</strong><br />
tersebut masih berada dalam keadaan diam. Jika ingin menampilkan menu start, maka<br />
harus mengklik tombol start yang terdapat di pojok kanan paling bawah, tampilan yang<br />
akan muncul sebagai berikut:<br />
Gambar 2.1 Menu Start<br />
artinya, event (kejadian)nya adalah apakah tombol Start diklik. Jika diklik, maka akan<br />
melakukan input data yang diperlukan, lalu memproses pengalohan data, kemudian<br />
menampilkan data , yaitu menampilkan menu start seperti pada Gambar 2.1., <strong>dan</strong> hanya<br />
proses itu yang dilakukan oleh <strong>aplikasi</strong> windows, <strong>aplikasi</strong> lainnya tetap berjalan seperti<br />
semula.<br />
Secara umum <strong>konsep</strong> <strong>pemrograman</strong> visual dapat digambarkan sebagai berikut:<br />
8
Unit<br />
Prosedur A<br />
Prosedur B<br />
Prosedur C<br />
Prosedur D<br />
Project<br />
Unit 1 Unit 2<br />
Unit 3 Unit 4<br />
9
Dari gambar di atas, dapat dijelskan bahwa setiap prosedur atau fungsi yang terdapat di<br />
dalam unit, dapat saling bebas mengekspresikan pernyataan di dalam tubuhnya masingmasing,<br />
namun bisa juga saling membutuhkan. Jika suatu prosedur membutuhkan<br />
informasi dari prosedur lain, maka ia harus mendefinisikan atau memasukkan (include)<br />
nama prosedur yang ia ingingkan tersebut. Begitu juga yang terjadi di dalam suatu<br />
project.<br />
10
3. Pemrograman Visual<br />
Menggunakan Borland C++<br />
Builder 6<br />
Borland C++ Builder 6, merupakan bahasa <strong>pemrograman</strong> yang mempunyai cakupan<br />
kemampuan yang luas <strong>dan</strong> sangat canggih. Berbagai jenis <strong>aplikasi</strong> dapat dibuat dengan<br />
software ini, termasuk <strong>aplikasi</strong> untuk mengolah teks, grafik, angka, database <strong>dan</strong> <strong>aplikasi</strong><br />
web. Khusus untuk <strong>pemrograman</strong> database, software ini menyediakan object yang<br />
sangat kuat, canggih <strong>dan</strong> lengkap, sehingga memudahkan pemrogram dalam<br />
merancang, membuat <strong>dan</strong> menyelesaikan <strong>aplikasi</strong> database yang diinginkan. Selain itu<br />
software ini juga menangani data dalam berbagai format database, misalnya format MS<br />
Access, Sybase, Oracle, FoxPro, dBase, Informix, MS SQL Server, MySQL <strong>dan</strong> lain-lain.<br />
Namun secara default software <strong>menggunakan</strong> format Paradox <strong>dan</strong> dBase.<br />
APLIKASI SEDERHAN MENGUNAKAN BORLAND C++<br />
BUILDER 6<br />
Untuk membuat <strong>aplikasi</strong> baru, langkah-langkah yang harus dilakukan yaitu:<br />
1. Tutup semua <strong>aplikasi</strong> yang ada dengan cara memilih menu File Close All.<br />
2. Buka <strong>aplikasi</strong> baru dengan memilih menu File New Application, seperti<br />
pada tampilan berikut:<br />
11
3. Setelah itu akan muncul <strong>aplikasi</strong> baru dengan tampilan Form awal yang masih<br />
kosong.<br />
4. Untuk <strong>aplikasi</strong> pertama ini, pengaturan properti untuk <strong>aplikasi</strong> ini, tetap<br />
dibiarkan secara default terlebih dahulu, sebagai dasar pemahaman kerja sebuah<br />
<strong>aplikasi</strong> visual. Simpan <strong>aplikasi</strong> baru yang telah dibuat dengan memilih menu<br />
File Save All. Pastikan selalu memilih Save All setiap kali penyimpanan,<br />
12
karena semua file-file yang terbentuk (file project, file source, file h, dll) akan<br />
tersimpan secara keseluruhan.<br />
5. Buat folder baru sebagai tempat penyimpanan file-file <strong>aplikasi</strong>, agar tidak<br />
berantakan <strong>dan</strong> bercampur dengan file-file selain file <strong>aplikasi</strong> yang telah dibuat.<br />
6. Pada setelah menyimpan, beberapa file terbentuk (created) secara otomatis,<br />
seperti terlihat pada tampilan berikut:<br />
13
a. File Project1.bpr (berektensi bpr)<br />
File ini merupakan file project yang berfungsi sebagai penggabung antara<br />
unit – unit yang terbentuk dengan program utama.<br />
b. File Project1.cpp (berektensi cpp)<br />
File ini merupakan program utama yang berisi kode untuk proses inisialisasi<br />
<strong>dan</strong> jalannya <strong>aplikasi</strong> (application running). Bagi programmer pemula, file<br />
ini biasanya tidak diubah. Namun bagi programmer yang berpengalaman<br />
sering kali melakukan penambahan kode program pada file ini untuk<br />
keperluan – keperluan tertentu. Untuk melihat isi file ini, pilihlah menu<br />
project – view source pada C++ Builder IDE. Adapun kerangka dari file ini<br />
dapat di lihat pada listing dibawah ini.<br />
//---------------------------------------------------------------------------<br />
14
#include <br />
#pragma hdrstop<br />
//---------------------------------------------------------------------------<br />
USEFORM("Unit1.cpp", Form1);<br />
//---------------------------------------------------------------------------<br />
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)<br />
{<br />
try<br />
{<br />
Application->Initialize();<br />
Application->CreateForm(__classid(TForm1), &Form1);<br />
Application->Run();<br />
}<br />
catch (Exception &exception)<br />
{<br />
Application->ShowException(&exception);<br />
}<br />
catch (...)<br />
{<br />
try<br />
{<br />
throw Exception("");<br />
}<br />
catch (Exception &exception)<br />
{<br />
Application->ShowException(&exception);<br />
}<br />
}<br />
return 0;<br />
}<br />
//---------------------------------------------------------------------------<br />
c. Unit1.h (berekstensi h)<br />
File ini merupakan file header yang berisi pendeklarasian data <strong>dan</strong> fungsi –<br />
fungsi yang akan digunakan di dalam pembuatan <strong>aplikasi</strong>. Untuk melihat<br />
<strong>dan</strong> memodifikasi isi file ini, tekanlah tombol F12 <strong>dan</strong> memilih tab Unit1.h di<br />
bawah source code atau lakukan klik kanan pada Code Editor dalam IDE<br />
C++ Builder, kemudian akan tampil sebuah popup menu, pilih menu open<br />
15
source / header file. Adapun kerangka dari file ini dapat dilihat pada listing<br />
di bawah ini.<br />
//---------------------------------------------------------------------------<br />
#ifndef Unit1H<br />
#define Unit1H<br />
//---------------------------------------------------------------------------<br />
#include <br />
#include <br />
#include <br />
#include <br />
//---------------------------------------------------------------------------<br />
class TForm1 : public TForm<br />
{<br />
__published: // IDE-managed Components<br />
private: // User declarations<br />
public: // User declarations<br />
__fastcall TForm1(TComponent* Owner);<br />
};<br />
//---------------------------------------------------------------------------<br />
extern PACKAGE TForm1 *Form1;<br />
//---------------------------------------------------------------------------<br />
#endif<br />
d. Unit1.cpp (berekstensi cpp)<br />
File ini merupakan file yang bertipe C++ Builder Source <strong>dan</strong> akan digunakan<br />
untuk mendefinisikan fungsi – fungsi yang telah dideklarasikan pada file<br />
header (unit1.h) di atas. Pada file inilah programmer akan banyak bekerja<br />
untuk menuliskan kode – kode program. Adapun kerangka dari file ini dapat<br />
dilihat pada listing di bawah ini.<br />
//---------------------------------------------------------------------------<br />
#include <br />
#pragma hdrstop<br />
#include "Unit1.h"<br />
//---------------------------------------------------------------------------<br />
16
#pragma package(smart_init)<br />
#pragma resource "*.dfm"<br />
TForm1 *Form1;<br />
//---------------------------------------------------------------------------<br />
__fastcall TForm1::TForm1(TComponent* Owner)<br />
: TForm(Owner)<br />
{<br />
}<br />
//---------------------------------------------------------------------------<br />
e. Unit1.dfm (berekstensi dfm)<br />
File ini berfungsi menyimpan form yang dibuat.<br />
f. Project1.res (berekstensi res)<br />
File ini berfungsi sebagai compiled resource yang berisi file-file pelengkap<br />
yang digunakan oleh <strong>aplikasi</strong>, misalnya file gambar ataupun suara.<br />
Setelah <strong>aplikasi</strong> disimpan, maka <strong>aplikasi</strong> siap untuk dimodifikasi sesuai kebutuhan.<br />
BORLAND C++ BUILDER 6 BAGI PROGRAMMER C++<br />
C++ Builder tentu mudah sekali digunakan oleh mereka yang telah terbiasa<br />
membuat program dengan compiler C++. Meskipun demikian terdapat sedikit<br />
perbedaan antara bahasa C++ tradisional dengan C++ Builder. C++ Builder tidak<br />
mengizinkan programmer C++ untuk melakukan visualisasi program seperti yang<br />
biasa mereka lakukan dalam compiler C++. Perbedaan yang paling terlihat adalah<br />
bahwa C++ Builder itu didasarkan pada <strong>pemrograman</strong> dengan model property<br />
method – event (PME), se<strong>dan</strong>gkan C++ masih bersifat prosedural.<br />
VCL (VISUAL COMPONENT LIBRARY)<br />
Istilah VCL (Visual Component Library) pada C++ Builder sebenarnya adalah<br />
sebuah kelas juga, sama halnya dengan kelas – kelas yang didefinisikan di dalam<br />
C++. Namun keduanya berbeda dalam hal –hal berikut.<br />
- VCL <strong>dan</strong> kelas dalam C++ mempunyai induk hirarki yang berbeda. Semua<br />
VCL pada C++ Builder diturunkan dari kelas TObject.<br />
- Pada VCL proses pengesetan data dilakukan melalui propertinya, se<strong>dan</strong>gkan<br />
pada C++ dilakukan melalui penggunaan atau pendefenisian fungsi.<br />
17
- Setiap VCL hanya dapat dialokasikan pada head memory, bukan pada stack.<br />
Artinya, VCL harus dibuat dengan <strong>menggunakan</strong> operator new, se<strong>dan</strong>gkan<br />
kelas dalam C++ masih dapat dialokasikan di dalam stack.<br />
Komponen-komponen yang sering digunakan di dalam <strong>aplikasi</strong> visual Borland<br />
C++ Builder 6.<br />
Gambar<br />
Nama<br />
Komponen<br />
Default<br />
Name<br />
Posisi<br />
Tab<br />
Fungsi Dasar<br />
Button Button1 Standard Proses/event<br />
Komponen Sejenis<br />
BitBtn, SpeedButton<br />
Edit Edit1 Standard<br />
ListBox ListBox1 Standard<br />
ComboBox ComboBox1 Standard<br />
Memo Memo1 Standard<br />
Label Label1 Standard<br />
CheckBox CheckBox1 Standard<br />
RadioButton RadioButton1 Standard<br />
GroupBox GroupBox1 Standard<br />
Panel Panel1 Standard<br />
Image Image1 Additional<br />
Shape Shape1 Additional<br />
Timer Timer1 System<br />
Input/output<br />
berupa teks<br />
Input/output<br />
berupa pilihan<br />
Input berupa<br />
pilihan<br />
Input/output<br />
dengan length<br />
yang lebih<br />
panjang<br />
Teks tetap,<br />
output<br />
Input dengan<br />
nilai True or<br />
False<br />
Input berupa<br />
pilihan<br />
Group<br />
beberapa<br />
komponen<br />
Group<br />
beberapa<br />
komponen<br />
Memasukkan<br />
gambar<br />
Membuat<br />
bentuk gambar<br />
bulat,<br />
lingkaran dll<br />
Proses<br />
perulangan<br />
<strong>menggunakan</strong><br />
satuan interval 1<br />
MaskEdit,<br />
LabeledEdit, DBEdit<br />
DBListBox,<br />
DBLookupListBox<br />
DBComboBox,<br />
DBLookupComboBox<br />
DBMemo<br />
DBLabel<br />
DBCheckBox<br />
RadioGroup,<br />
DBRadioGroup<br />
Panel<br />
GroupBox<br />
DBImage<br />
18
MainMenu MainMenu1 Standard<br />
UpDown UpDown1 Win32<br />
mili detik<br />
Membuat menu<br />
<strong>aplikasi</strong><br />
Menambahkan/<br />
mengurangkan<br />
nilai dengan step<br />
tertentu<br />
CSpinEdit<br />
Kasus 1 (Penerapan <strong>konsep</strong> dasar <strong>pemrograman</strong> visual):<br />
Buat Aplikasi menghitung Luas Segitiga sama kaki.<br />
Langkah-langkah:<br />
1. Buat <strong>aplikasi</strong> baru, lalu set properti-properti komponen sebagai berikut:<br />
No Komponen Properti Nilai<br />
1 Form1 BorderStyle Single<br />
Caption<br />
Aplikasi Segitiga<br />
Font Ver<strong>dan</strong>a 10<br />
Height 300<br />
Name<br />
FUtama<br />
Position<br />
poScreenCenter<br />
Width 300<br />
2 Label1 Caption Mencari Luas Segitiga<br />
Font<br />
Ver<strong>dan</strong>a 12 Bold<br />
3 Label2 Caption Luas Alas<br />
4 Label3 Caption Tinggi<br />
5 Label4 Caption Luas<br />
6 Button1 Caption Hitung<br />
7 Edit1 MaxLength 5<br />
8 Edit2 MaxLength 5<br />
9 Edit3 ReadOnly true<br />
Hasilnya seperti pada tampilan berikut:<br />
19
2. Simpan <strong>aplikasi</strong> dengan memilih menu File Save All. Pada saat menyimpan,<br />
buat folder tersendiri untuk <strong>aplikasi</strong> ini dengan nama Aplikasi_Segitiga.<br />
• Ganti Unit1.cpp dengan nama lain yaitu dengan nama utama.cpp.<br />
• Ganti Project1.bpr dengan nama lain yaitu dengan nama Segitiga.bpr.<br />
3. Lihat ke bagian object inspector Button1 event Klik 2 kali pada event<br />
OnClick atau langsung double klik pada komponen Button1, akan muncul<br />
tampilan source code sebagai berikut:<br />
Isi dengan sintak seperti pada tampilan berikut:<br />
20
Artinya, sintak yang ada di dalam fungsi ini akan diproses pada saat Button1<br />
diklik satu kali.<br />
Penjelasan sintak:<br />
• StrToInt, berfungsi untuk mengkonversi nilai string ke integer. Dalam kasus<br />
di atas, jika nilai dari Edit1 <strong>dan</strong> Edit2 yang diinput tidak dikonversi, maka<br />
angka yang dibaca oleh komputer adalah sebagai string, artinya tidak dapat<br />
dieksekusi secara aritmatik. Ilustrasinya seperti berikut:<br />
Jika nilai 2 <strong>dan</strong> 3 bertipe string, maka:<br />
2 + 3 = 23,<br />
2 * 3 = Error<br />
Jika nilai 2 <strong>dan</strong> 3 bertipe integer, maka:<br />
2 + 3 = 5<br />
2 * 3 = 6.<br />
• Edit1->Text <strong>dan</strong> Edit2-> Text, adalah mengambil nilai yang berupa<br />
teks/string di komponen Edit1 <strong>dan</strong> Edit2.<br />
• Edit3-> Text = Luas, adalah nilai Luas akan dioutputkan di komponen Edit3.<br />
4. Lihat ke bagian object inspector FUtama event Klik 2 kali pada event<br />
OnCreate atau langsung double klik pada komponen FUtama, akan muncul<br />
tampilan source code sebagai berikut:<br />
21
Isi dengan sintak sebagai berikut:<br />
Artinya, Text di Edit1, Edit2 <strong>dan</strong> Edit3 akan dihapus (dikosongkan). Sintaksintak<br />
yang ada di dalam fungsi ini akan diproses pada saat Futama dibuat<br />
(create).<br />
5. Simpan <strong>aplikasi</strong>, lalu tekan Alt + F9 untuk Compiling. Jika ada error, akan<br />
muncul pesan error. Lihat letak kesalahan yang dibuat, lalu perbaiki.<br />
Contoh kesalahan yang terjadi terlihat pada tampilan berikut:<br />
22
Keterangan error:<br />
• Statement Missing ; , artinya ada baris yang tidak memberikan tanda tutup<br />
baris dengan Semicolon (;).<br />
• Undefined symbol ‘t’, artinya variabel t tidak dideklarasikan dahulu,<br />
sehingga program tidak kenal dengan variabel tersbut.<br />
• Warning, ‘A’ is assigned a value that is never used, artinya variabel<br />
dideklarasikan, tapi tidak berfungsi pada program tersebut.<br />
6. Setelah semua program benar, maka tekan F9 untuk menjalankan <strong>aplikasi</strong>,<br />
seperti pada tampilan berikut ini:<br />
23
Seluruh source program di utama.cpp adalah sebagai berikut:<br />
//---------------------------------------------------------------------------<br />
#include <br />
#pragma hdrstop<br />
#include "utama.h"<br />
//---------------------------------------------------------------------------<br />
#pragma package(smart_init)<br />
#pragma resource "*.dfm"<br />
TFUtama *FUtama;<br />
//---------------------------------------------------------------------------<br />
__fastcall TFUtama::TFUtama(TComponent* Owner)<br />
: TForm(Owner)<br />
{<br />
}<br />
//---------------------------------------------------------------------------<br />
void __fastcall TFUtama::Button1Click(TObject *Sender)<br />
{<br />
int A,t;<br />
float Luas;<br />
24
A = StrToInt(Edit1->Text);<br />
t = StrToInt(Edit2->Text);<br />
Luas = 0.5 * A * t;<br />
Edit3->Text = Luas;<br />
}<br />
//---------------------------------------------------------------------------<br />
void __fastcall TFUtama::FormCreate(TObject *Sender)<br />
{<br />
Edit1->Clear();<br />
Edit2->Clear();<br />
Edit3->Clear();<br />
}<br />
//---------------------------------------------------------------------------<br />
Isi dari file header utama.h adalah sebagai berikut:<br />
//---------------------------------------------------------------------------<br />
#ifndef utamaH<br />
#define utamaH<br />
//---------------------------------------------------------------------------<br />
#include <br />
#include <br />
#include <br />
#include <br />
//---------------------------------------------------------------------------<br />
class TFUtama : public TForm<br />
{<br />
__published: // IDE-managed Components<br />
TLabel *Label1;<br />
TLabel *Label2;<br />
TLabel *Label3;<br />
TLabel *Label4;<br />
TButton *Button1;<br />
TEdit *Edit1;<br />
TEdit *Edit2;<br />
25
TEdit *Edit3;<br />
void __fastcall Button1Click(TObject *Sender);<br />
void __fastcall FormCreate(TObject *Sender);<br />
private: // User declarations<br />
public: // User declarations<br />
__fastcall TFUtama(TComponent* Owner);<br />
};<br />
//---------------------------------------------------------------------------<br />
extern PACKAGE TFUtama *FUtama;<br />
//---------------------------------------------------------------------------<br />
#endif<br />
Kasus 2 (Penerapan <strong>konsep</strong> logika pemilihan):<br />
Buat <strong>aplikasi</strong> dimana user harus memasukkan password untuk masuk ke <strong>aplikasi</strong><br />
tertentu.<br />
Langkah-langkah:<br />
1. Tutup semua <strong>aplikasi</strong> yang se<strong>dan</strong>g berjalan dengan memilih menu File Close<br />
All.<br />
2. Buka <strong>aplikasi</strong> baru dengan memilih menu File New Application.<br />
3. Setelah tampilan <strong>aplikasi</strong> baru muncul, atur tampilan seperti terlihat di bawah<br />
ini:<br />
4. Atur properti komponen sebagai berikut<br />
26
No Komponen Properti Nilai<br />
1 Form1 BorderStyle Single<br />
Caption<br />
Login<br />
Font Ver<strong>dan</strong>a 12<br />
Height 250<br />
Name<br />
FUtama<br />
Position<br />
poScreenCenter<br />
Width 400<br />
2 Edit1 MaxLength 20<br />
3 Edit2 MaxLength 20<br />
PasswordChar #<br />
5. Simpan seluruh unit <strong>aplikasi</strong> dengan memilih menu File Save All. Ganti<br />
nama unit1.cpp dengan password1.cpp <strong>dan</strong> project dengan Password.bpr.<br />
6. Klik 2 kali di Button1 (login) untuk event Button1Click, isi sintak seperti berikut:<br />
7. Klik 2 kali di FUtama untuk event FormCreate, isi sintak sebagai berikut:<br />
27
8. Klik 2 kali di Button2 (Exit) untuk event Button2Click, isi sintak sebagai berikut:<br />
9. Tekan Alt + F9 untuk kompilasi. Jika tidak ada yang error, tekan F9 untuk<br />
menjalankan <strong>aplikasi</strong>. Hasil akhir seperti tampilan berikut:<br />
Isi sintak secara keseluruhan di password1.cpp<br />
//---------------------------------------------------------------------------<br />
#include <br />
#pragma hdrstop<br />
#include "password1.h"<br />
//---------------------------------------------------------------------------<br />
#pragma package(smart_init)<br />
28
#pragma resource "*.dfm"<br />
TFUtama *FUtama;<br />
//---------------------------------------------------------------------------<br />
__fastcall TFUtama::TFUtama(TComponent* Owner)<br />
: TForm(Owner)<br />
{<br />
}<br />
//---------------------------------------------------------------------------<br />
void __fastcall TFUtama::Button1Click(TObject *Sender)<br />
{<br />
if(Edit1->Text=="User"&&Edit2->Text=="oke")<br />
{<br />
ShowMessage("Selamat datang di <strong>aplikasi</strong> ini");<br />
}<br />
else<br />
{<br />
ShowMessage("Username <strong>dan</strong> Password Anda SALAH!");<br />
}<br />
}<br />
//---------------------------------------------------------------------------<br />
void __fastcall TFUtama::FormCreate(TObject *Sender)<br />
{<br />
Edit1->Clear();<br />
Edit2->Clear();<br />
}<br />
//---------------------------------------------------------------------------<br />
void __fastcall TFUtama::Button2Click(TObject *Sender)<br />
{<br />
Application->Terminate();<br />
}<br />
//---------------------------------------------------------------------------<br />
Isi sintak di password1.h:<br />
//---------------------------------------------------------------------------<br />
#ifndef password1H<br />
#define password1H<br />
//---------------------------------------------------------------------------<br />
29
#include <br />
#include <br />
#include <br />
#include <br />
//---------------------------------------------------------------------------<br />
class TFUtama : public TForm<br />
{<br />
__published: // IDE-managed Components<br />
TLabel *Label1;<br />
TLabel *Label2;<br />
TButton *Button1;<br />
TButton *Button2;<br />
TEdit *Edit1;<br />
TEdit *Edit2;<br />
void __fastcall Button1Click(TObject *Sender);<br />
void __fastcall FormCreate(TObject *Sender);<br />
void __fastcall Button2Click(TObject *Sender);<br />
private: // User declarations<br />
public: // User declarations<br />
__fastcall TFUtama(TComponent* Owner);<br />
};<br />
//---------------------------------------------------------------------------<br />
extern PACKAGE TFUtama *FUtama;<br />
//---------------------------------------------------------------------------<br />
#endif<br />
Kasus 3 (Latihan logika TRUE <strong>dan</strong> FALSE pada komponen)<br />
Buat <strong>aplikasi</strong> untuk menghitung total biaya pembelian untuk suatu barang tertentu.<br />
Langkah-langkah<br />
1. Tutup semua <strong>aplikasi</strong> yang se<strong>dan</strong>g berjalan dengan memilih menu File Close<br />
All.<br />
2. Buka <strong>aplikasi</strong> baru dengan memilih menu File New Application.<br />
3. Setelah tampilan <strong>aplikasi</strong> baru muncul, atur tampilan seperti terlihat di bawah<br />
ini:<br />
30
4. Atur properti komponen sebagai berikut<br />
No Komponen Properti Nilai<br />
1 Form1 BorderStyle Single<br />
Caption<br />
Total Biaya Pembelian<br />
Font Ver<strong>dan</strong>a 12<br />
Height 300<br />
Name<br />
FUtama<br />
Position<br />
poScreenCenter<br />
Width 400<br />
2 Panel1 Caption (kosong)<br />
BorderStyle Single<br />
Height&Width Sesuaikan dengan tampilan<br />
2 Edit1 MaxLength 20<br />
3 Edit2 MaxLength 10<br />
Text 0<br />
4 Edit3 ReadOnly true<br />
Text 0<br />
31
6 CSpinEdit Increment 50<br />
(Tab Sample) Max Value 1000000<br />
TabOrder 1<br />
7 UpDown1 Associate Edit2<br />
Increment 1<br />
Max 200<br />
8 BitBtn1 Caption Mulai<br />
Glyph<br />
Browse (*.bmp), biasanya ada<br />
di<br />
C:\Program<br />
Files\Common Files\Borland<br />
Shared\Images\Buttons<br />
9 BitBtn2 Caption Selesai<br />
Glyph<br />
Browse (*.bmp)<br />
5. Simpan seluruh unit <strong>aplikasi</strong> dengan memilih menu File Save All. Ganti<br />
nama unit1.cpp utama.cpp <strong>dan</strong> project dengan Barang.bpr.<br />
6. Klik 2 kali di FUtama untuk event FormCreate, isi sintak sebagai berikut:<br />
7. Klik 2 Kali di Edit2 untuk event Edit2Change, artinya proses akan dijalankan<br />
pada saat nilai di dalam Edit2 berubah. Isi sintak sebagai berikut:<br />
32
8. Klik 2 Kali di CSpinEdit1 untuk event CSpin1EditChange, artinya proses akan<br />
dijalankan pada saat nilai di dalam CSpinEdit1 berubah. isi sintak sebagai<br />
berikut:<br />
9. Klik ganda di BitBtn1, lalu isi sintak dibawah ini:<br />
10. Klik ganda di BitBtn2, lalu isi sintak dibawah ini:<br />
11. Tekan Alt + F9 untuk kompilasi. Jika tidak ada yang error, tekan F9 untuk<br />
menjalankan <strong>aplikasi</strong>. Hasil akhir seperti tampilan berikut:<br />
33
Isi sintak secara keseluruhan di utama.cpp<br />
//---------------------------------------------------------------------------<br />
#include <br />
#pragma hdrstop<br />
#include "utama.h"<br />
//---------------------------------------------------------------------------<br />
#pragma package(smart_init)<br />
#pragma link "CSPIN"<br />
#pragma resource "*.dfm"<br />
TFUtama *FUtama;<br />
//---------------------------------------------------------------------------<br />
__fastcall TFUtama::TFUtama(TComponent* Owner)<br />
: TForm(Owner)<br />
{<br />
}<br />
//---------------------------------------------------------------------------<br />
void __fastcall TFUtama::FormCreate(TObject *Sender)<br />
{<br />
Edit1->Clear();<br />
BitBtn1->Enabled = true;<br />
BitBtn2->Enabled = false;<br />
Panel1->Enabled = false;<br />
34
}<br />
//---------------------------------------------------------------------------<br />
void __fastcall TFUtama::Edit2Change(TObject *Sender)<br />
{<br />
Edit3->Text = StrToInt(CSpinEdit1->Text) * StrToInt(Edit2->Text);<br />
}<br />
//---------------------------------------------------------------------------<br />
void __fastcall TFUtama::CSpinEdit1Change(TObject *Sender)<br />
{<br />
Edit3->Text = StrToInt(CSpinEdit1->Text) * StrToInt(Edit2->Text);<br />
}<br />
//---------------------------------------------------------------------------<br />
void __fastcall TFUtama::BitBtn2Click(TObject *Sender)<br />
{<br />
BitBtn1->Enabled = true;<br />
BitBtn2->Enabled = false;<br />
Panel1->Enabled = false;<br />
}<br />
//---------------------------------------------------------------------------<br />
void __fastcall TFUtama::BitBtn1Click(TObject *Sender)<br />
{<br />
BitBtn1->Enabled = false;<br />
BitBtn2->Enabled = true;<br />
Panel1->Enabled = true;<br />
}<br />
//---------------------------------------------------------------------------<br />
Isi utama.h secara keseluruhan<br />
//---------------------------------------------------------------------------<br />
#ifndef utamaH<br />
#define utamaH<br />
//---------------------------------------------------------------------------<br />
#include <br />
#include <br />
#include <br />
#include <br />
#include <br />
35
#include <br />
#include "CSPIN.h"<br />
#include <br />
//---------------------------------------------------------------------------<br />
class TFUtama : public TForm<br />
{<br />
__published: // IDE-managed Components<br />
TBitBtn *BitBtn1;<br />
TBitBtn *BitBtn2;<br />
TPanel *Panel1;<br />
TLabel *Label1;<br />
TLabel *Label2;<br />
TLabel *Label3;<br />
TLabel *Label4;<br />
TEdit *Edit1;<br />
TEdit *Edit2;<br />
TEdit *Edit3;<br />
TUpDown *UpDown1;<br />
TCSpinEdit *CSpinEdit1;<br />
void __fastcall FormCreate(TObject *Sender);<br />
void __fastcall Edit2Change(TObject *Sender);<br />
void __fastcall CSpinEdit1Change(TObject *Sender);<br />
void __fastcall BitBtn2Click(TObject *Sender);<br />
void __fastcall BitBtn1Click(TObject *Sender);<br />
private: // User declarations<br />
public: // User declarations<br />
__fastcall TFUtama(TComponent* Owner);<br />
};<br />
//---------------------------------------------------------------------------<br />
extern PACKAGE TFUtama *FUtama;<br />
//---------------------------------------------------------------------------<br />
#endif<br />
Kasus 4 (Aplikasi <strong>menggunakan</strong> komponen ComboBox, CheckBox <strong>dan</strong><br />
RadioButton).<br />
Buat <strong>aplikasi</strong> untuk menghitung total biaya pembelian untuk suatu barang, dengan<br />
diskon tertentu.<br />
36
Jika pembeli adalah langganan lama, maka diskon 20%.<br />
Jika pembeli membayar dengan LUNAS, maka diskon 10%.<br />
Langkah-langkah:<br />
1. Tutup semua <strong>aplikasi</strong> yang se<strong>dan</strong>g berjalan dengan memilih menu File Close<br />
All.<br />
2. Buka <strong>aplikasi</strong> baru dengan memilih menu File New Application.<br />
3. Setelah tampilan <strong>aplikasi</strong> baru muncul, atur tampilan seperti terlihat di bawah<br />
ini:<br />
4. Atur properti komponen sebagai berikut<br />
No Komponen Properti Nilai<br />
1 Form1 BorderStyle Single<br />
Caption<br />
Total Biaya Pembelian<br />
37
Font Ver<strong>dan</strong>a 12<br />
Height 420<br />
Name<br />
FUtama<br />
Position<br />
poScreenCenter<br />
Width 400<br />
2 Panel1 Caption (kosong)<br />
BorderStyle Single<br />
Height&Width Sesuaikan dengan tampilan<br />
3 ComboBox1 MaxLength 20<br />
CharCase<br />
ecUpperCase<br />
Text<br />
NAMA BARANG<br />
Items<br />
PENA<br />
PENSIL<br />
PENGHAPUS<br />
4 Edit1 ReadOnly true<br />
Text 0<br />
5 CSpinEdit Increment 1<br />
(Tab Sample) Max Value 100<br />
6 RadioGroup1 Caption Langganan?<br />
Columns 2<br />
Items<br />
Ya<br />
Tidak<br />
7 CheckBox1 Caption Lunas<br />
State<br />
cbChecked<br />
8 Edit2 Text 0<br />
ReadOnly true<br />
9 Edit3 Text 0<br />
ReadOnly true<br />
38
10 Edit4 Text 0<br />
ReadOnly true<br />
11 BitBtn1 Caption Hitung<br />
Glyph<br />
Browse (*.bmp), biasanya ada<br />
di<br />
C:\Program<br />
Files\Common Files\Borland<br />
Shared\Images\Buttons<br />
12 BitBtn2 Caption Keluar<br />
Glyph<br />
Browse (*.bmp)<br />
5. Simpan seluruh unit <strong>aplikasi</strong> dengan memilih menu File Save All. Ganti<br />
nama unit1.cpp dengan utama.cpp <strong>dan</strong> project dengan Barang2.bpr.<br />
6. Klik ganda di komponen ComboBox1 untuk event ComboBox1Change, isi sintak<br />
berikut:<br />
7. Klik ganda di komponen BitBtn1 (Hitung) <strong>dan</strong> isi sintak berikut:<br />
39
8. Klik ganda di BitBtn2 (Keluar) untuk event BitBtn2Click, isi sintak sebagai<br />
berikut:<br />
40
9. Simpan <strong>aplikasi</strong>, tekan Alt + F9 untuk kompilasi. Jika tidak ada yang error, tekan<br />
F9 untuk menjalankan <strong>aplikasi</strong>. Hasil akhir seperti tampilan berikut:<br />
Isi sintak utama.cpp secara keseluruhan:<br />
//---------------------------------------------------------------------------<br />
#include <br />
#pragma hdrstop<br />
#include "utama.h"<br />
//---------------------------------------------------------------------------<br />
41
#pragma package(smart_init)<br />
#pragma link "CSPIN"<br />
#pragma resource "*.dfm"<br />
TFUtama *FUtama;<br />
//---------------------------------------------------------------------------<br />
__fastcall TFUtama::TFUtama(TComponent* Owner)<br />
: TForm(Owner)<br />
{<br />
}<br />
//---------------------------------------------------------------------------<br />
void __fastcall TFUtama::ComboBox1Change(TObject *Sender)<br />
{<br />
if(ComboBox1->Text == "PENA")<br />
{<br />
Edit1->Text = 10000;<br />
}<br />
else if(ComboBox1->Text == "PENSIL")<br />
{<br />
Edit1->Text = 7000;<br />
}<br />
else if(ComboBox1->Text == "PENGHAPUS")<br />
{<br />
Edit1->Text = 4000;<br />
}<br />
else<br />
{<br />
Edit1->Text = 0;<br />
}<br />
}<br />
//---------------------------------------------------------------------------<br />
void __fastcall TFUtama::BitBtn1Click(TObject *Sender)<br />
{<br />
float Jumlah, Total;<br />
float Diskon1,Diskon2,TotDisk;<br />
/* Jumlah awal */<br />
Jumlah = StrToInt(Edit1->Text) * StrToInt(CSpinEdit1->Text);<br />
42
Edit2->Text = Jumlah;<br />
/* Diskon Langganan */<br />
if(RadioGroup1->ItemIndex == 0)<br />
{<br />
Diskon1 = 0.2;<br />
}<br />
else<br />
{<br />
Diskon1 = 0;<br />
}<br />
/* Diskon Lunas */<br />
if(CheckBox1->State == cbChecked)<br />
{<br />
Diskon2 = 0.1;<br />
}<br />
else<br />
{<br />
Diskon2 = 0;<br />
}<br />
TotDisk = Jumlah * (Diskon1 + Diskon2);<br />
Total = Jumlah - TotDisk;<br />
Edit3->Text = TotDisk;<br />
Edit4->Text = Total;<br />
}<br />
//---------------------------------------------------------------------------<br />
void __fastcall TFUtama::BitBtn2Click(TObject *Sender)<br />
{<br />
Application->Terminate();<br />
}<br />
//---------------------------------------------------------------------------<br />
43
KONSEP TIMER<br />
Secara umum Timer didefinisikan sebagai event/proses yang terjadi secara berulang<br />
dengan satuan/interval waktu tertentu. Konsep kerja Timer adalah <strong>menggunakan</strong><br />
<strong>konsep</strong> perulangan for, hanya saja proses <strong>dan</strong> step perulangan ditentukan oleh<br />
interval waktu yang ditentukan. Sebagai contoh, untuk penulisan jam. Jika tanpa<br />
<strong>menggunakan</strong> timer, output yang dihasilkan menunjukkan jam pada saat proses itu<br />
saja, <strong>dan</strong> tidak berubah lagi selayaknya jam pada umumnya. Jika <strong>menggunakan</strong><br />
timer, maka akan menunjukkan yang selalu berubah hasilnya setiap interval waktu<br />
1 detik.<br />
Kasus 5 (penerapan <strong>konsep</strong> Timer):<br />
Membuat <strong>aplikasi</strong> jam digital.<br />
Langkah-langkah:<br />
1. Tutup semua <strong>aplikasi</strong> yang se<strong>dan</strong>g berjalan dengan memilih menu File Close<br />
All.<br />
2. Buka <strong>aplikasi</strong> baru dengan memilih menu File New Application.<br />
3. Setelah tampilan <strong>aplikasi</strong> baru muncul, atur tampilan seperti terlihat di bawah<br />
ini:<br />
4. Atur properti komponen sebagai berikut<br />
No Komponen Properti Nilai<br />
1 Form1 BorderStyle Single<br />
Caption<br />
Jam Digital<br />
44
Font Ver<strong>dan</strong>a 22<br />
Height 200<br />
Name<br />
FUtama<br />
Position<br />
poScreenCenter<br />
Width 300<br />
2 Timer1 Interval 1000<br />
3 Label1 Alignment taCenter<br />
Autosize<br />
false<br />
5. Simpan seluruh unit <strong>aplikasi</strong> dengan memilih menu File Save All. Ganti<br />
nama unit1.cpp dengan utama.cpp <strong>dan</strong> project dengan JamDigital.bpr.<br />
6. Klik ganda di komponen Timer1 untuk event Timer1Timer, isi sintak berikut:<br />
7. Simpan <strong>aplikasi</strong>, tekan Alt + F9 untuk kompilasi. Jika tidak ada yang error, tekan<br />
F9 untuk menjalankan <strong>aplikasi</strong>. Hasil akhir seperti tampilan berikut:<br />
45
4. Konsep Dasar<br />
Perancangan Database<br />
Sebelum merancang sebuah <strong>aplikasi</strong> database, haruslah dipahami dulu apa itu database,<br />
bagaimana <strong>konsep</strong> database <strong>dan</strong> bagaiman merancang sebuah database.<br />
APA ITU DATABASE<br />
Database adalah suatu unit yang berisikan data-data yang tersimpan di dalam tabel <strong>dan</strong><br />
query.<br />
Tabel adalah tempat record disimpan berdasarkan baris <strong>dan</strong> kolom.<br />
Query adalah satu kolom atau lebih yang diambil <strong>dan</strong> diacu dari satu atau beberapa<br />
tabel dalam satu database.<br />
Tabel<br />
Tabel Tabel Tabel<br />
Query<br />
Query<br />
Database<br />
TIPS PERANCANGAN DATABASE<br />
Dalam perancangan database, perhatikan betul mana data-data yang harus diinput,<br />
jangan sembarangan dalam menentukan kolom-kolom tabel. Buatlah kolom-kolom<br />
sesuai dengan kebutuhan klien.<br />
Dalam hal perancangan, database dibedakan menjadi 3 jenis tempat data disimpan,<br />
yaitu:<br />
1. Data Master<br />
46
Data master adalah identitas yang didapat dari objek tertentu. Misalkan data<br />
mahasiswa, mata kuliah, barang, pegawai, dll.<br />
2. Data Transaksi<br />
Data transaksi adalah data yang diambil dengan mengacu ke data lain. Misalkan<br />
data pembelian, penjualan, pengambilan mata kuliah, dll.<br />
3. Data Report<br />
Data yang dikeluarkan ke laporan berdasarkan data-data yang ada di data transaksi<br />
<strong>dan</strong> data master. Misalnya Rekap tahunan penjualan, rekap bulanan pembelian, dll.<br />
Contoh Kasus:<br />
Sebuah toko alat tulis ingin membuat sistem pendataan secara komputerisasi untuk data<br />
barang yang masuk <strong>dan</strong> data barang yang keluar. Data yang masuk artinya barang yang<br />
dibeli dari agen, <strong>dan</strong> data yang keluar artinya barang yang dijual ke pelanggan. Dari<br />
hasil transaksi penjualan <strong>dan</strong> pembelian akan direkap setiap satu bulan sekali.<br />
Kebutuhan:<br />
- Jumlah inventaris barang (stock) ditampilkan dalam satu tabel/query<br />
Perancangan database:<br />
Nama database : dbtoko.<br />
Dari kasus di atas, data dapat dibagi menjadi 3 bagian, yaitu:<br />
1. Data Master<br />
a. Data Barang (nama tabel : barang)<br />
b. Data Agen (nama tabel : agen)<br />
c. Data Pelanggan (nama tabel : pelanggan)<br />
2. Data Transaksi<br />
a. Data Penjualan Bulanan (nama tabel : t_jual)<br />
b. Data Pembelian Bulanan (nama tabel : (t_beli)<br />
3. Report (Laporan) yang berupa Rekap.<br />
a. Rekap Penjualan Bulanan (nama query : q_jual)<br />
b. Rekap Pembelian Bulanan (nama query : q_beli)<br />
47
Dari hasil survei terhadap toko tersebut, diperoleh filed-field yang dibutuhkan untuk<br />
diinput dari ketiga jenis data di atas, yaitu:<br />
1. Data Master : Data Barang (nama tabel : barang)<br />
Index<br />
Nama<br />
Allow<br />
Type Size Default<br />
Field<br />
NULL<br />
Unique Primary Arahan<br />
0 kodebrg Char 6 No Yes Yes Kode Barang<br />
1 namabrg Char 50 No No No Nama Barang<br />
4 satuan Char 20 Yes No No Satuan Ukuran<br />
5 hjual Number 10 0 Yes No No Harga Jual<br />
6 hbeli Number 10 0 Yes No No Harga Beli<br />
7 gambar Char 50 Yes No No Gambar Barang<br />
Mengapa Field gambar <strong>menggunakan</strong> Char? Karena data gambar tidak disimpan di<br />
tabel, field tersebut hanya berisikan alamat tempat gambar itu berada.<br />
2. Data Master : Data Agen (nama tabel : agen)<br />
Index<br />
Nama<br />
Allow<br />
Type Size Default<br />
Field<br />
NULL<br />
Unique Primary Arahan<br />
0 kodeagen Char 6 No Yes Yes Kode Agen<br />
1 namagen Char 50 No No No Nama Agen<br />
2 alamat Char 50 Yes No No Alamat Agen<br />
3 telepon Char 25 Yes No No Nomor Telepon<br />
3. Data Master : Data Pelanggan (nama tabel : pelangan)<br />
Index<br />
Nama<br />
Allow<br />
Type Size Default<br />
Field<br />
NULL<br />
Unique Primary Arahan<br />
0 kodeplgn Char 6 No Yes Yes Kode Pelanggan<br />
1 namaplgn Char 50 No No No Nama Pelanggan<br />
2 alamat Char 50 Yes No No Alamat Pelanggan<br />
3 telepon Char 25 Yes No No Nomor Telepon<br />
4. Data Transaksi : Data Penjualan Bulanan (nama tabel : t_jual)<br />
Inde Nama<br />
Siz Defaul Allow<br />
x Field Type e t NULL Arahan Keterangan<br />
0 bulan Char 10 No Bulan Pembelian<br />
48
1 tahun Char 4 No Tahun Pembelian<br />
2 kodeplgn Char 6 No Kode Agen<br />
dari tabel<br />
pelanggan<br />
3 kodebrg Char 6 No Kode Barang dari tabel barang<br />
Numbe<br />
Jumlah<br />
4 qty<br />
r 4 0 No Pembelian<br />
5 lunas Logical Yes Status Pelunasan True atau False<br />
5. Data Transaksi : Data Pembelian Bulanan (nama tabel : t_beli)<br />
Index Nama Field Type Size Default Allow NULL Arahan Keterangan<br />
0 bulan Char 10 No Bulan Pembelian<br />
1 tahun Char 4 No Tahun Pembelian<br />
2 kodeagen Char 6 No Kode Pelanggan dari tabel agen<br />
3 kodebrg Char 6 No Kode Barang dari tabel barang<br />
4 qty Number 4 0 No Jumlah Pembelian<br />
5 lunas Logical Yes Status Pelunasan True atau False<br />
6. Data Report : Rekap Penjualan Bulanan (nama tabel : q_jual)<br />
Index Nama Field Type Size Arahan Keterangan<br />
0 bulan Char 10 Bulan Pembelian dari tabel t_jual<br />
1 tahun Char 4 Tahun Pembelian dari tabel t_jual<br />
2 kodeplgn Char 6 Kode Pelanggan dari tabel t_jual<br />
3 namaplgn Char 50 Nama Pelanggan dari tabel pelanggan<br />
4 kodebrg Char 6 Kode Barang dari tabel t_jual<br />
5 namabrg Char 50 Nama Barang dari tabel barang<br />
6 satuan Char 20 Satuan Ukuran dari tabel barang<br />
7 hjual Number 10 Harga Satuan dari tabel barang<br />
8 qty Number 3 Jumlah Pembelian dari tabel t_jual<br />
9 lunas Logical Status Pelunasan dari tabel t_jual<br />
7. Data Report : Rekap Pembelian Bulanan (nama tabel : q_beli)<br />
Index Nama Field Type Size Arahan Keterangan<br />
0 bulan Char 10 Bulan Pembelian dari tabel t_beli<br />
1 tahun Char 4 Tahun Pembelian dari tabel t_beli<br />
2 kodeagen Char 6 Kode Pelanggan dari tabel t_beli<br />
3 namagen Char 50 Nama Pelanggan dari tabel agen<br />
49
4 kodebrg Char 6 Kode Barang dari tabel t_jual<br />
5 namabrg Char 50 Nama Barang dari tabel barang<br />
8 satuan Char 20 Satuan Ukuran dari tabel barang<br />
9 hbeli Number 9 Harga Satuan dari tabel barang<br />
11 qty Number 3 Jumlah Pembelian dari tabel t_beli<br />
12 lunas Logical Status Pelunasan dari tabel t_beli<br />
Tabel Relationships<br />
1. Transaksi Penjualan<br />
2. Transaksi Pembelian<br />
Setelah rancangan database dibuat, tentukan jenis format tabel yang sesuai. Misalnya<br />
dengan dBase, Ms Access, MySQL, MS SQL Server, dll. Format ini ditentukan sesuai<br />
dengan kebutuhan.<br />
1. Untuk <strong>aplikasi</strong> yang standalone (tunggal), gunakan dBase atau Paradox.<br />
2. Untuk <strong>aplikasi</strong> yang datanya terintegrasi ke satu komputer, gunakan MS Access,<br />
MySQL atau MS SQL Server atau Oracle.<br />
50
5. Pengenalan Borland<br />
Database Desktop Interface<br />
Borland Database Desktop Interface adalah salah satu program <strong>aplikasi</strong> yang tergabung<br />
di Borland C++ Builder 6. Fasilitas ini berfungsi untuk membuat <strong>dan</strong> mengolah database<br />
yang <strong>menggunakan</strong> Jenis Borland Database Engine (BDE) dengan format utama adalah<br />
dBase <strong>dan</strong> Paradox. Fasilitas ini terinstal secara bersamaan pada saat menginstal Borland<br />
C++ Builder 6.<br />
MENGGUNAKAN DATABASE DESKTOP<br />
Cara memanggil <strong>aplikasi</strong> ini yaitu dengan mengklik menu Start Programs Borland<br />
C++ Builder 6 Database Desktop. Setelah <strong>aplikasi</strong> terbuka, akan muncul tampilan<br />
awal seperti berikut:<br />
52
File Database<br />
Secara default, database yang digunakan di <strong>aplikasi</strong> ini adalah dengan nama<br />
“BCDEMOS”, dengan dBase <strong>dan</strong> Paradox (STANDARD) sebagai format tabelnya.<br />
Namun jika ingin membuat database selain itu, caranya adalah:<br />
1. Pilih menu Tools Alias Manager. Muncul tampilan berikut:<br />
2. Klin New, kemudian ketik nama database <strong>dan</strong> pilih format tabelnya.<br />
Membuat Tabel Baru<br />
1. Pilih menu File New Table sehingga muncul tampilan berikut ini:<br />
53
2. Pilih jenis tabel yang diinginkan, lalu klik OK. Lalu akan muncul tampil an sebagai<br />
berikut:<br />
Keterangan:<br />
• Pada kolom Field Name, tentukan nama field yang diinginkan. Nama Field<br />
adalah nama pengenal kolom dalam tabel database. Aturan pemberian nama<br />
filed adalah sebagai berikut:<br />
i. Panjang maksimum 10 karakter untuk format dBase, <strong>dan</strong> 25 Karakter untuk<br />
Paradox.<br />
ii. Tidak boleh diawali dengan spasi, tapi boleh mengandung spasi.<br />
iii. Harus unik, artinya setiap nama field harus berbeda dalam satu tabel.<br />
iv. Jangan <strong>menggunakan</strong> tanda koma (,), tanda pipe (|) <strong>dan</strong> data seru (!).<br />
v. Hindarkan penggunaan kata perintah SQL, misalnya SELECT, WHERE,<br />
COUNT.<br />
• Pada kolom Type, tentukan tipe field yang tepat sesuai kebutuhan. Tekan spasi<br />
untuk menampilkan pilihan yang tersedia. Untuk format dBase, jenis tipe yang<br />
ada, yaitu:<br />
54
i. Character (C), untuk menampung kumpulan karakter huruf, angka <strong>dan</strong><br />
karakter ASCII dapat tercetak, ukuran field tipe ini antara 1 sampai 255 byte.<br />
Jenis ini tidak dapat dieksekusi secara aritmatika.<br />
ii. Float (F), untuk menampung kumpulan angka yang dapat diproses secara<br />
aritmatika dengan range dari -10307 sampai dengan 10308 dengan 15 digit<br />
angka signifikan.<br />
iii. Number (N), untuk menampung kumpulan angka yang dapat diproses secara<br />
aritmatika dengan range dari -2147483648 sampai dengan 2147483647.<br />
iv. Date (D), untuk menampung tanggal sampai dengan 31 Desember 9999.<br />
v. Logical (L), untuk menampung data yang berjenis boolean.<br />
vi. Memo (M), untuk menampung kumpulan karakter huruf, angka <strong>dan</strong> karakter<br />
ASCII dapat tercetak, ukuran field tipe ini antara 1 sampai 255 MB. Jenis ini<br />
tidak dapat dieksekusi secara aritmatika.<br />
3. Setelah semuanya diisi, klik Define untuk menentukan kolom kunci (index primary<br />
key) tabel tersebut. Klik ganda pada filed yang akan dijadikan index seperti tampilan<br />
berikut ini:<br />
55
Jika selesai tekan OK.<br />
4. Setelah semuanya selesai, simpan dengan menekan Save As, letakkan di folder yang<br />
tepat, misalnya di folder data bersamaan dengan folder <strong>aplikasi</strong> yang akan dibuat.<br />
5. Untuk memodifikasi tabel, pilih menu Table Restructure.<br />
Setelah semua tabel dibuat, selanjutkan menghubungkan tabel-tabel tersebut ke dalam<br />
<strong>aplikasi</strong> Borland C++ Builder 6.<br />
56
6. Aplikasi Database<br />
Sederhana Menggunakan<br />
Borland Database Engine<br />
(BDE)<br />
MEMBUAT APLIKASI DATABASE SEDERHANA<br />
Dari tabel yang telah dirancang di bab 4 di atas, sekarang bagaimana merancang <strong>aplikasi</strong><br />
dengan <strong>menggunakan</strong> tabel tersebut.<br />
Persiapan:<br />
- Software Borland C++ Builder 6<br />
- Database Desktop<br />
- Jenis Database <strong>menggunakan</strong> Borland Database Engine (BDE)<br />
- Tabel <strong>menggunakan</strong> format dBase IV<br />
Perancangan Form Aplikasi dengan Borland C++ Builder 6<br />
No<br />
Arahan<br />
Nama<br />
Form<br />
*.cpp *.h<br />
1 Menu Utama Fmenu menu.cpp menu.h<br />
2 Data Modul untuk database DM1 modul1.cpp modul1.h<br />
3 Input Data Barang Fbarang barang.cpp barang.h<br />
4 Input Data Agen Fagen agen.cpp agen.h<br />
5 Input Data Pelanggan Fpelanggan pelanggan.cpp pelanggan.h<br />
6 Transaksi Penjualan Ft_jual t_jual.cpp t_jual.h<br />
7 Transaksi Pembelian Ft_beli t_beli.cpp t_beli.h<br />
8 Lookup Data Barang, Data Agen, Flookup lookup.cpp lookup.h<br />
Data Pelanggan<br />
9 Konfirmasi Rekap Bulanan Penjualan FKRek krek.cpp krek.h<br />
<strong>dan</strong> Pembelian<br />
10 Report Rekap Bulanan Penjualan FRekJual RekJual.cpp RekJual.h<br />
11 Report Rekap Bulanan Pembelian FRekBeli RekBeli.cpp RekBeli.h<br />
12 Password Fpassword password.cpp password.h<br />
57
Persiapan Folder:<br />
Buat Folder baru dengan nama Aplikasi_BDE untuk meletakkan data-data <strong>aplikasi</strong> <strong>dan</strong><br />
tabel yang akan dibuat. Di dalam folder tersebut buat 2 folder lagi dengan nama Data<br />
<strong>dan</strong> Program. Folder Data sebagai tempat menyimpan tabel <strong>dan</strong> folder Program tempat<br />
menyimpan data program <strong>aplikasi</strong> Borland C++ Builder 6, hasilnya seperti pada<br />
tampilan berikut:<br />
Pembuatan Tabel:<br />
Sebelum membuat tabel, atur dulu Working Directory di Database Desktop, arahkan<br />
(browse) ke Folder Data yang telah dibuat di atas. Kemudian buat tabel-tabel dengan<br />
spesifikasi seperti tabel-tabel pada kasus di bab 4 dengan <strong>menggunakan</strong> Database<br />
Desktop (cara membuat tabel dijelaskan di bab 5). Letakkan semua folder di dalam folder<br />
Data dengan hasil akhir seperti pada tampilan berikut:<br />
58
Pembuatan Form Aplikasi:<br />
Setelah semua tabel dibuat, buka <strong>aplikasi</strong> baru di Borland C++ Builder 6, dengan<br />
menutup semua <strong>aplikasi</strong> yang berjalan terlebih dahulu.<br />
1. Form Menu Utama (Fmenu, menu.cpp, menu.h)<br />
Form menu ini adalah form pertama pada saat membuka <strong>aplikasi</strong> baru. Tambahkan<br />
komponen-komponen ke dalam form ini seperti terlihat pada tampilan berikut:<br />
59
Klik ganda di toolbar Menu yang ada di Form, isi menu sesuai kebutuhan<br />
ditambahkan dengan menu Help yang isinya ada pilihan Exit:<br />
60
Setelah selesai, tutup isian Menu, kemudian pilih menu Exit, lalu isi sintak seperti di<br />
bawah ini:<br />
Atur properti komponen seperti dalam tabel berikut:<br />
No Komponen Properti Nilai<br />
1 Form1 BorderStyle Single<br />
Caption<br />
Toko Maya<br />
Font Ver<strong>dan</strong>a 10<br />
Height 450<br />
Name<br />
Fmenu<br />
61
Position<br />
poScreenCenter<br />
Width 600<br />
FormStyle fsMDIForm<br />
2 MainMenu1 (lihat di gambar<br />
6.2)<br />
Simpan seluruh <strong>aplikasi</strong> (Save All), ganti project dengan nama TokoMaya.bpr<br />
2. Data Modul (DM1, modul1.cpp, modul1.h)<br />
Untuk membuat Data Modul,pil menu File New Data Modul. Karena kasus ini<br />
<strong>menggunakan</strong> format tabel dBase, maka digunakan Database STANDARD yang<br />
ditambahkan dari tab BDE. Seperti pada tampilan berikut:<br />
DataSource, berfungsi sebagai penghubung antar tabel/query ke form<br />
Atur properti komponen sebagai berikut:<br />
No Komponen Properti Nilai<br />
1 DataModule1 Name DM1<br />
2 Database1 DatabaseName dbtoko<br />
Name<br />
dbtoko<br />
DriverName<br />
STANDARD<br />
LoginPrompt<br />
false<br />
Connected<br />
True<br />
62
3 Tabel1 DatabaseName dbtoko<br />
TableName<br />
../data/barang.dbf<br />
IndexFieldName KODEBRG<br />
Name<br />
barang<br />
Active<br />
true<br />
4 Tabel2 DatabaseName dbtoko<br />
TableName<br />
../data/agen.dbf<br />
IndexFieldName KODEAGEN<br />
Name<br />
agen<br />
Active<br />
true<br />
5 Tabel3 DatabaseName Dbtoko<br />
TableName<br />
../data/pelanggan.dbf<br />
IndexFieldName KODEPLGN<br />
Name<br />
pelanggan<br />
Active<br />
true<br />
6 DataSource1 Name DSbarang<br />
DataSet<br />
barang<br />
7 DataSource2 Name DSagen<br />
DataSet<br />
agen<br />
8 DataSource3 Name DSpelanggan<br />
DataSet<br />
pelanggan<br />
9 Query1 DatabaseName dbtoko<br />
Name<br />
Qjual<br />
10 Query2 DatabaseName dbtoko<br />
Name<br />
Qbeli<br />
11 Query3 DatabaseName dbtoko<br />
Name<br />
Qlookup<br />
12 DataSource4 Name DSQjual<br />
DataSet<br />
Qjual<br />
13 DataSource5 Name DSQbeli<br />
DataSet<br />
Qbeli<br />
14 DataSource6 Name DSlookup<br />
DataSet<br />
lookup<br />
63
3. Form Input Data Barang (Fbarang, barang.cpp, barang.h)<br />
Buka Form baru, dengan memilih menu File New Form. Lalu tambahkan <strong>dan</strong><br />
atur setiap komponen dengan mengacu pada rancangan tabel yang telah dibuat,<br />
seperti pada tampilan berikut:<br />
Tab Data Controls<br />
Tambahkan unit Modul (DM1) ke barang.cpp dengan sintak sebagai berikut:<br />
No Komponen Properti Nilai<br />
1 Form1 BorderStyle bsNone<br />
64
Caption<br />
Data Barang<br />
Font Ver<strong>dan</strong>a 10<br />
Height 400<br />
Name<br />
Fbarang<br />
Position<br />
poMainFormCenter<br />
Width 590<br />
FormStyle fsMDIChild<br />
BorderIcons [biMaximize]<br />
WindowStatae wsMaximized<br />
2 Panel1 Caption (kosong)<br />
BorderStyle bsSingle<br />
3 DBEdit1 DataSource DSbarang<br />
DataField KODEBRG<br />
CharCase ecUpperCase<br />
4 DBEdit2 DataSource DSbarang<br />
DataField NAMABRG<br />
CharCase ecUpperCase<br />
5 DBEdit3 DataSource DSbarang<br />
DataField SATUAN<br />
6 DBEdit4 DataSource DSbarang<br />
DataField HJUAL<br />
7 DBEdit5 DataSource DSbarang<br />
DataField HBELI<br />
8 DBEdit6 DataSource DSbarang<br />
DataField GAMBAR<br />
9 BitBtn1 Caption Browse<br />
Glyph<br />
10 OpenDialog1 DefaultExt *.bmp<br />
Filter<br />
Bitmap Files|*.bmp|<br />
65
JPEG Files|*.jpg<br />
11 DBNavigator1 DataSource DSbarang<br />
Show Hints true<br />
Tampilan Filter di OpenDialog1<br />
Klik ganda pada BitBtn1, isi sintaks sebagai beriku untuk melelatakkan alamat folder<br />
tempat gambar berada di DBEdit6:<br />
66
Kemudian masukkan unit ini (barang.h) ke unit menu dengan menambahkan<br />
sintaks di unit menu.cpp sehingga form menu dapat memanggil form barang, seperti<br />
berikut:<br />
Tips:<br />
- cara ini bisa juga dilakukan dengan memilih menu File Include Unit Hdr (ALT<br />
+ F11).<br />
- Tekan F12 untuk pindah antar unit.<br />
- Tekan Shift + F12 untuk melihat Form yang lain<br />
- Tekan Ctrl + F12 untuk melihat Unit source yang lain.<br />
Kemudian pada Form menu, klik pada menu Data Master<br />
bawah ini.<br />
Barang, isikan sintak di<br />
Tekan Alt+F9 untuk Compile, jika tidak ada error tekan F9 untuk menjalankan<br />
<strong>aplikasi</strong>, seperti tampilan berikut:<br />
67
First, ke record yang pertama<br />
Previous (Prior), ke record sebelumnya<br />
Next, ke record berikutnya<br />
Last, ke record terakhir<br />
Insert, menambah record<br />
Delete, menghapus record<br />
Edit, mengedit record<br />
Post, konfirmasi Insert atau Edit<br />
Cancel, batal Insert atau Edit<br />
Refresh Data<br />
Untuk melakukan pencarian terhadap record, ada beberapa metode yang dapat<br />
digunakan, antara lain yaitu:<br />
- Menggunakan kolom kunci (index column).<br />
- Menggunakan perintah SQL<br />
Berikut adalah metode pencarian dengan menggunakna kolom kunci (index column)<br />
68
Langkah-langkah:<br />
- Pastikan pada saat membuat tabel, sudah ditentukan kolom (field) kunci terlebih<br />
dahulu, seperti dijelaskan di bab 5.<br />
- Di di Data Module (DM1), pada komponen tabel barang, pastikan set properti<br />
IndexFieldName sudah terisi sesuai dengan kolom kunci yang telah ditentukan.<br />
- Kemudian pada kasus di atas, tambahkan komponen-komponen di form barang<br />
sehingga, seperti tampilan berikut:<br />
Komponen yang ditambahkan:<br />
Komponen Properti Nilai<br />
Edit1 CharCase ecUpperCase<br />
Text<br />
(kosong)<br />
BitBtn2 Caption Cari<br />
Default<br />
True<br />
- Klik ganda pada BitBtn2 (Cari) lalu isi sintak berikut:<br />
69
- Jalankan <strong>aplikasi</strong> (tekan F9), lalu coba ketikkan kode barang di Edit <strong>dan</strong> tekan<br />
tombol Cari. Jika data ditemukan maka akan langsung mengeset record ke kode<br />
yang dicari, jika tidak ketemu, maka akan mengeluarkan pesan “Data tidak<br />
ditemukan!”. Tampilan form saat dijalankan akan seperti berikut:<br />
70
Tips:<br />
o<br />
o<br />
Pelajari juga mengenai FindNearest, FindKey <strong>dan</strong> GotoNearest.<br />
Pelajari untuk mencari berdasarkan nama barang.<br />
4. Form Input Data Agen (Fagen, agen.cpp, agen.h)<br />
Lakukan cara yang sama dengan point 3 (Data Barang).<br />
Tampilan desain:<br />
Tampilan saat <strong>aplikasi</strong> dijalankan:<br />
71
5. Form Input Data Pelanggan (Fpelanggan, pelanggan.cpp, pelanggan.h)<br />
Lakukan cara yang sama dengan point 3 (Data Barang).<br />
Tampilan desain:<br />
72
Tampilan saat <strong>aplikasi</strong> dijalankan:<br />
Pengenalan Perintah SQL<br />
Sebelum masuk ke pembuatan form transaksi <strong>dan</strong> seterusnya, akan dikenalkan apa <strong>dan</strong><br />
bagaimana perintal SQL itu.<br />
Perintah SQL (Structured Query Language) adalah bahasa yang berbasis pada hubungan<br />
relasi kalkulus (relasi aljabar) <strong>dan</strong> banyak digunakan dalam lingkungan back end, baik<br />
untuk membuat tabel, manipulasi data, maupun untuk pengontrolan transaksi yang<br />
dilakukan di dlam database. Di dalam Borland C++ Builder 6, SQL dapat digunakan<br />
melalui komponen Query.<br />
Seara umum SQL dibagi ke dalam tiga kategori, yaiut Data Definition (DDL), Data<br />
Manipulation Language (DML) <strong>dan</strong> Data Control Language (DCL). SQL juga dilengkapi<br />
dengan kemampuan untuk melakukan fungsi-fungsi khusus lainnya seperti menghitung<br />
banyaknya record (count), melakukan penjumlahan nilai dari sebuah field (sum),<br />
menentukan nilai maksimum (max) <strong>dan</strong> sebagainya.<br />
Berikut adalah sintak SQL yang sering digunakan di dalam transaksi.<br />
73
• Insert, digunakan untuk memasukkan sebuah record baru ke dalam tabel.<br />
Contoh:<br />
“ insert into barang values(‘ATK003’,’PENGHAPUS’,’Kodi’,1000,2000,’C:\’) ”<br />
• Update, digunakan untuk mengubah nilai-nilai field yang terdapat pada suatu<br />
tabel.<br />
Contoh:<br />
“Update barang set SATUAN = ‘Lusin’ where KODEBRG = ‘ATK003’ “<br />
Perintah ini akan mengubah nilai SATUAN menjadi Lusin dari tabel barang<br />
yang memiliki KODEBRG = ATK003.<br />
• Select, digunakan untuk menampilkan field-field yang terdapat pada tabel<br />
dalam database.<br />
Bentuk Umum:<br />
“select field1,field2,field3,...,fieldn from nama_tabel”<br />
Contoh:<br />
“ select KODEBRG, NAMABRG, SATUAN from barang “<br />
Peintah ini akan menampilkan field KODEBRG, NAMABRG <strong>dan</strong> SATUAN dari<br />
tabel barang.<br />
“ select * from barang”<br />
Perintah ini akan menampilkan seluruh field dari tabel barang,<br />
“ select * from barang where KODEBRG = ‘ATK001’ “<br />
Perintah ini akan menampilkan seluruh field dari tabel barang dengan klausa<br />
(kondisi) KODEBRG = ATK001.<br />
“ select KODEBRG, NAMABRG, SATUAN from barang<br />
where HJUAL = 2000 and AND Hbeli = 3000 “<br />
Perintah ini akan menampilkan field KODEBRG, NAMABRG <strong>dan</strong> SATUAN dari<br />
tabel barang yang mempunyai nilai HJUAL = 2000 <strong>dan</strong> HBELI = 3000.<br />
“ select * from barang where NAMABRG like ‘%PEN%’ “<br />
74
Perintah ini akan menampilkan seluruh field dari tabel barang dengan nilai<br />
NAMABRG = ??????PEN?????, artinya seluruh NAMABRG yang mempunyai<br />
kata PEN.<br />
Tips:<br />
o<br />
o<br />
o<br />
o<br />
o<br />
Perbanyak latihan dengan <strong>menggunakan</strong> perintah SQL.<br />
Pelajari juga mengenai perintah membuat <strong>dan</strong> menghapus tabel, menambah<br />
field.<br />
Pelajari mengenai penggabungan 2 tabel atau lebih.<br />
Pelajari mengenai berbagai macam klausa yang lain.<br />
Pelajari perintah fungsi0fungsi yang lain.<br />
Setelah paham mengenai perintah SQL, lanjutkan dengan pembuatan form transaksi.<br />
6. Form Transaksi Pembelian (Ft_beli, t_beli.cpp, t_beli.h)<br />
Tampilan desain awal:<br />
Atur properti komponen sebagai berikut:<br />
75
Komponen Properti Nilai Arahan<br />
Form1 BorderStyle bsNone<br />
Caption Transaksi Pembelian<br />
Font Ver<strong>dan</strong>a 10<br />
Height 400<br />
Name Ft_beli<br />
Position poMainFormCenter<br />
Width 590<br />
FormStyle fsMDIChild<br />
BorderIcons [biMaximize]<br />
WindowStatae wsMaximized<br />
Panel1 Caption (kosong)<br />
BorderStyle bsSingle<br />
Panel2 Caption (kosong)<br />
BorderStyle bsSingle<br />
ComboBox1 CharCase ecUpperCase Bulan<br />
Items<br />
Style<br />
Text<br />
JANUARI<br />
FEBRUARI<br />
MARET<br />
.<br />
.<br />
.<br />
DESEMBER<br />
csDropDown<br />
BULAN<br />
CSpinEdit1 MaxValue 3000 Tahun<br />
MinValue 2000<br />
Value 2000<br />
Edit1 CharCase ecUpperCase Kode Barang<br />
MaxLength 6<br />
Text<br />
(kosong)<br />
Button1 Caption List<br />
Edit2 CharCase ecUpperCase Kode Agen<br />
76
MaxLength 6<br />
Text<br />
(kosong)<br />
Button2 Caption List<br />
Edit3 Text 0 Harga Beli<br />
ReadOnly<br />
true<br />
CSpinEdit2 MaxValue 5000 Quantity<br />
MinValue 0<br />
Value 0<br />
Edit4 Text 0 Harga Beli<br />
ReadOnly<br />
true<br />
Panel3 Caption (kosong)<br />
BorderStyle bsSingle<br />
BitBtn1 Caption Simpan<br />
BitBtn2 Caption Update<br />
BitBtn3 Caption Hapus<br />
Panel4 Caption (kosong)<br />
BorderStyle bsSingle<br />
ComboBox2 CharCase ecUpperCase Bulan<br />
Items<br />
Style<br />
Text<br />
JANUARI<br />
FEBRUARI<br />
MARET<br />
.<br />
.<br />
.<br />
DESEMBER<br />
csDropDown<br />
BULAN<br />
CSpinEdit3 MaxValue 3000 Tahun<br />
MinValue 2000<br />
Value 2000<br />
77
Edit5 CharCase ecUpperCase Cari Kode Barang<br />
MaxLength 6<br />
Text<br />
(kosong)<br />
Edit6 CharCase ecUpperCase Cari Kode Agen<br />
MaxLength 6<br />
Text<br />
(kosong)<br />
BitBtn4 Caption Semua Kriteria<br />
BitBtn5 Caption Refresh<br />
DBGrid1 DataSource DM1->DSQbeli<br />
Align<br />
alClient<br />
Pilih menu Event di Ft_beli, klik ganda pada event OnShow pada form Ft_beli untuk<br />
event FormShow, isi sintak sebagai berikut:<br />
Tambahkan sintak berikut ini untuk mendefiniskan dua buah prosedur, yaitu:<br />
78
- EQbeli(), untuk mengeksekusi perintah SQL yang diberikan oleh str1. Perintah ini<br />
hanya akan berjalan dengan perintah SQL yang <strong>menggunakan</strong> perintah selain<br />
select.<br />
- OQbeli(), untuk mengeksekusi perintah SQL yang diberikan oleh str2. Perintah<br />
ini hanya akan berjalan dengan perintah SQL yang <strong>menggunakan</strong> perintah select.<br />
Tambahkan juga deklarasi prosedur di t_beli.h seperti tampilan berikut:<br />
Deklarasikan variabel str1 <strong>dan</strong> str2 di kode t_beli.cpp paling atas (variabel bersifat<br />
global), seperti berikut:<br />
Klik ganda pada Edit1 untuk event Edit1OnChange, artinya proses di prosedur ini<br />
akan berjalan pada saat nilai di dalam Edit1 berubah. Isi sintak sebagai berikut:<br />
79
Sintak ini untuk memeriksa apakah kode barang yang ada di Edit1 ada di tabel<br />
barang. Jika ada maka akan menuliskan nama barang di Label6.<br />
Sama halnya untuk validasi kode agen, klik ganda di Edit2 untuk event OnChange,<br />
isi sintak di bawah ini:<br />
80
Klik ganda di CSpinEdit2 untuk event OnChange. Prosedur ini adalah untuk<br />
menghitung jumlah harga dari pembelian. Isi sintak sebagai berikut:<br />
Komponen Button1 <strong>dan</strong> Button2 (List) digunakan untuk melihat data barang <strong>dan</strong><br />
agen. Cara membuat Form Flookup <strong>dan</strong> menghubungkannya dengan form transaksi<br />
dapat dilihat di point 8.<br />
Klik ganda di BitBtn1 (Simpan) untuk event OnClick. Prosedur ini untuk<br />
menyimpan data ke dalam record baru, dengan memvalidasi jika data telah ada,<br />
maka tidak akan disimpan ke data baru.<br />
81
Kemudian, klik ganda pada BitBtn2 (Update) untuk event OnClick. Prosedur ini<br />
digunakan untuk mengupdate data yang telah ada, dengan mencari data tersebut<br />
terlebih dahulu. Acuan yang digunakan adalah ComboBox2, CSpinEdit3, Edit5,<br />
Edit6, CSpinEdit4 <strong>dan</strong>CheckBox2. Isi sintak seperti di bawah ini:<br />
83
Kemudian klik ganda di BitBtn3 (Hapus) untuk even OnClick. Prosedur ini<br />
digunakan untuk menghapus data berdasarkan klausa ada di ComboBox2,<br />
CSpinEdit3, Edit5, Edit6, CSpinEdit4 <strong>dan</strong>CheckBox2. Isi sintak seperti di bawah ini:<br />
84
Kemudian klik ganda di ComboBox2 untuk event OnChange. Prosedur ini untuk<br />
mencari data di tabel transaksi pembelian dengan klausa BULAN. Isi sintak di<br />
bawah ini:<br />
85
Kemudian klik ganda di CSpinEdit3 untuk event OnChange. Prosedur ini untuk<br />
mencari data di tabel transaksi pembelian dengan klausa TAHUN. Isi sintak di<br />
bawah ini:<br />
Kemudian klik ganda di Edit5 untuk event OnChange. Prosedur ini untuk mencari<br />
data di tabel transaksi pembelian dengan klausa KODEBRG. Isi sintak di bawah ini:<br />
Kemudian klik ganda di Edit6 untuk event OnChange. Prosedur ini untuk mencari<br />
data di tabel transaksi pembelian dengan klausa KODEAGEN. Isi sintak di bawah<br />
ini:<br />
86
Kemudian klik ganda di CSpinEdit4 untuk event OnChange. Prosedur ini untuk<br />
mencari data di tabel transaksi pembelian dengan klausa QTY. Isi sintak di bawah<br />
ini:<br />
Kemudian klik ganda di CheckBox2 untuk event OnClick. Prosedur ini untuk<br />
mencari data di tabel transaksi pembelian dengan klausa LUNAS. Isi sintak di bawah<br />
ini:<br />
87
Kemudian klik ganda di BitBtn4 (Semua Klausa) untuk event OnClick. Prosedur ini<br />
untuk mencari data di tabel transaksi pembelian dengan semua klausa di Panel4, jika<br />
ketemu akan menuliskan hasilny ake Panel2. Isi sintak di bawah ini:<br />
88
Kemudian klik ganda di BitBtn5 (Refresh) untuk event OnClick. Prosedur ini untuk<br />
menampilkan seluruh data di tabel transaksi pembelian. Isi sintak di bawah ini:<br />
Jika semuanya telah selesai, jalankan <strong>aplikasi</strong>. Jika tidak ada yang error, tampilan<br />
form akhir saat dieksekusi sebagai berikut:<br />
90
Kemudian masukkan unit ini (t_beli.h) ke unit menu dengan menambahkan sintaks<br />
di unit menu.cpp sehingga form menu dapat memanggil form barang, seperti<br />
berikut:<br />
Tips:<br />
- cara ini bisa juga dilakukan dengan memilih menu File Include Unit Hdr (ALT<br />
+ F11).<br />
- Tekan F12 untuk pindah antar unit.<br />
- Tekan Shift + F12 untuk melihat Form yang lain<br />
- Tekan Ctrl + F12 untuk melihat Unit source yang lain.<br />
91
Kemudian pada Form menu, klik pada menu Transaksi<br />
di bawah ini.<br />
Pembelian, isikan sintak<br />
Tombol List digunakan untuk meliahat daftar barang, agen <strong>dan</strong> pelanggan yang<br />
ditampilkan dalam bentuk tabel di Grid. Tabel ini dibuat di form baru dengan nama<br />
Flookup . Cara pembuatan Form akan dijelaskan di nomor 8.<br />
7. Form Transaksi Penjualan (Ft_jual, t_jual.cpp, t_jual.h)<br />
Dengan cara yang sama dengan point 6, Buatlah Form untuk transaksi penjualan.<br />
Tampilan desain form:<br />
92
Tampilan akhir form saat dieksekusi:<br />
8. Form Lookup Data Barang, Data Agen, Data Pelanggan (Flookup, lookup.cpp,<br />
lookup.h)<br />
Komponen Properti Nilai Arahan<br />
Form1 BorderStyle bsSingle<br />
Caption Tabel Lookup<br />
Font Ver<strong>dan</strong>a 8<br />
Height 350<br />
Name Flookup<br />
Position poScreenCenter<br />
Width 430<br />
FormStyle fsStayOnTop<br />
BorderIcons [biSystemMenu,biMinimize]<br />
Panel1 Caption (kosong)<br />
BorderStyle bsSingle<br />
93
Align<br />
ComboBox1 CharCase<br />
Items<br />
Style<br />
Text<br />
alTop<br />
ecUpperCase<br />
BARANG<br />
AGEN<br />
PELANGGAN<br />
csDropDown<br />
TABEL LOOKUP<br />
DBGrid1 DataSource DM1->DSQlookup include modul first<br />
Align alClient<br />
Tampilan Desain awal:<br />
Komponen ComboBox1 berfungsi untuk memilih tabel yang akan dilihat, yaitu tabel<br />
barang, agen <strong>dan</strong> pelanggan. Jika salah satu tabel dipilih, maka secara otimatis akan<br />
menampilkan data-data yang ada di tabel tersebut di Grid1.<br />
Klik ganda di komponen ComboBox1 untuk even OnChange. Isikan sintak di bawah<br />
ini:<br />
94
Kemudian kenalkan (include) unit ini (lookup.h) ke unit transaksi pembelian<br />
(t_beli.h) <strong>dan</strong> unit penjualan (t_jual.h) agar unit ini dapat dipanggil dengan<br />
<strong>menggunakan</strong> tombol list.<br />
Kemudian klik ganda di setiap tombol list, baik itu di Form Pembelian maupun di<br />
Form Penjualan (unit lookup.h telah dikenalkan terlebih dahulu), lalu isi sintak di<br />
bawah ini:<br />
9. Form Konfirmasi Rekap Bulanan Penjualan <strong>dan</strong> Pembelian (FKRek, krek.cpp, krek.h)<br />
95
Sebelum membuat Report, terlebih dahulu buat Form untuk konfirmasinya, antara<br />
lain untuk konfirmasi bulan berapa, tahun berapa <strong>dan</strong> report apa yang akan<br />
ditampilkan.<br />
Untuk membuat Form Konfirmasi report, langkah pertama yaitu buat Form <strong>dan</strong><br />
letakkan komponen-komponen baru dengan rincian sebagai berikut:<br />
Komponen Properti Nilai Arahan<br />
Form1 BorderStyle bsSingle<br />
Caption Konfirmasi Report<br />
Font Ver<strong>dan</strong>a 10<br />
Height 200<br />
Name FKRek<br />
Position poScreenCenter<br />
Width 300<br />
FormStyle fsNormal<br />
BorderIcons [biSystemMenu,biMinimize]<br />
ComboBox1 CharCase ecUpperCase Bulan<br />
Items<br />
Style<br />
Text<br />
JANUARI<br />
FEBRUARI<br />
MARET<br />
.<br />
.<br />
.<br />
DESEMBER<br />
csDropDown<br />
BULAN<br />
ComboBox2 CharCase ecUpperCase Rekap<br />
Items<br />
Style<br />
Text<br />
PENJUALAN<br />
PEMBELIAN<br />
csDropDown<br />
REKAP<br />
CSpinEdit1 MaxValue 3000 Tahun<br />
MinValue 2000<br />
Value 2000<br />
BitBtn1 Caption Preview<br />
96
BitBtn2 Caption Tutup<br />
Tampilan desain awal:<br />
Klik ganda di BitBtn2 (Tutup), isi sintak sebagai berikut:<br />
Sebelum sintak di BitBtn1 (Preview) diisi, buatlah dulu Form untuk Reportnya<br />
terlebih dahulu.<br />
Kemudian Klik ganda di BitBtn1 (Preview), isi sintak di bawah ini:<br />
97
Tambahkan unit Form Rekap Penjualan <strong>dan</strong> Pembelian di unit ini.<br />
10. Form Report Rekap Bulanan Penjualan (FRekJual, RekJual.cpp, RekJual.h)<br />
Pada prinsipnya, sama dengan komponen-komponen standard, Komponenkomponen<br />
yang digunakan di report terdapat di Tab QReport.<br />
Untuk membuat Form report, langkah pertama yaitu buat Form <strong>dan</strong> letakkan<br />
komponen-komponen baru dengan rincian sebagai berikut:<br />
99
Komponen Properti Nilai Arahan<br />
Form1 BorderStyle bsSingle<br />
Caption Konfirmasi Report<br />
Font Ver<strong>dan</strong>a 10<br />
Height 480<br />
Name FrekJual<br />
Position poScreenCenter<br />
Width 700<br />
FormStyle fsNormal<br />
BorderIcons [biSystemMenu,biMinimize]<br />
AutoScroll true<br />
Query1 Name QRJual<br />
DatabaseName DM1 : dbtoko<br />
SQL String<br />
SELECT D.NAMABRG, D1.NAMAPLGN,<br />
D2.BULAN, D2.TAHUN, D2.KODEPLGN,<br />
D2.KODEBRG, D2.QTY, D2.LUNAS<br />
FROM "..\Data\barang.DBF" D,<br />
"..\Data\pelanggan.DBF" D1,<br />
"..\Data\t_jual.DBF" D2<br />
WHERE<br />
(D2.KODEPLGN = D1.KODEPLGN)<br />
AND (D2.KODEBRG = D.KODEBRG)<br />
ORDER BY D.NAMABRG, D1.NAMAPLGN,<br />
D2.BULAN, D2.TAHUN, D2.KODEPLGN,<br />
D2.KODEBRG, D2.QTY, D2.LUNAS<br />
Active<br />
DataSource1 Name<br />
DataSet<br />
true<br />
DSQRJual<br />
QRJual<br />
QuickRep1 Dataset QRJual<br />
Bands HasColumnHeader = true tempat<br />
meletakkan<br />
nama kolom<br />
(field)<br />
HasDetail = true<br />
tempat<br />
melatakkan<br />
record<br />
HasPageFooter = true<br />
HasPageHeader = true<br />
HasSummary = true<br />
100
Tampilan desain awal:<br />
Sebelum menambahkan komponen lain, akan dijelaskan beberapa komponen yang<br />
sering di Qreport, yaitu:<br />
Nama Komponen<br />
QuickRep<br />
QRSubDetail<br />
QRStringsBand<br />
QRband<br />
QRChildBand<br />
QRGroup<br />
QRLabel<br />
QRDBText<br />
QRExpr<br />
QRSysData<br />
QRMemo<br />
Deskripsi<br />
Induk awal dari Report<br />
101
QRShape<br />
QRImage<br />
QRDBImage<br />
Kemudian tambahkan komponen-komponen QRLabel, QRDBText, QRExpr, <strong>dan</strong><br />
QRShape sehingga tampilan seperti di bawah ini:<br />
Tampilan desain:<br />
Tampilan setelah properti tiap kkomponen diisi dengan DataSource <strong>dan</strong> DataField<br />
yang sesuai:<br />
102
Tampilan pada saat di Preview:<br />
103
Tambahkan unit modul1 (DM1) di unit rekjual.cpp seperti di bawah ini:<br />
11. Form Report Rekap Bulanan Pembelian (FRekBeli, RekBeli.cpp, RekBeli.h)<br />
Untuk pembuatan Form Report Pembelian, lakukan cara yang sama dengan Form<br />
Report Penjualan.<br />
12. Form Password (Fpassword, password.cpp, password.h)<br />
Komponen Properti Nilai Arahan<br />
Form1 BorderStyle bsNone<br />
Caption Transaksi Pembelian<br />
Font Ver<strong>dan</strong>a 10<br />
Height 400<br />
Name Ft_beli<br />
Position poMainFormCenter<br />
Width 590<br />
FormStyle fsMDIChild<br />
BorderIcons [biMaximize]<br />
WindowStatae wsMaximized<br />
Panel1 Caption (kosong)<br />
BorderStyle bsSingle<br />
BitBtn1 Caption Login<br />
Default true<br />
BitBtn2 Caption Exit<br />
Tampilan desain:<br />
104
Kemudian tambhakna unit menu di unit ini dengan sintak di bawah ini:<br />
Klik ganda di BitBtn1 (Login), isi sintak di bawah ini:<br />
105
Tambahkan sintak di bawah ini untuk event FpasswordShow:<br />
Lalu pada unit Menu (Fmenu), tambahkan sintak di bawah ini pada event<br />
FmenuShow:<br />
Tampilan hasil akhir <strong>aplikasi</strong>:<br />
106
107
108
Referensi<br />
Al-Qur’an & Al-Hadits.<br />
Heriyanto, Imam, Budi Raharjo (2003). Pemrograman Borland C++ Builder. Informatika<br />
Bandung..<br />
Indrajit, Richardus Eko. Manajemen Sistem Informasi <strong>dan</strong> Teknologi Informasi.<br />
Indrajit, Richardus Eko. Kajian Strategis Analisa Cost-Benefit Investasi Teknologi Informasi.<br />
Lidya, Leoni, rinaldi Munir (2002). Algoritama <strong>dan</strong> Pemrograman dalam Bahas Pascal <strong>dan</strong> C.<br />
Informatika Bandung.<br />
Solichin, Achmad (2003). Pemrograman Bahasa C dengan Turbo C. IlmuKomputer.Com.<br />
Wahono, Romi Satria(2003). Cepat MahirBahasa. IlmuKomputer.Com.<br />
109
Riwayat Hidup<br />
Muhammad Fachrurrozi dilahirkan di Palembang, 22 Mei1980.<br />
Saat ini mengabdikan dirinya untuk sebuah lembaga pendidikan yaitu Program<br />
Diploma Komputer Universitas Sriwijaya di Palembang sebagai Tenaga Laboran <strong>dan</strong><br />
Staff Pengajar. Menyelesaikan studi sarjananya di Jurusan Matematika Fakultas MIPA<br />
Universitas Sriwijaya Desember 2002. Memulai debutnya di bi<strong>dan</strong>g komputer pada usia<br />
11 tahun, dengan berbagai pengalaman selama mendalami <strong>dan</strong> memahani komputer<br />
baik dari sisi hardware maupun software. Saat duduk di bangku kuliah semester 3, ia<br />
telah dipercaya untuk menjadi salah satu asisten laboratorium komputer di jurusannya<br />
di bi<strong>dan</strong>g <strong>pemrograman</strong>. Saat waktu di bangku kuliah juga ia telah ditempa berbagai<br />
pengalaman dalam bi<strong>dan</strong>g teknologi informasi, yaitu pada tahun 2001 <strong>dan</strong> 2002<br />
dipercaya sebagai asissten <strong>dan</strong> instruktur untuk Pelatihan Internet <strong>dan</strong> Database untuk<br />
pegawai Pendidikan Nasional se-Sumsel. Sejak setelah menamatkan kuliahnya ia<br />
mengabdikan diri di Program Diploma Komputer Universitas Sriwijaya. Sehari-hari<br />
dapat dihubungi melalui email m_fach@unsri.ac.id .<br />
110