|
Aplikasi Mini Installer
Oleh:
Budi Sukmawan
Pada Mikrodata Volume 6 Seri 15 terdapat artikel
“Membuat Aplikasi Mini Dengan Windows API” oleh saudara Muslim
Arifin. Hal ini sangat menarik karena penulis juga sedang mengembangkan aplikasi
Delphi tanpa menggunakan VCL tetapi menggunakan library Windows API.
Aplikasi ini merupakan program installer sederhana dan yang lainnya
sedikit lebih kompleks merupakan program penyimpan password (password manager),
pada kesempatan ini penulis akan membahas tentang aplikasi mini installer.
Pada saat ini software instalasi yang cukup baik dan
merupakan program freeware yang sering penulis gunakan adalah Inno Setup
1.3, yang tersedia beserta source programnya.
Tetapi untuk aplikasi yang sederhana dan memerlukan ukuran yang kecil, aplikasi
ini kurang cocok karena akan menambah kurang lebih 200KB pada
paket instalasi sebagai support untuk install dan uninstall. Untuk itu
penulis mencoba mengembangkan installer sederhana yang hanya akan menambah
sedikit saja pada besar file dari paket aplikasi yang kita buat. Program ini
ditujukan untuk aplikasi sederhana yang tidak memerlukan fasilitas uninstall dan
menempatkan file-file program hanya pada satu direktori, yang tidak menempatkan
file support library pada direktori system juga tidak menulis ke registry. Untuk
uninstall cukup hapus direktori software yang kita install dan hapus shortcut
yang dibuat pada saat instalasi. Untuk aplikasi saat ini yang kebanyakan cukup
kompleks, program installer ini mungkin tidak terlalu berguna tapi untuk
mempelajari cara pembuatan aplikasi tanpa VCL diharapkan akan cukup membantu.
Pada umumnya struktur dari program Windows adalah seperti
Listing 1 (Generic.dpr) tetapi karena jendela utama pada program ini merupakan
sebuah dialog box maka program utamanya cukup sebagai berikut:
begin
hMainInst := HInstance;
DialogBox(hMainInst,
MAKEINTRESOURCE(IDD_SETUP_DLG),
0,
@MainDlgProc);
end.
MainDlgProc merupakan callback function yang akan memproses
message dari antrian pesan. Program ini menggunakan sebuah resource script
(zsetup.rc) yang digunakan sebagai template untuk membentuk layout dari dialog
utama dan menyimpan paket program yang telah dikompres ke dalam format zip yang
akan di-install. Untuk membuat resource script dapat digunakan Resource
Workshop, tapi karena penulis tidak mempunyai software tersebut terpaksa
membuatnya secara manual dengan text editor. Untungnya proses kompilasi dengan
Delphi 5.0 (DCC32) sangat cepat sehingga setelah resource script tersebut
dikompail dengan Resource Compiler (BRC32) dan kemudian hasilnya di-link dengan
program hasilnya segera dapat dilihat.
Untuk lebih jelasnya program utama dapat dilihat pada
Listing 2 (setup.dpr). Karena file
yang akan di-install disimpan dalam format zip maka penulis menggunakan library
unzip dari Christian Ghisler. Untuk memperkecil ukuran program penulis tidak
menggunakan library standar Delphi, SysUtils.pas karena dengan meletakkan
SysUtils pada baris uses saja, akan
menambah 20-30KB pada ukuran program. Untuk itu penulis membuat unit baru
SisUtils.pas sebagai library untuk fungsi-fungsi yang dibutuhkan oleh program
utama. Dan untuk lebih memperkecil ukuran program penulis juga menggunakan
library System.pas yang sudah dimodifikasi yang diambil dari library KOL, yang akan mengurangi ukuran program dengan kurang lebih 10KB.
Terakhir agar file program lebih kompak lagi penulis juga mengkompres program
exe yang dihasilkan dengan UPX. Hasilnya installer ini
hanya akan menambah kurang lebih 23KB pada paket instalasi.
Metode yang digunakan untuk instalasi sangat sederhana
yaitu: mula-mula file zip yang disimpan dalam resource di-copy ke direktori
sementara kemudian di-unzip pada direktori yang dituju, lalu buat shortcut untuk
file tersebut di menu Windows Start | Program. Bila diinginkan anda juga bisa
membuat shortcut di dekstop, cara membuatnya lihat keterangan pada listing
setup.dpr. Tampilan program ini sangat sederhana (lihat Gambar 1) terdiri dari
sebuah jendela utama dan tiga jendela dialog: browse for folder, about box dan
tampilan help sederhana.
Gambar 1. Tampilan
Program.
Proses untuk membuat installer cukup mudah dan dapat
mengikuti langkah-langkah sebagai berikut:
1.
Kompres semua file dari aplikasi yang akan anda buat installer-nya ke
dalam format zip dengan PKZip, Winzip atau program kompresi lain yang dapat
menghasilkan format zip.
2.
Buka zsetup.rc dengan text editor ubah baris IDR_ZIP_PKG ZIP "xyz.zip"
dengan mengganti xyz.zip
dengan nama file zip yang anda buat.
3.
Buka setup.dpr, ubah konstan AppName, HelpMsg, AboutMsg, DestDir,
NUMFILES, array iFiles, AppGroup sesuai dengan kebutuhan. Ubah
CreateLink(GetProgramsDirectory+… pada bagian akhir fungsi unzipfile bila
diperlukan, sesuaikan dengan konstan NUMFILES dan array iFiles.
4.
Bila perlu edit file makefile. Jika anda menggunakan unit System.pas yang
dimodifikasi edit dcc32.cfg dan masukkan path library pada baris /U. Baca dengan
seksama bagaimana cara membuat library khusus ini pada readme.txt dan jangan
ditempatkan di lokasi library Delphi yang asli.
5.
Kompail ulang program setup.dpr dengan mengetikkan make
pada baris perintah MS-DOS Prompt.
6.
Kompres file exe yang dihasilkan dengan UPX. Untuk mempermudah proses
kompilasi dan kompres file exe anda dapat menggunakan batch file msetup.bat,
sesuaikan dulu environment variabel UPXCL dan APP pada batch file tersebut bila
perlu.
Untuk membuat aplikasi Delphi sederhana dan berukuran kecil
sebenarnya anda juga dapat menggunakan cara yang lebih mudah yaitu menggunakan
library yang dirancang khusus untuk tujuan itu, seperti: XCL,
KOL atau ACL
. Penulis juga pernah mencoba
menggunakan KOL untuk membuat aplikasi, tetapi karena library tersebut masih
dalam tahap pengembangan penulis kurang puas dengan hasilnya, sehingga akhirnya
menggunakan murni Windows API untuk user interface-nya walaupun masih
menggunakan beberapa object non visual dari library tersebut. Aplikasi yang
penulis maksud adalah Password Base v1.0 yang disertakan pada paket mini
installer (pwbaset.zip) sebagai aplikasi yang akan dibuat installer-nya.
Aplikasi ini hanya berukuran 30KB (compressed) dengan sebuah jendela utama dan 6
jendela dialog, bila menggunakan VCL mungkin ukurannya sekitar 500-700KB.
Bila anda membutuhkan lebih banyak contoh pemrograman
Delphi dengan API Windows anda dapat mengunjungi Japos.
Disitu anda dapat membeli beberapa utility (ada 8 utility pada saat tulisan ini
disusun) disertai source programnya yang dibuat dengan Delphi tanpa VCL seharga
US$ 30 – US$ 40. File-filenya sendiri dapat bebas anda download tapi anda
harus memasukkan nomor registrasi yang anda beli untuk dapat membukanya. Uang
dollar sebanyak itu mungkin cukup memberatkan untuk kebanyakan orang Indonesia.
Utungnya proteksi file-file tersebut sangat mudah dibongkar, bagaimana caranya?
Mungkin agak terlalu panjang bila dibahas di sini dan menyimpang dari topik
artikel ini, anda dapat baca pada artikel Mengekstrak
file ZIP dari file-file Japos.
Kesimpulan: untuk membuat aplikasi Windows yang sederhana
dengan Delphi, lebih menguntungkan dengan menggunakan pemrograman API Windows
karena program yang dihasilkan akan berukuran kecil sehingga lebih effisien dan
waktu loading-nya lebih cepat. Tetapi waktu pengembangannya membutuhkan
waktu yang lebih lama dari pada menggunakan pemrograman visual dengan VCL..
Source lengkap dapat didownload disini minstall.zip
Catatan:
-
Pada artikel asli di Mikrodata pada source code yang disertakan terdapat
sedikit bug pada fungsi ForceDirectories dan sudah diperbaiki
pada versi ini.
-
Untuk
program install yang cukup kecil dan lengkap dengan unistall dapat dicoba
program Nullsoft SuperPimp Install
System, tersedia bersama source codennya (C/C++). Anda dapat
menkonfigurasi program untuk menghasilkan install system sesuai dengan
kebutuhan anda dengan menkompilasi ulang.
©
2000 Budi Sukmawan
Oktober 2000

|