Perencanaan dan Pemeliharaan Aplikasi

Membangun sebuah aplikasi dapat dianalogikan dengan membuat sebuah film ataupun buku yang memiliki cerita. Di mana pada cerita tersebut, Anda menentukan tokoh dan karakter, alur cerita, dan skenario, juga menentukan akhir cerita. Demikian pula halnya dengan membangun aplikasi.

Satu-satunya perbedaan yang nyata, jika suatu cerita dapat disengaja berujung sad ending story, maka hal tersebut justru dihindari dalam skenario pembuatan aplikasi. Anda tentu tidak menginginkan akhir dari pembuatan aplikasi Anda menjadi cerita horror atau menguras air mata (dalam arti yang sebenarnya).

Tahapan Desain

Tanpa sebuah desain, tidak akan dihasilkan sesuatu yang kita bayangkan. Bahkan sebuah gambaran kasar sudah merupakan sebuah desain yang ingin Anda wujudkan secara nyata. Tetapi, Anda tentu tidak akan berhenti hanya pada sebuah gambaran kasar saja, bukan? Ada beberapa tahapan desain aplikasi:

1. Conceptual Design Stage (Tahap Desain Konsep).

Sebuah cerita membutuhkan skenario, karena itu skenario harus disusun terlebih dahulu sebagai rangka cerita yang akan dimulai. Hal itulah yang Anda lakukan pada Conceptual Design Stage. Sesuai dengan namanya, desain yang Anda lakukan bersifat konsep, sebuah skenario merupakan konsep. Pada aplikasi yang akan dibuat, Anda harus membuat skenario penggunaan aplikasi. Skenario tersebut berupa penjelasan fungsi-fungsi aplikasi yang diharapkan oleh pengguna. Ambil sebuah contoh, Anda ingin membangun sebuah aplikasi penggajian (payroll) untuk suatu perusahaan. Anda harus menentukan skenario yang berkaitan dengan proses penggajian, untuk itu Anda harus menjelaskan fungsi-fungsi yang berhubungan, mencakup fungsi
perhitungan pajak, lembur, tunjangan, jamsostek, dan lain-lain.

2. Logical Design Stage (Tahap Desain Logika).

Dengan menggunakan skenario penggunaan aplikasi yang telah dibuat pada tahap sebelumnya, Anda dapat melangkah pada tahap ini. Di sini penjelasan fungsi aplikasi dapat digunakan untuk mengidentifikasi serangkaian business object untuk aplikasi Anda.

3. Physical Design Stage (Tahap Desain Fisik).

Merupakan tahap untuk mendefinisikan interface dan keterkaitan masing-masing business object yang telah dibuat pada tahap sebelumnya.

Business Object
Business object merupakan objek-objek modul yang merupakan intisari entitas pada lingkupan aplikasi yang akan dihasilkan. Sebagai contoh, sebuah fungsi untuk menghasilkan total gaji karyawan bulanan memerlukan kegiatan pengumpulan data absensi, data lembur, kode karyawan, gaji pokok tunjangan, dan seterusnya. Masing-masing dari kegiatan tersebut direpresentasikan oleh sebuah business object. Business object sering disebut juga dengan Domain object, di mana kata “domain” berarti “business”. Business object yang baik akan membungkus data yang berhubungan dengan entitas. Sebagai contoh, sebuah kegiatan lembur memiliki data seperti jam datang, jam pulang, kode karyawan yang lembur, dan seterusnya.
Masing-masing business object berkaitan satu sama lain membentuk sistem yangbesar, Anda harus menentukan hubungan antar business object tersebut. Setelah mengetahui skenario melalui business object dan hubungan antar-business object tersebut, maka langkah berikutnya developer akan menciptakan business logic.

Business Logic
Jika business object merupakan skenario yang menjelaskan tahapan-tahapan cerita yang saling berkaitan, maka business logic menterjemahkan lebih detail masing-masing tahapan tersebut. Business logic dapat dianalogikan sebagai dialog yang membangun dan menghidupkan cerita. Anda dapat mendesain business logic dalam bentuk komponen seperti DLL, OCX dan sebuah service yang dijalankan otomatis.

Aspek Perencanaan dan Pemeliharaan Aplikasi
Beberapa hal yang harus diperhatikan, perencanaan, dan pemeliharaan aplikasi Anda harus memperhatikan aspek-aspek sebagai berikut:

1. Performance (Kinerja).

Aplikasi diharapkan memiliki kinerja yang optimal di mana Anda harus mempertimbangkan:

a. Operating system
di mana aplikasi Anda akan berjalan. Setiap sistem operasi memiliki keunggulan dan kelemahan masing-masing berkaitan dengan software pendukung yang digunakan. Anda juga dapat memperbaiki unjuk kerja sistem dengan penggunaan sumber daya sistem seperti memory dan processor secara efisien.

b. Pengguna aplikasi.
Anda harus mempertimbangkan jumlah pengguna aplikasi, terutama pada aplikasi client-server. Jika pengguna aplikasi relative terlalu banyak bagi resource server yang terbatas, mungkin Anda perlu membagi proses pada workstation yang digunakan user. Tetapi pilihan ini akan memberikan pengaruh dari sisi maintenance, melakukan pemeliharaan pada banyak workstation tentu lebih merepotkan dibandingkan melakukan pemeliharaan pada server saja. Karena itu, Anda harus selalu menyeimbangkan antara unjuk kerja sistem dengan pertimbangan-pertimbangan lain yang terkait.

2. Maintainability (Pemeliharaan).

Pada saat melakukan perencanaan aplikasi, Anda sudah harus memiliki gambaran bahwa aplikasi tersebut dapat dipelihara dengan baik. Melakukan enkapsulasi semua service dan komponen yang digunakan secara modular dan meletakkannya pada satu area tertentu akan sangat membantu pemeliharaan aplikasi. Masing-masing modul komponen harus memiliki interface yang jelas, sehingga akan memudahkan melakukan isolasi dan mengidentifikasi permasalahan yang timbul. Jika cara penggunaan dan operasi aplikasi dapat dimengerti dengan jelas, pihak lain juga akan dengan mudah melakukan pemeliharaan pada aplikasi Anda.

3. Extensibility (Pengembangan).

Aplikasi yang baik akan terus berkembang sesuai dengan permintaan kebutuhan yang baru. Bertambahnya permintaan kebutuhan oleh pengguna juga merupakan indikasi bahwa aplikasi Anda telah digunakan dan membantu pekerjaan mereka.Untuk itu, Anda harus mempertimbangkan potensi pengembangan/upgrade aplikasi dimasa mendatang, ataupun sekadar penambahan fungsi yang diinginkan. Beberapa tip agar aplikasi Anda mudah dikembangkan:
a. Pisah/bagi aplikasi Anda ke dalam komponen-komponen yang terenkapsulasi.
b. Jika dimungkinkan, gunakan komponen yang dapat diprogram dengan berbagai platform.
c. Jika Anda men-develop aplikasi web based, gunakan aplikasi yang independent dimana tidak mengharuskan client menggunakan aplikasi browser tertentu.
d. Letakkan seluruh komponen yang digunakan pada sebuah lokasi yang modular.

4. Availability (Penyediaan).

Hal ini berkaitan dengan bagaimana aplikasi Anda menangani kesalahan-kesalahan, seperti contohnya jika sebuah file tidak ditemukan oleh aplikasi. Anda harus merencanakan dari awal bagaimana kode Anda menangani berbagai kesalahan. Dengan availability yang baik, jika terjadi kesalahan, maka aplikasi Anda tidak crash, tetapi memberikan pesan kesalahan yang jelas dan dapat dimengerti.

5. Scalability (Skalabilitas)

Jika performance menyangkut bagaimana aplikasi bekerja dengan pengguna pada saat ini, maka scalability merujuk pada kebutuhan pengguna di masa mendatang. Untuk itu aplikasi Anda diusahakan memiliki kapabilitas seluas mungkin. Scalability mengizinkan Anda menambah jumlah pengguna/client yang dapat menggunakan aplikasi Anda secara simultan tanpa mempengaruhi kinerja secara drastis. Anda dapat meningkatkan scalability aplikasi dengan memindahkan beberapa proses pada client, sehingga tidak memberatkan kinerja server secara keseluruhan. Bagaimanapun juga, konsekuensinya menyangkut masalah maintainability. Untuk memastikan bahwa data server dapat di-upgrade dengan mudah, Anda harus membuat partisi data access kedalam sebuah data-tier (tingkatan data). Walaupun hal ini tidak akan meningkatkan kinerja, akan tetapi memudahkan upgrade sistem saat permintaan meningkat.

Hindari Error Sedini Mungkin
Untuk membuat sebuah aplikasi berskala besar, bagian yang sangat penting adalah memastikan bahwa aplikasi Anda memiliki eror seminim mungkin. Karena memperbaiki eror pada aplikasi berskala besar tentu memerlukan waktu dan tenaga yang besar pula. Karena itu, temukan kesalahan pada aplikasi sedini mungkin dengan melakukan tes rutin. Selain itu, pastikan bahwa perbaikan kesalahan tidak menimbulkan kesalahan yang lain.

Coding Sebagai Aktor Utama
Setiap cerita lazimnya memiliki aktor sentral yang memegang peranan utama. Bahkan sering kali Anda lebih mengenal nama aktornya dibandingkan judul filmnya. Pada cerita perencanaan dan pemeliharaan aplikasi, sang aktor adalah proses coding, atau bagaimana source code aplikasi Anda diolah. Untuk aplikasi berskala besar, Anda memerlukan sebuah team programer yang melakukan development aplikasi, terutama jika aplikasi Anda memiliki target rilis. Rancangan waktu pengerjaan merupakan patokan bagi programer untuk mengerjakan aplikasi sesuai jadwal. Masing-masing programer sebagai pelaku proses coding, bisa jadi memiliki gaya tersendiri yang berbeda satu sama lain, karena itu tidak mengherankan jika dunia programer adalah dunia yang memiliki seni tersendiri. Tetapi, perlu adanya suatu standardisasi agar pengodean yang dilakukan menghasilkan aplikasi yang mudah dipelihara.

Variabel
Coding berkaitan erat dengan variabel, bagaimana sebuah variabel diproses di dalam aplikasi? Setiap kali aplikasi Anda menggunakan variabel, maka aplikasi harus melihat isi atau nilai variabel tersebut, yang mana memerlukan waktu.Untuk mempercepat proses pencarian nilai variable, Anda dapat menggunakan konstanta. Konstanta adalah variabel yang selalu memiliki nilai yang sama pada sebuah aplikasi. Konstanta hanya dilihat atau ditetapkan satu kali, yaitu saat aplikasi Anda di-compile. Sebuah variabel diakses lebih cepat dibandingkan dengan pengaksesan terhadap variabel array maupun property. Karena itu gunakan variabel array hanya pada saat benar-benar diperlukan. Berhubungan dengan hal property, jika aplikasi Anda perlu mengakses sebuah nilai property dengan nilai yang sama berulang - ulang pada sebuah procedure, maka Anda dapat meningkatkan kinerja aplikasi dengan mengakses nilai property tersebut sekali saja,memindahkannya ke dalam sebuah variabel,dan selanjutkan mengarahkan aplikasi tersebut untuk membaca nilai variable itu saja.

Hubungan Variabel dan Memory
Variabel yang dikenal secara umum berkaitan dengan tipe data yang bervariasi, seperti Boolean, String, Integer, Variant, dan lain-lain. Jumlah memory yang dialokasikan pada variable berkaitan dengan tipe data yang digunakan oleh variabel tersebut. Untuk melakukan efi siensi penggunaan memory, Anda harus menggunakan tipe data yang tepat untuk variabel Anda. Sebagai contoh, Anda memerlukan variabel untuk menyimpan nilai True atau False, yang mana hanya membutuhkan sejumlah kecil memory untuk menyimpannya. Akan lebih baik jika menggunakan tipe data Boolean yang memerlukan 2 byte memory untuk keperluan ini, daripada menggunakan tipe data Varian yang menggunakan 16 byte memory. Hal yang sama berlaku jika Anda harus menentukan tipe data numerik. Terdapat banyak tipe data numerik seperti byte, integer, long integer, ataupun double. Masing-masing menggunakan alokasi memory yang berbeda tergantung kapasitasnya. Pastikan Anda memilih tipe data yang tepat.

Modul
Khusus untuk pembangunan aplikasi yang melibatkan banyak programer, diperlukan kerja sama yang baik untuk membuat sebuah modul library yang dapat digunakan bersama-sama. Dengan komunikasi dan kerja sama yang baik, sebuah modul library yang dibuat dan digunakan bersama akan mempersingkat waktu pengodean, tetapi sebaliknya jika komunikasi tidak berjalan, maka akan terjadi modul-modul yang terpecah yang selain menyita waktu, juga dapat menimbulkan berbagai masalah dalam penggabungannya.

Form
Anda tentu sering menggunakan form pada aplikasi Anda. Tahukah Anda, bahwa ternyata cara aplikasi menggunakan form juga dapat mempengaruhi kinerja aplikasi? Sebagai contoh, memanggil form satu demi satu selagi aplikasi Anda bekerja, akan memerlukan waktu yang intensif. Tetapi jika seluruh form tersebut dipanggil ke dalam memory ketika aplikasi mulai dijalankan, maka proses pemanggilan form selanjutnya akan terjadi lebih cepat dan pengguna dapat berpindah antar-form dengan cepat. Bagaimanapun, cara pemanggilan form pada contoh di atas akan menggunakan banyak alokasi memory, yang konsekuensinya dapat memperlambat proses start aplikasi. Untuk itu, pada saat design Anda harus menentukan form mana saja yang akan sering digunakan, form-form inilah yang dapat Anda panggil ke dalam memory bersamaan dengan saat aplikasi dijalankan. Form-form yang jarang digunakan, dapat Anda panggil pada saat dibutuhkan saja.

Control
Di dalam form terdapat control, di mana Anda harus mempertimbangkan seberapa banyak control diletakkan pada masing-masing form, mengapa? Anda pasti dapat menebak jawabannya, yaitu karena control pun menyita penggunaan memory.Anda dapat menentukan control mana saja yang perlu ada dalam sebuah form, jika memungkinkan, Anda dapat memisahkannya kedalam beberapa form yang dapat dipanggil oleh sebuah button atau menu.

Mengatasi Delay
Suatu hal yang tidak dapat dihindari pada suatu aplikasi dengan skala besar adalah terdapat delay sekian waktu pada beberapa proses. Contohnya saat aplikasi Anda memanggil sejumlah modul pada saat kali pertama dijalankan. Delay juga dapat terjadi pada saat aplikasi telah berjalan, misalnya saat membaca sekumpulan data yang besar. Anda dapat mengatasi delay dengan memberikan interface yang menarik sekaligus membuat aplikasi Anda tampak lebih user-friendly. Yaitu, dengan memberikan splash screen, progress indikator, ataupun cursor berbentuk hourglass.

Happy Ending
Seperti telah disinggung, membangun aplikasi bagaikan suatu seni membangun cerita film atau buku, tetapi khusus cerita dengan tema happy ending. Di mana semua tokoh yang terlibat merasakan kepuasan menggunakan aplikasi Anda. Tentu saja selalu terdapat beberapa rintangan kecil, tetapi dengan pemeliharaan dan perencanaan aplikasi yang matang, semua rintangan tersebut dapat diatasi dengan baik. Semoga!

1 comments:

jhantux error said...

bikin game yu om aku and kawan kawan dah punya konsepnya .

tapi aku sama sekali ga bisa programing .

kalau mau ni blog aku errorsijhantux.blogspot.com

isi aja di buku tamu ta om

Recent Post