• Tidak ada hasil yang ditemukan

(MS ACCESS & MS SQL SERVER 2000)

N/A
N/A
Protected

Academic year: 2021

Membagikan "(MS ACCESS & MS SQL SERVER 2000)"

Copied!
150
0
0

Teks penuh

(1)

KONSEP DAN APLIKASI

PEMROGRAMAN MENGGUNAKAN

BORLAND C++ BUILDER 6

BAGIAN 2:

APLIKASI VISUAL DATABASE

DENGAN ADO.NET

(M S AC C ESS & M S SQL SERVE R 20 00)

M . F A C H R U R R O Z I F E R R Y G U S T I A W A N

(2)

Daftar Isi

MUQADDIMAH 1. PENDAHULUAN

2. KONSEP DASAR PEMROGRAMAN VISUAL

3. PEMROGRAMAN VISUAL MENGGUNAKAN BORLAND C++ BUILDER 6 4. KONSEP DASAR PERANCANGAN DATABASE

5. PENGENALAN BORLAND DATABASE DESKTOP INTERFACE

6. APLIKASI DATABASE SEDERHANA MENGGUNAKAN BORLAND DATABASE ENGINE (BDE)

7. APLIKASI DATABASE MENGGUNAKAN ADO.NET – MS ACCESS DATABASE 8. APLIKASI DATABASE MENGGUNAKAN ADO.NET – MS SQL SERVER DATABASE 9. TIPS & TRIKS

10. PENUTUP REFERENSI RIWAYAT HIDUP

(3)

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.

(4)

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

(5)

1. Pendahuluan

Situasi persaingan bidang teknologi informasi membuat semua kalangan berlomba-lomba 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

(6)

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

(7)

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.

P E R B E D A A N P E M R O G R A M A N V I S U A L D E N G A N P E M R O G R A M A N T E R S T R U K T U R

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.

Input

Process

Output

event execute

yes

no

(8)

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.

(9)

Prosedur A Prosedur B Prosedur C Prosedur D

Unit

Unit 1 Unit 2 Unit 3 Unit 4

Project

(10)

Dari gambar di atas, dapat dijelskan bahwa setiap prosedur atau fungsi yang terdapat di dalam unit, dapat saling bebas mengekspresikan pernyataan di dalam tubuhnya masing-masing, 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.

(11)

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.

A P L I K A S I S E D E R H A N M E N G U N A K A N B O R L A N D C + + B U I L D E R 6

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

(12)

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,

(13)

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:

(14)

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.

(15)

#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

(16)

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"

(17)

#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. B O R L A N D C + + B U I L D E R 6 B A G I P R O G R A M M E R 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.

V C L ( V I S U A L C O M P O N E N T L I B R A R Y )

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.

(18)

- 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 Komponen Nama Default Name Posisi Tab Fungsi Dasar Komponen Sejenis

Button Button1 Standard Proses/event BitBtn, SpeedButton Edit Edit1 Standard Input/output berupa teks MaskEdit, LabeledEdit, DBEdit ListBox ListBox1 Standard Input/output berupa pilihan DBListBox, DBLookupListBox ComboBox ComboBox1 Standard Input berupa pilihan DBComboBox, DBLookupComboBox

Memo Memo1 Standard

Input/output dengan length yang lebih panjang

DBMemo Label Label1 Standard Teks tetap, output DBLabel CheckBox CheckBox1 Standard Input dengan nilai True or

False

DBCheckBox RadioButton RadioButton1 Standard Input berupa pilihan RadioGroup, DBRadioGroup

GroupBox GroupBox1 Standard Group beberapa komponen

Panel

Panel Panel1 Standard Group beberapa komponen

GroupBox Image Image1 Additional Memasukkan gambar DBImage Shape Shape1 Additional

Membuat bentuk gambar bulat,

lingkaran dll

Timer Timer1 System

Proses perulangan

(19)

mili detik MainMenu MainMenu1 Standard Membuat menu aplikasi

UpDown UpDown1 Win32

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 Komponen Properti Nilai

1 Form1 BorderStyle Single

Caption Aplikasi Segitiga

Font Verdana 10

Height 300

Name FUtama

Position poScreenCenter

Width 300

2 Label1 Caption Mencari Luas Segitiga

Font Verdana 12 Bold

3 Label2 Caption Luas Alas

4 Label3 Caption Tinggi

5 Label4 Caption Luas

6 Button1 Caption Hitung

7 Edit1 MaxLength 5

8 Edit2 MaxLength 5

9 Edit3 ReadOnly true

(20)

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:

(21)

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:

(22)

Isi dengan sintak sebagai berikut:

Artinya, Text di Edit1, Edit2 dan Edit3 akan dihapus (dikosongkan). Sintak-sintak 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.

(23)

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:

(24)

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) {

(25)

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;

(26)

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:

(27)

No Komponen Properti Nilai

1 Form1 BorderStyle Single

Caption Login Font Verdana 12 Height 250 Name FUtama Position poScreenCenter Width 400 2 Edit1 MaxLength 20 3 Edit2 MaxLength 20 PasswordChar #

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:

(28)

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"

(29)

#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

(30)

#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:

(31)

4. Atur properti komponen sebagai berikut

No Komponen Properti Nilai

1 Form1 BorderStyle Single

Caption Total Biaya Pembelian

Font Verdana 12

Height 300

Name FUtama

Position poScreenCenter

Width 400

2 Panel1 Caption (kosong)

BorderStyle Single

Height&Width Sesuaikan dengan tampilan

2 Edit1 MaxLength 20

3 Edit2 MaxLength 10

Text 0

4 Edit3 ReadOnly true

(32)

6 CSpinEdit Increment 50

(Tab Sample) Max Value 1000000

TabOrder 1

7 UpDown1 Associate Edit2

Increment 1

Max 200

8 BitBtn1 Caption Mulai

Glyph Browse (*.bmp), biasanya ada

di C:\Program

Files\Common Files\Borland Shared\Images\Buttons

9 BitBtn2 Caption Selesai

Glyph Browse (*.bmp)

5. Simpan seluruh unit aplikasi dengan memilih menu File à Save All. Ganti nama unit1.cpp utama.cpp dan project dengan Barang.bpr.

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

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

(33)

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:

(34)

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;

(35)

}

//--- 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>

(36)

#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).

(37)

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 Komponen Properti Nilai

1 Form1 BorderStyle Single

(38)

Font Verdana 12

Height 420

Name FUtama

Position poScreenCenter

Width 400

2 Panel1 Caption (kosong)

BorderStyle Single

Height&Width Sesuaikan dengan tampilan

3 ComboBox1 MaxLength 20

CharCase ecUpperCase

Text NAMA BARANG

Items PENA

PENSIL PENGHAPUS

4 Edit1 ReadOnly true

Text 0

5 CSpinEdit Increment 1

(Tab Sample) Max Value 100

6 RadioGroup1 Caption Langganan?

Columns 2

Items Ya

Tidak

7 CheckBox1 Caption Lunas

State cbChecked

8 Edit2 Text 0

ReadOnly true

9 Edit3 Text 0

(39)

10 Edit4 Text 0

ReadOnly true

11 BitBtn1 Caption Hitung

Glyph Browse (*.bmp), biasanya ada

di C:\Program

Files\Common Files\Borland Shared\Images\Buttons

12 BitBtn2 Caption Keluar

Glyph Browse (*.bmp)

5. Simpan seluruh unit aplikasi dengan memilih menu File à Save All. Ganti nama unit1.cpp dengan utama.cpp dan project dengan Barang2.bpr.

6. Klik ganda di komponen ComboBox1 untuk event ComboBox1Change, isi sintak berikut:

(40)

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

(41)

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"

(42)

#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 */

(43)

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(); }

(44)

K O N S E P T I M E R

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 Komponen Properti Nilai

(45)

Font Verdana 22 Height 200 Name FUtama Position poScreenCenter Width 300 2 Timer1 Interval 1000

3 Label1 Alignment taCenter

Autosize 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:

(46)

4. Konsep Dasar

Perancangan Database

Sebelum merancang sebuah aplikasi database, haruslah dipahami dulu apa itu database, bagaimana konsep database dan bagaiman merancang sebuah database.

A P A I T U D A T A B A S E

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.

T I P S P E R A N C A N G A N D A T A B A S E

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:

Tabel

Query

Tabel Tabel Tabel

Query

(47)

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)

(48)

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 Nama Field Type Size Default Allow NULL Unique Primary Arahan

0 kodebrg Char 6 No Yes Yes Kode Barang

1 namabrg Char 50 No No No Nama Barang

4 satuan Char 20 Yes No No Satuan Ukuran

5 hjual Number 10 0 Yes No No Harga Jual

6 hbeli Number 10 0 Yes No No Harga Beli

7 gambar Char 50 Yes No No Gambar Barang

Mengapa Field gambar menggunakan Char? Karena data gambar tidak disimpan di tabel, field tersebut hanya berisikan alamat tempat gambar itu berada.

2. Data Master : Data Agen (nama tabel : agen)

Index Nama Field Type Size Default Allow NULL Unique Primary Arahan

0 kodeagen Char 6 No Yes Yes Kode Agen

1 namagen Char 50 No No No Nama Agen

2 alamat Char 50 Yes No No Alamat Agen

3 telepon Char 25 Yes No No Nomor Telepon

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

Index Nama Field Type Size Default Allow NULL Unique Primary Arahan

0 kodeplgn Char 6 No Yes Yes Kode Pelanggan

1 namaplgn Char 50 No No No Nama Pelanggan

2 alamat Char 50 Yes No No Alamat Pelanggan

3 telepon Char 25 Yes No No Nomor Telepon

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

(49)

1 tahun Char 4 No Tahun Pembelian

2 kodeplgn Char 6 No Kode Agen dari tabel pelanggan 3 kodebrg Char 6 No Kode Barang dari tabel barang 4 qty Number 4 0 No Jumlah Pembelian

5 lunas Logical Yes Status Pelunasan True atau False

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

Index Nama Field Type Size Default Allow NULL Arahan Keterangan

0 bulan Char 10 No Bulan Pembelian

1 tahun Char 4 No Tahun Pembelian

2 kodeagen Char 6 No Kode Pelanggan dari tabel agen 3 kodebrg Char 6 No Kode Barang dari tabel barang

4 qty Number 4 0 No Jumlah Pembelian

5 lunas Logical Yes Status Pelunasan True atau False

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

Index Nama Field Type Size Arahan Keterangan

0 bulan Char 10 Bulan Pembelian dari tabel t_jual 1 tahun Char 4 Tahun Pembelian dari tabel t_jual 2 kodeplgn Char 6 Kode Pelanggan dari tabel t_jual 3 namaplgn Char 50 Nama Pelanggan dari tabel pelanggan 4 kodebrg Char 6 Kode Barang dari tabel t_jual 5 namabrg Char 50 Nama Barang dari tabel barang 6 satuan Char 20 Satuan Ukuran dari tabel barang 7 hjual Number 10 Harga Satuan dari tabel barang 8 qty Number 3 Jumlah Pembelian dari tabel t_jual 9 lunas Logical Status Pelunasan dari tabel t_jual

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

Index Nama Field Type Size Arahan Keterangan

0 bulan Char 10 Bulan Pembelian dari tabel t_beli 1 tahun Char 4 Tahun Pembelian dari tabel t_beli 2 kodeagen Char 6 Kode Pelanggan dari tabel t_beli 3 namagen Char 50 Nama Pelanggan dari tabel agen

(50)

4 kodebrg Char 6 Kode Barang dari tabel t_jual 5 namabrg Char 50 Nama Barang dari tabel barang 8 satuan Char 20 Satuan Ukuran dari tabel barang 9 hbeli Number 9 Harga Satuan dari tabel barang 11 qty Number 3 Jumlah Pembelian dari tabel t_beli 12 lunas Logical Status Pelunasan dari tabel 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.

(51)
(52)

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.

M E N G G U N A K A N D A T A B A S E D E S K T O 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:

(53)

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

(54)

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:

(55)

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:

(56)

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.

(57)

6. Aplikasi Database

Sederhana Menggunakan

Borland Database Engine

(BDE)

M E M B U A T A P L I K A S I D A T A B A S E S E D E R H A N A

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 Arahan Nama Form *.cpp *.h

1 Menu Utama Fmenu menu.cpp menu.h

2 Data Modul untuk database DM1 modul1.cpp modul1.h

3 Input Data Barang Fbarang barang.cpp barang.h

4 Input Data Agen Fagen agen.cpp agen.h

5 Input Data Pelanggan Fpelanggan pelanggan.cpp pelanggan.h

6 Transaksi Penjualan Ft_jual t_jual.cpp t_jual.h

7 Transaksi Pembelian Ft_beli t_beli.cpp t_beli.h

8 Lookup Data Barang, Data Agen,

Data Pelanggan Flookup lookup.cpp lookup.h

9 Konfirmasi Rekap Bulanan Penjualan

dan Pembelian FKRek krek.cpp krek.h

10 Report Rekap Bulanan Penjualan FRekJual RekJual.cpp RekJual.h 11 Report Rekap Bulanan Pembelian FRekBeli RekBeli.cpp RekBeli.h

(58)

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:

(59)

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:

(60)

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

(61)

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

Atur properti komponen seperti dalam tabel berikut:

No Komponen Properti Nilai

1 Form1 BorderStyle Single

Caption Toko Maya

Font Verdana 10

Height 450

(62)

Position poScreenCenter

Width 600

FormStyle fsMDIForm

2 MainMenu1 (lihat di gambar 6.2)

Simpan seluruh aplikasi (Save All), ganti project dengan nama TokoMaya.bpr 2. Data Modul (DM1, modul1.cpp, modul1.h)

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

DataSource, berfungsi sebagai penghubung antar tabel/query ke form

Atur properti komponen sebagai berikut:

No Komponen Properti Nilai

1 DataModule1 Name DM1

2 Database1 DatabaseName dbtoko

Name dbtoko

(63)

3 Tabel1 DatabaseName dbtoko

TableName ../data/barang.dbf IndexFieldName KODEBRG

Name barang

Active true

4 Tabel2 DatabaseName dbtoko

TableName ../data/agen.dbf IndexFieldName KODEAGEN

Name agen

Active true

5 Tabel3 DatabaseName Dbtoko

TableName ../data/pelanggan.dbf IndexFieldName KODEPLGN

Name pelanggan

Active true

6 DataSource1 Name DSbarang

DataSet barang

7 DataSource2 Name DSagen

DataSet agen

8 DataSource3 Name DSpelanggan

DataSet pelanggan

9 Query1 DatabaseName dbtoko

Name Qjual

10 Query2 DatabaseName dbtoko

Name Qbeli

11 Query3 DatabaseName dbtoko

Name Qlookup

12 DataSource4 Name DSQjual

DataSet Qjual

13 DataSource5 Name DSQbeli

DataSet Qbeli

14 DataSource6 Name DSlookup

(64)

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:

(65)

Caption Data Barang Font Verdana 10 Height 400 Name Fbarang Position poMainFormCenter Width 590 FormStyle fsMDIChild BorderIcons [biMaximize] WindowStatae wsMaximized

2 Panel1 Caption (kosong)

BorderStyle bsSingle

3 DBEdit1 DataSource DSbarang

DataField KODEBRG

CharCase ecUpperCase

4 DBEdit2 DataSource DSbarang

DataField NAMABRG

CharCase ecUpperCase

5 DBEdit3 DataSource DSbarang

DataField SATUAN

6 DBEdit4 DataSource DSbarang

DataField HJUAL

7 DBEdit5 DataSource DSbarang

DataField HBELI

8 DBEdit6 DataSource DSbarang

DataField GAMBAR

9 BitBtn1 Caption Browse

Glyph

10 OpenDialog1 DefaultExt *.bmp

(66)

JPEG Files|*.jpg

11 DBNavigator1 DataSource DSbarang

Show Hints true

Tampilan Filter di OpenDialog1

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

(67)

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:

(68)

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

(69)

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 Properti Nilai

Edit1 CharCase ecUpperCase

Text (kosong)

BitBtn2 Caption Cari

Default True

(70)

- 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:

(71)

Tips:

o Pelajari juga mengenai FindNearest, FindKey dan GotoNearest. o 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:

(72)

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

(73)

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.

(74)

§ 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.

(75)

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

Tips:

o Perbanyak latihan dengan menggunakan perintah SQL.

o Pelajari juga mengenai perintah membuat dan menghapus tabel, menambah field.

o Pelajari mengenai penggabungan 2 tabel atau lebih. o Pelajari mengenai berbagai macam klausa yang lain. o 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:

(76)

Komponen Properti Nilai Arahan

Form1 BorderStyle bsNone

Caption Transaksi Pembelian

Font Verdana 10 Height 400 Name Ft_beli Position poMainFormCenter Width 590 FormStyle fsMDIChild BorderIcons [biMaximize] WindowStatae wsMaximized

Panel1 Caption (kosong)

BorderStyle bsSingle

Panel2 Caption (kosong)

BorderStyle bsSingle

ComboBox1 CharCase ecUpperCase Bulan

Items JANUARI FEBRUARI MARET . . . DESEMBER Style csDropDown Text BULAN

CSpinEdit1 MaxValue 3000 Tahun

MinValue 2000

Value 2000

Edit1 CharCase ecUpperCase Kode Barang

MaxLength 6

Text (kosong)

(77)

MaxLength 6

Text (kosong)

Button2 Caption List

Edit3 Text 0 Harga Beli

ReadOnly true

CSpinEdit2 MaxValue 5000 Quantity

MinValue 0

Value 0

Edit4 Text 0 Harga Beli

ReadOnly true

Panel3 Caption (kosong)

BorderStyle bsSingle

BitBtn1 Caption Simpan

BitBtn2 Caption Update

BitBtn3 Caption Hapus

Panel4 Caption (kosong)

BorderStyle bsSingle

ComboBox2 CharCase ecUpperCase Bulan

Items JANUARI FEBRUARI MARET . . . DESEMBER Style csDropDown Text BULAN

CSpinEdit3 MaxValue 3000 Tahun

MinValue 2000

(78)

Edit5 CharCase ecUpperCase Cari Kode Barang MaxLength 6

Text (kosong)

Edit6 CharCase ecUpperCase Cari Kode Agen

MaxLength 6

Text (kosong)

BitBtn4 Caption Semua Kriteria

BitBtn5 Caption Refresh

DBGrid1 DataSource DM1->DSQbeli

Align alClient

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

(79)

- 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:

(80)

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:

(81)

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.

(82)
(83)

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:

(84)

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:

(85)

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:

(86)

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:

(87)

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:

(88)

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:

(89)
(90)

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:

(91)

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.

(92)

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:

(93)

Tampilan akhir form saat dieksekusi:

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

Komponen Properti Nilai Arahan

Form1 BorderStyle bsSingle Caption Tabel Lookup

Font Verdana 8 Height 350 Name Flookup Position poScreenCenter Width 430 FormStyle fsStayOnTop BorderIcons [biSystemMenu,biMinimize]

Panel1 Caption (kosong)

(94)

Align alTop

ComboBox1 CharCase ecUpperCase

Items BARANG

AGEN PELANGGAN

Style csDropDown

Text TABEL LOOKUP

DBGrid1 DataSource DM1->DSQlookup include modul first

Align alClient

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:

(95)

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:

(96)

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 Properti Nilai Arahan

Form1 BorderStyle bsSingle

Caption Konfirmasi Report

Font Verdana 10 Height 200 Name FKRek Position poScreenCenter Width 300 FormStyle fsNormal BorderIcons [biSystemMenu,biMinimize]

ComboBox1 CharCase ecUpperCase Bulan

Items JANUARI FEBRUARI MARET . . . DESEMBER Style csDropDown Text BULAN

ComboBox2 CharCase ecUpperCase Rekap

Items PENJUALAN

PEMBELIAN

Style csDropDown

Text REKAP

CSpinEdit1 MaxValue 3000 Tahun

MinValue 2000

(97)

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.

(98)
(99)

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, Komponen-komponen 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:

Gambar

Gambar 2.1 Menu Start
Gambar  Nama
Tabel adalah tempat record disimpan berdasarkan baris dan kolom.
Tabel Relationships  1.  Transaksi Penjualan

Referensi

Dokumen terkait

Lumba-lumba jantan hidung botol yang dipelihara di Taman Safari Indonesia, Cisarua Bogor memiliki range frekuensi suara klik dengan nilai intensitas tertinggi yaitu sebesar 32

15 Dalam usaha pembebasan WNI yang disandera oleh kelompok Abu Sayyaf di Filipina, pemerintah Indonesia mengutamakan opsi negosiasi yang dapat kita ketahui adalah bentuk

• Dasar dalam pemberian insentif dan disinsentif, pemberian izin, dan pengenaan sanksi meliputI i PERATURAN ZONASI KABUPATEN BANGKA ditetapkan dengan. Perda RTRW

Mangkunegoro VI merupakan raja yang sangat berhati-hati dalam mengeluarkan uang, terbukti dengan adanya pemisah antara keuangan kerajaan dan keuangan pribadi raja

Jurnal Prioritas : Jurnal Pengabdian Masyarakat, Volume : 02, Nomor : 02, Oktober 2020 Setelah melakukan uji coba test koneksi selanjutnya pengujian yang dilakukan adalah

U j i sensitifitas antibiotik dengan menggunakan senyawa 2,4 diamine - 6,7 diisopropyl pteridine(0/129) yang berbentuk kertas kecil dengan kosentrasi 10 gr dan 150 gr yang

Tetapi hasil penelitian yang dilakukan dengan modifikasi media tanam dengan perbandingan campuran tanah + pasir + bahan organik belum mampu memberikan perbedaan

Dari uji sidik ragam (Lampiran) pula menunjukkan bahwa perlakuan pemberian stimulan dan intensitas sadap (interaksi) selama lima kali penyadapan tidak memberikan