Bimacipta

Aplikasi Mini Installer

 

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


 

kodowanie html5 css, projektowanie stron internetowych , PSD2HTML, PSD HTML, proste strony www, cięcie PSD, tworzenie stron www, webdesign,