Selasa, 17 Juni 2014

Cara Membuat File PDF dengan Delphi

Untuk Membuat File PDF sendiri dengan Delphi saya sendiri menggunakan component Delphi pihak ketiga yaitu SynPDF yang dikembangkan oleh tim mormot. Komponennya bersifat opensource jadi kita bebas menggunakannya, menyebarkan dan mengembangkannya. Begitu deh enaknya kalau software open source jadi kalo misalkan anda mengembangkan sebuah projek sebaiknya dibuat open source saja. :)

Cara Membuat File PDF dengan Delphi

Sebelum kita mulai, silahkan download komponent mormot SynPDF disini. Proses Instalasinya tidak begitu rumit karena kita hanya perlu mendifinisikan path library melalui menu Tools | Environment Option. Jika anda masih belum paham anda dapat membacanya pada postingan saya disini

1. Saya anggap proses instalasi sudah selesai. Buat Projek baru pada Delphi anda kemudian tambahkan didalam uses unit anda unit milik SynPDF seperti contoh berikut 
uses
..., SynPdf;

2. Berikutnya Saya mendesain tampilan aplikasi sederhana yang berisi tanggal, judul dan isi artikel yang nantinya akan disimpan menjadi file pdf (gambar diatas). Pada proses ini saya juga memanfaatkan component SaveDialog sehingga Coding simpannya menjadi kurang lebih seperti berikut
procedure TForm1.Button1Click(Sender: TObject);
var
lPdf : TPdfDocument;
lPage : TPdfPage;
begin
lPdf := TPdfDocument.Create;
try
if SaveDialog.Execute then
begin
lPdf.Info.Author := 'http://delphitutor.blogspot.com';
lPdf.Info.CreationDate := Now;
lPdf.Info.Creator := 'Ahmad Tauhid';
lPage := lPDF.AddPage;
lPDF.Canvas.SetFont('Helvetica',10.0,[]);
lPDF.Canvas.SetLeading(lPDF.Canvas.Page.FontSize);
lPDF.Canvas.SetLineWidth(0.1);
lPdf.Canvas.BeginText;
lPdf.Canvas.TextOut(20, 750, 'Tanggal : '+FormatDateTime('dd/mm/yyyy',DateTimePicker1.Date));
lPdf.Canvas.TextOut(20, 730, 'Judul : '+Edit1.Text);
lPdf.Canvas.TextOut(20, 710, 'Isi Pesan : '+Memo1.Text);
lPdf.Canvas.EndText;
lPdf.SaveToFile(SaveDialog.FileName+'.pdf');
end;
finally
lPdf.Free;
end;

end;

Cara Membuat File PDF dengan Delphi

Hasil yang diperoleh kurang lebih seperti gambar diatas jika dibuka menggunakan foxit reader. Jika anda membutuhkan contoh source code silahkan download disini. Akhir kata selamat mencoba. Happy Coding. :)

Membuat dan Menampilkan Laporan dengan Crystal Report di Delphi

Ada banyak cara membuat laporan di delphi, selain dengan komponen yang sudah include didalam delphi kita juga dapat memanfaatkan salah satu tools yaitu dengan menggunakan bantuan pihak ketiga seperti Crystal Report. Fungsi laporan akan menjadi penting jika kita membangun aplikasi berbasis database oleh karenanya saya tertarik untuk membahas ini agar tidak monoton hanya dengan komponen yang sudah ada di delphi bahwa memang bisa juga dengan bantuan pihak ketiga.

1. Pertama, Sebelum kita mulai saya asumsikan anda sudah mengistall software Crystal report di komputer anda. Pada contoh ini saya menggunakan Crystal Report versi 8.5. 

2. Selanjutnya pada proses kedua ini kita akan menambahkan Component ActiveX Crystal Report pada Delphi. Disini saya menggunakan Delphi 7. Silahkan Buka Delphi anda kemudian klik Project | Import Type Library kemudian ikuti seperti langkah pada gambar berikut

Membuat Laporan dengan Crystal Report di Delphi

3. Pada Halaman Jendela Install Komponent seperti gambar dibawah, silahkan pilih tab Into New Package | Isi Filename dan Descryption sesuai keinginan anda (sebaiknya tanpa spasi).


4. Kemudian pada pesan yang muncul pertama pilih Yes dan untuk yang kedua Ok. Jika tidak ada maslah akan terlihat komponent baru di pallete ActiveX dengan nama Crystall Report.

Sampai disini kita sudah berhasil menambahkan component Crystall report ke Delphi. Langkah selanjutnya adalah membuat laporan dengan Crystall Report dengan langkah-langkah berikut

1. Step pertama tentu saja menjalankan Tools Crystal Report. Menu | All Programm | Crystall Report Tools

Membuat Laporan dengan Crystal Report di Delphi

2. Selanjutnya akan ada dua pilihan dimana saya menggunakan using the report expert anda bisa juga menggunakan blank report

Membuat Laporan dengan Crystal Report di Delphi

3. Langkah berikutnya adalah memilih template laporan yang akan digunakan. disini saya menggunakan template standar seperti gambar berikut

Membuat Laporan dengan Crystal Report di Delphi

4. Berikutnya adalah proses mengkoneksikan database dengan laporan crystal report. klik tombol Database

Membuat Laporan dengan Crystal Report di Delphi

5. Proses selanjutnya adalah melakukan koneksi database yang kita miliki. disini akan saya contohkan menggunakan database mysql dan database access. Perlu diingat pada database MySQL konektor yang digunakan disini adalah ODBC jadi pastikan anda telah membuat datasource sebelumnya atau bisa juga menggunakan datasource yang telah anda buat sebelumnya pada saat melakukan koneksi.

Membuat Laporan dengan Crystal Report di Delphi
(Menggunakan ODBC untuk koneksi ke Database MySQL)

Membuat Laporan dengan Crystal Report di Delphi
(Koneksi dengan Database Access)

6. Setelah melakukan proses diatas maka akan terlihat tabel pada database, pilih tabel yang ingin anda buatkan laporannya kemudian Next

Membuat Laporan dengan Crystal Report di Delphi

7. Berikutnya adalah pilih field-field pada tabel yang ingin anda tampilkan pada laporan anda nantinya. Add | Finish

Membuat Laporan dengan Crystal Report di Delphi

Membuat Laporan dengan Crystal Report di Delphi

Pada gambar terakhir diatas, terlihat kita sudah berhasil membuat sebuah laporan. Silahkan Desain terlabih dahulu sesuai kebutuhan anda kemudian simpan didalam folder projek anda dengan nama laporan. Sampai disini kita sudah berhasil membuat laporan dengan Crsytal Report. Proses selanjutnya adalah menampilkan laporan tersebut dengan Button dengan langkah berikut

1. Tambahkan Komponen Crystall Report (ada di Pallete ActiveX) kedalam Form anda. Tambahkan Juga Sebuah Button yang akan kita gunakan untuk memanggil laporan yang kita buat sebelumnya dengan crystal report. 

Membuat Laporan dengan Crystal Report di Delphi

2.  Berikutnya Atur Property Crystal Report WindowState = 2 crptMaximized. Klik dua kali pada Button Laporan kemudian tambahkan code untuk memanggil laporan seperti berikut. sesuaikan dengan milik anda.

- Jika Anda Menggunakan Database MySQL berikut adalah codenya 
// Lakukan Koneksi ke Datasource ODBC / Sama dengan Koneksi Crystal Report
CrystalReport1.Connect:='DSN=nama_datasource;UID=user;PWD=password;DSQ=';
// Mendefinisikan File Crystal Report
CrystalReport1.ReportFileName:='laporan.rpt';
// Tampilkan Crystal Report
CrystalReport1.Action:=1;

- Jika anda Menggunakan Database Access Berikut adalah Contoh Codenya
// Lakukan Koneksi ke Database
CrystalReport1.Connect:='Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=nama_database.mdb;';
// Mendefinisikan File Crystal Report
CrystalReport1.ReportFileName:='laporan.rpt';
// Tampilkan Crystal Report
CrystalReport1.Action:=1;

Jalankan Aplikasi Anda. Setelah Button Cetak Laporan/Laporan diklik nantinya akan muncul file Laporan yang dibuat sebelumnya dengan Crystal Report. Seperti gambar dibawah ini

Membuat dan Menampilkan Laporan dengan Crystal Report di Delphi

Silahkan Download Contoh Source code lengkap (Database, Aplikasi dan Laporan) disini. Selamat Mencoba :)

Cara Export Database Access Ke MySQL

Untuk melakukan export database Access ke MySQL saya sendiri menggunakan tools pihak ketiga yang dibuat oleh yang dibuat oleh sekumpulan programmer yang tergabung didalam nama bulzip. Mereka telah melahirkan beberapa tools diantaranya adalah tools yang akan kita gunakan untuk melakukan export database access to mysql nantinya. Anda tidak perlu khawatir karena tools ini bersifat freeware alias gratis.

Proses Export database ini sering saya lakukan untuk merubah database yang sudah jadi (access) menjadi database mysql. Baiklah, sebelum kita mulai silahkan download peralatan yang dibutuhkan disini. Usai mendownload silahkan diinstall berikut adalah tampilan utama aplikasi Access To MySQL

Cara Export Database Access ke MySQL

1. Klik Next Pada gambar diatas untuk menuju ke proses berikutnya.

2. Pada halaman selanjutnya pilih Database Access yang akan di export. Jika anda hendak mengeksport database access yang memiliki password gunakan opsi kedua kemudian next seperti gambar berikut

Cara Export Database Access ke MySQL

3. Pada jendela halaman berikutnya. Tahan dulu karena kita harus membuat database terlebih dahulu di mysql agar dapat melanjutkan ke proses berikutnya. Berikut contoh saya membuat database di mysql dengan nama hasil_export

Cara Export Database Access ke MySQL

4. Kembali ke halaman aplikasi export database silahkan isi informasi DBMS mysql anda seperti hostname, user, password, engine tabel yang ingin anda gunakan serta database yang telah dibuat pada step 3. Dari sini dapat kita tarik kesimpulan bahwa yang akan di export oleh tools ini adalah tabel berserta data yang ada pada tabel.

Cara Export Database Access ke MySQL

5. Selanjutnya pilih (centang) tabel pada database access yang ingin anda export ke database mysql. kebetulan disini saya hanya memiliki sebuah tabel (gambar dibawah)

Cara Export Database Access ke MySQL

6. Step terakhir adalah Run Now untuk memulai proses export. seperti gambar berikut

Cara Export Database Access ke MySQL

Berikut adalah hasil yang saya peroleh setelah proses export dijalankan. Terlihat ada sebuah tabel dengan nama tes dan beberapa data didalamnya yang diexport dari database access.

Cara Export Database Access ke MySQL
  

Menampilkan Assisten Pada Halaman Aplikasi Delphi

adanya assistan pada halaman aplikasi tentu akan semakin menjadikan aplikasi yang kita bangun menjadi lebih menarik dan user friendly. assistan yang saya maksud disini adalah sebuah gambar animasi yang dapat menampilkan pesan pertolongan jika dibutuhkan oleh user contohnya pada halaman lembar kerja microsoft office. Jika kita terapkan di delphi berikut contoh demonya.

Menampilkan Assisten Pada Halaman Aplikasi Delphi

Contoh diatas menampilkan animasi assisten sebuah warning untuk menutup aplikasi. selain contoh diatas kita juga dapat memodifikasi ataupun mengganti gambar animasi sesuai keinginan kita. Ada duapuluh gambar animasi assisten yang dapat kita gunakan dan tentu saja disediakan secara gratis. component nya pun dapat anda download dan gunakan secara gratis (freeware) cek disini. Jangan lupa untuk mendownload gambar assistennya juga. 

Selanjutnya untuk cara install komponennya sama dengan komponen pada umumnya seperti component Alpha Skin atau ZeoSlib Silahkan baca disini. Untuk Implementasinya dapat anda lihat pada contoh Demo pada komponent Office Assistan yang anda donwload. Berikut saya contohkan secara sederhana

1. Pastikan Komponen Office assisten sudah terinstall di delphi. pada contoh ini saya menggunakan Delphi 7

2. Tambahkan sebuah Komponen Assisten, Sebuah komponen Button dan sebuah component opendialog kedalam Form Anda.

3. Klik dua kali Pada Button kemudian tambahkan code berikut 
 
const
pesan = 'Hallo Saya adalah Asisten Anda';
begin
try
OpenDialog1.FileName := Assistant1.ActorLibrary;
if OpenDialog.Execute and (Assistant1.ActorLibrary <> OpenDialog1.FileName) then
begin
Assistant1.ActorLibrary := OpenDialog1.FileName;
Assistant1.SetPosition((Screen.Width div 6), (Screen.Height div 2));
Assistant1.MsgDlg.Title := 'Assisten';
Assistant1.Visible:=True;
Assistant1.MessageDlg(pesan, mtInformation, [mbOk], 0);
end;
finally
Assistant1.OnGuideOptionsClick := AssistenFile1Click;
end;
end;
Download Contoh Penggunaan Office Assistan disini.

Minggu, 08 Juni 2014

Teknik Membuat Pagination dengan Delphi

Pagination atau yang oleh sebagian orang juga disebut dengan istilah paging adalah sebuah teknik membagi data yang ada di tabel database menjadi beberapa bagian kemudian ditampilkan kedalam dbgrid, listview atau komponen untuk menampilkan data yang lain. Biasanya dalam pagination atau pagging tersebut juga terdapat beberapa button seperti Next, Prev, Last dan First yang akan mengacu pada data yang akan ditampilkan. Seperti gambar dibawah.

Menurut para master delphi teknik pagination di delphi ini akan sangat membantu untuk meringankan beban utamanya jika datanya terlalu banyak. Logikanya tentu menampilkan 1000 data akan berbeda beban processor dan memory dengan menampilkan hanya 10 buah data saja. Berikut saya sharing source code membuat pagination dengan delphi dan database MySQL.

Teknik Membuat Pagination dengan Delphi

Pada contoh sederhana ini akan ditampilkan data sebanyak 5 buah perhalaman, untuk menampilkan data selanjutnya user harus mengklik button yang telah disediakan. Adapun datanya akan ditampilkan dalam component ListView yang digenerate pada saat runtime (aplikasi berjalan). Teknik ini juga dapat anda terapkan pada komponen dbgrid atau sejenisnya. Silahkan Download Source code beserta database dan datasourcenya disini. Happy Coding. :) 

Sabtu, 07 Juni 2014

Sedikit Trik Untuk Lokasi File di Delphi

Berikut saya akan berbagi trik untuk teknik pemanggilan file pada folder dengan Delphi. Lokasi File atau biar lebih keren kita sebut saja Path File teknik memanggil atau menggunakan file berdasarkan lokasi file tersebut akan sangat membantu dalam memabangun aplikasi apalagi jika aplikasi hendak kita bundle menjadi satu paket instalasi dan akan digunakan pada komputer yang berbeda.

Suatu contoh saya berikan ketikan kita hendak melakukan koneksi ke database acces biasanya path database pada jendela koneksi akan terisi seperti gambar berikut atau bisa saja berbeda karena tergantug lokasi file access anda. 

Sedikit Trik Untuk Lokasi File di Delphi

Memang tidak ada masalah jika file database access tersebut masih berada pada lokasi tersebut namun bagaimana jika hendak dipindah kekomputer lain ? tentu koneksi tidak akan bisa terbentuk. Saya kira mengkoneksikan ulang database bukanlan solusinya. Jadi solusi terbaik adalah dengan menempatkan database tersebut didalam folder projek lalu mengganti path/lokasi database pada settingan koneksi menjadi berikut.
Sedikit Trik Untuk Lokasi File di Delphi

Itu solusi jika databasenya tepat berada didalam folder projek anda. lalu bagaimana jika lokasi filenya berada didalam folder berbeda artinya didalam folder projek masih ada folder lagi yang berisi file database. Maka anda perlu menggantinya seperti gambar berikut

Sedikit Trik Untuk Lokasi File di Delphi

Dan yang terakhir, jika databasenya berada diluar folder projek anda. solusinya adalah dengan mengganti nama_folder (contoh diatas) dengan .. yang artinya keluar dari folder projek seperti gambar berikut

Sedikit Trik Untuk Lokasi File di Delphi

Cara diatas tidak hanya bisa diterapkan pada file database saja tapi juga pada file-file lain jika anda hendak memanggilnya menggunakan coding semisal untuk menampilkan gambar pada contoh berikut.
// Gambar Ada di Folder gambar didalam Folder Projek
Image1.Picture.LoadFromFile('gambar/2.JPG');
// Gambar ada diluar Folder Projek
Image1.Picture.LoadFromFile('../2.JPG');
// Gambar ada didalam folder Projek
Image1.Picture.LoadFromFile('2.JPG');

Menampilkan Data dari Database ke Checklistbox Delphi

Dalam membangun aplikasi dengan bahasa pemrograman apapun. salah satu hal utama yang harus kita miliki adalah sebuah ide dan kreatifitas selain itu tentu saja juga harus memiliki skil yang memadai. Berbicara tentang kreatifitas tidak luput dari trik-trik yang digunakan dalam membangun sebuah aplikasi. Trik-trik tersebut biasanya lahir dari masalah-masalah yang muncul saat sedang membuat aplikasi semisal menampilkan data dari database dengan teknik yang berbeda (bukan ke dbgrid) tapi ke komponen lain seperti label atau edit.

Pada kesempatan ini saya akan mencoba berbagi sedikit trik bagaimana menampilkan data yang ada pada tabel database ke component check list box di delphi. Cara seperti ini juga bisa kita terapkan pada component delphi yang lain seperti label atau edit. Berikut adalah contoh data yang saya miliki pada tabel database

Menampilkan Data dari Database ke Checklistbox Delphi

Nah, untuk menampilkan data tersebut pada component check list box di delphi sebelumnya tentu saja kita harus melakukan koneksi terlebih dahulu saya anggap sudah tidak ada masalah karena saya tidak akan membahasnya disini.

Sederhana saja, pada gambar berikut saya memiliki sebuah komponen checklistbox, sebuah listbox dan dua buah button.  

Menampilkan Data dari Database ke Checklistbox Delphi

karena saya ingin menampilkan data yang ada di database pada saat button ambil value dari tabel database ditekan maka saya hanya perlu menambahkan code berikut pada button tersebut 
var i : integer;
begin
for i := 1 to ADOQuery1.RecordCount do
begin
checklistbox1.Items.Add(ADOQuery1['Value']);
ADOQuery1.Next;
end;

Berikutnya untuk mengambil value pada komponent checklistbox tersebut saya menambahkan script seperti berikut ini pada button centang lalu klik ini 
var i : integer;
begin
listbox1.Items.Clear; // hapus dulu
for i := 0 to checklistbox1.items.Count - 1 do
begin
if checklistbox1.Checked[i] = true then
begin
listbox1.Items.add(checklistbox1.Items.Strings[i]);
end;
end;

Jumat, 06 Juni 2014

Membuat Aplikasi Sederhana Untuk Dialup Koneksi Modem dengan Delphi

Aplikasi Sederhana Untuk Dialup Koneksi Modem dengan Delphi

Untuk mengkoneksikan komputer ke internet kita menggunakan layanan pihak ketiga yaitu Internet Service Provider (ISP) seperti telkom atau dengan menggunakan Modem USB melalui provider seperti XL, Telkomsel, Axis, Smartfren dan lain sebagainya. Hal ini dilakukan dengan melakukan dialup pada aplikasi yang sudah include dalam modem (Biasanya Aplikasi Mobile Partner) setelah melakukan instalasi dan beberapa langkah settingan ringan. 

Berbekal rasa penasaran saya mencari-cari cara bagaimana melakukan dialup koneksi modem USB yang saya gunakan tapi dengan aplikasi yang kita buat sendiri menggunakan Delphi. Singkat kata, sayapun menemukannya dan pada kesempatan ini akan saya sharing kepada sobat delphier. Stay tune ok! :)

Aplikasi Dialup Koneksi Modem dengan Delphi 

1. Buka Delphi anda | Buat Projek baru | Tambahkan WinInet dalam uses anda.

2. Berikutnya tambahkan dua buah constanta sebelum code type
  const
ERROR_USER_DISCONNECTION = 631;
ERROR_NO_CONNECTION = 668;

3. Berikutnya buat dua buah variabel global dengan type DWORD
  ret, ConnNumber: DWORD;

4. Langkah Selanjutnya membuat sebuah fungsi yang berfungsi untuk melakukan dialup koneksi sebagai berikut
// Dial Up Koneksi
function Dial() : Boolean;
var
ret : LongInt;
NameOfDialupConnectionToUse : pchar;

begin
// Nama Koneksi
NameOfDialupConnectionToUse:= 'SAINET';
ret:= InternetDial(
Form1.Handle,
NameOfDialupConnectionToUse,
INTERNET_AUTODIAL_FORCE_UNATTENDED,
@ConnNumber,
0);

case ret of
ERROR_SUCCESS:
// Jika Berhasil
begin
Result := True;
exit;
end else
// Jika gagal
begin
Result := False;
exit;
end;
end;
end;

5. Kemudian kita perlu membuat sebuah solusi agar aplikasi juga bisa melakukan disconnect/hangup dari internet. dalam hal ini dilakukan oleh procedure seperti berikut
// Putus Koneksi
procedure Hangup;
begin
InternetHangup(ConnNumber, 0);
end;

6. Langkah terakhir, kita hanya perlu memanggil fungsi dan procedure yang telah kita buat pada langkah sebelumnya. contoh penerapannya adalaha sebagai berikut
    If Button2.Caption='Dial' then
begin
If Dial() = True then
begin
Label1.Caption:='Koneksi Berhasil. . .';
Button2.Caption:='Hangup';
end else
Label1.Caption:='Koneksi Di Batalkan. . .';
end else
If Button2.Caption='Hangup' then
begin
Hangup;
Label1.Caption:='Terputus. . .';
Button2.Caption:='Dial';
end;

Sedikit Tips : Tambahkan sebuah timer dalam form projek anda lalu letakan code berikut. ini berfungsi untuk mengecek koneksi internet secara continoue
  if NOT InternetAutoDial(INTERNET_AUTODIAL_FORCE_UNATTENDED,0) then
Label1.Caption:='Error Establishing Connection';
if NOT InternetAutodialHangup(0)then
Label1.Caption:='Error Disconnecting...';

Membuat Desktop Alert Sederhana dengan Delphi

Membuat Desktop Alert Sederhana dengan Delphi

Saya akui untuk membuat sebuah aplikasi itu sangat susah. Pasalnya selain membuat tampilan aplikasi yang user friendly kita juga harus memikirkan segala kemungkinan yang akan terjadi atau yang juga dikenal dengan istilah event handling hal ini akan berpengaruh untuk meminimalisir terjadinya error yang dapat menjadi bug pada aplikasi kita. Bisa dibayangin bagaimana susahnya membuat component delphi karena menggunakannya saja terkadang kita kesulitan. hhe

Berbicara tentang tampilan yang user friendly saya ada satu trik yang akan saya bagikan pada postingan ini. Trik ini disebut juga dengan Desktop Alert kalau di indonesiakan kurang lebih artinya Pesan Desktop. Teknik semacam ini dapat kita manfaatkan untuk memberikan Pesan kepada pengguna aplikasi pada proses yang terjadi pada aplikasi semisal pesan jika ada SMS Masuk pada program SMS Gateway seperti gambar diatas.

Langkah Membuat Desktop Alert dengan Delphi 

1. Pertama-tama silahkan download desktop alertnya disini (Berbentuk File *.dll) Lalu tambahkan kedalam folder projek anda.

2. Selanjutnya tambahkan sebuah Button pada form projek anda lalu deklarasikan sebuah procedure untuk memanggil alert yang ada didalam file *.dll yang sudah didownload sebelumnya.
procedure ShowAlert(
AWidth,AHeight : integer;
AHeaderText, AMessageText : string;
AHeaderFontSize : integer;
ACaptionFrom,ACaptionTo,AFrame,AWindowFrom,AWindowTo : Cardinal;
ADisplayDuration : Cardinal;
AImage : string); stdcall; external 'Alert.dll';

3. Berikutnya tambahkan code berikut pada button yang telah ditambahkan tadi (klik dua kali) 
showAlert(
250, // Lebar
70, // Tinggi
'Informasi !', // Header Alert
'Ada SMS Masuk..', // Pesan Alert
10, // Ukuran Font
clWhite,
clWhite,
clWhite,
clWhite,
clWhite,
500, // Durasi
'logo.ico'); // Icon

Sebaiknya anda menambahkan sebuah gambar icon kedalam folder projek anda agar tidak terjadi error sesuaikan namanya dengan coding diatas. Selamat mencoba. :)

Minggu, 01 Juni 2014

Membuat Procedure dan Function Sendiri di Delphi

dalam membangun aplikasi dengan delphi, kita akan banyak bekerja dengan prosedur, fungsi dan unit karena Dalam delphi, setiap component yang kita gunakan merupakan sebuah objek. Maka pemahaman lebih lanjut tentang penggunaan prosedur dan fungsi akan sangat diperlukan. Membuat prosedur dan fungsi sendiri akan sangat berguna untuk menjadikan alur program menjadi lebih terstruktur.

Kita dapat mendefinisikan procedure dan function sebagai sebuah program kecil yang dapat dijalankan sewaktu diperlukan. Dalam implementasinya, penggunaan procedure dan function ini biasanya untuk menghandel suatu proses tertentu semisal untuk melakukan proses input, delete atau update data. Tanpa kita sadari, jika kita menambahkan sebuah komponen (misal TEdit) maka jika kita menambahkan aksi pada komponen tersebut (misal aksi onclick) maka pada dasarnya kita telah membuat sebuah procedure yang digenerate otomatis oleh IDE delphi.

Membuat dan Menggunakan Procedure Sendiri

1. Untuk membuat prosedur dan fungsi sendiri, kita perlu mendeklarasikannya pada unit yang kita gunakan (biasanya dibawah code type) suatu misal kita membuat procedure sebagai berikut
 type
TForm1 = class(TForm)
...
..
.
procedure pesan;

2. Maka setelah anda mendeklarasikan procedure anda. Coba tekan CTRL+SHIFT+C maka secara otomatis procedure tersebut akan digenerate oleh Delphi contohnya sebagai berikut yang telah saya tambahkan sebuah code yang akan memunculkan pesan "Hallo Ini adalah Procedure"
procedure TForm1.pesan;
begin
Showmessage('Hallo Ini adalah Procedure !');
end;
3. Jika hendak menggunakan procedure tersebut kita hanya perlu memanggil namanya saja. Seperti contoh berikut saya memanggil procedure dalam event onclick milik button.
procedure TForm1.Button1Click(Sender: TObject);
begin
pesan;
end;

Membuat Procedure dan Function Sendiri di Delphi

Membuat dan Menggunakan Function Sendiri di Delphi

Berbeda dengan Procedure, Fungsi adalah sebuah program kecil yang memiliki Return Value, oleh karenanya untuk mendeklarasikan fungsi kita juga perlu mendeklarasikan tipe data yang digunakana. Berikut saya membuat sebuah contoh function yang akan melakukan operasi matematis dengan dua buah parameter.
type
...
..
.
function operasi(var nilaia, nilaib : integer):Boolean;

Sama Seperti Procedure, untuk memudahkan klik CTRL+SHIFT+C agar function digenerate otomatis oleh delphi. Hasil yang saya dapatkan seperti berikut ini. Telah saya tambahkan agar mampu melakukan operasi matematis yaitu penjumlahan
function TForm1.operasi(var nilaia, nilaib: integer): Boolean;
begin
ShowMessage('Hasil Penjumlahannya adalah ='+IntToStr(nilaia+nilaib));
Result := True;
end;

Karena kita membuat function yang memiliki parameter, maka untuk menggunakan function tersebut kita perlu mendefinisikan parameternya juga. Berikut contohnya pada event onclick milik button. Agar terlihat lebih dramatis sengaja saya tambahkan dua buah Edit kedalam form yang mana masing-masing edit ini akan kita ambil nilainya lalu dijumlahkan melalui fungsi operasi yang telah kita buta sebelumnya.
var
satu, dua : integer;
begin
satu := StrToInt(Edit1.Text);
dua := StrToInt(Edit2.Text);
operasi(satu,dua);
end;

Maka Hasilnya Kurang Lebih Seperti gambar berikut

Membuat Procedure dan Function Sendiri di Delphi

Menjalankan Aplikasi Android dengan Emulator di Delphi XE

Untuk menguji aplikasi android yang kita bangun menggunakan IDE delphi tidak bisa langsung kita jalankan seperti aplikasi Desktop pada umumnya (F9). kita memerlukan sebuah tools tambahan yaitu emulator yang dikeluarkan oleh google dan dapat kita gunakan secara gratis. Tapi jika anda menginstall delphi XE5, emulator android sudah otomatis terpasang jadi anda tidak perlu repot-repot mendownload dan menginstallnya. Biasanya lokasi hasil installnya ada di direktori C:\Users\tauhid\Documents\RAD Studio\12.0\PlatformSDKs

Sebelum menjalankan aplikasi, kita harus mendefinisikan/membuat AVDS terlebih dahulu pada SDK android. ini dapat kita lakukan dengan cara sebagai berikut

Menjalankan Aplikasi Android dengan Emulator di Delphi XE

Selanjutnya akan muncul sebuah jendela halaman utama Android SDK. Klik menu tools Lalu Manage AVDS. tampilannya adalah sebagai berikut.

Menjalankan Aplikasi Android dengan Emulator di Delphi XE

Defaultnya, akan ada sebuah AVD disana dengan nama rsxe5_android. Tapi disini kita akan membuat sebuah AVD baru. Klik Button New. Lalu isi Spesifikasinya seperti gambar berikut

Menjalankan Aplikasi Android dengan Emulator di Delphi XE

Yang terpenting dari ketika anda mengisi spesifikasi anda (gambar diatas) pastikan anda mencentang Use Host GPU. Selanjutnya sesuaikan Device yang anda gunakan dengan AVD emulator anda. Pada emulator diatas saya menggunakan Perangkat WQVGA (240x400). Maka pada template aplikasi di Delphi harus disesuaikan juga. seperti gambar berikut

Menjalankan Aplikasi Android dengan Emulator di Delphi XE

Kembali ke Jendela Android SDK Manager. Berikutnya adalah Jalankan AVD Anda dengan Mengklik tombol Start. Pada jendela yang muncul klik launch seperti gambar dibawah ini 

Menjalankan Aplikasi Android dengan Emulator di Delphi XE

Sampai disini saya asumsikan perangkat emulator sudah berjalan. Langkah selanjutnya adalah masuk ke IDE Delphi anda. disini saya menggunakan Delphi XE5. Pastikan bahwa AVD yang kita buat sudah ada di jendela tree view Projek Manager seperti gambar berikut

Menjalankan Aplikasi Android dengan Emulator di Delphi XE

Langkah terakhir Jalankan Aplikasi dengan menekan tombol F9 pada keyboard. Pada Proses Compile yang nantinya akan dilakukan oleh delphi terdiri dari beberapa step, salah satunya adalah "Delphi akan langsung menginstall Aplikasi kita di emulator" seperti screenshoot gambar berikut

Menjalankan Aplikasi Android dengan Emulator di Delphi XE

Jika tidak ada masalah, maka aplikasi akan langsung terpasang di Emulator silahkan masuk ke menu pada emulator anda. namun biasanya, aplikasi akan langsung dijalankan di emulator. Hasil yang saya peroleh seperti gambar berikut. 

Menjalankan Aplikasi Android dengan Emulator di Delphi XE

Note : 
Pada beberapa perangkat komputer, teknik diatas tidak bisa dilakukan karena kartu grafik (VGA) tidak support dengan GPU emulation. jadi pastikan komputer anda support agar percobaan berjalan dengan baik.

Insert Update dan Delete Pada Aplikasi Android di Delphi XE

Kini, dengan Delphi kita sudah bisa membuat berbagai macam aplikasi keren dan tentu saja hal itu dapat dijalankan di berbagai platform berbeda seperti Android dan iOS. Maka tak perlu lagi gonta ganti bahasa pemrograman karena dengan delphi semua bisa. Lepas dari hal itu, Sebelumnya saya sudah sharing bagaimana membuat aplikasi database berbasis android dengan delphi yang ada disini. Pada postingan tersebut sudah saya jelaskan step by step bagaimana membuat database dengan SQLite serta melakukan koneksi ke Aplikasi.

Kali ini, saya akan lanjutkan dengan membuat proses Insert, Update dan Delete pada contoh kasus yang ada di postingan sebelumnya. Hanya saja kita perlu menambahkan beberapa komponen sehingga tampilan aplikasi menjadi seperti berikut ini.

Insert Update dan Delete Pada Aplikasi Android di Delphi

Untuk Masalah coding, sebenarnya sama saja dengan coding CRUD delphi pada umumnya. berikut adalah contoh Untuk Coding simpan yang saya gunakan.
var
jk : string;
begin
// Cek Jenis Kelamin
if RadioButton1.IsChecked=True then
jk := 'Laki-Laki' else
if RadioButton2.IsChecked=True then
jk:= 'Perempuan';
// Simpan Ke Database
FDQuery1.Active:=False;
FDQuery1.SQL.Text:='INSERT INTO biodata values ("'+IntToStr(FDQuery1.RecordCount+1)+'","'+Edit1.Text+'","'+jk+'","'+ComboBox1.Items.GetText+'",,"'+Memo1.Text+'")';
FDQuery1.ExecSQL;
FDQuery1.SQL.Text:='select * FROM biodata';
FDQuery1.ExecSQL;
FDQuery1.Active:=True;
end;

Kemudian Untuk Proses Update dan Delete Data, Skenarionya User harus mengklik salah satu data yang ada di GRID, lalu value data tersebut akan ditampilkan pada komponen diatas (ID dan Nama). Sebelumnya pada event onactive form kita set button update dan delete dengan visible=false
Edit2.Text:=FDQuery1['id'];
Edit1.Text:=FDQuery1['nama'];
Button3.Enabled:=True;
Button4.Enabled:=True;

Berikut contoh yang saya gunakan untuk Coding Update data
var
jk : string;
begin
// Cek Jenis Kelamin
if RadioButton1.IsChecked=True then
jk := 'Laki-Laki' else
if RadioButton2.IsChecked=True then
jk:= 'Perempuan';
// Update Data
FDQuery1.Active:=False;
FDQuery1.SQL.Text:='UPDATE biodata set nama="'+Edit1.Text+'",jenis_kelamin="'+jk+'",agama="'+ComboBox1.Items.GetText+'",alamat="'+Memo1.Text+'" Where id="'+Edit2.Text+'"';
FDQuery1.ExecSQL;
FDQuery1.SQL.Text:='select * from biodata';
FDQuery1.ExecSQL;
FDQuery1.Active:=True;
Button3.Enabled:=False;

Sedangkan Untuk Coding Delete berikut contohnya.
FDQuery1.Active:=False;
FDQuery1.SQL.Text:='DELETE FROM biodata Where id="'+Edit2.Text+'"';
FDQuery1.ExecSQL;
FDQuery1.SQL.Text:='select * from biodata';
FDQuery1.ExecSQL;
FDQuery1.Active:=True;
Button4.Enabled:=False;

Mengenal dan Menggunakan Pengambilan Keputusan di Pascal

Pengambilan keputusan atau yang disebut juga Decision Making akan sangat kita perlukan dalam membangun aplikasi dengan bahasa pemrograman apapun. Saya sendiri sering menyebut istilah ini dengan penyeleksian kondisi. Jika ini maka itu, jika itu maka ini. kira kira begitulah logika dari Pengambilan keputusan ini yang dalam bahasa pemrograman pascal dikenal dengan istilah if then else.

Secara umum, Pascal mengenal dua buah metode decision making yang umum digunakan yaitu If then dan case of. Baiklah, Mari kita bahas satu persatu. Enjoy!

1. If Then

Adalah sebuah pengambilan keputusan dimana sebuah atau beberapa kondisi didefinisikan diawal pengecekan. sedangkan aksi akan dilakukan jika nilai return True. jika nilai False, maka aksi lain akan dieksekusi. Berikut adalah contohnya
program belajar;

var
nilaib : Integer;

begin
nilaib := 5;
if (nilaib<=10) then
writeln('Nilai B Lebih Kecil dari 10');
end.

Selain itu kita juga dapat menggunakan sub rutin percabangan dari If then else ini. berikut contohnya.
program belajar;

var
nilaib : Integer;

begin
nilaib := 12;
if (nilaib<=10) then
writeln('Nilai B Lebih Kecil dari 10') else
writeln('Nilai B Lebih Besar dari 10');
end.
Perlu diketahui bahwa jika ada lebih dari satu baris aksi (beberapa aksi/lebih dari 1) akan dilakukan jika kondisi terpenuhi maka harus diawali dengan begin dan diakhiri dengan end Jika tidak maka hanya aksi pertama yang akan dieksekusi. seperti contoh script berikut
program belajar;

var
nilaib : Integer;

begin
nilaib := 12;
if (nilaib<=10) then
begin
writeln('Nilai B Lebih Kecil dari 10');
writeln('Ini Aksi Kedua');
writeln('Ini Aksi Ketiga');
end else
begin
writeln('Ini Aksi Pertama');
writeln('Nilai B Lebih Besar dari 10');
writeln('Ini Aksi Ketiga');
end;
end.

2. Case Of

Berbeda dengan If then, Decision making jenis ini akan melakukan pengecekan terhadap suatu nilai dimana aksi akan diambil jika nilai tersebut sesuai dengan kondisi yang telah ditentukan. Berikut contohnya suatu misal dalam program sederhana untuk mengecek grade nilai.
program belajar;

var
nilaib : integer;

begin
nilaib := 20;

case (nilaib) of
1..20 : writeln('Nilai yang Buruk Sekali');
21..40 : writeln('Nilai yang Buruk');
41..50 : writeln('Nilai yang Memprihatinkan');
51..60 : writeln('Nilai yang Lumayan');
61..70 : writeln('Nilai yang Cukup Baik');
71..80 : writeln('Nilai yang Baik');
81..90 : writeln('Nilai yang Baik Sekali');
91..100 : writeln('Nilai yang Sangat Memuaskan');
end;
end.

Cara Mengambil Inputan Radio Button di Delphi

Penggunaan Komponen yang tepat dalam membangun aplikasi adalah salah satu kunci dari pembuatan aplikasi yang user friendly. Untuk kemudian end user, Delphi menyediakan ratusan komponen yang dapat kita manfaatkan yang tentu saja penggunaannya dalam hal yang berbeda beda. Sebut saja componen delphi seperti RadioButton yang akan lebih pas jika digunakan untuk pemilihan dua buah kategori seperti jenis kelamin atau kategori yang lain.

Sayangnya, Untuk mengambil inputan radiobutton ini menjadi masalah tersendiri dikalangan pemula delphi maka terbersit niat saya untuk membahasnya dalam postingan ini.

saya sendiri untuk mengambil inputan radio button ini menggunakan penyeleksian kondisi atau yang disebut juga dengan pengambilan keputusan alias decision making. Suatu misal dalam form terdapat dua buah radiobutton sebagai berikut


Maka Untuk coding yang ada di button Pilih Saya menggunakan script berikut
procedure TForm1.Button1Click(Sender: TObject);
var
jenis_kelamin : String;
begin
// Cek Jenis Kelamin yang dipilih
if RadioButton1.Checked=True then
jenis_kelamin:=RadioButton1.Caption else
if RadioButton2.Checked=True then
jenis_kelamin:=RadioButton2.Caption;
// Masukan ke Komponen Edit
Edit1.Text:=jenis_kelamin;
end;