Minggu, 15 Desember 2013

Input Box dengan Password Char di Delphi


Sobat Pasti Tahu kan InputBox ? Itu yang kayak gambar diatas. mungkin anda sudah sering menggunakannya dalam membuat aplikasi bukan ? Entah dalam proses pencarian data atau semacamnya. Kalau Saya sendiri sering memanfaatkannya untuk prosesn pencarian data. :)

Sebenarnya bagus juga kalau kita menerapkan Inputbox ini untuk Request Password pada User. Jadi Pada Program yang kita buat, sebagia Utilitas kita batasi Hak Aksesnya. Jika User ingin mengakses Utilitas tersebut maka dia harus menginputkan password terlebih dahulu (Lihat gambar diatas). Ide Ini Muncul ketika saya membuat sebuah Aplikasi Tahun Lalu. bagaimana ? tertarik untuk mencobanya ? Berikut langkahnya 

- Jalankan Delphi Anda.
- Letakan Code Berikut dibawah {$R *.dfm}
// Password Char (*) InputBox
procedure TForm1.InputBoxSetPasswordChar(var Msg: TMessage);
var
hInputForm, hEdit: HWND;
begin
hInputForm := Screen.Forms[0].Handle;
if (hInputForm <> 0) then
begin
hEdit := FindWindowEx(hInputForm, 0, 'TEdit', nil);
SendMessage(hEdit, EM_SETPASSWORDCHAR, Ord('*'), 0);
end;
end;

- Buat Sebuah Procedure di atas code Private
procedure InputBoxSetPasswordChar(var Msg: TMessage); message InputBoxMessage;

- Tambahkan Constanta diatas Code type
const
InputBoxMessage = WM_USER + 200;

- Tambahkan Sebuah Button Pada Form Anda Kemudian Letakan Code ini
var
pwd : string;
begin
// Request Password
PostMessage(Handle, InputBoxMessage, 0, 0);
pwd := InputBox('Password Request', 'Masukan Password Aplikasi', '');
end;

- Selesai. Coba Jalankan Kemudian Klik Button Tersebut. Selamat Mencoba :)

Insert, Update dan Delete Data dengan Query di Delphi

Insert, Update dan Delete Data dengan Query di Delphi

Melakukan Insert, Update dan Delete Data Pada Database menggunakan Komponen AdoQuery akan sedikit Berbeda bila dibandingkan dengan saat anda menggunakan AdoTable meskipun Cara yang kita lakukan pada AdoTable bisa kita terapkan juga pada AdoQuery.

Hal ini Tidak bisa kita pungkiri. Menggunakan Query untuk melakukan Manipulasi ataupun Operasi data yang ada pada Database adalah hal yang sangat Penting. maka saya menyarankan anda agar mulai detik ini untuk menggunakan Query karena hal ini akan sangat membantu anda pada saat mengerjakan Aplikasi yang rumit. semisal ada Penggabungan tabel (Join), SUM Field dan Semacamnya.

Berikut saya sharing Source Code yang saya buat (hanya sebagai contoh saja) dalam Manipulasi data pada database menggunakan Query. Pada Penerapan Query-nya hanya terdapat perintah untuk melakukan Input Data, Update dan Delete. Sebagi Informasi, saya Menggunakan Microsoft Accses Sebagai Databasenya. Silahkan Download Projeknya dan databasenya disini !

Selamat Mencoba dan Sukses Selalu Buat Kita Semua. :)

Perbedaan AdoQuery dan AdoTable di Delphi

Topik Kita kali ini adalah AdoQuery dan Ado Table. Saya tertarik untuk menulis postingan ini karena ada sebuah pertanyaan di salah satu kolom komentar Blog saya. Terima kasih ya buat yang sudah mengirim komentar. Jadi Dapet Inspirasi deh Nulis Artikelnya. hehe

Jadi Pada Dasarnya, Inti dari kedua Komponen Tersebut diatas (AdoQuery dan AdoTable) adalah Sama yaitu untuk membaca data pada Tabel Database yang kemudian di tampilkan menggunakan Komponen DBGrid. Trus Apa Bedanya ? Jika tidak ada perbedaan tentu komponen tersebut tidak akan di buat bukan? sebab rasanya satu saja sudah cukup. saat ini saya sendiri tidak pernah lagi menggunakan Komponen AdoTable Hanya karena sebuah alasan yang simpel.

Komponen AdoTable tidak bisa menjalankan Perintah Query Database sedangkan AdoQuery Bisa. Kira-kira itulah Perbedaan yang paling mencolok menurut pengamatan saya. Okelah, Kalo anda hanya melakukan Proses Input, Update dan Delete Saja pada aplikasi anda mungkin dengan AdoTable Saja cukup. Tapi Ingatlah itu tidak cukup untuk membangun aplikasi yang sesuai dengan kebutuhan Pasar karena Dengan menggunakan Query, kita dapat dengan mudah mengoperasikan data-data yang ada di Database.

Kuberikan Contoh, Suatu Misal anda punya Tabel Mahasiswa yang memiliki Beberapa Field. Sebut saja salah satu Fieldnya adalah nilai. Jika Anda Menggunakan AdoTabel, tentu untuk menghitung nilai rata-rata (Average), nilai terbesar (MAX), Total Nilai (SUM) anda akan sedikit kesulitan meskipun itu bisa saja dilakukan. Dengan AdoQuery, Anda dapat melukannya dengan mudah hanya dengan melakukan Perintah Query Seperti berikut (Anggap saja untuk menghitung nilai Terbesar pada Field nilai) :

Select MAX(nilai) from Mahasiswa  

Result dari Query diatas adalah (Hanya) Nilai Terbesar dari Tabel Mahasiswa. Simpel Bukan ?
Ada Juga saat dimana anda harus melakukan Filter data (Mengambil data Berdasarkan Parameter tertentu). Hal ini juga dapat anda lakukan dengan mudah menggunakan Query.

Bagaimana ? Sudah ada Pencerahan? Kalau belum saya kira anda harus belajar lagi tentang Query Database dan mencoba Komponen AdoQuery agar lebih Mafhum. Sukses Selalu Buat Anda. Wassalam :)

Penggunaan AT Command Untuk Cek Pulsa dan Kirim SMS


Penggunaan AT Command Untuk Cek Pulsa Modem dan Kirim SMS

Siapa Sih yang gak tahu SMS Gateway ?
Saat ini Sudah banyak Aplikasi SMS Gateway yang dikembang oleh beberapa Developer. sebut Saja Mas Rosihanari yang membangun Aplikasi SMS Gateway Berbasis Web, ada lagi King SMS dan Gili SMS yang di Develop Berbasis Aplikasi Desktop. Dengan Delphi, Anda juga dapat membuat aplikasi SMS gateway Sendiri. 

Yang Saya Tahu, ada Dua Opsi untuk membangun Aplikasi SMS Gateway ini. Pertama dengan Menggunakan Pihak Ketiga yaitu Gammu. Sudah banyak dikenal Oleh Orang dan sudah saya jelaskan juga pada postingan sebelumnya. Opsi Kedua adalah dengan menggunakan AT Command. Untuk dapat menjalankan perintah AT Command dengan Delphi, Saya Sendiri menggunakan Komponen Tambahan yaitu Library Comport. Anda dapat mendownloadnya disini.

Kemaren Iseng-Iseng Saya membuat Sebuah Aplikasi Sederhana yang dapat melakukan beberapa hal. Aplikasi ini sudah saya test dan berjalan dengan baik dengan Modem Huawei E1550 :

- Cek Pulsa dengan Menggunakan AT Command

- Aplikasi ini Dapat mendetect Port Modem anda Secara Otomatis.

- Dilengkapi Fungsi Encode dan Decode7Bit GSM Untuk Modem yang berjalan dengan Mode PDU (Procesing Data Unit)

- Kirim SMS (Menggunakan AT Command)

- Baca Inbox (Menggunakan AT Command)

- Terdapat Fungsi untuk Dialup dan Hangup Koneksi Internet Internet 

Buat kalian yang mau ngoprek, silahkan Download Source Codenya disini ! Jangan lupa untuk menginstall komponenya terlebih dahulu. 

Selamat Belajar dan Sukses Selalu Buat anda. :)

Jumat, 13 Desember 2013

Filter Input di Komponen Edit Delphi (Hanya Angka)

Terkadang kita perlu untuk memfilter Inputan dari User. Suatu misal hanya memperbolehkan menginputkan angka saja. Hal ini tentu saja untuk meminimalisir terjadinya Error pada program yang kita buat. Saran Saya, jangan terlalu percaya pada inputan User sebab terkadang bisa jadi seorang user Jahil sengaja menginputkan karakter aneh untuk menguji Action Handling Program anda. Lebih Lebih Jika anda membuat website. Tentu saja hal itu adalah Bug (Celah) untuk seorang Hacker.

Untuk Memfilter Inputan dari Edit Delphi, Silahkan Copas Code dibawah ini ke Event On Key Press Milik Komponen Edit Anda. Sebenarnya bisa juga diletakan di componen lain seperti Combobox dan Memo.
if not ( key in['0'..'9', #8, #13]) then
key:= #0 ;

Maksud Code diatas adalah Jika yang ditekan di Keyboard bukan angka 0 Sampai 9 maka Tekan Code ASCII 8 (Back Space) yang artinya adalah hapus kemudian Tekan Lagi Code ASSCII 13 (Enter).

Oke deh. Segitu aja ya dulu. lain kali kita sambung lagi. Udah ngantuk ni. mau bobok dulu. Semoga bermanfaat dan berhasil tentunya gan. Wassalam. :)

Fungsi Encode & Decode 7 Bit dengan Delphi

Fungsi Encode & Decode 7 Bit dengan Delphi

Jujur saja, saya tahu Istilah Encode dan Decode 7Bit ini setelah belajar Perintah-Perintah AT Command dengan Delphi. hehe

Jadi Ceritanya gini, kemaren waktu belajar AT Command kan ada utilitas untuk mengecek pulsa dengan perintah AT+CUSD=1,"*123#",15+#13#10. Sudahlah, Saya juga gak tahu apa maksudnya, yang jelas untuk mengecek saldo pulsa XL. haha :D

Yang membuat saya bingung, Tutorial yang saya lihat di Blog mas Saptaji padahal sudah saya ikuti dengan benar tapi kenapa Hasil Resultnya Berbeda? Mas Saptaji Berhasil sedangkan saya Resultnya selalu saja ERROR. Owalaaahh.. 2 hari saya galau gan.

Ternyata memang ada sebagian modem yang menggunakan mode PDU dengan format GSM7-bit atau yang lebih dikenal dengan nama septet (Kurang Lebih Seperti itulah). Alhasil, Sayapun mencari-cari tahu tentang Istilah Encode dan Decode 7Bit GSM ini dan kemudian mengirim ulang perintah USSD tersebut (*123#) dengan string yang sudah di Encode sehingga menjadi AT+CUSD=1,"AA986C3602",15+#13#10. Dan Tahukah anda ternyata hasilnya Sukses Berhasil Meskipun Resultnya berupa Teks yang masih di Encode. Sayapun bisa tidur dengan nyenyak. hehe

Buat kalian yang ingin mencoba fungsi encode dan decode 7 bit ini atau mungkin karena ada masalah yang sama dengan saya. silahkan download disini. Untuk Hasilnya Seperti gambar diatas. Selamat Mencoba gan. Semoga Sukses. :)

Kamis, 12 Desember 2013

SMSKU, Aplikasi SMS Gateway dengan Delphi

SMSKU, Aplikasi SMS Gateway dengan Delphi

Apa Kabar Kawan ? 
Sudah lama sekali rasanya gak posting di Blog ini. Semoga Kalian masih setia meskipun Blog ini Sudah jarang di Update mengingat Sekarang Saya lagi garap skripsi. Jadi Mohon di Maklumi saja. hehe

Oya, Kemaren kan saya sudah Sharing Source Code Aplikasi Sederhana SMS Gateway dengan Gammu + MySQL + Delphi. Masih Inget Gak ? Ketahuan deh Jarang Buka Delphi Tutor kalo gak tahu. wkwk. Cek disini gan kalo memang penasaran.

Kali Ini, Saya mau sharing lagi Software SMS Gateway yang saya buat (Masih dengan Gammu, MySQL dan Delphi Tentunya). Sudah Saya Tes dan berjalan dengan baik di modem Huawei E1550 dan Huawei E153. Software SMS ini saya beri nama SMSKU meskipun Sebenarnya ini adalah hasil modifikasi dari Source code yang saya sharing sebelumnya dengan menambahkan beberapa Fitur-Fitur Sebagai Berikut :

- Bisa SMS Auto Reply .
Jadi Misalkan Sobat males bales SMS atau lagi sibuk, Bisa aktifin Fitur ini. 

- Alert Pesan Masuk
Kalo ada SMS Masuk. nanti komputernya berdering. Ini Juga Sifatnya Optional (Bisa di aktifin bisa juga tidak)

- Cek Pulsa 

SMSKU, Aplikasi SMS Gateway dengan Delphi

SMSKU, Aplikasi SMS Gateway dengan Delphi

- Simpel dan Lebih Mudah. 
Ini dia pasti yang sobat cari. Yupz. Aplikasi ini Sudah saya Bundle menjadi 1 Paket Instalasi. jadi Konfigurasinya gak ribet lagi. Tinggal Klik aja di Interface Aplikasinya. Contohnya kayak gambar dibawah ini.

SMSKU, Aplikasi SMS Gateway dengan Delphi

- Shutdown Komputer
Woow.. Apa Lagi ini ? hehe
Ini adalah Fitur dimana Jika Anda Mengirim SMS ke Nomor Modem dengan Isi pesan shutdown -s Maka Program akan membaca itu sebagai perintah untuk me Shutdown komputer. 

- Phone Book (Saya Kira Anda Sudah Faham maksud saya) hehe

- SMS Ke Banyak Nomor (Group)
Tidak ada yang berubah kalau dengan Fitur ini. karena Source Code yang saya sharing sebelumnya Juga Support untuk ini. :D

Nah, Segitu Saja deh kayaknya penjelasan Fiturnya. Buat yang mau Nyoba, Silahkan Download Softwarenya disini ! Gratiss Seumur Hidup. hehe

Note :

1. Hanya Untuk Windows dengan Sistem Operasi 32 bit

2. Sebelum anda menginstal Softwarenya, Jika Service MySQL anda berjalan sebaiknya di stop terlebih dahulu 

3.  Jika Error Seperti gambar di bawah ini muncul saat anda melakukan Gammu Identify, Gammu Install dan Gammu Start Service, Itu artinya File msvcr71.dll belum ada di komputer anda. Silahkan Download disini kemudian Exstrack dan Copy ke C:\Windows\System32

Rabu, 04 Desember 2013

SUM Field Tabel Database di Delphi

Sum adalah sebuah Istilah yang digunakan untuk mentotal sebuah nilai. Anggap saja saya memiliki sebuah data dengan nilai sebagai berikut A = 100, B = 150, C = 200. Dengan SUM kita tidak perlu repot untuk menjumlahkan data tersebut satu persatu untuk mengetahui jumlah total nilai dari nilai data diatas. Anda tentu pernah melakukannya di Microsoft Excel Bukan ?

Hal ini dapat kita terapkan untuk menghitung total nilai pada sebuah Field pada tabel database. Anggap Saja Saya Memiliki Sebuah tabel dengan Field-Field Sebagai berikut

SUM Field Tabel Database di Delphi

Pada tabel diatas, saya memiliki sebuah Field nilai yang ingin saya hitung totalnya. Bagaimana caranya ?

1. Pastikan Koneksi Database sudah OK
2. Tambahkan Sebuah Komponen AdoQuery pada Form anda kemudian atur property-nya

- Koneksi = Misal AdoConnection
- Query = select sum(nilai) from nama_tabel
- Active = True

3. Tambahkan Sebuah Komponen Datasource lalu atur property-nya

- Dataset = AdoQuery yang telah anda tambahkan pada step 2

4. Tambahkan Sebuah Komponen DBEdit kemudian atur property-nya

- Datasource = Datasource yang telah anda tambahkan pada step 3
- Data Field = Pilih Saja yang ada karena tidak ada pilihan yang lain. hehe

SUM Field Tabel Database di Delphi

Senin, 02 Desember 2013

Masalah Form Setelah Show Yang Kedua Delphi

Untuk Memanggil Form yang lain. Coding yang umum digunakan adalah NamaForm.Show; atau NamaForm.Showmodal; kedua Coding tersebut memiliki maksud yang sama yaitu untuk memanggil form (saya tidak akan membahas perbedaannya).

Tentu ada sedikit perbedaan yang kita lihat (Antara Munculnya Form pertama dan Munculnya Form Kedua kali) jika kita menggunakan coding tersebut untuk memanggil form. Yang saya lihat adalah pada saat munculnya form kedua terlihat tidak se-Fresh pada saat Show Pertama. Saya juga gak tahu kenapa. tapi tenang, saya sudah punya solisinya untuk anda. hehe
var
TempFrm: TForm_Yang_Akan_di_Show;
begin
TempFrm := TForm_Yang_Akan_di_Show.Create(nil);
TempFrm.Show;
end;

Ganti Tulisan _yang_akan_di_show dengan Nama Form yang akan Anda Show. Hasil yang akan anda peroleh adalah Berapa kalipun Form yang akan di show akan terlihat sama dengan saat pertama kali di show. Selamat Mencoba. 

Menambahkan Komponen Ke Form Saat Program Berjalan (Run Time)

Siapa Bilang Generate Komponen Ke Form Pada Saat Program Berjalan / Run Time itu tidak bisa. Jika anda adalah salah seorang yang berkata demikian maka saya yakin anda tidak pernah mencobanya atau mungkin anda tidak tahu caranya. jika demikian mari kita coba dengan cara yang pernah saya coba.

Menambahkan Komponen Ke Form Anda Pada Saat Program dijalankan alias Run Time. Hemmm.. Sekilas akan terdengar sulit bahkan bisa dikatakan agak sedikit berlebihan meskipun pada kenyataannya hal itu bisa kita lakukan. hehe 

Okedeh, Biar gak banyak basa basi, Silahkan Buka Delphi anda dan tambahkan sebuah Button didalam form anda dan ganti captionnya terserah anda. Button ini akan menggenerate beberapa komponen edit dan button setelah di klik. sudah faham maksud saya ? Jika iya. Klik dua kali Button yang telah anda tambahkan tadi kemudian letakan kode berikut
var
B: TButton;
E : TEdit;
i: Integer;
begin
for i := 0 to 9 do
begin
B := TButton.Create(Self);
E := TEdit.Create(self);
B.Caption := Format('Button %d', [i]);
E.Parent := Self;
B.Parent := Self;
E.Height := 33;
B.Height := 23;
B.Width := 100;
E.Left := 130;
B.Left := 10;
E.Top := 10 + i * 20;
B.Top := 10 + i * 25;
end;
end;

Coba Jalankan Program anda. kemudian Klik Buttonya. Kalau saya hasilnya seperti berikut.

Menambahkan Komponen Ke Form Saat Program Berjalan (Run Time)

Menambahkan Komponen Ke Form Saat Program Berjalan (Run Time)

Aplikasi Chat Sederhana dengan Delphi

Chating merupakan aktivitas yang bisa dikatakan cukup menyenangkan. saat ini sudah banyak yang mendevelop aplikasi chating untuk smartphone semisal WeChat, Line dan Semacamnya Bahkan Saat ini hampir semua Jejaring Sosial sudah ada layanan Chatingnya.

Oke deh. biar basa basinya gak kepanjangan jadi langsung aja saya sharing Source Code Aplikasi Chating yang dibuat dengan Delphi. Silahkan Download disini. Sebagai bahan percobaan sudah saya uji coba di virtualbox dan berjalan lancar. Anda dapat mencobanya pada jaringan peer to peer atau jaringan Local Area Network anda.

Sebagai Tambahan. Aplikasi Sederhana ini bukan saya yang membuat. Murni Hasil Download. tapi saya lupa Download dimana soalnya sudah lumayan lama. Jadi Jangan tanyakan saya masalah codingnya. soalnya saya juga gak tahu. hahaha. Berikut Contoh Screenshoot Ujicobanya.

Ini Gambar dari Komputer A 

Aplikasi Chat Sederhana dengan Delphi

Ini Gambar dari Komputer B (Virtual Box)

Aplikasi Chat Sederhana dengan Delphi