Begin Di dasari oleh kebutuhan membuat Aplikasi yang berhubungan dengan konfigurasi database, hal tersebut yang mendorongku untuk membuat Aplikasi ini. hitung hitung berbagi ilmu yang mudah-mudahan berguna. Oke, kadang dalam kebutuhan tertentu kita perlu menggunakan file config seperti biasanya kalo di membuat web dengan php biasanya ada saja file config.php yang berisi konfigurasi database serta user pada database bila diterapkan dalam Delphi tentunya bisa saja karena adanya Fasilitas yang diberikan oleh Delphi yaitu Class TIniFile. Tapi kan ga lucu bila file konfigurasi tersebut terbuka tanpa ekripsi, apalagi dalam case ini kita menggunakan Komponen Zeos sebagai jembatan akses ke dalam Database MySQL yang tentunya membutuhkan parameter server,user,password, database yah ceritanya untuk security Sederhana menggunakan file konfigurasi.
Di dasari oleh kebutuhan membuat Aplikasi yang berhubungan dengan konfigurasi database, hal tersebut yang mendorongku untuk membuat Aplikasi ini. hitung hitung berbagi ilmu yang mudah-mudahan berguna.
Oke, kadang dalam kebutuhan tertentu kita perlu menggunakan file config seperti biasanya kalo di membuat web dengan php biasanya ada saja file config.php yang berisi konfigurasi database serta user pada database bila diterapkan dalam Delphi tentunya bisa saja karena adanya Fasilitas yang diberikan oleh Delphi yaitu Class TIniFile. Tapi kan ga lucu bila file konfigurasi tersebut terbuka tanpa ekripsi, apalagi dalam case ini kita menggunakan Komponen Zeos sebagai jembatan akses ke dalam Database MySQL yang tentunya membutuhkan parameter server,user,password, database yah ceritanya untuk security Sederhana menggunakan file konfigurasi.
Algoritmanya begini
1. Baca file konfigurasi.ini
2. tentukan parameter yang dibutuhkan oleh ZeosConnection untuk melakukan koneksi database parameternya yaitu : user,host,database dan password MySQL nya
3. jika berhasil konekkan databasenya
Langsung saja Buka Delphi anda dalam dalam uji coba saya menggunakan Delphi 7 tentunya tidak begitu banyak perbedaan pada delphi dengan Delphi versi atasnya. Asumsinya di dalam
Delphi kita telah terinstall Komponen Zeos kalo ga ada yah download dulu di sini
1. Buat Aplikasi baru : File -> New -> Application;
2. Agar manajemen Komponen lebih rapi tambahkan lagi Modul : File -> New -> Data Modul;
3. Ubah nama Form1 menjadi FormKontak.
4. Simpan unit1.pas dengan nama unUtama.pas dan unit2.pas dengan nama unDM.pas
5. Di dalam coding unUtama tepatnya di bawah baris implementation tambahkan uses unDM ; seperti di bawah ini
var
FormKontak: TFormKontak;
implementation
uses unDM;
{$R *.dfm}
6. Letakan Komponen ini pada Data Modul
* ZConnection ada di Tab Zeos Acces -> ubah Nama=koneksi, protocol sesuaikan dengan Veris MySQL yg kita gunakan aku menggunakan MySQL 5 property yang lainnya biarkan apa adanya
* ZQuery ada di Tab Zeos Acces -> ubah Namanya Menjadi -> qryKontak karena query itu untuk menampilkan data Kontak (sebenarnya terserah saja masalah penamaan cari yg mudah saja), Ubah property Connection menjadi koneksi
* Data Source ada di Tab Data Acces -> Nama = DSKontak, isi property DataSet ke qryKontak
untuk menampilkan data kita membutuhkan DBGrid ada di Tab Data Control kemudian letakaan Komponen DBGrid di dalam FormKontak ubah nama DBGrid1 menjadi DBGridKontak isi DataSource dengan DM.DSKontak
Ups klo begitu untuk mengisi data file konfiguras perlu ada Decripsi dong tenang aja aku juga Sertakan File untuk Membuat file konfigurasi.ini maaf bila koding nya masih berhamburan sana sini tinggal dirapikan saja misalnya file unit untuk encripsi_dekripsi di pisah jadi mudah untuk digunakan kembali tinggal kreasi kita saja terus di buat cek database konfigurasi misalnya klo tidak bisa konek jangan buat file konfigurasi.ini sekali lagi contoh ini sangat simple dan banyak celah kelemahannya masih bisa dikembangkan menggunakan Algoritma md5 misalnya harapanku yang baca bisa lebih mengembangkannya kalo aku sendiri biasanya file nya bukan lagi file.ini tapi file binary yah namanya juga belajar.
Let’s go to code
//Unit file Data Modul
Maaf penjelasannya terlalu singkat karena memang di kerjakan secara singkat saja daripada di simpan di dalam uneg-uneg ngabisin space di kepalaku aja, jadi mending di bagi-bagikan ini link downloadnya di sini nitip di web orang ya
Di dasari oleh kebutuhan membuat Aplikasi yang berhubungan dengan konfigurasi database, hal tersebut yang mendorongku untuk membuat Aplikasi ini. hitung hitung berbagi ilmu yang mudah-mudahan berguna.
Oke, kadang dalam kebutuhan tertentu kita perlu menggunakan file config seperti biasanya kalo di membuat web dengan php biasanya ada saja file config.php yang berisi konfigurasi database serta user pada database bila diterapkan dalam Delphi tentunya bisa saja karena adanya Fasilitas yang diberikan oleh Delphi yaitu Class TIniFile. Tapi kan ga lucu bila file konfigurasi tersebut terbuka tanpa ekripsi, apalagi dalam case ini kita menggunakan Komponen Zeos sebagai jembatan akses ke dalam Database MySQL yang tentunya membutuhkan parameter server,user,password, database yah ceritanya untuk security Sederhana menggunakan file konfigurasi.
Algoritmanya begini
1. Baca file konfigurasi.ini
2. tentukan parameter yang dibutuhkan oleh ZeosConnection untuk melakukan koneksi database parameternya yaitu : user,host,database dan password MySQL nya
3. jika berhasil konekkan databasenya
Langsung saja Buka Delphi anda dalam dalam uji coba saya menggunakan Delphi 7 tentunya tidak begitu banyak perbedaan pada delphi dengan Delphi versi atasnya. Asumsinya di dalam
Delphi kita telah terinstall Komponen Zeos kalo ga ada yah download dulu di sini
1. Buat Aplikasi baru : File -> New -> Application;
2. Agar manajemen Komponen lebih rapi tambahkan lagi Modul : File -> New -> Data Modul;
3. Ubah nama Form1 menjadi FormKontak.
4. Simpan unit1.pas dengan nama unUtama.pas dan unit2.pas dengan nama unDM.pas
5. Di dalam coding unUtama tepatnya di bawah baris implementation tambahkan uses unDM ; seperti di bawah ini
var
FormKontak: TFormKontak;
implementation
uses unDM;
{$R *.dfm}
6. Letakan Komponen ini pada Data Modul
* ZConnection ada di Tab Zeos Acces -> ubah Nama=koneksi, protocol sesuaikan dengan Veris MySQL yg kita gunakan aku menggunakan MySQL 5 property yang lainnya biarkan apa adanya
* ZQuery ada di Tab Zeos Acces -> ubah Namanya Menjadi -> qryKontak karena query itu untuk menampilkan data Kontak (sebenarnya terserah saja masalah penamaan cari yg mudah saja), Ubah property Connection menjadi koneksi
* Data Source ada di Tab Data Acces -> Nama = DSKontak, isi property DataSet ke qryKontak
untuk menampilkan data kita membutuhkan DBGrid ada di Tab Data Control kemudian letakaan Komponen DBGrid di dalam FormKontak ubah nama DBGrid1 menjadi DBGridKontak isi DataSource dengan DM.DSKontak
Ups klo begitu untuk mengisi data file konfiguras perlu ada Decripsi dong tenang aja aku juga Sertakan File untuk Membuat file konfigurasi.ini maaf bila koding nya masih berhamburan sana sini tinggal dirapikan saja misalnya file unit untuk encripsi_dekripsi di pisah jadi mudah untuk digunakan kembali tinggal kreasi kita saja terus di buat cek database konfigurasi misalnya klo tidak bisa konek jangan buat file konfigurasi.ini sekali lagi contoh ini sangat simple dan banyak celah kelemahannya masih bisa dikembangkan menggunakan Algoritma md5 misalnya harapanku yang baca bisa lebih mengembangkannya kalo aku sendiri biasanya file nya bukan lagi file.ini tapi file binary yah namanya juga belajar.
Let’s go to code
code : pascal
unit unUtama; interface uses � Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ZConnection, Grids, DBGrids; type � TFormKontak = class(TForm) � DBGridKontak: TDBGrid; � procedure FormCreate(Sender: TObject); � private � { Private declarations } � public � { Public declarations } � end; var � FormKontak: TFormKontak; implementation � uses unDM; � {$R *.dfm} � procedure TFormKontak.FormCreate(Sender: TObject); � var sql:WideString ; � begin � sql:= 'SELECT c.id_kontak AS id,CONCAT(c.nm_depan," ",c.nm_belakang) ' � 'AS "Nama Lengkap",c.alamat AS Alamat,c.email AS Email,' � 'b.nm_grup AS Grup FROM kontak c ' � 'INNER JOIN grup b ON b.id_grup=c.id_grup'; � DM.isiQry(DM.qryKontak,sql); � end; � end.Parsed in 0.007 seconds, using GeSHi
//Unit file Data Modul
code : pascal
unit unDM; interface uses � SysUtils, Classes, DB, ZAbstractRODataset, ZAbstractDataset, ZDataset, � ZConnection,IniFiles,Forms,Dialogs; type � TDM = class(TDataModule) � koneksi: TZConnection; � qryKontak: TZQuery; � DSKontak: TDataSource; � function KonekDB(serv,usr,pass,db:string):Boolean; � procedure DataModuleCreate(Sender: TObject); � private � flConfig:TIniFile; � function Encrypt(const s: String; CryptInt: Integer): String; � function Decrypt(const s: String; CryptInt: Integer): String; � { Private declarations } � public � procedure isiQry(qry:TZQuery;SqlStr:string); � { Public declarations } � end; var � DM: TDM; � const � c1 = 52845; � c2 = 22719; implementation {$R *.dfm} � function TDM.Encrypt(const s: String; CryptInt: Integer): String; � var � i: integer; � s2: string; � begin � if not (Length(s) = 0) then � for i := 1 to Length(s) do � s2 := s2 Chr(Ord(s[i]) CrypTint); � Result := s2; � end; function TDM.Decrypt(const s: String; CryptInt: Integer): String; � var � i: integer; � s2: string; � begin � if not (Length(s) = 0) then � for i := 1 to Length(s) do � s2 := s2 Chr(Ord(s[i]) - cryptint); � Result := s2; � end; function TDM.KonekDB(serv,usr,pass,db:string):Boolean; � var alm:string; � begin � Result := True; � alm:= ExtractFilePath(Application.ExeName); � flConfig := TINIFile.Create(alm '\konfigurasi.ini'); � try � with koneksi do � begin � HostName:= Decrypt(flConfig.ReadString('data','host',serv),72); � User := Decrypt(flConfig.ReadString('data','user',usr),72); � Password := Decrypt(flConfig.ReadString('data','pass',pass),72); � Database := Decrypt(flConfig.ReadString('data','db',usr),72);; � Connected; � end; � except � Application.MessageBox('Gagal Melakukan Koneksi Database','Warning'); � end; � end; � procedure TDM.isiQry(qry:TZQuery;SqlStr:string); � begin � with qry do � begin � SQL.Clear; � SQL.Text:=sqlSTR; � Open; � end; � end; procedure TDM.DataModuleCreate(Sender: TObject); � begin � KonekDB('localhost','root','root','fendi_db'); � end; end.Parsed in 0.022 seconds, using GeSHi
0 komentar:
Posting Komentar