Hadiah 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 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 versi 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 penggunanya.
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 tangal, 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 diks, CD
ROM, network, dan lain-lain.
Paket software akan melakukan instalasi
aplikasi, melakukan regsitrasi komponen-komponen yang dibutuhkan, membuat menu
aplikasi agar mudah diakses pengguna, dan mengizinkan aplikasi dan file-file
yang berkaitan untuk di-uninstall.
Format
Kompresi Paket
Paket 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:
1.
*.MSI.
Merupakan file kompresi platform Windows
dari Windows Installer, saat ini merupakan standar format paket dari Microsoft
Windows.
2.
*.DEB.
Merupakan format package distribusi dari Debian Package.
3.
*.RPM.
Format paket software yang diciptakan oleh Red Hat. Saat ini juga digunakan
pada banyak paket distribusi lainnya.
4.
*.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.
5.
*.RAR.
Salah satu format kompresi yang popular.
6.
*.ZIP.
Kompresi yang telah umum digunakan pada Microsoft Windows. Sering pula
ditemukan pada sistem Macintosh dan Unix.
7.
*TAR.
Atau dinamakan Tap Archive, sebuah
format umum yang digunakan pada sistem Unix/Linux.
8.
*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.
9.
*.JAR.
Merupakan Java Archive. Tipe ini sebenarnya merupakan sedikit modifikasi dari
format ZIP.
Tahapan Aktivitas
Terdapat beberapa tahapan aktivitas yang dilakukan
oleh paket software:
1.
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 satu
prasyarat, misalnya hardwarebarcode
yang diperlukan untuk sistem aplikasi Point
of Sales, ataupun minimum kebutuhan spesifikasi komputer yang digunakan.
2.
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.
Insatalsi 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
kompresi, umumnya telah disediakan folder default
yang dapat diganti oleh pengguna pada saat instalasi.
c.
Registry
Windows.
Khusus 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 *.Ink 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 local, 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
dating 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:
1. 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 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.
2. 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.
3. 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 sewaktu-waktu, 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 memcahkan
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, konfigurasi server, dan lain-lain pada
database atau file konfigurasi mengijinkan pengguna untuk melakukan 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 pengguna
aplikasi itu sendiri. Update aplikasi dapat berupa:
1. 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 insatalasi 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.
2. 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 Winows XP.
Bahkan tidak terbatas dengan produk operating system, Service Pack juga
diterpakan untuk produk lain seperti Microsoft SQL Server, dan lain-lain.
3. 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 sisem yang telah ada, atau digunakan untuk instalasi
sistem baru.
Hadirkan Sesuatu yang 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.
Komentar
Posting Komentar