23.10.2014 Views

konsep dan aplikasi pemrograman menggunakan borland c__ ...

konsep dan aplikasi pemrograman menggunakan borland c__ ...

konsep dan aplikasi pemrograman menggunakan borland c__ ...

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!