Distribusi Aplikasi
Joko NurjadiHadiah tanpa pembungkus kado tidaklah lengkap. Demikian juga dengan aplikasi yang telah selesai Anda kerjakan, sudah seharusnya dibungkus dengan rapi agar siap didistribusikan kepada pengguna yang sudah tidak sabar menunggu aplikasi Anda.
Seperti juga produk lainnya, kemasan yang, baik sedikit banyak mencerminkan isinya. Jika kesan pertama sudah tidak menggoda, mungkin Anda akan kehilangan banyak kesempatan untuk memasarkan produk kepada pengguna, sekalipun produk Anda berkualitas tinggi.
Lebih jauh lagi, sebuah kemasan dapat memberikan ciri khas produk yang bersangkutan. Sebagai contoh, software pengolah gambar Adobe Photoshop selalu menampilkan gambar logo yang berlainan, tetapi dengan nuansa khas pada setiap versinya. Sehingga ciri khas masing-masing versi Adobe Photoshop tertanam pada pikiran penggunanya.
Mengemas Aplikasi
Langkah awal pendistribusian aplikasi Anda dimulai dengan mengemasnya menjadi sebuah paket software (software package). Sebuah paket software memuat seluruh file yang diperlukan untuk proses instalasi sehingga aplikasi dapat berjalan dengan baik pada komputer pengguna.
Bahkan jika aplikasi Anda termasuk cukup sederhana dan hanya terdiri dari satu file executable yang dapat langsung dijalankan, sebaiknya Anda tetap mengemasnya menjadi sebuah paket. Artinya, jangan langsung memberikan satu file executable kepada pengguna. Paling tidak Anda harus menyertakan informasi ataupun petunjuk mengenai aplikasi yang Anda distribusikan.
Untuk program yang sederhana, Anda cukup menuliskannya pada program text editor Anda. Lalu menyimpannya pada file text, untuk kemudian mengemas file aplikasi dan file pendukung tersebut pada sebuah file kompresi yang umum digunakan.
Dengan informasi yang jelas, paket Anda tidak akan dicurigai sebagai virus atau program perusak lainnya yang banyak berkeliaran dalam bentuk executable file. Karena itu, informasi yang Anda berikan juga harus jelas dan bertanggung jawab, mencantumkan nama dan kegunaan software, informasi tanggal, dan pembuat.
Program Bantu
Terdapat banyak program bantu untuk membuat sebuah paket software. Misalnya Microsoft menyediakan “Package & Deployment Wizard”, Jordan Russell membuat Inno Setup, dan sederet nama lainnya seperti InstallShield, SetupBuilder, CreateInstall, dan lain-lain.
Semua program bantu tersebut mengemas kumpulan file Anda menjadi paket software yang siap diinstal pada setiap komputer yang memerlukan, umumnya paket tersebut terdiri dari file setup atau file instalasi (contohnya setup.exe), disertai file-file kompresi. Paket software yang telah siap dapat didistribusikan melalui disket, flash disk, CD ROM, network, dan lain-lain.
Paket software akan melakukan instalasi aplikasi, melakukan registrasi komponenkomponen yang dibutuhkan, membuat menu aplikasi agar mudah diakses pengguna, dan mengizinkan aplikasi dan file-file yang berkaitan untuk di-uninstall.
Format Kompresi PaketPaket software terdiri atas file yang dikompresi, terdapat banyak sekali format paket dan kompresi yang umum digunakan, sehingga Anda memiliki banyak pilihan untuk mengemas paket software Anda. Di antara pilihan tersebut adalah sebagai berikut:
- *.MSI. Merupakan file kompresi platform Windows dari Windows Installer, saat ini merupakan standar format paket dari Microsoft Windows.
- *.DEB. Merupakan format paket distribusi dari Debian Package.
- *.RPM. Format paket software yang diciptakan oleh Red Hat. Saat ini juga digunakan pada banyak paket distribusi lainnya.
- *.CAB. CAB merupakan kependekan dari Cabinet, yang merupakan format kompresi awal Microsoft Windows, yang juga banyak digunakan oleh software Installer komersial seperti InstallShield, WISE, dan InstallAware.
- *.RAR. Salah satu format kompresi yang populer.
- *.ZIP. Kompresi yang telah umum digunakan pada Microsoft Windows. Sering pula ditemukan pada sistem Macintosh dan Unix.
- *.TAR. Atau dinamakan Tape Archive, sebuah format umum yang digunakan pada sistem Unix/Linux.
- *.TAR.GZ. Merupakan kombinasi kompresi TAR dengan skema kompresi file-based (umumnya gzip). Secara luas digunakan untuk distribusi file source dan binary pada platform Unix/Linux.
- *.JAR. Merupakan Java Archive. Tipe ini sebenarnya merupakan sedikit modifi kasi dari fomat ZIP.
Tahapan Aktivitas
Terdapat beberapa tahapan aktivitas yang dilakukan oleh paket software:
- Release. Merupakan awal dari proses distribusi aplikasi, termasuk seluruh persiapan sistem bagi pengguna. Karena itu, kebutuhan pengguna harus ditentukan dan dikumpulkan terlebih dahulu. Operating system maupun software pendukung harus dipersiapkan dalam tahap ini, sebagai contoh jika Anda mengembangkan sebuah aplikasi berbasis web, Anda harus menentukan platform yang digunakan, web server, database, dan komponen-komponen yang terkait. Kebutuhan hardware juga dapat menjadi suatu prasyarat, misalnya hardware barcode yang diperlukan untuk sistem aplikasi Point Of Sales, ataupun minimum kebutuhan spesifikasi komputer yang digunakan.
- Instal. Pemasangan aplikasi pada sisi pengguna, untuk memindahkan produk dari sisi pembuat (developer) ke sisi pengguna (customer), dengan berpatokan pada konfigurasi yang dibutuhkan sistem agar dapat digunakan oleh customer. Instalasi tidak terbatas pada satu komputer, tetapi bisa jadi pada suatu jaringan komputer jika diperlukan, sesuai dengan fungsinya masing-masing. Untuk suatu jaringan komputer yang besar, instalasi pada client dapat dilakukan secara remote. Pada saat instalasi, dapat terjadi proses pembuatan atau modifikasi dari:
a. File program shared dan non-shared. Beberapa paket software menggunakan file secara bersamaan (shared) dengan aplikasi lain ataupun file yang digunakan sendiri (non-shared).
b. Folder. Menciptakan folder khusus untuk menempatkan file-file program maupun data hasil dekompresi, umumnya telah disediakan folder default yang dapat diganti oleh pengguna pada saat instalasi.
c. Registry Windows. Khusus untuk platform Windows, informasi dapat disimpan pada registry.
d. File Konfigurasi. Digunakan untuk inisial konfigurasi, file konfigurasi pada umumnya merupakan file dengan format text ASCII.
e. Variabel Environment. Merupakan variabel yang mempengaruhi jalannya proses. Variabel environment yang dikenal pada platform Windows adalah %AppData%, %SystemDrive%, %SystemRoot%, %ProgramFiles%, dan lain-lain. Untuk platform Unix/Linux, beberapa variabel environment yang dikenal adalah $PATH, $HOME, $DISPLAY, dan lain-lain.
f. Shortcut. Merupakan sebuah file kecil yang berisi lokasi dari file sumber. Microsoft Windows menambahkan extension file *.lnk dan menampilkannya dengan icon default bertanda panah untuk menunjukkan shortcut. Pada saat instalasi, umumnya paket software dapat membuat shortcut pada menu Programs, desktop, maupun Quick Launch pada platform Microsoft Windows.
3. Activate. Pengaktifan komponen-komponen aplikasi agar dapat berjalan. Beberapa sistem aplikasi memerlukan license khusus untuk pengaktifan.
4. Deactivate. Kebalikan dari Activate, yaitu proses nonaktif komponen-komponen aplikasi.
5. Update. Merupakan aktivitas instalasi versi baru aplikasi. Update merupakan proses yang lebih sederhana dibandingkan dengan tahap Instal, karena komponen-komponen yang diperlukan telah tersedia pada saat instalasi kali pertama.
6. Adapt. Merupakan modifikasi sistem aplikasi yang telah diinstal. Perbedaannya dengan Update adalah proses adaptasi dilakukan dari sisi lokal, seperti mengubah environment pada sisi pengguna.
7. Uninstall. Proses kebalikan dari instalasi. Aktivitas ini menghapus sistem aplikasi yang tidak diperlukan lagi.
8. Retire. Sebuah sistem aplikasi yang telah ditandai sebagai produk yang telah dihentikan, termasuk support dari pembuatnya. Ini merupakan tahap akhir dari siklus aplikasi.
Hindari Hard Coding
Produk paket software merupakan produk istimewa dan memiliki perlakuan yang berbeda dibandingkan produk lain pada umumnya. Hal yang terutama adalah, sebuah paket software harus dirancang untuk terus berkembang dan tidak berhenti begitu saja setelah digunakan.
Karena itu, sebuah paket software harus memiliki kemudahan untuk beradaptasi dengan perubahan. Perubahan akan semakin mudah jika Anda menghindari penggunaan hard coding pada saat development aplikasi. Apakah hard coding itu?
Hard coding merupakan istilah untuk memberikan data langsung pada baris program atau object executable lainnya. Hard coding merupakan data yang langsung diketikkan dan ikut dikompilasi, tidak diambil dari sumber data eksternal.
Permasalahan utama datang jika data tersebut harus diubah atau mengalami perubahan format. Anda harus membongkar kembali kode program, mengubah data pada kode program, kemudian melakukan kompilasi dan distribusi ulang. Hal ini akan membuat distribusi aplikasi Anda tidak efektif dan tidak efisien.
Beberapa contoh kesalahan yang ditemui pada hard coding antara lain adalah:
- Konfigurasi Port. Hal ini ditemui saat Anda membuat aplikasi yang memerlukan konfigurasi port COM. Terdapat banyak kemungkinan port yang aktif, tetapi Anda menggunakan port COM1 untuk aplikasi Anda, dan menuliskannya secara hard coding. Saat komputer yang menggunakan aplikasi Anda tidak dapat lagi menggunakan COM1, entah dengan alasan port yang rusak, pergantian hardware, ataupun konflik penggunaan port, maka aplikasi Anda harus mengubah konfigurasi port COM1 yang digunakan menjadi port yang lain. Dapat dibayangkan repotnya jika Anda harus membongkar terlebih dahulu kode program Anda hanya untuk mengubah konfigurasi. Terutama karena Anda sebagai developer aplikasi yang harus melakukannya.
- Konfigurasi Header Report. Aplikasi yang cukup besar memiliki cukup banyak laporan. Dalam setiap laporan terdapat informasi header yang memuat nama perusahaan pengguna aplikasi, alamat, dan seterusnya. Tentu Anda mengetahui risikonya jika membuat laporan serupa untuk perusahaan lain, Anda harus mengganti headernya secara hard coding. Mungkin Anda berpikir hal tersebut sudah sewajarnya dilakukan jika aplikasi yang dibuat diperuntukkan untuk pengguna yang berbeda. Tetapi tidak perlu menunggu aplikasi digunakan oleh perusahaan lain untuk mengubah hard coding, karena Anda dapat saja diminta untuk mengganti header laporan saat pengguna bersangkutan melakukan perpindahan alamat, atau pergantian nama perusahaan.
- Konfigurasi Server. Membuat aplikasi client-server melibatkan jaringan komputer dan penggunaan secara multi-user. Melakukan konfigurasi server secara hard coding juga tidak disarankan. Pergantian server dapat terjadi sewaktuwaktu, bahkan terkadang memerlukan proses yang cepat di mana aplikasi Anda harus mampu beradaptasi dengan cepat pula. Server merupakan hal yang vital dan mempengaruhi proses operasional, mungkin pengguna aplikasi Anda memiliki server cadangan yang langsung dapat digunakan saat server utama mengalami masalah, tetapi hal tersebut tidak akan memecahkan masalah jika dari sisi aplikasi memerlukan perubahan hard coding yang memakan waktu relatif lama.
Bagaimana pencegahan atau solusi pengganti hard coding? Anda dapat menempatkan informasi yang dibutuhkan sebagai parameter dengan menyimpan informasi tersebut pada database ataupun file konfigurasi.
Jika Anda menyimpan informasi pada file konfigurasi yang pada umumnya berupa file text, pastikan tidak ada informasi yang bersifat rahasia seperti username atau password. Atau Anda dapat melakukan enkripsi data jika ingin menyimpan informasi yang bersifat konfidensial.
Penyimpanan parameter seperti profil perusahaan, konfi gurasi server, dan lain-lain pada database atau file konfigurasi mengijinkan pengguna untuk melakuka perubahan sendiri. Dengan demikian, aplikasi Anda memiliki tingkat fleksibilitas yang baik terhadap perubahan sistem yang terjadi.
Update Aplikasi
Proses update aplikasi merupakan salah satu proses yang berkesinambungan sesuai dengan kebutuhan dan perkembangan penggunaan aplikasi itu sendiri. Update aplikasi dapat berupa:
- Patch. Yaitu aplikasi untuk melakukan update atau perbaikan, ataupun memperbaiki kinerja aplikasi. Patch yang tidak dirancang dengan baik dapat mengakibatkan masalah yang baru. Pada awalnya patch memerlukan langkah-langkah yang cukup merepotkan, kesalahan dalam melakukan langkah tertentu dapat menyebabkan instalasi ulang aplikasi dan patch. Tetapi, saat ini instalasi patch pada umumnya telah dilakukan secara otomatis. Patch umumnya dapat di-download melalui Internet pembuat aplikasi yang bersangkutan. Walaupun berupa perbaikan kecil, ukuran patch dapat bervariasi antara beberapa kilo byte hingga ratusan mega byte. Terutama ukuran akan semakin besar jika terdapat data yang tidak termasuk program, misalnya seperti data grafik dan suara. Hal ini sering ditemui pada aplikasi game.
- Service Pack. Dalam skala yang lebih besar, perubahan-perubahan yang signifikan dikemas dalam sebuah paket yang dinamakan Service Pack. Istilah Service Pack awalnya digunakan oleh Microsoft dalam melakukan update produk Microsoft Windows NT, Windows 2000, hingga Windows XP. Bahkan tidak terbatas dengan produk operating system, Service Pack juga diterapkan untuk produk lain seperti Microsoft SQL Server, dan lain-lain.
- Software Package. Pada beberapa keluarga sistem Linux, update antarrilis dikemas dalam paket software yang baru dengan format yang sama sehingga dapat digunakan untuk melakukan update pada sistem yang telah ada, atau digunakan untuk instalasi sistem baru.
Jangan cepat puas jika aplikasi Anda tidak atau belum memiliki perbaikan berarti, atau tidak mendapat laporan bug dari pengguna. Justru hal ini dapat mendorong Anda untuk meluaskan penggunaan aplikasi Anda dengan menarik perhatian pengguna baru.
Salah satu yang mampu menggoda pengguna untuk menggunakan aplikasi Anda adalah dengan adanya fitur baru yang terus dikembangkan. Sebuah aplikasi yang canggih jika tidak berkembang, lambat laun akan ditinggalkan dan menjadi kenangan karena telah mencapai titik Retire.
Dengan menampilkan fitur baru, Anda juga menunjukkan support Anda terhadap produk dan pengguna. Dengan memiliki jadwal pengembangan tertentu pada produk software Anda, pengguna akan dapat melihat perkembangan software dan menunggu-nunggu “hadiah” yang akan Anda berikan pada rilis mendatang.
Easter Egg
Untuk menghilangkan stress dan sedikit hiburan, beberapa produk menampilkan fitur “Easter Egg” atau telur paskah, yaitu berupa game, animasi, efek suara, atau sesuatu yang menarik yang disembunyikan pada aplikasi dan hanya dapat diakses dengan shortcut atau cara tertentu seperti kombinasi keyboard dan klik mouse.
Cukup menarik untuk diketahui bahwa “Easter Egg” pertama yang diketahui ditemukan pada operating system Unix yang melakukan response “not war?” pada perintah “make love”. “Easter Egg” yang sering ditemukan merupakan daftar developer aplikasi. “Easter Egg” cukup menarik untuk menampilkan sisi lain aplikasi yang merupakan cermin kreativitas developer.
Informasi Lebih Lanjut
Sumber
0 comments:
Posting Komentar