Pada kesempatan kali ini saya ingin berbagi sedikit tentang cara instalasi Firebird (pada contoh ini Firebird 4.0) secara manual sehubungan dengan sudah ada instalasi Firebird sebelumnya, sebagaimana kita ketahui bahwa instalasi standar selalu menindih service Firebird sebelumnya.
Instalasi manual ini diperlukan juga manakala kita ingin menginstall lebih dari satu versi Firebird dalam satu komputer.
Syarat untuk dapat install lebih satu versi Firebird dalam komputer yang sama adalah membuat unik point-point berikut, misal pada Firebird 4.0 saya atur sbb :
Folder = c:\fb40
Port = 3065
IPCName = FIREBIRD40
Service Name = fb40
Langsung saja kita mulai dengan melakukan download master Firebirdnya,
kita bisa pilih yang 32bit atau 64bit, jika kita install yang versi 64 bit dan aplikasi kita (project Delphi misalnya) yang dicompile dengan win32, maka kita perlu download juga paket 32 bit untuk mengambil beberapa client library yang mana kita perlukan.
Setelah kita download master Firebird dalam bentuk zip diatas, extract semua isinya kedalam satu folder yang telah kita siapkan misalnya c:\fb40,
untuk 64bit ada tambahan beberapa file dari paket 32bit yang harus diextract kedalam folder c:\fb40\Wow64 yaitu fbclient.dll, firebird.msg, msvcp140.dll, vcruntime140.dll dan zlib1.dll,
jika kita ingin mendistribusi aplikasi yang mengakses database firebird 4 maka file-file inilah yang harus disertakan.
Setelah semua file diextract pada folder yang telah disiapkan, tahap selanjutnya yaitu membuat user dan password SYSDBA, untuk itu kita perlu masuk command prompt dan “Run as Administrator“, perlu diketahui bahwa sejak Firebird 3.0 tidak lagi didistribusikan dengan menggunakan password standar “masterkey“, dan bahkan distribusikan tanpa user apapun. Kita harus membuat user SYSDBA sebelum server dapat dijalakan, untuk password bebas tidak harus masterkey, password boleh panjang tidak lagi diakui 8 karakter seperti Firebird 2.5.
Pertama kita masuk utility ISQL dengan mengetikkan perintah isql -u sysdba employee (employee adalah database demo dari firebird, karena untuk membuat user diharuskan konek ke database lokal secara embeded).
Selanjutnya kita buat user SYSDBA dengan cara create user SYSDBA password ‘masterkey’;
Seperti yang saya sampaikan sebelumnya password tidak harus masterkey tapi bebas, malah disarankan membuat password yang mudah diingat tapi susah ditebak orang lain.
Setelah membuat user SYSDBA tahapan selanjutnya adalah modifikasi konfigurasi (firebird.conf) agar tidak bentrok dengan Firebird lain jika ada, untuk ini kita gunakan notepad, namun perlu diingat harus jalan dibawah kendali “Run as Administrator“.
Beberapa entry yang harus kita tambahkan (letakkan pada bagian bawah sendiri), ada beberapa setting namun minimal ada 2 yang paling penting (tanda panah pada gambar).
Pertama .. RemoteServicePort = 3065, ini untuk menentukan port mana yang mau digunakan Firebird server nantinya, seperti kita ketahui bahwa default port untuk Interbase/Firebird adalah 3050, maka dari itu kita bikin beda agar tidak bentrok, port ini bebas selama tidak dipakai oleh yang lain, contoh punya saya 3064 untuk Firebird 3.0, 3065 untuk Firebird 4.0 dan 3066 untuk Firebird 5.0.
Kedua .. IPCName, ini harus unik, defaultnya Firebird saja.
Ketiga .. yang mungkin perlu adalah DataTypeCompatibility = 3.0, perlu diketahui bahwa Firebird 4.0 sudah mendukung operasi numeric diatas 18 digit, jika kita melakukan operasi perkalian 2 buah numeric(18) maka akan terjadi error jika aplikasi client kita tidak mendukung, dengan setting diatas maka masalah tersebut tersolusikan.
Setelah pengaturan konfigurasi tahapan selanjutnya adalah install Firebird Service.
fb40 adalah nama service, bebas tapi harus unik.
Setelah install Firebird service sukses dan tidak ada error, berarti tahapan instalasi Firebird 4.0 secara manual telah selesai.
Demikian semoga sedikit ilmu pengalaman ini bermanfaat bagi kita semua.
Bismillahirrohmanirrohim. Assalamu’alaikum wr wb. Delphi versi lebih baru hadir dengan beberapa kemudahan dan kelebihan diantara beberapa komponen yang sebelumnya harus menambahkan secara manual yang mana hal tersebut terkadang tidak mudah bagi pemula, saat ini hanya dengan menginstall Delphi 10.3 Rio Community Edition kita sudah dapat membuat aplikasi yang bagus tanpa repot-repot menambahkan komponen pihak ketiga. Namun dibalik kemudahan dan kelebihannya disisi lain ada yang membuat sedikit kurang yaitu ukuran EXEnya yang lumayan gendut, beberapa teman di media sosial yang sebelumnya menggunakan Delphi 7 keluhannya “bisa gak sih ukuran EXEnya diperkecil” saat mencoba menggunakan Delphi versi yang lebih baru. Pada artikel kali ini saya akan mencoba menjawab keluhan teman-teman (termasuk saya juga dulu). Kalo diperkecil segede EXEnya Delphi 7 sepertinya sulit, tapi kalo sedikit dirampingkan bisa dengan langkah-langkah dibawah ini. Ada beberapa langkah untuk membuat ukuran EXE menjadi lebih kecil diantaranya : 1. Merubah konfigurasi menjadi Release (Defaultnya Debug). 2. Membuang Informasi RTTI. 3. Mengkompress EXE yang sudah jadi menggunakan software UPX. Perbandingan ukuran EXE sebelum dan sesudah melewati proses diatas seperti gambar berikut.
Perbandingan ukuran EXE
Langsung saja kita mulai, langkah pertama yaitu merubah konfigurasi menjadi Release.
Klik 2x pada “Release” untuk merubah
Selanjutnya membuang informasi RTTI, yaitu dengan menambahkan kode berikut pada Project Source.
Pilih menu Project-View Source
Yang terakhir mengkompres EXE yang sudah jadi dengan menggunakan UPX. Sebelumnya download dulu software upxnya jika belum punya pada link berikut https://github.com/upx/upx/releases/download/v3.95/upx-3.95-win32.zip Yang dibutuhkan hanya upx.exe, copykan upx.exe ke lokasi yang terjangkau path misalnya c:\windows. Cara menggunakannya cukup mudah seperti gambar berikut.
parameter -9 untuk kompresi maksimum
Kalo diinginkan upx jalan secara otomatis setiap selesai compile bisa juga yaitu dengan mengaturnya pada Build Event.
Project Option – Build events
Langkah-langkah diatas boleh dilakukan salah satu atau semuanya, namun yang perlu diperhatikan bahwa langkah tersebut diatas hanya berlaku untuk platform windows (VCL & Firemonkey). Demikian sedikit ilmu yang bisa saya bagi pada kesempatan kali ini, semoga bermanfaat. Wassalamu’alaikum Wr Wb.
Pada kesempatan kali ini saya akan berbagi tentang langkah-langkah mudah yang diperlukan untuk develop atau membangun aplikasi android menggunakan RAD Studio 10.3 Rio Comunity Edition.
Langkap pertama yang diperlukan dan wajib tentunya harus sudah terinstall RAD Studio 10.3 Rio Comunity Edition, silahkan download pada link berikut jika belum punya.
Untuk cara download, regitrasi dan instalasi tidak saya bahas disini. Pada postingan kali ini saya hanya membahas langkah-langkah yang diperlukan sehinggan kita dapat membangun aplikasi android menggunakan RAD Studio 10.3 Rio Comunity Edition.
Untuk menyingkat waktu langsung saja, berikut ini langkah-langkahnya dalam bentuk visual/gambar.
Dari menu “Tools” pilih “Manage Platform”Pastikan centang “Delphi Android Community”Centang pada “Java Development .. ” dan “Android SDK …”Jalankan “SDK Manager”Download dengan menandai (centang), minimal seperti gambar diatas, yang lain gak usah
Demikian langkah singkat untuk menyiapkan RAD Studio 10.3 Rio agar mendukung develop aplikasi android.
Assalamu’alaikum Wr Wb. Bismillahirrohmanirrohim. Dalam membangun sebuah aplikasi terkadang kita menginginkan sebuah komponen mempunyai fungsi lebih dari yang ada, mungkin kita bisa menggabungkan beberapa komponen atau memainkan koding tertentu agar dapat memenuhi yang kita butuhkan, namun apabila dalam project tersebut terdapat banyak sekali komponen yang dimaksud hal tersebut cukup menyulitkan juga. Pada kesempatan kali ini saya akan berbagi tutorial cara sederhana untuk menambahkan kemampuan lebih sesuai yang kita butuhkan pada sebuah komponen vcl. Langsung saja, caranya dapat dilihat pada video berikut.
Contoh source code dapat di download pada Link berikut
Terinspirasi dari sebuah pertanyaan pada grup facebook tentang bagaimana cara membuat atau menambahkan tulisan pada progressbar, maka pada kesempatan kali ini saya ingin berbagi ilmu cara menambahkan property Text pada TProgressBar bawaan Delphi sehingga dapat menampilkan progress seperti gambar diatas.
Memang banyak komponen pihak ketiga yang sudah mendukung untuk ini, namun kali ini kita akan melakukannya dengan menggunkan komponen bawaan delphi.
Saya rasa untuk pengantar tidak perlu panjang lebar, kita langsung saja ke source codenya.
Bagi yang males menulis kodenya bisa langsung download contoh aplikasinya pada link dibawah.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, ExtCtrls, StdCtrls;
type
TProgressBar = class(ComCtrls.TProgressBar)
private
FText: string;
protected
procedure WMPaint(var Message: TWMPaint); message WM_PAINT;
published
property Text:string read FText write FText;
end;
TForm1 = class(TForm)
ProgressBar1: TProgressBar;
Timer1: TTimer;
Label1: TLabel;
procedure FormCreate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
with ProgressBar1 do
begin
Font.Color:=clWhite;
Font.Style:=[fsBold];
Text:='Posisi 0%';
Color:=clNavy;
end;
end;
{ TProgressBar }
procedure TProgressBar.WMPaint(var Message: TWMPaint);
var
dc: HDC;
OldBK: Integer;
OldFont: HGDIOBJ;
OldColor: Cardinal;
rc: TRect;
begin
rc:=ClientRect; // ambil posisi canvas
rc.Left:=rc.Left+1;
rc.Top:=rc.Top+1;
rc.Right:=rc.Right-1;
rc.Bottom:=rc.Bottom-1;
dc:=GetWindowDC(Handle); // ambil handle canvas
FillRect(dc,rc,Brush.Handle); // kosongkan area canvas
Inherited; // Tampilkan progress asli
if FText<>'' then // Jika property Text tidak kosong
begin
OldBK:=SetBkMode(dc,TRANSPARENT); // simpan mode background
OldFont:=SelectObject(dc,Font.Handle); // simpan font
OldColor:=SetTextColor(dc,Font.Color); // simpan warna
DrawText(dc,PAnsiChar(FText),Length(FText),rc,DT_SINGLELINE or DT_CENTER or DT_VCENTER); // tulis teks
SetTextColor(dc,OldColor); // kembalikan warna
SelectObject(dc,OldFont); // kembalikan font
SetBkMode(dc,OldBK); // kembalikan mode background
ReleaseDC(Handle,dc); // kembalikan handle canvas
end;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
with ProgressBar1 do
begin
Position:=Position+1;
if Position>=Max then
Position:=0;
Text:=Format('Posisi %d%%',[Position]);
end;
Application.ProcessMessages;
end;
end.
Assalamu’alaikum Wa Rohmatullohi Wa Barokatuh.
Taqobalallahu Minna Waminkum Siyamanna Wasiyamakum Taqobal Yaa Kariim.
Minal Aidin wal Faizin, Mohon maaf Lahir dan Bathin.
Selamat Hari Raya Idul Fitri 1436H.
Pada kesempatan kali ini saya ingin berbagi sedikit tips sederhana, yaitu bagaimana kita memperlakukan sebagian atau semua komponen TEdit agar hanya bisa diisi dengan angka dengan acuan nama komponennya, secara otomatis tanpa memberikan pengaturan atau koding satu persatu (yang dilakukan hanya cara penamaan komponen saja).
Untuk membedakan mana komponen TEdit yang hanya bisa diisi dengan angka dan mana yang bisa diisi secara normal, kita buat sebuah aturan yaitu semua komponen TEdit yang namanya dimulai dengan huruf “en” (huruf kecil), maka dia hanya bisa diisi dengan angka, sementara untuk nama yang lain dia akan berfungsi secara normal.
Langsung saja, caranya cukup sederhana yaitu dengan meng-override procedure KeyPress milik TEdit …
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
// Tambahkan ini
TEdit = class(StdCtrls.TEdit)
procedure KeyPress(var Key: Char); override;
end;
// Sampai sini
TForm1 = class(TForm)
enEdit1: TEdit;
Edit2: TEdit;
enEdit3: TEdit;
Edit4: TEdit;
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{ TEdit }
procedure TEdit.KeyPress(var Key: Char);
begin
inherited;
if (Pos('en',Name)=1) and // Jika nama diawali dengan "en"
(Pos(Key,'0123456789-'#8#13+DecimalSeparator)=0) then
Key:=#0; // hanya menerima angka dan pemisah desimal
end;
end.
Saat ini hampir semua Laptop maupun ponsel, bahkan yang harganya murahpun sudah banyak yang dilengkapi dengan koneksi Wifi.
Berbagi koneksi internet melalui Wifi tentunya bisa menjadi solusi untuk penggunakan koneksi internet di rumah
bersama-sama satu keluarga hanya dengan berlangganan satu paket internet.
Untuk keperluan ini kita memanfaat “Microsoft Virtual Wifi Miniport” yang ada di Windows 7 keatas.
Caranya cukup sederhana, hanya beberapa langkah :
1. membuat virtual Access point dengan tool netsh, dengan perintah sbb : netsh wlan set hostednetwork mode=allow ssid=”nama access point” key=”kata kunci”
2. memsharing koneksi modem ke adapter “Microsoft Virtual Wifi Miniport”
3. mengaktifkan dengan perintah : netsh wlan start hostednetwork
Dikemudian hari jika ingin berbagi koneksi internet via jaringan wifi hanya perlu melakukan langkah ke-3, sedangkan langkah 1-2 hanya dilakukan sekali saja.
Assalamu’alaikum Wr Wb,
Beberapa waktu yang lalu saya pernah berbagi Aplikasi RealTime Search menggunakan database Interbase di media sosial Facebook https://www.facebook.com/notes/komunitas-programmer-delphi-dan-interbase-indonesia/contoh-aplikasi-realtime-search-menggunakan-interbase/480900875287982.
Kali ini saya ingin berbagi aplikasi yang sama dengan menggunakan database Firebird dengan beberapa perbaikan yaitu dengan menambahkan beberapa komentar di source code sehingga lebih mudah di pelajari.
Apa fungsi aplikasi ini, tentunya sudah banyak yang tahu yaitu sebuah aplikasi yang secara otomatis akan melakukan pencarian setelah kita mengetikkan beberapa huruf tanpa menunggu kita menekan enter atau klik button.
Aplikasi ini saya buat menggunakan Turbo Delphi (Delphi 2006) dan insya Alloh tidak masalah dibuka menggunakan Delphi versi lain.
Komponen yang digunakan pada aplikasi ini adalah IBX (Interbase) bawaan delphi dan Alpha Skin.
Untuk databasenya menggunakan Firebird 2.54 yang bisa didownload gratis di situs resminya ( http://www.firebirdsql.org/en/firebird-2-5-4/ ) bila belum punya.
Untuk yang belum punya Firebird dan belum ingin menginstall Firebird bisa mencoba Firebird versi Embeded (tanpa install).
Oke dah, langsung saja sedot aplikasinya di https://app.box.com/s/5oi1saxu1ob7qo7a4nwmfbddsxh37470
Untuk versi FB Embeded silahkan download https://app.box.com/s/l58u0a18hp2gy8rxy44xn50djzlf5tfp dan copykan menjadi satu folder dengan aplikasinya.
Demikian semoga bermanfaat.
Bila ada kesulitan bisa ditulis dikolom komentar atau diposting ke grup Komunitas programmer Delphi dan Interbase Indonesia
Lama tidak berbagi, kali ini saya ingin berbagi sedikit yang saya ketahui yaitu cara menginisialisasi manajemen user perdatabase pada Firebird 3.0.
Pada Interbase kita mengenal istilah EUA (Embedded User Authentication) dimana manajemen user (daftar user yang berhak mengakses database) dapat diatur menyatu didalam database, tidak lagi nempel pada server. Sehingga masing-masing database mempunyai user sendiri-sendiri.
Pada Firebird sebelum 3.0, manajemen user disimpan dalam server (pada file security2.fdb), ini agak merepotkan jika ada banyak aplikasi yang mengakses database yang berbeda, mungkin itulah sebabnya umumnya aplikasi yang kita jumpai sangat jarang yang menggunakan hak akses bawaan, sebagai gantinya mereka membuat sendiri table user untuk mengatur hak akses.
Pada Firebird 3.0 selain menggunakan manajemen user default yaitu menempel pada server kita diberikan alternatif untuk menyimpan manajemen user pada database file ataupun database itu sendiri (mirip dengan EUA pada Interbase).
Kalau dibandingkan dengan EUA pada Interbase, manajemen user perdatabase ini masih mempunyai kelemahan pada sisi kelemahan yaitu karena harus didaftarkan dulu di file databases.conf.
Pada EUA seseorang yang menemukan (terlalu kasar kalo disebut mencuri), praktis tidak dapat membuka database kalo tidak tahu passwordnya, sedangkan pada security perdatabase ala firebird ini database tetap bisa dibuka kalo tidak didaftarkan (unreg) pada database.conf.
Ibarat “tiada akar arangpun jadi”, dengan kelemahan diatas bukan berarti kita tidak dapat mengamankan database kita jika menggunakan Firebird.
Database akan aman selama orang yang tidak berwenang tidak dapat menjangkau secara fisik, bagaimana caranya?
Letakkan database pada partisi NTFS dan berikan hak baca/tulis selain system, lindungi server dengan firewall dan matikan filesharing terutama pada folder tempat database tersebut berada.
Banyak sekali keutungan jika kita menggunakan manajemen user bawaan database dibanding dengan membuat table user akal-akalan, diantaranya :
– Setiap user akan hanya dapat melakukan aktifitas ke database sesuai hak yang diberikan baik melalui aplikasi yang kita buat maupun menggunakan tool lain.
Dengan menggunakan table user akal-akalan ada 2 kemungkinan bila seorang user akan mengakses database tidak melalui aplikasi yaitu tidak bisa masuk sama sekali atau bisa masuk dengan bebas keseluruh area didalam database walaupun dia tidak mempunyai wewenang dalam aplikasi.
Namun semua kembali kepada anda, apa yang kita pakai tergantung selera masing-masing, apa yang menurut saya baik belum tentu menurut orang lain baik, apa yang menurut saya mudah belum tentu menurut orang lain mudah, begitu juga sebaliknya.
Okelah segini aja prakatanya, lebih jelasnya silahkan lihat pada gambar dibawah ini.
Semoga bermanfaat.
Bismillahirrohmanirrohim,
Assalamu’alaikum Wr Wb.
Sekitar 2 tahun (2012) yang lalu saya pernah menulis artikel “Export DBGrid ke Microsoft Excel” di grup facebook
(https://www.facebook.com/notes/komunitas-programmer-delphi-dan-interbase-indonesia/export-dbgrid-ke-microsoft-excel/390918654286205).
Alhamdulillah ternyata banyak yang tertarik dengan artikel tersebut,
unit tersebut telah didownload 457 kali pada saat postingan ini ditulis.
Kali ini saya tidak membahas tentang mengexport DBGrid/database ke Microsoft Excel namun hanya melakukan perbaikan/update pada unit yang ada dengan ditambahkan dokumentasi singkat dan contoh program.
Unit yang saya upload ada 2 versi yaitu untuk Delphi 7 dan Delphi 2006 (karena saya cuman punya 2 versi delphi itu .. hehehe)
Update Desember 2018 – Tambahan dukungan untuk Delphi 10.1-Berlin, Delphi 10.2-Tokyo 32/64bit dan Delphi 10.3-Rio 32/64bit.
Untuk menggunakan unit ini cukup mudah, copy unit yang sesuai dengan versi delphi yang anda pakai, taruh di folder lib atau jadikan satu dengan aplikasi.
Selanjutnya tambahkan VsrExcelOle pada klausa uses.
Berikut ini contoh potongan kodenya …
uses ..... VsrExcelOle;
var
Form1: TForm1;
ex: VsrExcel;
implementation
procedure TForm1.Button1Click(Sender: TObject);
begin
if not Assigned(ex) then
begin
ex:=VsrExcel.Create; // komunikasi dengan excel
ex.Show; // tampilkan excel
end;
ex.New; // buat workbook baru
ex.AutoSelect:=True; // supaya otomatis aktifkan cell setelah menulis
ex.Write('A1',Edit1.Text); // tulis Edit1 pada Cell A1
if CheckBox1.Checked then
ex.Font.Bold:=True; // Tebalkan jika dicentang
ex.Write('A2',Edit2.Text); // tulis Edit1 pada Cell A2
if CheckBox2.Checked then
ex.Font.Bold:=True; // Tebalkan jika dicentang
end;
Pada object VsrExcel ada property App yang dapat kita gunakan untuk memasukkan perintah VBA lainnya yang belum tersedia di unit ini.