merupakan arsitektur yang paling banyak digunakan dan dikenal oleh pengguna jaringan saat ini. Pada arsitektur client-server, telah terjadi pembagian tugas yang lebih merata antara client dan
server yang digunakan. Server yang digunakan dapat berupa mainframe, microcomputer, ataupun
minicomputer . Sedangkan client biasanya berupa microcomputer. Server akan menjalankan dua
piranti lunak aplikasi, yaitu : penyimpanan data dan logika pengaksesan data. Client juga akan menjalankan dua piranti lunak aplikasi, yaitu : logika presentasi dan logika aplikasi Dennis,
2002. Pembagian piranti lunak aplikasi antara client dan server dapat mempunyai beberapa bentuk seperti aplikasi 2-tier, aplikasi 3-tier, dan aplikasi n-tier. Gambar 25 di bawah ini
menunjukkan arsitektur client-server.
Gambar 25. Arsitektur client-server
Web Browser dan Web Server merupakan salah satu contoh arsitektur client-server.
Kelebihan arsitektur client-server adalah kemampuannya untuk mendukung piranti keras dan piranti lunak dari berbagai vendor untuk dapat bekerja sama. Sedangkan kekurangannya adalah
masih terdapat kesulitan untuk menghubungkan aplikasi piranti lunak dari vendor-vendor yang berbeda. Untuk mengatasi hal ini, diperlukan bantuan piranti lunak middleware yang diletakkan
pada lapisan aplikasi application layer di sisi client dan juga di sisi server. Piranti lunak middleware
inilah yang akan melakukan fungsi sebagai penerjemah dan mengendalikan pengiriman data.
2.5 Waterfall Life Cycle Model
Waterfall life cycle model merupakan salah satu model klasik yang banyak digunakan
pada pengembangan atau pembuatan piranti lunak. Pembuatan piranti lunak merupakan tahapan pembuatan aplikasi yang dilakukan melalui serangkaian proses yang saling berkaitan satu sama
lain. Tahapan yang dilakukan dalam pengembangan piranti lunak ini sering kali disebut sebagai siklus hidup piranti lunak software life cycle yang merupakan periode waktu yang dimulai dari
proses konseptualisasi aplikasi yang akan dibuat dan diakhiri pada saat aplikasi yang telah
dihasilkan akan dihancurkan setelah dirasa tidak lagi diperlukan Kishore dan Naik, 2001. Siklus hidup piranti lunak akan melakukan organisasi terhadap berbagai macam tugas software
engineering menjadi fase-fase, seperti apa saja yang perlu dilakukan pada masing-masing fase
dan bagaimana fase-fase ini berhubungan satu sama lain sehingga bisa saling overlap. Pada waterfall life cycle model, tugas pada setiap fase dilakukan secara berurutan,
sehingga fase selanjutnya hanya dapat dilakukan apabila semua tugas pada fase sebelumnya telah selesai dilakukan. Gambar 26 berikut ini menggambarkan fase-fase yang terdapat pada waterfall
life cycle model .
Gambar 26. Fase-fase pada waterfall life cycle model
Menurut Kishore dan Naik 2001 terdapat enam fase pada waterfall life cycle model, yaitu : Analisis Kebutuhan Requirement
Fase analisis kebutuhan merupakan fase pertama pada waterfall life cycle model. Pada fase ini akan dilakukan proses analisis tentang apa yang akan dibangun, termasuk
didalamnya tentang apa saja yang dibutuhkan. Perancangan Design
Fase perancangan merupakan fase selanjutnya setelah fase analisis kebutuhan. Pada fase ini akan ditentukan tentang bagaimana cara kerja dari sistem yang akan dibangun. Pada
fase ini akan dilakukan juga perancangan tentang segala sesuatu yang diperlukan oleh sistem.
Pembuatan Construction Fase pembuatan merupakan fase dimana dilakukan proses koding terhadap hasil
perancangan. Tugas yang dilakukan pada fase ini pada umumnya dilakukan oleh kelompok yang lebih besar daripada kelompok yang melakukan tugas pada fase
sebelumnya. Pada fase ini pula biasanya akan dilakukan proses pembuatan user manual. Pengujian Testing
Fase pengujian dilakukan untuk menguji koding yang dihasilkan pada fase sebelumnya. Pengujian yang dilakukan merupakan pengujian penuh terhadap seluruh aspek pada
sistem, mulai dari pengujian pada tingkat paling bawah sampai pengujian tentang penerimaan sistem oleh penggunanya acceptance testing.
Penerapan Deployment Fase penerapan dilakukan setelah fase pengujian selesai dan hasil pengujian menunjukkan
bahwa sistem telah siap untuk diimplementasikan dalam lingkungan pengguna. Tugas- tugas penting yang dilakukan pada fase penerapan antara lain adalah instalasi sistem,
penggantian dari sistem lama ke sistem baru, dan pelatihan tentang sistem baru kepada penggunanya. Hasil dari fase penerapan sangat tergantung pada hasil dari fase-fase
sebelumnya, terutama fase analisis kebutuhan. Apabila tugas pada fase analisis kebutuhan dilakukan secara tidak sempurna, ada kemungkinan terdapat kebutuhan pengguna yang
baru diketahui pada saat sudah masuk ke fase penerapan. Operasional dan Pemeliharaan Operations and Maintenance
Fase operasional dan pemeliharaan merupakan fase dimana sistem sudah diimplementasikan dalam proses bisnis penggunanya. Pada fase ini, dapat dilakukan
modifikasi terhadap sistem yang ada supaya sesuai dengan kebutuhan penggunanya.
Penggunaan waterfall life cycle model dalam perancangan software memberikan beberapa kelebihan, seperti :
Pada waterfall life cycle model, fase-fase yang ada sudah terdefinisi dan terbagi secara jelas, sehingga akan menghasilkan keluaran yang tepat dan jelas.
Adanya urutan yang jelas pada tugas-tugas yang diperlukan pada software engineering untuk menghasilkan suatu software.
Selain beberapa kelebihan yang dimilikinya, waterfall life cycle model juga mempunyai beberapa kekurangan, seperti :
Tidak adanya mekanisme untuk mengontrol perubahan yang terjadi pada fase analisis kebutuhan yang baru terjadi setelah dilakukannya fase perancangan dan pembuatan atau
setelah adanya feedback dari pengguna sistem. Waterfall life cycle model mengurangi keterlibatan pengguna sistem pada fase
perancangan dan pembuatan, sehingga dapat memicu timbulnya batas antara pengguna dengan sistem yang dibangun. Hal ini pada akhirnya akan dapat mengurangi rasa
‘kepemilikan’ pengguna terhadap sistem yang dihasilkan. Tidak ada feedback dari pengguna yang dilakukan pada saat sistem sedang dibangun.
Kondisi seperti ini pada akhirnya sering kali membuat proses pada fase analisis kebutuhan tidak dapat memberikan gambaran kebutuhan pengguna yang sesungguhnya.
Dibutuhkan waktu yang lama untuk menghasilkan software yang dibutuhkan oleh pengguna, terutama bila software yang dibuat cukup kompleks.
Terbatasnya interaksi antara pengembang sistem dengan pengguna sistem, yang dapat menimbulkan kecenderungan untuk penambahan fungsi-fungsi baru pada sistem yang
tidak sesuai dengan kebutuhan pengguna. Proses penambahan fungsi pada sistem dapat menimbulkan makin tingginya waktu dan biaya yang harus dikeluarkan dalam rangka
pembuatan software. Adanya asumsi bahwa semua kebutuhan sistem harus diketahui sejak awal proses
pembuatan software dapat menimbulkan keputusan yang diambil menjadi prematur. Rendahnya tingkat flexibility pada model ini.
Menimbang adanya kekurangan pada waterfall life cycle model ini, maka kemudian dilakukan modifikasi pada model ini dengan menambahkan perulangan antar fase. Dengan
adanya proses perulangan antar fase membuat pihak pengembang menjadi lebih fleksibel dan dapat kembali ke fase sebelumnya untuk memperbaiki tugas-tugas yang telah dilakukan pada fase
sebelumnya.
2.6 Data Flow Diagram DFD