STRATEGI PENGEMBANGAN PERANGKAT LUNAK SI Oleh : Hanif Al Fatta Abstrak Tahapan pengembangan proses model dan data model seringkali disebut sebagai tahapan desain logikal (logical design). Alasannya karena disain yang dilakukan belum melibatkan elemen fisik seperti software yang digunakan dan kualifikasi hardware yang diperlukan. Jika tahapan logical design telah selesai maka prangkat lunak untuk sistem informasi telah siap untuk dikembangkan. Tahapan Coding siap dimulai. Tapi sebelum memulai menghasilkan kode program untuk Sistem informasi yang akan dibangun ada baiknya kita lihat dulu beberapa strategi pengembangan perangkat lunak yang bisa dipilih. Pada bab ini kita akan membahas strategi-strategi tersebut. Di sisi hardware konfigurasi hardware juga perlu direncanakan, pilihan arsitektur hardware yang digunakan pada sistem juga akan dibahas di bab ini. kata kunci : physical design, CODING, SISTEM INFORMASI DESAIN: OVERVIEW Fase desain adalah fase dimana didefinisikan bagaimana akan membangun sistem. Pada tahapan ini setail dari deskripsi teknikal tentang bagaimana membangun sistem didefinisikan. Biasanya orang mengatakan hasil dari fase desain adalah spesifikasi sistem. Spesifikasi sistem adalah produk akhir dari fase desain, yang menjelaskan dengan tepat perancangan sistem seperti apa yang akan diimplementasikan oleh tim desain selama fase implementasi. Langkah-langkah Fase Desain: Adapun langkah-langkah fase desain dapat dijelaskan sebagai berikut: Menyajikan alternatif desain (membuat sendiri, membeli atau outsorcing) Mengubah proses-proses logik dan model data ke dalam model fisik Merancang arsitektur sistem
Membuat pemilihan hardware dan software Merancang bagaimana data akan disimpan Mendesain program untuk proses yang bersesuaian Membuat spesifikasi sistem Dalam fase desain sebaiknya dihindari kesalahan-kesalahan klasik seperti : Pengurangan waktu perancangan Penambahan fitur dari apa yang sudah ditentukan dalam fase analisis Mengganti tool dan teknologi pada pertengahan proyek. STRATEGI CODING Ada 3 strategi umum yang biasa dipakai dalam pengembangan program : Custom development : membangun sistem dari nol dalam rumah produksi sendiri Membeli paket software dan melakukan beberapa kostumisasi Melakukan outsorcing ke pihak ketiga. Costum development Strategi desain ini punya satu keunggulan utama, yaitu biaya pengembangannya dapat kita kendalikan sendiri dan relatif mudah. Rincian kelebihan dan keunggulannya adalah : Kelebihan: Tingkat fleksibilitas dan krearifitas lebih tinggi Cocok dan konsisten dengan teknologi dan standar yang ada Bisa membangun kemampuan dan pengetahuan fungsional dari tenaga kerja yang kita miliki.
Kekurangan : Membutuihkan waktu dan usaha yang signifikan Mungkin membutuhkan keahlian atau pengetahuan fungsional yang belum dikuasai Kadang-kadang biaya bisa membengkak Sering membutuhkan waktu lebih banyak dari jadwal yang telah tersedia. Ada resiko kegagalan proyek. Pembelian software Paket Saat ini telah tersedia berbagai software paket untuk banyak kebutuhan bisnis. Dalam paket software, program yang digunakan telah dites dan diujikan serta bisa menghemat waktu dan biaya pengembangan. Tetapi software paket sangat jarang sesuai 100% dengan kebutuhan bisnis. Untuk mengatasi ini beberapa software paket memungkinkan user untuk melakukan kostumisasi. Kelemahan utamanya adalah paket software bisa jadi tidak bisa diintegrasikan dengan sistem yang sudah ada jika dikembangkan oleh perusahaan yang berbeda. Outsourcing Outsourcing adalah menyewa vendor luar, developer atau service provider untuk menyelesaikan tahapan desain. Keuntungan utama alah mengurangi waktu produksi dan ada nilai tambah diantaranya bisa menerima lebih banyak proyek dalam periode yang sama dan melakukan outsourcing pada pihak-pihak ketiga. Tetapi strategi ini ada beberapa resikonya, diantaranya: Kehilangan informasi penting Kehilangan kendali akan pengembangan di masa depan Kehilangan kesempatan untuk belajar Beberapa pedoman yang perlu diperhatikan untuk melakukan outsourcing adalah: Pelihara jalur komunikasi tetap terbuka dengan pihak ketiga. Definisikan dan stabilisasi requirement sebelum menandatangani kontrak
Pandang kerjasama sebagai hubungan partnership Pilihlah vendor, developer dan service provider dengan hati-hati Tugaskan seseorang untuk memelihara kerjasama Jangan melakukan outsourcing apa yang tidak kita mengerti Tekankan pada requirement yang fleksibel, hubungan jangka panjang dan kontrak jangka pendek. Memilih strategi desain Dalam memilih strategi desain, pertimbangkan hal-hal berikut ini : Kebutuhan bisnis Pengalaman sendiri Kemampuan proyek Manajemen proyek Frame waktu yang tersedia Untuk lebih jelasnya, perhatikan tabel berikut ini :
Custom Software Paket Outsourcing Development Business kebutuhan bisnis kebutuhan bisnis Kebutuhan need unik umum bisnis bukan core/inti dari bisnis In-house Tenaga terlatih dan Ikemampuan standar SDM dengan experience berkemampuan untuk kostumisasi Kemampuan baik banyak dimiliki teknis yang dimiliki terlatih tidak dimiliki Project skills Punya keinginan Skill bukan hal atau Outsourcing ingin meningkatkan isu yang adalah Skill SDM yang Strategis keputusan dimiliki strategis Project Memiliki manajermanajer proyek bisa Proyek manajer managementproyek yang handal mengkoordinasikan berkemampuan dan teknologi yangusaha-usaha dari tinggi pada telah terbukti vendor level manajemen tertentu level Time frame Waktu yangwaktu yang tersedia Waktu yang tersedia fleksibel pendek tersedia bisa pendek bisa panjang
Desain Arsitektur Desain arsitektur adalah perencanaan bagaimana sistem akan di distribusikan di antara komputer-komputer yang ada dan software dan hardware apa yang akan digunakan untuk masing-masing komputer. Dalam desain arsitektur ada 2 hal yang perlu diperhatikan: Spesifikasi dari software dan hardware Deskripsi detail dari komponen software/hardware untuk mempermudah pihak yang akan membeli software/hardware tersebut. Elemen dari desain arsitektur Dari sudut pandang software komponen arsitektural dapat dibagi menjadi: Data Storage : komponen yang digunakan untuk menyimpan data Data access logic: prosedur yang digunakan untuk mengakses data yang disimpan dalam data storage. Application Logic: bagian logika pemrosesan dalam lapis aplikasi Presentation Logic : komponen pemrosesan tampilan dan perintah dari user. Tujuan desain arsitektur Tujuan dari desain arsitektur adalah untuk menentukan komponen software mana yang akan di-assign ke hardware yang tersedia. Adapun pilihan hardware yang tersedia adalah: Klien : Input/output device yang dioperasikan oleh user PC. Laptop, peralatan mobile, telepon selular Pilihan untuk Klien: Terminal Microcomputer
Minicomputer Server: Komputer lebih canggih untuk menyimpan software Bisa diakses oleh banyak user. Pilihan untuk server : Mainframe Microcomputer (PC) Terminal khusus seperti ATM, kiosk dll Pilihan arsitektur Berdasarkan posisi penempatan elemen-elemen arsitektur di sisi klien maupun server, ada 4 jenis arsitektur dasar yang bias dipilih : a. Server-Based Architecture
Gambar 1 Server Based Architecture Pada arsitektur jenis ini, 4 komponen software diletakkan pada bagian yang sama yaitu server. Terminal yang tersedia hanya digunakan sebagai dumb terminal, perpanjangan layanan dari server saja. Pada arsitektur ini data relatif aman tetapi beban kerja server sangat berat, karena semua komponen dijalankan di server.
b. Client-Based Architecture Gambar 2 Client Based Architecture Pada arsitektur ini, server hanya berperan sebagai data storage. Komputer klien yang digunakan untuk mengolah data yang dikirim oleh server. Beban kerja server sangat ringan tetapi keamanan data sangat tergantung kinerja dari klien.
c. Client-Server Architecture (Two-Tiered) Gambar 3 Client Server Architecture Pada arsitektur ini data dan prosedur pengaksesan data dilayani oleh server dan masalah tampilan dan logika aplikasi dilayani oleh user. Pada arsitektur ini keamanan data cukup terjamin karena prosedur bagaimana mengakses data oleh klien ditangani oleh server. Arsitektur ini biasa disebut arsitektur 2-tier. Keun tungan Scalable Meningkatkan modularitas dari sistem berbasis web Tidak ada titik pusat kegagalan Kelemahan Kompleksitas Perlu bahasa dan teknik pemrograman baru Lebih kompleks untuk di update
d.three-tiered Client-Server Architecture Gambar 4 Three Tiered Server Based Architecture Pada arsitektur ini ditambahkan hardware untuk menjalankan lapis apllication logic, sehingga keamanan pengaksesan data menjadi lebih terjamin. _
Kesimpulan a. Pemilihan strategi pengembangan perangkat lunak maupun konfigurasi hardware sangat menentukan apakah hasil disain logical yang kita miliki dapat diubah menjadi perangkat lunak yang sesuai. b. Ada 3 strategi pengembangan yang bisa dipilih, custom development, pembelian paket software atau outsourcing. Pemilihan strategi sangat tergantung pada kondisi proyek yang akan dikembangkan. c. Untuk disain arsitektur, tersedia 4 pilihan arsitektur : server-based, clientbased, client-server dan three tier architecture. Daftar Pustaka Al fatta, Hanif, 2007, Analisis dan perancangan system informasi untuk keunggulan perusahaan dan organisasi kelas dunia, Andi offset STMIK AMIKOM Yogyakarta