Visual 2 Chapter 3

Download Report

Transcript Visual 2 Chapter 3

Bahan Kuliah Teori :
Pemrograman Delphi
CopyRight@2003
Pemrograman Visual dengan
Delphi
Pengantar
 Apa itu pemrograman visual ?
………………………………………….
 Alternatif tool pemrograman
visual :
•
•
•
•
•
•
•
•
Visual Basic
Visual Foxpro
Visual C
Visual Dbase
Power Builder
…
…
Delphi
 Kenapa mesti Delphi ?
• Tool-nya lengkap dan terintegrasi
• Interface-nya user friendly (more friendly
then VB ?) 
• Aplikasi hasil compilasi-nya teruji cepat
(VB < Delphi < C Builder/Visual)
• Kode pemrogramannya lebih ringan
dibanding peng-kode-an pada C, sebab
Delphi menggunakan kode object pascal
(Pascal < C)
• Tersedia Online Help yang cerdas
• Fasilitas untuk aplikasi database-nya lengkap
dan mudah digunakan
• Dapat terhubung ke beragam jenis database
• Mendukung pengembangan aplikasi modern
(Jaringan/Distributed , Internet/WEB,…)
• Tersedia juga untuk sistem yang berbeda
(non Microsoft oriented), seperti di Linux,…
• …
Langkah Bekerja
1.
2.
3.
4.
Siapkan Form kosong
Ambil beberapa komponen dan atur tata letak-nya
Beri kode (event-handler) ke komponen yang membutuhkan
Compile dan eksekusi (MAKE atau RUN) program
Filosofis Object Oriented Programming (OOP)
Oleh karena pemrograman Visual (Delphi) merupakan implikasi dari teknik
pemrograman berorientasi object, maka beberapa ide dari OOP
mempengaruhi pembuatan programnya seperti :
-
Komponen secara visual, adalah object secara kode pemrograman
Property pada komponen, adalah data member (elemen) dari object
Method merupakan member dari object dalam bentuk prosedur
Event-handler merupakan prosedur milik komponen/object yang hanya
akan bekerja saat kejadian khusus terjadi atau diberikan ke komponen
tersebut
- Untuk mengkases member dari object digunakan notasi :
<Nama_object.member>, contoh : label.caption, form.close
Memahami komponen-komponen Delphi
• Delphi memiliki banyak sekali komponen yang digunakan untuk membangun
interface aplikasi yang dibuat.
• Dari sekian banyak komponen tersebut maka FORM adalah komponen
utama/induk, dari aplikasi sebab semua komponen lain umumnya diletakkan di
atas Form
• Delphi meletakkan komponen-komponen-nya pada satu tempat yang disebut :
Componen Palette :
• Delphi mengelompokkan komponen-komponen tersebut dalam tab-tab sesuai
dengan fungsi dan penggunaannya
• Jika anda terbiasa dengan pemrograman DOS yang mengenal perintah-perintah
input dan output, maka komponen Delphi juga ada yang berperan sebagai input
(untuk menerima data) dan ada juga yang berperan sebagai output (untuk
menampung dan menampilkan data
Pengelompokan Komponen
 Untuk memudahkan pemahaman, kita dapat mengelompokkan komponen Delphi
seperti berikut :
 Komponen Input, yatu : ……
 Komponen output, yatu : ……
 Komponen tombol, yatu : ……
 Komponen Peng-group, yatu : ……
 Komponen penghubung data, yatu : ……
 Komponen menu, yatu : ……
 Komponen image, yatu : ……
- ……
 Contoh pengelompokan komponen Delphi dan perbandingannya dengan VB :
 Komponen input : Edit (TextBox), CheckBox, RadioButton(OptionButton), ComboBox,
ScrollBar, …
 Komponen output : Label, Memo, DBGrid…
 Komponen tombol : Button (Command),Bitbtn, …
 Komponen Peng-group : GroupBox(Frame) , Panel,TabControl(SSTab,TabStrip),
Frame, …
 Komponen penghubung data : Table (Data,Adodc), Query,DataSource …
 Komponen menu : MainMenu, PopupMenu,
 Komponen image : Image, …
Menyimpan Aplikasi
• Menyimpan kode aplikasi delphi berbeda dengan menyimpan kode program lain seperti kode
program DOS misalnya
• Satu program DOS umumnya memiliki satu file saja, walaupun bisa juga lebih (misalnya overlay
di pascal atau membuat library header di C), tetapi file tersebut sengaja dibuat oleh
programmer-nya
• Sedangkan pada Delphi, satu program Delphi menghasilkan banyak file, dan sebagian besar file
itu ada tanpa disengaja oleh programmernya
• Oleh karena itu menyimpan aplikasi Delphi perlu diatur dalam folder khusus untuk
mengumpulkan file-file yang dihasilkan oleh satu aplikasi
• Satu aplikasi Delphi setidak-nya akan menghasilkan file-file :
*.dpr , yaitu : …
*.pas , yaitu : …
*.dfm , yaitu : …
*.cfg , yaitu : …
*.dof , yaitu : …
*.res , yaitu : …
• Setelah di-compile akan bertambah 2 jenis file lagi yaitu :
*.dcu , yaitu : …
*.exe , yaitu : …
• Jika aplikasi di-Edit (ada yang diubah) kemudian disimpan lagi, akan bertambah file dengan
ekstension :
*.~pas , yaitu : …
*.~.dfm , yaitu : …
File-file aplikasi Delphi 1 Form
File :Projet1.res
File :Projet1.cfg
File :Projet1.dof
File :Projet1.exe
File :Projet1.dpr
File : Unit1.dfm
File : Unit1.dcu
Form1
File :Unit1.pas
Kode
program
COMPILE
+
LINK
Re-EDIT
+
Save
File : Unit1.~pas
File : Unit1.~dfm
File-file aplikasi Delphi MultiForm
File :Projet1.res
File :Projet1.cfg
File :Projet1.dof
File : Unit1.dfm
Form1
File :Projet1.dpr
File :Projet1.exe
File : Unit2.dfm
Form2
File : Unit3.dfm
Form3
File : Unit1.pas
File : Unit2.pas
File : Unit3.pas
Kode program
Kode Program
Kode Program
COMPILE
+
LINK
Re-EDIT
+
SAVE
File : Unit1.dcu
File : Unit2.dcu
File : Unit3.dcu
File
File
File
File
File
File
:
:
:
:
:
:
Unit1.~pas
Unit2.~pas
Unit3.~pas
Unit1.~dfm
Unit2.~dfm
Unit3.~dfm
Memahami pembuatan kode program
• Kode program yang di diketikkan umumnya
berguna untuk memberikan reaksi atas
event tertentu dari suatu komponen.
Contoh :
Kode program di Event OnClick pada komponen
Button1 akan dilaksanakan hanya saat tombol
Button1 di-click.
• Untuk memilih event apa yang akan diberi
kode program pada sebuah komponen dapat
dipilih dari Object Inspector
• Untuk itu perlu dipahami bagaimana cara
menentukan kode program tersebut.
Kode program yang melibatkan
komponen
Bentuk umum :
<Nama_komponen.nama_property>
Contoh :
Label.caption
Bentuk lain :
<Nama_komponen.nama_method>
Contoh :
Form.show
Memberikan nilai ke property komponen :
Perintah yang sering digunakan :
Contoh :
Application terminate;
Label1.caption := ‘Penjumlahan’;
Form1.show;
Form1.showmodal;
Form1.close;
Inttostr()
Strtoint()
floattostr()
Strtofloaty()
Floattostr()
Showmessage(pesan);
Messagedlg(pesan,typepesan,typebutton,integer)
…
…
Label1.font.color := clblack;
• Struktur dan syntax dasar pemrograman
Delphi sama dengan di pascal seperti :
Deklarasi var, type, Operator, kontrol if-then,
if-then-else, case of, pengulangan for-do,
while-do, repeat-until, procedure, function,
begin-end, … dan seterusnya
Bagaimana kode program Delphi
dijalankan
Unit1.pas
Unit unit1;
Unit1.dfm
…
Interface
…
Project1.dpr
Program project1
…
Begin
Implementation
{$R *.DFM}
…
End.
…
…
End.
Unit2.pas
Unit unit2;
…
Interface
…
Implementation
{$R *.DFM}
…
End.
Unit2.dfm
Contoh kode program lengkap
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes,
Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Button2: TButton;
Label5: TLabel;
Label6: TLabel;
RadioGroup1: TRadioGroup;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Implementation
Uses unit2;
{$R *.DFM}
function jumlah(A,B:integer):integer;
var c:integer;
begin
c:=A+B;
jumlah :=c;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
application.terminate;
end;
procedure TForm1.Button2Click(Sender: TObject);
var A,B :integer;
C
: real;
begin
A:=strtoint(Edit1.text);
B:=strtoint(Edit2.text);
Case RadioGroup1.ItemIndex of
0: C:=jumlah(A,B);
1: C:=A-B;
2: C:=A*B;
3: C:=A/B;
end;
Label6.Caption:=floattostr(C);
end;
end.
Aplikasi database pada Delphi
• Apa itu aplikasi database ?
……………………………………………
• Apa itu database ? Kelebihannya ?
………………………………………………………
• Delphi memiliki sistem khusus untuk meng-akses
database, yaitu : BDE {akan dibahas di depan}
• Tetapi Delphi juga dapat memanfaatkan kelebihan
ODBC yang ada pada OS window.
• Manfaat ODBC dalam membangun aplikasi database?
• Operasi-operasi database :
o
o
o
o
o
o
o
o
o
o
Membuat file database
Memberi index
Meng-entri data
Meng-edit data
Meng-delete data
Men-sortir data
Men-cari data
Mem-filter data
Me-relasi-kan tabel
Membuat report
• Jenis aplikasi database :
• Stand Alone,
• Client/server
• Distributed
…………………………………………………………………………
Aplikasi window
ODBC
Drivers
Drivers
Drivers
Database
API function
• Jenis file database :
Dbf, Paradox(db), Access (mdb),
Interbase, MySQL, SQL Server,Sybase, Oracle,…
File database dengan jenis yang berbeda
Arsitektur Aplikasi Database
pada Delphi
1 – tier :
2 - Tier
Multi – tier :
Komponen Aplikasi database DELPHI
• Delphi memiliki sistem (Engine) sendiri untuk mengelola sistem Database yaitu : BDE (Borland
DataBase Engine), sehingga setiap komputer yang menjalankan aplikasi database Delphi umumnya
membutuhkan keberadaan BDE pada sistemnya. Tetapi Delphi tetap memberi kesempatan jika kita
ingin membuat aplikasi database tanpa melibatkan BDE.
• Selain BDE, Delphi juga memiliki beberapa komponen khusus yang harus digunakan untuk
membuat aplikasi database Delphi. Komponen database tersebut ada yang berfungsi sebagai
pengait file database ke aplikasi (Data bound) dan ada yang berfungsi untuk meng-akses dan
menyajikan data tersebut
• Yang termasuk sebagai pengait data (Data bound) yaitu : Table, Query, DataSource,…
• Yang termasuk sebagai pengakses dan penyaji data yaitu : DBGrid, DBEdit, DBLabel,
DBComboBox,DBRadioGroup,DBImage, DBNavigator, …
• Komponen-komponen database Delphi umumnya terletak di tab DataAccess dan Data Controls
pada Componen Palette
• Hubungan antara : file database, BDE, komponen dan Form dapat diamati melalui bagan berikut :
Interface Aplikasi
Form/
DataControl
Kontrol dan penyajian data
DataSource
DataBound
DataSet
BDE
DataBase
Pengaturan komponen database
Contoh : aplikasi akan meng-akses data di file database C:\99001234\Tabel\Mahasiswa.db
sehingga datanya tampil di Form melalui DBGrid dan DBEdit :
Maka langkah membuatnya adalah :
Ambil : Tabel, DataSource, DBGrid dan DBEdit, atur propertynya seperti berikut :
BDE
Mahasiswa.db
DBGrid, property yang diatur :
DataSource
Tabel
DataSource
DBGrid
:
DSMahasiswa
DataSource, property yang diatur :
DataSet
Name
:
:
TblMahasiswa
DSMahasiswa
:
DSMahasiswa
DataField
:
{namafield}
DatabaseName :
TableNama
:
Name
:
{NamaAlias}
Mahasiswa.DB
TblMahasiswa
Boleh juga : C:\99001234\Tabel
DBEdit, property yang diatur :
DataSource
Tabel, property yang diatur :
Tabel boleh digantri dengan Query
Query, property yang diatur :
DatabaseName :
SQL
:
{NamaAlias}
Select * from mahasiswa
Alias atau DatabaseName pada delphi yaitu sebuah nama yang mewakili direktor lengkap dimana file
database berada, dengan demikian Alias dapat digantikan dengan nama direktori lengkap tempat database
berada
Menggunakan DataModul
• Data Modul yaitu Form khusus yang dapat digunakan untuk meletakkan
komponen-komponen non visual Delphi, termasuk untuk meletakkan
komponen DataAccess Delphi.
• Data modul akan terasa gunanya pada aplikasi database yang melibatkan
banyak Form, yang dengan adanya DataModul semua Form hanya perlu
berhubungan dengan DataModul
Contoh sebuah DataModul :
Mengakses field melalui kode program
• Secara kode pemrograman data di file database diakses melalui komponen dataset (table,
query,…)
• Kemampuan mengakses data melalui kode program ini, menjadikan program lebih fleksibel dan
dinamis.
• Beberapa Cara mengakses data di field :
Format :
Table[‘nama_field’]
Table.fieldbyname(‘nama_field’).value
Table.fieldvalue[‘nama_field’]
Table.fields[i].AsType
Contoh :
TblMhs1[‘nim’]
TblMhs1.fieldbyname(‘nim’).value
TblMhs1.fieldvalue[‘nim’]
TblMhs1.fields[0].AsString
• Selain cara di atas field juga bisa diakses dengan beberapa cara berikut :
TblmhsNim.value
TblmhsNim.AsString
TblmhsNim.AsVariant
• Method yang sering digunakan pada dataset (table,query,…) :
Table1.open, Table1.close, Table1.append, Table1.delete, Table1.edit, Table1.post, Table1.post,
Table1.refresh,table1.first,table1.next,table1.prior,table1.last,
table1.setRange([nilai1],[nilai2]),table1.findkey([nilai]),…
SQL pada Delphi
• Query merupakan DataSet lain disamping Table
• Fungsi Query mirip dengan fungsi Table. Perbedaannya adalah : data yang ada pada Query
merupakan hasil dari pernyataan SQL.
• Menggunakan Query sebagai sumber data (dibandingkan Table) sangat ampuh karena :
 Dapat mengakses data dari beberapa tabel sekaligus
 Dapat membatasi data yang diakses baik secara horizontal (yakni membatasi pengaksesan
pada field-field tertentu saja) maupun secara vertikal (yakni membatasi pengaksesan
sejumlah record saja dengan kriteria tertentu)
 Dapat digunakan untuk mengakses data dari berbagai macam sumber seperti :
- Local tables (Paradox, InterBase, dBASE, Access, dan FoxPro)
- ODBC-compliant databases.
- Remote database servers (Sybase, SQL Server, Oracle, Informix, DB2, dan InterBase)
• Pemberian pernyataan SQL pada Query dapat dilakukan secara statis dan dapat secara
dinamis
• Secara statis yaitu pernyataan SQL langsung ditulis pada property SQL melalui object
inspector
• Secara dinamis yaitu pernyataan SQL dituliskan di kode program, dengan format :
<query.sql.add(‘string pernyataan sql’)>
Contoh :
query.sql.add(‘select * from mahasiswa’);
SQL dinamis
• SQL dinamis sangat ampuh dalam membuat aplikasi database yang berkualitas dengan Delphi
• Pernyataan SQL ditulis dalam kode program, dan operasi query dapat berbeda selama
program berjalan berdasarkan logika program yang dibuat
• Contoh program sql dinamis lengkap :
QueryBarang.Close;
QueryBarang.sql.clear;
QueryBarang.sql.add('select * from FakBeli');
QueryBarang.open;
• Contoh lain dengan parameter :
QueryFakBeli.Close;
QueryFakBeli.sql.clear;
QueryFakBeli.sql.add('select * from FakBeli');
QueryFakBeli.sql.add('where NoFakBeli= :VFakBeli');
QueryFakBeli.parambyname(‘Vfakbeli’).AsString :=edit1.text + ‘%’;
QueryFakBeli.open;
• Pengembangan :
 Query untuk membangun Master-Detail
 Query untuk Incremental-search
 Query untuk Report
…
Report
•
•
Report merupakan output dari aplikasi
database
Oleh karena database adalah data,
maka report –lah yang merupakan
informasi
Aplikasi
database
database
• Bagian-bagian dari report :
Page Header Band
report
• Data pada report mungkin berasal dari
satu table tetapi mungkin juga berasal
dari dua atau lebih tabel
• Lebih baik mengkases data menggunakan
Query ketimbang tabel untuk Report
• Report yang relasi antar dua tabelnya
membentuk relasi 1 to many atau many
to many disebut report Master-Detail
• Memulai membuat Report :
Report dapat dimulai dari :
Title Band
 File – New – Report , atau
Column Header Band
 Ambil komponen : QuickRep pada
tab QReport dan letakkan di Form
untuk Report
Detail Band
Footer Band
Summary Band
• Komponen untuk membuat Report terletak pada tab Qreport :
Delphi tingkat lanjut

Lebih jauh pemrograman Delphi dapat dilakukan untuk membuat
aplikasi-aplikasi seperti berikut :
 Pemrograman database Client/Server dan Terdistribusi
dengan database : Interbase, Sybase, MySQL, Oracle, …
 Pemrograman Internet
 WebServer
 ……

Perkembangan Delphi :
 Delphi 6
 Delphi 7