Wednesday, July 2, 2014
Membuat File Installer Delphi dan MySQL Bagian II
Seperti yang telah kita ketahui bersama Pembuatan File Installer atau file instalasi untuk program yang kita buat akan memberikan kemudahan bagi end user karena tidak akan ada lagi proses setting koneksi dan settingan-settingan lain yang mungkin akan memakan waktu bahkan akan menyulitkan pengguna oleh karena membuat file instalasi bisa dikatakan sangat diperlukan.
Sebelum saya fakum mengurusi blog ini, Pada postingan ini saya akan berbagi trik bagaimana membuat file installer aplikasi yang dibangun dengan delphi dan database MySQL. Meskipun sebelumnya sudah pernah saya sharing untuk connector ODBC tapi sayangnnya masih banyak yang belum memahaminya.
1. Ada Baiknya anda menerapkan Connection Dialog pada Aplikasi anda. Silahkan baca postingan saya yang ada disini.
2. Saya anggap anda sudah memahami betul bagaimana membuat file installer delphi dan database Access. meskipun tidak berhubungan tapi hal tersebut akan sedikit membantu. Silahkan baca disini.
3. Saya Jika kedua hal sudah anda pahami. Problem terakhir sebenarnya adalah hanya masalah Database MySQL. yang perlu dipahami adalah MySQL memiliki service yang perlu dijalankan agar kita dapat melakukan koneksi dan melakukan pemrosesan data. Biasanya nama servicenya adalah mysql atau mysqld coba perhatikan gambar berikut
6. Buat Folder di D:\ dengan nama Install kemudian Ekstrack file mysql hasil download kedalam folder tersebut. Dump/Eksport database anda lalu pindahkan hasil eksport ke folder mysql/mysql/bin/ kemudian Edit File-File (*.bat) yang berada didalam folder mysql/mysql/bin/
7. Download File Master Inno Setup disini dan Inno Setup Script disini. Install Master Inno Setup kemudian Copy Inno Setup Script kedalam Folder D:\Install
8. Perlu diketahui disini saya menggunakan Connector ZEOSLib. Silahkan Pindahkan/Copy File Hasil Compile Projek anda (exe) dan Folder atau File-file yang diperlukan kedalam folder D:\Install sehingga hasilnya akan terlihat kurang lebih seperti gambar berikut.
9. Klik dua kali lalu Edit File Inno-Script dan Sesuaikan dengan File-file dan direktori anda dan Direktory Tujuan hasil Install Anda. Pada Contoh ini Tujuannya adalah C:\Program Files\Edit Ini Kemudian Run. Jangan lupa untuk mengedit file (*.bat) yang ada di folder mysql/mysql/bin/ dan mysql/my.ini
Selamat Berkreasi Kawan. Salam Delphier :)
Sebelum saya fakum mengurusi blog ini, Pada postingan ini saya akan berbagi trik bagaimana membuat file installer aplikasi yang dibangun dengan delphi dan database MySQL. Meskipun sebelumnya sudah pernah saya sharing untuk connector ODBC tapi sayangnnya masih banyak yang belum memahaminya.
1. Ada Baiknya anda menerapkan Connection Dialog pada Aplikasi anda. Silahkan baca postingan saya yang ada disini.
2. Saya anggap anda sudah memahami betul bagaimana membuat file installer delphi dan database Access. meskipun tidak berhubungan tapi hal tersebut akan sedikit membantu. Silahkan baca disini.
3. Saya Jika kedua hal sudah anda pahami. Problem terakhir sebenarnya adalah hanya masalah Database MySQL. yang perlu dipahami adalah MySQL memiliki service yang perlu dijalankan agar kita dapat melakukan koneksi dan melakukan pemrosesan data. Biasanya nama servicenya adalah mysql atau mysqld coba perhatikan gambar berikut
4. Mungkin anda juga sudah mafhum bahwa Database-database yang kita buat di MySQL berada di folder mysql/data. Selain itu MySQL juga memiliki File Konfigurasi yang biasanya berada di file My.ini Jika buka dengan Notepad Maka ini file my.ini kurang lebih seperti berikut. anda perlu melakukan Editing sesuai dengan lokasi database anda.
# MySQL Server Instance Configuration File5. Sebelum Kita Lanjut, Silahkan Download file MySQL non Installer disini. Perlu diketahui bahwa user di MySQL tersebut adalah root dan Password root. Pastikan Pada Projek anda menggunakan user=root dan password=root untuk koneksi ke MySQL
[client]
port=3306
[mysql]
default-character-set = utf8
[mysqld]
port=3306
#Edit Ini
basedir="C:\Program Files\Aplikasi Sederhana\mysql"
#Edit Ini
datadir="C:\Program Files/Aplikasi Sederhana/mysql/data/"
default-character-set = utf8
character-set-server = utf8
collation-server = utf8_general_ci
init_connect = 'SET collation_connection = utf8_general_ci'
init_connect = 'SET NAMES utf8'
sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
max_connections=16384
query_cache_size=0
table_cache=256
tmp_table_size=9M
thread_cache_size=8
myisam_max_sort_file_size=100G
myisam_max_extra_sort_file_size=100G
myisam_sort_buffer_size=17M
key_buffer_size=10M
read_buffer_size=64K
read_rnd_buffer_size=256K
sort_buffer_size=256K
log-slow-queries=mysql-slow.log
log-error=mysql.err
skip-innodb
innodb_additional_mem_pool_size=2M
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=1M
innodb_buffer_pool_size=17M
innodb_log_file_size=10M
innodb_thread_concurrency=8
6. Buat Folder di D:\ dengan nama Install kemudian Ekstrack file mysql hasil download kedalam folder tersebut. Dump/Eksport database anda lalu pindahkan hasil eksport ke folder mysql/mysql/bin/ kemudian Edit File-File (*.bat) yang berada didalam folder mysql/mysql/bin/
7. Download File Master Inno Setup disini dan Inno Setup Script disini. Install Master Inno Setup kemudian Copy Inno Setup Script kedalam Folder D:\Install
8. Perlu diketahui disini saya menggunakan Connector ZEOSLib. Silahkan Pindahkan/Copy File Hasil Compile Projek anda (exe) dan Folder atau File-file yang diperlukan kedalam folder D:\Install sehingga hasilnya akan terlihat kurang lebih seperti gambar berikut.
9. Klik dua kali lalu Edit File Inno-Script dan Sesuaikan dengan File-file dan direktori anda dan Direktory Tujuan hasil Install Anda. Pada Contoh ini Tujuannya adalah C:\Program Files\Edit Ini Kemudian Run. Jangan lupa untuk mengedit file (*.bat) yang ada di folder mysql/mysql/bin/ dan mysql/my.ini
; Script generated by the Inno Setup Script Wizard.10. Hasilnya akan terlihat di folder Output. Perlu dicatat disini. sebelum anda menguji hasilnya pastikan bahwa service mysql tidak ada yang berjalan pada komputer tempat anda hendak menguji (melakukan install).
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
;Nama Folder Aplikasi -> C:\Program Files\Aplikasi Sederhana
#define MyAppName "Edit Ini" ;
#define MyAppVersion "1.0 Beta"
#define MyAppPublisher "Ahmad Tauhid"
#define MyAppURL "http://delphitutor.blogspot.com/"
;Nama Aplikasi -> Hasil Compile
#define MyAppExeName "App.exe"
[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{08B136C3-0A12-412B-BFA3-0FC9EC69E4FB}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\{#MyAppName}
DisableDirPage=yes
DefaultGroupName={#MyAppName}
OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked; OnlyBelowVersion: 0,6.1
[Files]
Source: "D:\Install\App.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\Install\App.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\Install\koneksi.ini"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\Install\libmysql.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\Install\mysql\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
[Icons]
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{group}\{cm:ProgramOnTheWeb,{#MyAppName}}"; Filename: "{#MyAppURL}"
Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: quicklaunchicon
[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, "&", "&&")}}"; Flags: nowait postinstall skipifsilent
[Run]
Filename: "{app}\mysql\bin\install_service.bat"; Description: ""; Flags: waituntilterminated
Filename: "{app}\mysql\bin\create_database.bat"; Description: ""; Flags: waituntilterminated
Filename: "{app}\mysql\bin\import_database.bat"; Description: ""; Flags: waituntilterminated
Filename: "{app}\mysql\bin\hapus.bat"; Description: ""; Flags: waituntilterminated
[UnInstallRun]
Filename: "{app}\mysql\bin\uninstall_service.bat"; Description: ""; Flags: waituntilterminated
Selamat Berkreasi Kawan. Salam Delphier :)
Membuat File Instalasi Delphi dan Database Access
Dalam membangun aplikasi, membuat file instalasi adalah proses terakhir sebelum melakukan pendistribusian program. File instalasi ini akan sangat membantu dan memudahkan user dalam menggunakan program aplikasi yang kita buat sehingga tidak perlu repot lagi melakukan koneksi ulang serta settingan-settingan lain. Berikut saya ingin berbagi bagaimana membuat file instalasi delphi dan database Access sehingga nantinya jika program hendak digunakan dikomputer lain program tidak akan error.
1. Sebelum kita mulai, saya ingin memastikan bahwa anda melakukan koneksi ke database (aceess) dengan cara yang telah saya posting disini. Pastikan juga pada property ataupun coding program anda menggunakan cara tersebut untuk memanggil suatu file atau report. Hal ini kita lakukan untuk meminimalisir terjadinya error nantinya.
2. Silahkan download tools yang diperlukan disini. kita akan menggunakan SFX Tools. Usai download silahkan install.
3. Sampai disini saya asumsikan struktur folder projek anda seperti gambar berikut
1. Sebelum kita mulai, saya ingin memastikan bahwa anda melakukan koneksi ke database (aceess) dengan cara yang telah saya posting disini. Pastikan juga pada property ataupun coding program anda menggunakan cara tersebut untuk memanggil suatu file atau report. Hal ini kita lakukan untuk meminimalisir terjadinya error nantinya.
2. Silahkan download tools yang diperlukan disini. kita akan menggunakan SFX Tools. Usai download silahkan install.
3. Sampai disini saya asumsikan struktur folder projek anda seperti gambar berikut
4. Jalankan Program SFX yang telah anda download dan install sebelumnya pada langkah 2. Tambahkan File hasil Compile Projek anda serta folder dan file file yang dibutuhkan sehingga nantinya tampilannya seperti gambar berikut. Installer Name adalah nama Program anda nantinya sedangkan Destination Directory merupakan lokasi tujuan program akan diinstall pada gambar dibawah saya memilik lokasi Program File dan folder Program Saya
5. Klik Tombol Advanced Options kemudian tambahkan shorcut program anda. Arahkan Target File ke File Exe (Hasil Compile) projek anda kemudian Back to Main Menu seperti gambar berikut
6. Selanjutnya klik button > Generate Script Tentukan lokasi dan berinama output file installer anda kemudian Compile Script
Jika proses compile selesai, maka anda akan melihat outputnya pada lokasi yang telah anda tentukan di step 6. Coba Jalankan File Installer tersebut dikomputer lain. Silahkan Download hasil saya disini. Selamat mencoba dan berkreasi :)
Tuesday, July 1, 2014
Membuat SMS Auto Reply dengan Gammu dan Delphi
Saat ini aplikasi SMS gateway rata-rata telah dilengkapi dengan fitur auto reply. Hal ini tentu sangat bermanfaat guna mempermudah proses transaksi karena dapat kita terapkan pada aplikasi pendaftaran berbasis sms, pengiriman informasi secara berkala menggunakan sms otomatis dan semacamnya. Berikut saya sharing bagaimana membuat sms auto reply dengan gammu dan delphi.
Sebelum kita membahas lebih jauh tentang bagaimana membuat SMS auto reply dengan gammu dan delphi alangkah lebih baiknya jika kita mengetahui terlebih dahulu bagaimana teknik yang digunakan gammu dalam menerima dan mengirim sms. Berikut adalah syarat yang harus dipahami dalam membuat auto reply menggunakan gammu
1. Ada dua cara yang saya ketahui tentang bagaimana gammu mengirim sms. Cara pertama yaitu dengan menggunakan perintah CLI dan cara yang kedua dengan menginputkan data pada tabel outbox (Service gammu harus berjalan). Pada contoh ini kita akan menggunakan cara kedua.
2. bagaimana kita bisa mengetahui ada sms masuk ? dalam tabel inbox milik gammu terdapat field Processed yang bernilai true atau false. hal itu dapat kita manfaatkan dalam pemrosessan pesan masuk secara berkala menggunakan timer. Jika pesan telah diproses maka nilainya akan diubah menjadi True jika nilai false maka itulah sms masuk. :)
3. Selanjutnya Bagaimana membuat proses tersebut berjalan secara terus menerus sehingga jika ada sms masuk maka otomatis program atau aplikasi akan langsung memprosesnya. dalam hal ini kita dapat memanfaatkan timer yang ada di delphi.
Pada contoh ini, kita akan membuat sebuah program penyewaan lapangan futsal dimana program mengharuskan kepada user yang hendak menyewa untuk mengirimkan format pesan sesuai dengan format yang telah ditentukan yaitu Nama#Jam_Main#No_Lap#Jam_Selesai sudah saya posting sebelumnya disini. Berikut Contoh Coding yang saya gunakan pada Timer
Pada contoh ini saya menggunakan database access. Silahkan anda pahami logika penerapannya kemudian implementasikan pada database gammu milik anda. Download Projeknya disini.
Sebelum kita membahas lebih jauh tentang bagaimana membuat SMS auto reply dengan gammu dan delphi alangkah lebih baiknya jika kita mengetahui terlebih dahulu bagaimana teknik yang digunakan gammu dalam menerima dan mengirim sms. Berikut adalah syarat yang harus dipahami dalam membuat auto reply menggunakan gammu
1. Ada dua cara yang saya ketahui tentang bagaimana gammu mengirim sms. Cara pertama yaitu dengan menggunakan perintah CLI dan cara yang kedua dengan menginputkan data pada tabel outbox (Service gammu harus berjalan). Pada contoh ini kita akan menggunakan cara kedua.
2. bagaimana kita bisa mengetahui ada sms masuk ? dalam tabel inbox milik gammu terdapat field Processed yang bernilai true atau false. hal itu dapat kita manfaatkan dalam pemrosessan pesan masuk secara berkala menggunakan timer. Jika pesan telah diproses maka nilainya akan diubah menjadi True jika nilai false maka itulah sms masuk. :)
3. Selanjutnya Bagaimana membuat proses tersebut berjalan secara terus menerus sehingga jika ada sms masuk maka otomatis program atau aplikasi akan langsung memprosesnya. dalam hal ini kita dapat memanfaatkan timer yang ada di delphi.
Pada contoh ini, kita akan membuat sebuah program penyewaan lapangan futsal dimana program mengharuskan kepada user yang hendak menyewa untuk mengirimkan format pesan sesuai dengan format yang telah ditentukan yaitu Nama#Jam_Main#No_Lap#Jam_Selesai sudah saya posting sebelumnya disini. Berikut Contoh Coding yang saya gunakan pada Timer
procedure TForm1.Timer1Timer(Sender: TObject);Jika ada sms masuk dengan format seperti tersebut diatas, maka program akan memecah isi string tersebut dengan batasan # kemudian hasilnya akan disimpan kedalam tabel pendaftar lalu user akan dikirmkan sebuah pesan bahwa "pendaftarann berhasil" sedangkan jika format pesannya salah maka program akan mengirim pesan "format pesan anda salah" seperti gambar diatas.
var
sl: TStringList;
status : string;
begin
status :='False';
QAksi.Close;
QAksi.SQL.Clear;
QAksi.SQL.Add('select * from inbox where Processed="'+status+'"');
QAksi.ExecSQL;
QAksi.Open;
QAksi.First;
// Jika ada SMS dengan Status False
if QAksi.RecordCount>0 then
begin
karakter:='#';
sl:=TStringList.Create;
SplitStr(QAksi['pesan'],karakter,sl);
if (sl.Count <= 1) or (sl.Count <> 4) then
begin
// Simpan Ke Tabel Outbox
ADOquery2.Close;
// Simpan ke Tabel Outbox
ADOquery2.SQL.Clear;
ADOquery2.SQL.Add('Insert into outbox');
ADOquery2.SQL.Add('([pengirim] , [tujuan], [pesan])');
ADOquery2.SQL.Add('Values (:pengirim, :tujuan, :pesan)');
ADOquery2.Parameters.ParamByName('pengirim').Value := '088907890098';
ADOquery2.Parameters.ParamByName('tujuan').Value := QAksi['pengirim'];
ADOquery2.Parameters.ParamByName('pesan').Value := 'Format Pesan Yang Anda Kirim Salah';
ADOquery2.ExecSQL;
ADOquery2.SQL.Clear;
ADOquery2.SQL.Text := 'Select * from outbox';
ADOquery2.Open;
// Update Data Pada Tabel Inbox
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('UPDATE inbox SET');
ADOQuery1.SQL.Add('Processed=?');
ADOQuery1.SQL.Add('WHERE ID=?');
ADOQuery1.Parameters[0].Value := 'True';
ADOQuery1.Parameters[1].Value := QAksi['ID'];
ADOQuery1.ExecSQL;
ADOQuery1.SQL.Clear;
ADOquery1.SQL.Text := 'Select * from inbox';
ADOquery1.Open;
end else
begin
// Simpan ke Tabel Pendaftar
ADOquery3.Close;
ADOquery3.SQL.Clear;
ADOquery3.SQL.Add('Insert into pendaftar');
ADOquery3.SQL.Add('([nama] , [jam_main], [no_lapangan], [jam_akhir])');
ADOquery3.SQL.Add('Values (:nama, :jam_main, :no_lapangan, :jam_akhir)');
ADOquery3.Parameters.ParamByName('nama').Value := sl[0];
ADOquery3.Parameters.ParamByName('jam_main').Value := sl[1];
ADOquery3.Parameters.ParamByName('no_lapangan').Value := sl[2];
ADOquery3.Parameters.ParamByName('jam_akhir').Value := sl[3];
ADOquery3.ExecSQL;
ADOquery3.SQL.Clear;
ADOquery3.SQL.Text := 'Select * from pendaftar';
ADOquery3.Open;
// Simpan Ke Tabel Outbox
ADOquery2.Close;
ADOquery2.SQL.Clear;
ADOquery2.SQL.Add('Insert into outbox');
ADOquery2.SQL.Add('([pengirim] , [tujuan], [pesan])');
ADOquery2.SQL.Add('Values (:pengirim, :tujuan, :pesan)');
ADOquery2.Parameters.ParamByName('pengirim').Value := '088907890098';
ADOquery2.Parameters.ParamByName('tujuan').Value := QAksi['pengirim'];
ADOquery2.Parameters.ParamByName('pesan').Value := 'Selamat, Anda Sudah Terdaftar!';
ADOquery2.ExecSQL;
ADOquery2.SQL.Clear;
ADOquery2.SQL.Text := 'Select * from outbox';
ADOquery2.Open;
// Update Tabel Inbox
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('UPDATE inbox SET');
ADOQuery1.SQL.Add('Processed=?');
ADOQuery1.SQL.Add('WHERE ID=?');
ADOQuery1.Parameters[0].Value := 'True';
ADOQuery1.Parameters[1].Value := QAksi['ID'];
ADOQuery1.ExecSQL;
ADOQuery1.SQL.Clear;
ADOquery1.SQL.Text := 'Select * from inbox';
ADOquery1.Open;
end;
sl.Free;
QAksi.Next;
end; // End While
end;
Pada contoh ini saya menggunakan database access. Silahkan anda pahami logika penerapannya kemudian implementasikan pada database gammu milik anda. Download Projeknya disini.
Insert Update dan Delete MySQL dengan Query Bagian II
Dalam membangun aplikasi, kemampuan menggunakan perintah-perintah kedatabase (query) sangat diperlukan guna membuat aplikasi menjadi lebih interaktif dan powerfull. Sebelumnya sudah pernah saya bahas tentang bagaimana membuat proses input, update dan delete data menggunakan Query yang saya contohkan dengan database acces. Sedikit berbeda dengan hal tersebut karena pada postingan ini query yang akan kita gunakan adalah milik MySQL dan tanpa parameter.
Pada contoh gambar diatas saya menggunakan dua buah form dimana form utama digunakan untuk menampilkan data sedangkan form kedua digunakan untuk fasilitas input dan update data sedangkan Untuk pencarian data saya menggunakan inputbox. Berikut adalah contoh coding yang saya gunakan
1. Coding Simpan data dengan Query
with form1.ADOQuery1 do begin
Close;
SQL.Text:='INSERT INTO anggota (nama,telepon,alamat,keterangan) VALUES ("'+Edit1.Text+'","'+Edit2.Text+'","'+Memo1.Text+'","'+Edit3.Text+'")';
ExecSQL;
SQL.Text:='SELECT * FROM anggota';
Open;
end;
MessageDlg('Data Berhasil di Simpan !',mtInformation,[mbok],0);
2. Coding Update atau Edit data dengan Query
with form1.ADOQuery1 do begin
Close;
SQL.Text:='UPDATE anggota set nama="'+Edit1.Text+'",telepon="'+Edit2.Text+'",alamat="'+Memo1.Text+'",keterangan="'+Edit3.Text+'" WHERE id="'+Label5.Caption+'"';
ExecSQL;
SQL.Text:='SELECT * FROM anggota';
Open;
end;
MessageDlg('Data Berhasil di Update !',mtInformation,[mbok],0);
3. Coding Delete data Dengan Query
if ADOQuery1.RecordCount<=0 then4. Coding Pencarian data dengan Inputbox
ShowMessage('Data Tidak ada Bro') else
begin
if MessageDlg('Anda Ingin Menghapus Data '+ADOQuery1['nama']+' ?', mtConfirmation,[mbyes,mbno],0)=mryes then
begin
id := ADOQuery1['id'];
with ADOQuery1 do begin
Close;
SQL.Text:='DELETE from anggota WHERE id="'+id+'"';
ExecSQL;
SQL.Text:='SELECT * FROM anggota';
Open;
end;
end else
abort;
end;
varAdapun contoh source code lengkap beserta database dapat anda download disini. Happy Coding :)
cari:string;
begin
cari:=InputBox('Nama Yang Dicari ?','Nama : ','');
// Prose Pencarian Data
if cari='' then
abort else
begin
if not ADOQuery1.Locate('nama',cari,[loPartialKey]) then
ShowMessage('Tidak Ada Data !');
abort;
end;
end;
Membuat Tulisan Berkedip dan Berjalan di Delphi
Saat saya baru pertama kali belajar delphi, hal pertama yang saya pelajari adalah teknik-teknik membuat sesuatu yang sederhana dan saya anggap menarik salah satu hal tersebut adalah teknik membuat tulisan berjalan dan berkedip jadi membuat semacam animasi pada teks gitu. Mempelajari trik ini yang membuat saya belajar sedikit demi sedikit sehingga sampai sekarang saya bisa mengimplementasikannya pada aplikasi yang saya buat. Itulah cara belajar saya.
Berikut saya akan berbagi bagaimana membuat tulisan atau teks berjalan dan berkedip pada form di delphi. Untuk membuatnya saya biasa menggunakan komponen Timer yang telah tersedia secara default di delphi. Silahkan tambahkan dua buah label dan sebuah timer pada form anda. klik dua kali pada komponen timer kemudian masukan kode seperti berikut
Berikut saya akan berbagi bagaimana membuat tulisan atau teks berjalan dan berkedip pada form di delphi. Untuk membuatnya saya biasa menggunakan komponen Timer yang telah tersedia secara default di delphi. Silahkan tambahkan dua buah label dan sebuah timer pada form anda. klik dua kali pada komponen timer kemudian masukan kode seperti berikut
// Tulisan BerjalanUntuk mengatur kecepatan tulisan berjalan atau berkedip anda perlu mengatur interval yang ada pada property milik timer. Selamat mencoba. Happy Coding guys. :)
// LJalan = Label/Teks Berjalan
LJalan.Left := LJalan.Left - 5;
if LJalan.Left <= -200 then
LJalan.Left := 500;
// Tulisan Berkedip
// LKedip = Lable/Teks Berkedip
if LKedip.Caption='Berkedip' then
LKedip.Caption:='' else
if LKedip.Caption='' then
LKedip.Caption:='Berkedip';
Tuesday, June 17, 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. :)
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. :)
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
uses2. 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
..., SynPdf;
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;
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.
Silahkan Download Contoh Source code lengkap (Database, Aplikasi dan Laporan) disini. Selamat Mencoba :)
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
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
2. Selanjutnya akan ada dua pilihan dimana saya menggunakan using the report expert anda bisa juga menggunakan blank report
3. Langkah berikutnya adalah memilih template laporan yang akan digunakan. disini saya menggunakan template standar seperti gambar berikut
4. Berikutnya adalah proses mengkoneksikan database dengan laporan crystal report. klik tombol Database
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.
(Menggunakan ODBC untuk koneksi ke Database MySQL)
(Koneksi dengan Database Access)
6. Setelah melakukan proses diatas maka akan terlihat tabel pada database, pilih tabel yang ingin anda buatkan laporannya kemudian Next
7. Berikutnya adalah pilih field-field pada tabel yang ingin anda tampilkan pada laporan anda nantinya. Add | Finish
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.
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- Jika anda Menggunakan Database Access Berikut adalah Contoh Codenya
CrystalReport1.Connect:='DSN=nama_datasource;UID=user;PWD=password;DSQ=';
// Mendefinisikan File Crystal Report
CrystalReport1.ReportFileName:='laporan.rpt';
// Tampilkan Crystal Report
CrystalReport1.Action:=1;
// Lakukan Koneksi ke DatabaseJalankan Aplikasi Anda. Setelah Button Cetak Laporan/Laporan diklik nantinya akan muncul file Laporan yang dibuat sebelumnya dengan Crystal Report. Seperti gambar dibawah ini
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;
Silahkan Download Contoh Source code lengkap (Database, Aplikasi dan Laporan) disini. Selamat Mencoba :)
Subscribe to:
Posts (Atom)






















