Anda di halaman 1dari 150

KONSEP DA N A PLIKASI PEMROGRA MA N MENGGUNAKAN BOR LA ND C++ BUILDER 6

BAGIAN 2: APLIKASI VISUAL DATABASE DENGAN ADO .NET


( M S AC C E S S & M S S Q L S E RV E R 2 0 0 0 )
M . F A C H R U R R O Z I G U S T I A W A N F E R R Y

Daftar Isi
MUQADDIMAH 1. 2. 3. 4. 5. 6. PENDAHULUAN KONSEP DASAR PEMROGRAMAN VISUAL PEMROGRAMAN VISUAL MENGGUNAKAN BORLAND C++ BUILDER 6 KONSEP DASAR PERANCANGAN DATABASE PENGENALAN BORLAND DATABASE DESKTOP INTERFACE APLIKASI DATABASE SEDERHANA MENGGUNAKAN BORLAND DATABASE ENGINE (BDE) APLIKASI DATABASE MENGGUNAKAN ADO.NET MS ACCESS DATABASE APLIKASI DATABASE MENGGUNAKAN ADO.NET MS SQL SERVER DATABASE TIPS & TRIKS

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, Juni 2005

Penulis

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

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

2. Konsep Dasar Pemrograman Visual


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

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

event execute

yes

Input

no other action Process

Output

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

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

Unit

Prosedur A

Prosedur B

Prosedur C

Prosedur D

Project

Unit 1

Unit 2

Unit 3

Unit 4

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

10

3. Pemrograman Visual Menggunakan Borland C++ Builder 6


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

Untuk membuat aplikasi baru, langkah-langkah yang harus dilakukan yaitu: 1. Tutup semua aplikasi yang ada dengan cara memilih menu File Close All. 2. Buka aplikasi baru dengan memilih menu File New Application, seperti pada tampilan berikut:

11

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

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

12

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

6. Pada setelah menyimpan, beberapa file terbentuk (created) secara otomatis, seperti terlihat pada tampilan berikut:

13

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

14

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

15

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

16

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

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

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

17

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

Komponen-komponen yang sering digunakan di dalam aplikasi visual Borland C++ Builder 6.
Gambar Nama Komponen Button Edit ListBox ComboBox Memo Label CheckBox RadioButton GroupBox Default Name Button1 Edit1 ListBox1 ComboBox1 Memo1 Label1 CheckBox1 RadioButton1 GroupBox1 Posisi Tab Standard Standard Standard Standard Standard Standard Standard Standard Standard Fungsi Dasar Proses/event
Input/output berupa teks Input/output berupa pilihan

Komponen Sejenis
BitBtn, SpeedButton MaskEdit, LabeledEdit, DBEdit DBListBox, DBLookupListBox DBComboBox, DBLookupComboBox DBMemo

Input berupa pilihan


Input/output dengan length yang lebih panjang

Panel Image

Panel1 Image1

Standard
Additional

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

DBLabel DBCheckBox RadioGroup, DBRadioGroup Panel

GroupBox DBImage

Shape

Shape1

Additional

Membuat bentuk gambar bulat, lingkaran dll


Proses perulangan menggunakan satuan interval 1

Timer

Timer1

System

18

MainMenu UpDown

MainMenu1 UpDown1

Standard Win32

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

CSpinEdit

Kasus 1 (Penerapan konsep dasar pemrograman visual): Buat Aplikasi menghitung Luas Segitiga sama kaki. Langkah-langkah: 1. Buat aplikasi baru, lalu set properti-properti komponen sebagai berikut: No 1 Komponen Form1 Properti BorderStyle Caption Font Height Name Position Width Caption Font Caption Caption Caption Caption MaxLength MaxLength ReadOnly Nilai Single Aplikasi Segitiga Verdana 10 300 FUtama poScreenCenter 300 Mencari Luas Segitiga Verdana 12 Bold Luas Alas Tinggi Luas Hitung 5 5 true

Label1

3 4 5 6 7 8 9

Label2 Label3 Label4 Button1 Edit1 Edit2 Edit3

Hasilnya seperti pada tampilan berikut:

19

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

Isi dengan sintak seperti pada tampilan berikut:

20

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

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

21

Isi dengan sintak sebagai berikut:

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

22

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

23

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

24

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

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

25

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

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

4. Atur properti komponen sebagai berikut

26

No 1

Komponen Form1

Properti BorderStyle Caption Font Height Name Position Width MaxLength MaxLength PasswordChar

Nilai Single Login Verdana 12 250 FUtama poScreenCenter 400 20 20 #

2 3

Edit1 Edit2

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

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

27

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

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

Isi sintak secara keseluruhan di password1.cpp //--------------------------------------------------------------------------#include <vcl.h> #pragma hdrstop #include "password1.h" //--------------------------------------------------------------------------#pragma package(smart_init)

28

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

29

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

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

30

4. Atur properti komponen sebagai berikut No 1 Komponen Form1 Properti BorderStyle Caption Font Height Name Position Width Caption BorderStyle Height&Width MaxLength MaxLength Text ReadOnly Text Nilai Single Total Biaya Pembelian Verdana 12 300 FUtama poScreenCenter 400 (kosong) Single Sesuaikan dengan tampilan 20 10 0 true 0

Panel1

2 3

Edit1 Edit2

Edit3

31

CSpinEdit (Tab Sample)

Increment Max Value TabOrder Associate Increment Max Caption Glyph

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

UpDown1

BitBtn1

BitBtn2

Caption Glyph

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

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

32

8. Klik 2 Kali di CSpinEdit1 untuk event CSpin1EditChange, artinya proses akan dijalankan pada saat nilai di dalam CSpinEdit1 berubah. isi sintak sebagai berikut:

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

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

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

33

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

34

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

35

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

Kasus 4 (Aplikasi menggunakan komponen ComboBox, CheckBox dan RadioButton). Buat aplikasi untuk menghitung total biaya pembelian untuk suatu barang, dengan diskon tertentu.

36

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

4. Atur properti komponen sebagai berikut No 1 Komponen Form1 Properti BorderStyle Caption Nilai Single Total Biaya Pembelian

37

Font Height Name Position Width 2 Panel1 Caption BorderStyle Height&Width MaxLength CharCase Text Items

Verdana 12 420 FUtama poScreenCenter 400 (kosong) Single Sesuaikan dengan tampilan 20 ecUpperCase NAMA BARANG PENA PENSIL PENGHAPUS

ComboBox1

Edit1

ReadOnly Text Increment Max Value Caption Columns Items

true 0 1 100 Langganan? 2 Ya Tidak Lunas cbChecked 0 true 0 true

CSpinEdit (Tab Sample) RadioGroup1

CheckBox1

Caption State Text ReadOnly Text ReadOnly

Edit2

Edit3

38

10

Edit4

Text ReadOnly Caption Glyph

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

11

BitBtn1

12

BitBtn2

Caption Glyph

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

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

39

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

40

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

Isi sintak utama.cpp secara keseluruhan: //--------------------------------------------------------------------------#include <vcl.h> #pragma hdrstop #include "utama.h" //---------------------------------------------------------------------------

41

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

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

42

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

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

43

KONSEP

TIMER

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

4. Atur properti komponen sebagai berikut No 1 Komponen Form1 Properti BorderStyle Caption Nilai Single Jam Digital

44

Font Height Name Position Width 2 3 Timer1 Label1 Interval Alignment Autosize

Verdana 22 200 FUtama poScreenCenter 300 1000 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

Tabel

Query

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 Char Char Char Number Number Char Size 6 50 20 10 10 50 Default 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

0 0

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 Char Char Char Char Size 6 50 50 25 Default Allow NULL No No Yes Yes Unique Primary Yes No No No Yes No No No Arahan Kode Agen Nama Agen Alamat Agen Nomor Telepon

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


Index 0 1 2 3 Nama Field kodeplgn namaplgn alamat telepon Type Char Char Char Char Size 6 50 50 25 Default Allow NULL No No Yes Yes Unique Primary Yes No No No Yes No No No Arahan Kode Pelanggan Nama Pelanggan Alamat Pelanggan Nomor Telepon

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


Inde x 0 Nama Field bulan Siz e 10 Defaul t Allow NULL No

Type Char

Arahan Bulan Pembelian

Keterangan

48

1 2 3 4 5

tahun kodeplgn kodebrg qty lunas

Char Char Char Numbe r Logical

4 6 6 4 0

No No No No Yes

Tahun Pembelian Kode Agen Kode Barang Jumlah Pembelian Status Pelunasan dari tabel pelanggan dari tabel barang

True atau False

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


Index 0 1 2 3 4 5 Nama Field bulan tahun kodeagen kodebrg qty lunas Type Char Char Char Char Number Logical Size 10 4 6 6 4 Default Allow NULL No No No No No Yes Arahan Bulan Pembelian Tahun Pembelian Kode Pelanggan Kode Barang Jumlah Pembelian Status Pelunasan Keterangan

dari tabel agen dari tabel barang True atau False

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


Index 0 1 2 3 4 5 6 7 8 9 Nama Field bulan tahun kodeplgn namaplgn kodebrg namabrg satuan hjual qty lunas Type Char Char Char Char Char Char Char Number Number Logical Size 10 4 6 50 6 50 20 10 3 Arahan Bulan Pembelian Tahun Pembelian Kode Pelanggan Nama Pelanggan Kode Barang Nama Barang Satuan Ukuran Harga Satuan Jumlah Pembelian Status Pelunasan 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

dari dari dari dari dari dari dari dari dari dari

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


Index 0 1 2 3 Nama Field bulan tahun kodeagen namagen Type Char Char Char Char Size 10 4 6 50 Arahan Bulan Pembelian Tahun Pembelian Kode Pelanggan Nama Pelanggan Keterangan tabel t_beli tabel t_beli tabel t_beli tabel agen

dari dari dari dari

49

4 5 8 9 11 12

kodebrg namabrg satuan hbeli qty lunas

Char Char Char Number Number Logical

6 50 20 9 3

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

dari dari dari dari dari dari

tabel tabel tabel tabel tabel tabel

t_jual barang barang barang t_beli t_beli

Tabel Relationships 1. Transaksi Penjualan

2. Transaksi Pembelian

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

50

51

5. Pengenalan Borland Database Desktop Interface


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

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

52

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

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

53

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

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

54

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

55

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

56

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


MEMBUAT APLIKASI DATABASE SEDERHANA

Dari tabel yang telah dirancang di bab 4 di atas, sekarang bagaimana merancang aplikasi dengan menggunakan tabel tersebut. Persiapan: - Software Borland C++ Builder 6 - Database Desktop - Jenis Database menggunakan Borland Database Engine (BDE) - Tabel menggunakan format dBase IV Perancangan Form Aplikasi dengan Borland C++ Builder 6 No 1 2 3 4 5 6 7 8 9 10 11 12 Nama Form Menu Utama Fmenu Data Modul untuk database DM1 Input Data Barang Fbarang Input Data Agen Fagen Input Data Pelanggan Fpelanggan Transaksi Penjualan Ft_jual Transaksi Pembelian Ft_beli Lookup Data Barang, Data Agen, Flookup Data Pelanggan Konfirmasi Rekap Bulanan Penjualan FKRek dan Pembelian Report Rekap Bulanan Penjualan FRekJual Report Rekap Bulanan Pembelian FRekBeli Password Fpassword Arahan *.cpp menu.cpp modul1.cpp barang.cpp agen.cpp pelanggan.cpp t_jual.cpp t_beli.cpp lookup.cpp krek.cpp RekJual.cpp RekBeli.cpp password.cpp *.h menu.h modul1.h barang.h agen.h pelanggan.h t_jual.h t_beli.h lookup.h krek.h RekJual.h RekBeli.h password.h

57

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

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

58

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

59

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

60

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

Atur properti komponen seperti dalam tabel berikut: No 1 Komponen Form1 Properti BorderStyle Caption Font Height Name Nilai Single Toko Maya Verdana 10 450 Fmenu

61

Position Width FormStyle 2 MainMenu1 (lihat di gambar 6.2)

poScreenCenter 600 fsMDIForm

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

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

DataSource, berfungsi sebagai penghubung antar tabel/query ke form

Atur properti komponen sebagai berikut:


No 1 2 Komponen DataModule1 Database1 Properti Name DatabaseName Name DriverName LoginPrompt Connected DM1 dbtoko dbtoko STANDARD false True Nilai

62

Tabel1

DatabaseName TableName IndexFieldName Name Active DatabaseName TableName IndexFieldName Name Active DatabaseName TableName IndexFieldName Name Active Name DataSet Name DataSet Name DataSet DatabaseName Name DatabaseName Name DatabaseName Name Name DataSet Name DataSet Name DataSet

dbtoko ../data/barang.dbf KODEBRG barang true dbtoko ../data/agen.dbf KODEAGEN agen true Dbtoko ../data/pelanggan.dbf KODEPLGN pelanggan true DSbarang barang DSagen agen DSpelanggan pelanggan dbtoko Qjual dbtoko Qbeli dbtoko Qlookup DSQjual Qjual DSQbeli Qbeli DSlookup lookup

Tabel2

Tabel3

DataSource1

DataSource2

DataSource3

Query1

10

Query2

11

Query3

12

DataSource4

13

DataSource5

14

DataSource6

63

3. Form Input Data Barang (Fbarang, barang.cpp, barang.h) Buka Form baru, dengan memilih menu File New Form. Lalu tambahkan dan atur setiap komponen dengan mengacu pada rancangan tabel yang telah dibuat, seperti pada tampilan berikut: Tab Data Controls

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

No 1

Komponen Form1

Properti BorderStyle

Nilai bsNone

64

Caption Font Height Name Position Width FormStyle BorderIcons WindowStatae 2 Panel1 Caption BorderStyle DataSource DataField CharCase DataSource DataField CharCase DataSource DataField DataSource DataField DataSource DataField DataSource DataField Caption Glyph DefaultExt Filter

Data Barang Verdana 10 400 Fbarang poMainFormCenter 590 fsMDIChild [biMaximize] wsMaximized (kosong) bsSingle DSbarang KODEBRG ecUpperCase DSbarang NAMABRG ecUpperCase DSbarang SATUAN DSbarang HJUAL DSbarang HBELI DSbarang GAMBAR Browse

DBEdit1

DBEdit2

DBEdit3

DBEdit4

DBEdit5

DBEdit6

BitBtn1

10

OpenDialog1

*.bmp Bitmap Files|*.bmp|

65

JPEG Files|*.jpg 11 DBNavigator1 DataSource Show Hints DSbarang true

Tampilan Filter di OpenDialog1

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

66

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

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

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

67

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

68

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

Komponen yang ditambahkan: Komponen Edit1 Properti CharCase Text Caption Default Nilai ecUpperCase (kosong) Cari True

BitBtn2

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

69

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

70

Tips: o o

Pelajari juga mengenai FindNearest, FindKey dan GotoNearest. Pelajari untuk mencari berdasarkan nama barang.

4. Form Input Data Agen (Fagen, agen.cpp, agen.h) Lakukan cara yang sama dengan point 3 (Data Barang). Tampilan desain:

Tampilan saat aplikasi dijalankan:

71

5. Form Input Data Pelanggan (Fpelanggan, pelanggan.cpp, pelanggan.h) Lakukan cara yang sama dengan point 3 (Data Barang). Tampilan desain:

72

Tampilan saat aplikasi dijalankan:

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

73

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

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

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

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

74

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

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

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

6. Form Transaksi Pembelian (Ft_beli, t_beli.cpp, t_beli.h) Tampilan desain awal:

Atur properti komponen sebagai berikut:

75

Komponen Form1

Properti BorderStyle Caption Font Height Name Position Width FormStyle BorderIcons WindowStatae Caption BorderStyle Caption BorderStyle

Nilai bsNone Transaksi Pembelian Verdana 10 400 Ft_beli poMainFormCenter 590 fsMDIChild [biMaximize] wsMaximized (kosong) bsSingle (kosong) bsSingle ecUpperCase
JANUARI FEBRUARI MARET . . . DESEMBER

Arahan

Panel1

Panel2

ComboBox1 CharCase Items

Bulan

Style Text CSpinEdit1 MaxValue MinValue Value CharCase MaxLength Text Caption CharCase

csDropDown BULAN 3000 2000 2000 ecUpperCase 6 (kosong) List ecUpperCase Kode Agen Tahun

Edit1

Kode Barang

Button1 Edit2

76

MaxLength Text Button2 Edit3 Caption Text

6 (kosong) List 0 ReadOnly 5000 0 0 0 ReadOnly (kosong) bsSingle Simpan Update Hapus (kosong) bsSingle ecUpperCase
JANUARI FEBRUARI MARET . . . DESEMBER

Harga Beli true Quantity

CSpinEdit2

MaxValue MinValue Value Text

Edit4

Harga Beli true

Panel3

Caption BorderStyle Caption Caption Caption Caption BorderStyle

BitBtn1 BitBtn2 BitBtn3 Panel4

ComboBox2 CharCase Items

Bulan

Style Text CSpinEdit3 MaxValue MinValue Value

csDropDown BULAN 3000 2000 2000 Tahun

77

Edit5

CharCase MaxLength Text CharCase MaxLength Text Caption Caption DataSource

ecUpperCase 6 (kosong) ecUpperCase 6 (kosong) Semua Kriteria Refresh DM1->DSQbeli Align

Cari Kode Barang

Edit6

Cari Kode Agen

BitBtn4 BitBtn5 DBGrid1

alClient

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

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

78

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

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

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

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

79

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

80

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

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

81

82

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

83

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

84

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

85

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

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

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

86

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

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

87

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

88

89

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

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

90

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

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

91

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

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

92

Tampilan akhir form saat dieksekusi:

8. Form Lookup Data Barang, Data Agen, Data Pelanggan (Flookup, lookup.cpp, lookup.h) Komponen Form1 Properti BorderStyle Caption Font Height Name Position Width FormStyle BorderIcons Caption BorderStyle Nilai bsSingle Tabel Lookup Verdana 8 350 Flookup poScreenCenter 430 fsStayOnTop [biSystemMenu,biMinimize] (kosong) bsSingle Arahan

Panel1

93

Align ComboBox1 CharCase Items Style Text DBGrid1 DataSource Align

alTop ecUpperCase
BARANG AGEN PELANGGAN

csDropDown TABEL LOOKUP DM1->DSQlookup alClient include modul first

Tampilan Desain awal:

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

94

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

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

95

Sebelum membuat Report, terlebih dahulu buat Form untuk konfirmasinya, antara lain untuk konfirmasi bulan berapa, tahun berapa dan report apa yang akan ditampilkan. Untuk membuat Form Konfirmasi report, langkah pertama yaitu buat Form dan letakkan komponen-komponen baru dengan rincian sebagai berikut: Komponen Form1 Properti BorderStyle Caption Font Height Name Position Width FormStyle BorderIcons Nilai bsSingle Konfirmasi Report Verdana 10 200 FKRek poScreenCenter 300 fsNormal [biSystemMenu,biMinimize] ecUpperCase
JANUARI FEBRUARI MARET . . . DESEMBER

Arahan

ComboBox1 CharCase Items

Bulan

Style Text ComboBox2 CharCase Items Style Text CSpinEdit1 MaxValue MinValue Value Caption

csDropDown BULAN ecUpperCase


PENJUALAN PEMBELIAN

Rekap

csDropDown REKAP 3000 2000 2000 Preview Tahun

BitBtn1

96

BitBtn2

Caption

Tutup

Tampilan desain awal:

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

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

97

98

Tambahkan unit Form Rekap Penjualan dan Pembelian di unit ini.

10. Form Report Rekap Bulanan Penjualan (FRekJual, RekJual.cpp, RekJual.h) Pada prinsipnya, sama dengan komponen-komponen standard, Komponenkomponen yang digunakan di report terdapat di Tab QReport.

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

99

Komponen Form1

Properti BorderStyle Caption Font Height Name Position Width FormStyle BorderIcons AutoScroll

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

Arahan

Query1

Name QRJual DatabaseName DM1 : dbtoko SQL String SELECT D.NAMABRG, D1.NAMAPLGN,
D2.BULAN, D2.TAHUN, D2.KODEPLGN, D2.KODEBRG, D2.QTY, D2.LUNAS FROM "..\Data\barang.DBF" D, "..\Data\pelanggan.DBF" D1, "..\Data\t_jual.DBF" D2 WHERE (D2.KODEPLGN = D1.KODEPLGN) AND (D2.KODEBRG = D.KODEBRG) ORDER BY D.NAMABRG, D1.NAMAPLGN, D2.BULAN, D2.TAHUN, D2.KODEPLGN, D2.KODEBRG, D2.QTY, D2.LUNAS

Active DataSource1 Name DataSet QuickRep1 Dataset Bands

true DSQRJual QRJual QRJual HasColumnHeader = true

HasDetail = true

tempat meletakkan nama kolom (field) tempat melatakkan record

HasPageFooter = true HasPageHeader = true HasSummary = true

100

Tampilan desain awal:

Sebelum menambahkan komponen lain, akan dijelaskan beberapa komponen yang sering di Qreport, yaitu: Nama Komponen QuickRep QRSubDetail QRStringsBand QRband QRChildBand QRGroup QRLabel QRDBText QRExpr QRSysData QRMemo Deskripsi Induk awal dari Report

101

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

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

102

Tampilan pada saat di Preview:

103

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

11. Form Report Rekap Bulanan Pembelian (FRekBeli, RekBeli.cpp, RekBeli.h) Untuk pembuatan Form Report Pembelian, lakukan cara yang sama dengan Form Report Penjualan. 12. Form Password (Fpassword, password.cpp, password.h) Komponen Properti Form1 BorderStyle Caption Font Height Name Position Width FormStyle BorderIcons WindowStatae Panel1 Caption BorderStyle Caption Default Caption Nilai Arahan bsNone Transaksi Pembelian Verdana 10 400 Ft_beli poMainFormCenter 590 fsMDIChild [biMaximize] wsMaximized (kosong) bsSingle Login true Exit

BitBtn1 BitBtn2

Tampilan desain:

104

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

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

105

Tambahkan sintak di bawah ini untuk event FpasswordShow:

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

Tampilan hasil akhir aplikasi:

106

107

6. Aplikasi Database Menggunakan ADO Microsoft Access


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

108

1. Data Master : Data Mobil (nama tabel : mobil) Index 0 1 2 3 4 Nama Field kodemobil jenismobil merkmobil tarif catatan Type Text Text Text Number Text Size 5 15 20 Long Integer 100

2. Data Master : Data Pelanggan (nama tabel : pelanggan) Index 0 1 2 3 4 5 6 7 8 Nama Field kodepelanggan namapelanggan kontak alamat kota kodepos telpon fax catatan Type Text Text Text Text Text Text Text Text Text Size 6 20 15 50 20 5 15 15 100

3. Data Transaksi : Data Transaksi Sewa (nama tabel : datasewa) Index 0 1 2 3 4 5 6 7 8 9 Nama Field nofaktur kodepelanggan tglsewa blnsewa thnsewa kodemobil lamasewa uangmuka biayasewa sisabayar Type Text Text Text Text Text Text Number Number Number Number Size 10 6 2 10 4 5 Long Integer Long Integer Long Integer Long Integer

109

10

catatan

Text

100

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

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

110

111

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

Atur properti komponen seperti berikut : No Komponen Form1 Properti BorderStyle Caption Font Height Name Position Width FormStyle (Lihat gambar) Nilai Single PT Never Give Up Fmenu poScreenCenter . .

MainMenu1

2. Data Modul (DM1, Umodul.cpp, Umodul.h) Untuk membuat Data Modul, klik File New Data Module. Karena kasus ini menggunakan MS Access, maka gunakan komponen-komponen pada tab ADO.

112

Atur properti komponen sebagai berikut : No 1 2 Komponen DataModule ADOConnection Properti Name Name ConnectionString - Provider - Connection Login Prompt Connected 3 ADOTable1 Name Connection TableName IndexFieldName Active Name Connection TableName IndexFieldName Nilai DM1 koneksi Microsoft Jet 4.0 OLE DB Provider dbsewamobil.mdb false true mobil koneksi mobil kodemobil true pelanggan koneksi pelanggan kodepelanggan

ADOTable2

113

Active 5 DataSource1 Name DataSet Name DataSet Name Connection Name Connection Name DataSet Name Connection

true DSmobil mobil DSpelanggan pelanggan Qcari koneksi Qsewa koneksi DSdatasewa Qsewa Qvalidasi koneksi

DataSource2

ADOQuery1

ADOQuery2

DataSource3

10

ADOQuery3

3. Form Entry Data Mobil (Fmobil, Umobil.cpp, Umobil.h) Buka fom baru, dengan memilih File New Form. Gunakan komponen pada tab Data Controls. Atur tampilan seperti berikut :

114

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

115

No 1

Komponen Form1

Properti BoderStyle Caption Font Height Name Position Width FormStyle BorderIcons WindowState Caption BorderStyle DataSource DataField CharCase DataSource DataField CharCase DataSource DataField CharCase DataSource DataField DataSource DataField DataSource ShowHint

Nilai Entry Data Mobil Fmobil (kosong) DSmobil kodemobil ecUppercase DSmobil jenismobill ecUppercase DSmobil merkmobil ecUpperCase DSmobil tarifsewa DSmobil catatan DSmobil true

Panel1

DBEdit1

DBEdit2

DBEdit3

DBEdit4

DBEdit5

DBNavigator1

116

DBGrid1

DataSource Column

10 11

Edit1 Button1

CharCase Caption Default Caption

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 Cari True Refresh

12

Button2

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

117

Klik Button2 (Refresh), isi sintaks berikut :

Kemudian masukkan unit ini (Umobil.h) ke unit menu dengan menambahkan sintaks di unit Umenu.cpp sehinggan form menu dapat memanggil form mobil, seperti berikut :

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

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

118

Sintaks SetFocus(); digunakan untuk meletakkan posisi kursor komponen yang dimaksud.

pada

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

119

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

120

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

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

121

Tampilan saat form dijalankan :

122

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

Atur properti komponen sebagai berikut : No 1 Komponen Form1 Properti BorderStyle Caption Font Height Name Position Width Nilai Fsewa

123

FormStyle BorderIcons WindowState 2 Panel Caption BorderStyle CharCase MaxLength Text CharCase MaxLength Text Increment MaxValue MinValue Value CharCase Items

(Kosong) bsSingle ecUpperCase 6 (kosong) ecUpperCase 5 (kosong) 1 31 1 1 ecUpperCase JANUARI FEBRUARI . . DESEMBER BULAN 1 3000 2006 2006 ecUpperCase 4

Edit1

Edit2

CSpinEdit1

ComboBox1

Text 7 CSpinEdit2 Increment MaxValue MinValue Value CharCase MaxLength

Edit3

124

Text 9 Edit4 Text ReadOnly Text ReadOnly Text ReadOnly Text Text ReadOnly Text ReadOnly Text ReadOnly Text Caption Caption Caption Caption Caption DataSource

(kosong) (kosong) True (kosong) True (kosong) True (kosong) (kosong) True (kosong) True (kosong) True (kosong) Hitung Simpan Update Hapus Cari DM1->datasewa

10

Edit5

11

Edit6

12 13

Edit7 Edit8

14

Edit9

15

Edit10

16 17 18 19 20 21 22

Edit11 Button1 Button2 Button3 Button4 Button5 DBGrid1

125

(atur juga tampilan judul field/kolom seperti DBGrid diatas) 23 24 25 Button6 Button7 Label18 Caption Caption Caption Refresh Data Sewa Refresh Form Label18

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

126

Untuk menampilkan nama pelanggan pada Label18 ketika Anda mengetikkan kode pelanggan pada Edit2, Klik ganda Edit2, isi sintaks berikut :

127

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

128

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

Untuk proses penyimpanan, klik ganda button2 (Simpan), ketikkan sintaks berikut :

129

130

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

Untuk proses penghapusan data di tabel database, ketikkan sintaks berikut pada Button4 (Hapus) :

131

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

132

133

Setelah proses pencarian dilakukan DBGrid hanya akan menampilkan record yang dicari. Agar DBGrid menampilkan kembali data-data di tabel ketikkan sintaks berikut pada Button6 (Refresh Data Sewa) :

Untuk mengosongkan kembali field-field pada form, ketiik sintaks berikut pada Button7 (Refresh Form) :

134

Masukkan unit ini (Utransaksisewa.h) ke unit menu. Tampilan form setelah dijalankan :

135

6. Form View Sewa (Fviewsewa, Uviewsewa.cpp, Uviewsewa.h) Form ini digunakan untuk menampilkan data sewa, mobil yang telah dipesan / sedang disewa, sehingga diketahui ketersediaan mobil yang akan disewa. Tampilan desain :

Atur properti komponen sebagai berikut : No 1 Komponen Form1 Properti BorderStyle Caption Font Height Name Position Width FormStyle BorderIcons Nilai . . . . Fviewsewa . . . .

136

WindowState 2 3 ComboBox1 ComboBox2 Text Items

. Tanggal JANUARI .. .. DESEMBER Bulan 1 3000 2006 2006 Kode Mobil Label4 Label6 DM1->DSdatasewa

Text 4 CSpinEdit1 Increment MaxValue MinValue Value Text Caption Caption DataSource

5 6 7 8

ComboBox3 Label4 Label6 DBGrid1

137

Pada event form OnShow ketik sintaks berikut :

Pencarian berdasarkan perubahan pada ComboBox3. Ketikkan sintaks berikut pada ComboBox3Change :

138

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

139

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

Atur properti sebagai berikut : No 1 Komponen Form1 Properti BorderStyle Caption Font Height Name Position Width Items Nilai . Konfirmasi Report Harian . . FKReportHarian poScreenCenter . 1 2 31

ComboBox1

140

Text 3 ComboBox2 Items

Tanggal JANUARI DESEMBER Bulan 1 2006 3000 2006 Tampilkan Tutup

Text 4 CSpinEdit1 Increment MinValue MaxValue Value Caption Caption

5 6

Button1 Button2

Klik ganda button2 (Tutup), isi sintak berikut :

Langkah berikut adalah membuat Form Reportnya. Setelah Form Report Harian dibuat klik ganda button1 (Tampilkan), isi sintaks berikut :

141

Kemudian include-kan unit UReportHarian ke unit ini.

142

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

Atur properti komponen sebagai berikut : No 1 Komponen Form1 Properti BorderStyle Caption Font Height Name Position Width AutoScroll Connection Name SQL String Nilai Report Harian FReportHarian poScreenCenter true DM1->koneksi QRHarian
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;

ADOQuery

Active 3 DataSource1 Name

true DSQReportHarian

143

Dataset 4 QuickRep1 DataSet Bands

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

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

144

Tampilan pada saat preview :

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

145

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

(FKReportBulanan,

Lakukan cara yang sama dengan point 7 (Form Konfirmasi Report Harian). Tampilan desain :

Tampilan saat form dijalankan :

146

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

Tampilan saat form dijalankan :

147

148

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

149

Riwayat Hidup

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

150

Anda mungkin juga menyukai