Minggu, 01 Februari 2015

Source Code Aplikasi SMSKU SMS Gateway dengan Delphi

Pada postingan ini saya akan mencoba berbagi source code aplikasi yang pernah saya buat dan sharing di blog ini. buat sobat delphi yang sering berkunjung ke blog sederhana ini pasti tahu tentang aplikasi SMS gateway yang pernah saya sharing postingan saya sebelumnya disini.

Aplikasi SMS Gateway tersebut saya buat menggunakan kombinasi antara MySQL Gammu dan Delphi. Memiliki beberapa fitur utama seperti mendeteksi port modem secara otomatis meskipun fitur ini masih perlu perbaikan lagi. Selain itu terdapat fasilitas Cek Pulsa, SMS Balasan otomatis dan SMS Alert. Saya berharap sobat dapat mengembangkannya menjadi lebih baik.

Source Code Aplikasi SMSKU SMS Gateway dengan Delphi

Setelah saya pikir-pikir, saya kira tidak akan ada gunanya jika saya hanya menyimpan source codenya di komputer. bukankah lebih baik di share karena tidak menutup kemungkinan pasti ada yang membutuhkan. Aplikasi ini ada dua versi. versi pertama Fitur Cek pulsa menggunakan perintah At Command dengan bantuan Comport. Adapun versi kedua adalah pengembangan dari versi pertama termasuk dalam mendeteksi port modem secara otomatis dengan bantuan comport. 

Sebelum anda mendownload saya minta keihkhlasan doa teman-teman agar saya diberikan umur panjang untuk dapat terus berbagi apa yang saya ketahui tentang tetek bengek delphi atau keluarga pascal, diberikan kesehatan, keselamatan dan rizki yang banyak. Amiinn. :)

Untuk Versi pertama silahkan download disini (Source Code SMSKU v.1), Sedangkan untuk versi kedua silahkan sobat download disini (Source Code SMSKU v.2). Dalam File tersebut sudah lengkap dengan Database serta komponen-komponen yang diperlukan. Itulah yang dapat saya sharing tentang source code aplikasi SMS Gateway dengan Delphi dan Gammu. Semoga Bermanfaat dan gunakanlah dengan baik. Jangan Pelit untuk berbagi. Happy Coding. :)  

Menampilkan Tipe Data Text (Memo) di DBGrid Delphi

Berdasarkan pengalaman pribadi saya dalam membangun sebuah aplikasi, seringkali kita mendapatkan masalah-masalah sederhana yang tak terduga. Entah itu yang berkaitan dengan Coding atau source code, teknik membangun aplikasi, ataupun database baik query atau semacamnya. Berdasarkan pengalaman pribadi saya pula postingan ini saya tulis. siapa tahu ada yang mengalami masalah yang sama dan artikel sederhana ini dapat membantu.

Salah satu masalah sederhana yang banyak terjadi adalah bagaimana menampilkan tipe data text mysql kedalam dbgrid di delphi. karena secara default, data yang ditampilkan bertuliskan (MEMO). Hal ini tentu saja dapat menjadi masalah tersendiri lebih lebih jika kita mengutamakan kenyamanan end-user. Perhatikan contoh berikut ini.

Menampilkan Tipe Data Text (Memo) di DBGrid Delphi

Pada gambar diatas terlihat bahwa nilai Field password pada DBGrid tidak ditampilkan karena merupakan tipe data text di mysql. Lantas bagaimana cara menampilkannya? 
Klik dua kali pada komponen ADOQuery. Lalu klik kanan dan Add All Field seperti gambar berikut

Menampilkan Tipe Data Text (Memo) di DBGrid Delphi

Berikutnya klik 1 kali pada field yang bertipe data text (bertuliskan memo di dbgrid) pada contoh ini adalah field password. masuk ke object inspector | event | OnGetText. Tambahkan Coding Berikut di dalam Event OnGetText
Text := Copy(ADOQueryNamaField.AsString, 1, 200);
Menampilkan Tipe Data Text (Memo) di DBGrid Delphi

Form di dalam Form Delphi

anda tentu sering menggunakan aplikasi-aplikasi yang dibangun oleh para developer. entah itu aplikasi yang bersifat berbayar atau free alias gratisan. dari aplikasi-aplikasi yang pernah digunakan tersebut tentu kita sering mendapat ide semisal meniru desain, tampilan, alur program dan hal-hal lain. Contohnya seperti yang akan saya bahas pada postingan ini yaitu bagaimana membuat form berada didalam form.

Sebagai gambaran, pada contoh disini akan terdapat tiga buah form. Form pertama akan kita gunakan sebagai Form Utama (Form Parent). Berikut Form kedua dan ketiga akan kita manfaatkan sebagai Form Child atau form yang akan muncul didalam form Utama. Terdapat juga komponen Panel yang akan digunakan untuk meletakan form child serta menu untuk memanggil form child. Bagaimana, Sampai disini ada gambaran?

Form di dalam Form Delphi

1. Buat 3 Buah Form dalam Projek anda, kemudian simpan

2. Tambahkan Unit Form kedua dan ketiga kedalam uses Unit form pertama

3. Tambahkan sebuah menu untuk memanggil form kedua dan ketiga 

4. Tambahkan sebuah komponen panel. set property | Align = alClient 

Adapun contoh coding untuk memanggil masing-masing form adalah sebagai berikut. Jika masih kurang jelas, anda dapat mendownload contoh source code (projek) disini. selamat mencoba. happy coding. :)
procedure TForm1.FormSatu1Click(Sender: TObject);
var
form_anak_satu : TForm2;
begin
form_anak_satu:=TForm2.Create(nil);
form_anak_satu.Parent:=Panel1;
form_anak_satu.Align:=alClient;
form_anak_satu.Show;
end;

procedure TForm1.FormDua1Click(Sender: TObject);
var
form_anak_dua : TForm3;
begin
form_anak_dua:=TForm3.Create(nil);
form_anak_dua.Parent:=Panel1;
form_anak_dua.Align:=alClient;
form_anak_dua.Show;
end;

Rabu, 07 Januari 2015

Menghitung Selisih Waktu di Delphi

Dalam membangun aplikasi, tidak jarang kita akan dihadapkan pada operasi matematis. Bahkan bisa dikatakan hal itu adalah sebuah hal yang wajib ada. Saya kira tidak perlu untuk menyebutkan contohnya karena saya yakin sobat delphi sudah mengalaminya. Entah itu berkaitan dengan tugas atau dalam mengembangkan aplikasi untuk dipasarkan.

Terlepas dari hal tersebut diatas, dalam membuat aplikasi, tidak jarang pula kita dihadapkan pada persoalan perhitungan waktu atau tanggal. seperti menghitung selisih waktu, membuat sebuah proses yang akan dijalankan setiap waktu yang telah ditentukan dan berbagai macam persoalan lainnya. Pada postingan ini saya ingin berbagi sedikit trik tentang cara menghitung selisih waktu di delphi seperti contoh gambar berikut.

Menghitung Selisih Waktu di Delphi

Pada contoh diatas saya menggunakan dua buah jam yang akan diproses yaitu jam pertama dan jam kedua dimana masing-masing jam diambil dari inputan edit dan hasilnya akan ditampilkan pada komponen label. Untuk melakukan pemrosesan pada contoh diatas kita memerlukan library uses DateUtils. Adapun contoh source codenya dapat anda lihat dibawah ini. 
// Pendefinisian Variabel
var
Form1: TForm1;
StartTime, EndTime, TimeDiff : TDateTime;
sec, jam, menit, detik : word;
h, m, s : word;
inc : word;
Selisih : String;
Itime : TTime;

// Kode Untuk Button
procedure TForm1.Button4Click(Sender: TObject);
begin
StartTime := StrToTime(Edit1.Text);
EndTime := StrToTime(Edit2.Text);
Selisih := TimeToStr(EndTime-StartTime);
StartTime := StrToTime(Selisih);
//
h := HourOf(StartTime);
m := MinuteOf(StartTime);
s := SecondOf(StartTime);
inc := (h*sqr(60)+(m*60)+s);
//
Itime := Now();
Itime := IncSecond(Itime,inc);
//
sec := SecondsBetween(Now(),Itime);
jam := sec div 3600;
menit := (sec mod 3600) div 60;
detik := (sec mod 3600) mod 60;
//
Label3.Caption:='Selisih Waktu = '+IntToStr(jam)+' Jam '+IntToStr(menit)+' Menit '+IntToStr(detik)+' Detik';

end;

Selasa, 06 Januari 2015

Script Generate Tanggal di Delphi

Postingan kali ini adalah tentang Generate tanggal. mungkin sobat delphi masih bertanya-tanya tentang apa itu generate tanggal. sebenarnya nama generate tanggal ini saya beri nama sendiri karena saya kira nama itulah yang cocok. hehe. lalu apa itu generate tanggal? jadi gambarannya begini, suatu misal kita punya tanggal awal 01-01-2015 dan tanggal akhir yaitu 08-09-2015. pertanyaannya, bagaimana cara membuat tanggal dari tanggal awal sampai tanggal akhir secara otomatis? itulah yang saya maksud dengan generate tanggal. singkat kata, sebuah operasi yang akan membuat tanggal secara otomatis dari tanggal awal sampai tanggal akhir.

Generate Tanggal di Delphi

pada contoh disini saya memanfaatkan dua buah komponen date time picker. dimana tanggal awal dan tanggal akhir saya ambil dari date time picker tersebut. 1 Buah button untuk melakukan pemrosesan dan 1 buah memo untuk menampilkan hasil akhir atau outputnya. adapun listing code untuk melakukan generate tanggal ini sebagai berikut. jangan lupa menambahkan DateUtils di Uses anda.
procedure TForm1.Button1Click(Sender: TObject);
var
diff : Double;
i,j : integer;
begin
Memo1.Lines.Clear;
diff := DateTimePicker2.Date - DateTimePicker1.Date;
if diff < 0 then
abort else
begin
if diff = 0 then
Memo1.Lines.Add(DateToStr(DateTimePicker1.Date))
else
begin
j := 1;
Memo1.Lines.Add(DateToStr(DateTimePicker1.Date));
for i := 1 to StrToInt(FloatToStr(Int(diff))) do
begin
Memo1.Lines.Add(DateToStr(IncDay(DateTimePicker1.Date, j)));
j:=j+1;
end;
end; end;
end;


Cara Membuat Passwordchar Bulet di Delphi

Secara default, passwordchar pada komponen edit delphi adalah #0. Pada beberapa kasus seperti dalam form login dimana terdapat inputan username dan password, umumnya pada inputan password, karakter yang digunakan tidak terlihat. ambil saja contoh pada inputan password login facebook. di delphi Hal tersebut dapat kita lakukan dengan mengganti property passwordchar pada komponen edit. biasanya yang banyak digunakan adalah bintang. cara menggantinya cukup mudah, klik 1 kali pada komponen edit -> masuk ke objek inspector -> isi passwordchar dengan *. Hasilnya dapat dilihat seperti gambar di bawah ini.

Cara Membuat Passwordchar Bulet di Delphi

Lalu, bagaimana membuat agar passwordchar tersebut berbentuk bulet lingkaran dengan warna hitam seperti input password di form login facebook atau halaman website? caranya sangat mudah. anda hanya perlu mengganti passwordchar pada komponen edit dengan huruf l (huruf setelah k). langkah selanjutnya ganti font milik komponen edit tersebut dengan Wingdings. Hasil yang saya peroleh seperti gambar dibawah ini. 

Cara Membuat Passwordchar Bulet di Delphi