Perencanaan Dan Pemeliharaan Aplikasi

a



Membangun sebuah aplikasi dapat dianalogikan dengan membuat sebuah film ataupun buku yang memiliki cerita. Dimana 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?

Terdapat 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 Anda buat pada tahap sebelumnya, Anda dapat melangkah pada tahap ini. Disini 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 obyek-obyek 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, dimana 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 yang besar, 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 mendesign 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 dimana Anda harus mempertimbangkan:

a. Sistem operasi dimana 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 relatif 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 di masa mendatang, ataupun sekedar penambahan fungsi yang diinginkan.

Beberapa tips agar aplikasi Anda mudah dikembangkan:

a. Pisah/bagi aplikasi Anda kedalam komponen-komponen yang terenkapsulasi.
b. Jika dimungkinkan, gunakan komponen yang dapat diprogram dengan berbagai platform.
c. Jika Anda mendevelop 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 skalabilitas seluas mungkin.

Scalability mengijinkan 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 diupgrade 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 error seminim mungkin. Karena memperbaiki error pada aplikasi berskala besar tentu memerlukan waktu dan tenaga yang besar pula.

Karena itu temukan kesalahan pada aplikasi sedini mungkin dengan melakukan test 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 seringkali 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 standarisasi agar pengkodean yang dilakukan menghasilkan aplikasi yang mudah dipelihara.

Variable

Coding berkaitan erat dengan variable, bagaimana sebuah variable diproses didalam aplikasi? Setiap kali aplikasi Anda menggunakan variable, maka aplikasi harus melihat isi atau nilai variable tersebut, yang mana memerlukan waktu.

Untuk mempercepat proses pencarian nilai variable, Anda dapat menggunakan konstanta. Konstanta adalah variable yang selalu memiliki nilai yang sama pada sebuah aplikasi. Konstanta hanya dilihat atau ditetapkan satu kali, yaitu saat aplikasi Anda di-compile.

Sebuah variable diakses lebih cepat dibandingkan dengan pengaksesan terhadap variable array maupun property. Karena itu gunakan variable 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 kedalam sebuah variable, dan selanjutkan mengarahkan aplikasi tersebut untuk membaca nilai variable itu saja.

Hubungan Variable dan Memory

Variable 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 variable tersebut.

Untuk melakukan efisiensi penggunaan memory, Anda harus menggunakan tipe data yang tepat untuk variable Anda.

Sebagai contoh, Anda memerlukan variable untuk menyimpan nilai True atau False, yang mana hanya membutuhkan sejumlah kecil memory untuk menyimpannya. Akan lebih baik jika Anda menggunakan tipe data Boolean yang memerlukan 2 byte memory untuk keperluan ini, daripada menggunakan tipe data Variant 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 kerjasama yang baik untuk membuat sebuah modul library yang dapat digunakan bersama-sama.

Dengan komunikasi dan kerjasama yang baik, sebuah modul library yang dibuat dan digunakan bersama akan mempersingkat waktu pengkodean, 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 kedalam memory ketika aplikasi mulai dijalankan, maka proses pemanggilan form selanjutnya akan terjadi lebih cepat dan pengguna dapat berpindah antar form dengan cepat.

Bagaimanapun juga, cara pemanggilan form pada contoh diatas 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 kedalam memory bersamaan dengan saat aplikasi dijalankan.

Form-form yang jarang digunakan, dapat Anda panggil pada saat dibutuhkan saja.

Control

Didalam form terdapat control, dimana 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.

b

Happy Ending

Seperti telah disinggung, membangun aplikasi bagaikan suatu seni membangun cerita film atau buku, tetapi khusus cerita dengan tema happy ending. Dimana 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. Semoga!

Joko Nurjadi
Sumber: Majalah PC Media 10/2006

(Visited 140 times, 1 visits today)

Leave a Reply