Pada setiap metode pengembangan sebuah perangkat lunak, langkah pertama yang
harus dilakukan adalah mendapatkan kebutuhan sistem atau sering disebut dengan proses
analisis kebutuhan sistem. Pada tahap ini, pengembang akan berusaha mengumpulkan semua
kebutuhan (requirement) sistem. Proses ini merupakan proses yang sangat krusial dalam proses
pengembangan sebuah perangkat lunak karena akan menentukan perangkat lunak yang akan
dihasilkan.
Perlu diingat bahwa sebuah perangkat lunak dibangun untuk berbagai tujuan. Tujuan
tersebut antara lain untuk menyelesaikan berbagai permasalahan bisnis organisasi,
meningkatkan kualitas layanan, mengurangi biaya, memberi kemudahan kepada pelanggan dan
pegawai, dan meningkatkan daya saing organisasi.
Hal itu dikarenakan, ketika proses identifikasi kebutuhan system dilakukan, pihak
pengembang harus mampu menggali dan menemukan peluang peran perangkat lunak yang
dikembangkan untuk mendukung tujuan pengembangan. Ketika peluang peran ditemukan,
peran tersebut akan diterjemahkan dalam bentuk kebutuhan fungsional. Dengan kata lain, hasil
akhir dari analisis kebutuhan sistem adalah daftar fungsi yang harus ada di dalam perangkat
lunak yang dikembangkan.
Sebagai contoh, misalnya sekolah ingin meningkatkan layanan kepada siswa dan orang
tua siswa dengan cara memberikan kemudahan kepada orang tua untuk memantau kehadiran
dan perilaku siswa di sekolah. Oleh karena itu, pada sistem administrasi sekolah ditambahkan
fungsi pengecekan kehadiran siswa yang memungkinkan orang tua melakukan hal tersebut.
Fungsi tersebut kemudian ditempatkan dalam sebuah modul aplikasi untuk orang tua yang
dapat diinstal di perangkat mobile. Fungsi tersebut dilengkapi fungsi-fungsi lainnya yang
berhubungan dengan kebutuhan orang tua siswa. Kebutuhan fungsi-fungsi seperti ini akan
digali dan dikumpulkan pada saat proses analisis kebutuhan sistem.
Selain kebutuhan fungsional, sebuah perangkat lunak juga mempunyai kebutuhan
lain, yang disebut dengan kebutuhan nonfungsional (nonfunctional requirement). Kebutuhan
nonfungsional tidak berhubungan dengan hal yang dapat dilakukan oleh perangkat lunak dan
perilaku aplikasi. Akan tetapi, berhubungan dengan kemudahan, kenyamanan, dan kepuasan
pengguna. Ketika menggunakan aplikasi yang dibangun, tentu Anda tidak ingin pengguna bosan
menunggu karena aplikasi bekerja dengan lambat, contohnya untuk menampilkan data
pengguna harus menunggu satu menit. Contoh lainnya ketika aplikasi digunakan banyak
pengguna, tiba-tiba aplikasi berhenti bekerja karena beban pekerjaan terlalu berat. Hal-hal
tersebut tentu akan membuat pengguna merasa tidak nyaman dan tidak puas menggunakan
aplikasi tersebut.
Selain masalah kenyamanan dan kepuasan pengguna, kebutuhan nonfungsional juga
dapat berbentuk syarat-syarat lain yang harus dipenuhi oleh sistem. Contohnya, Anda amati
mayoritas masyarakat menggunakan mobile phone dengan sistem operasi Android dan IOS.
Dengan asumsi tersebut, pada modul aplikasi untuk orang tua perlu ditambahkan persyaratan
bahwa perangkat lunak untuk modul orang tua siswa harus dapat diinstal di sistem operasi
Android dan IOS. Selain itu, dikarenakan perangkat mobile phone memiliki ukuran layar yang
beragam, perlu ditambahkan syarat lain yang harus dipenuhi, yaitu system harus dapat
menyesuaikan tampilan dengan berbagai ukuran layar monitor. Kebutuhan seperti ini,
meskipun tidak berhubungan dengan fungsi-fungsi yang dimiliki, tetapi harus dipenuhi oleh
pengembang sistem.
Proses untuk mendapatkan kebutuhan sistem dapat dilakukan dengan berbagai
metode, antara lain interview, diskusi, dan pengamatan lapangan. Setelah melalui proses
tersebut dan kebutuhan sistem sudah disepakati, daftar kebutuhan harus didokumentasi secara
jelas dan lengkap. Selanjutnya, pengembang akan membuat deskripsi perangkat lunak yang
akan dikembangkan dengan cara yang dapat dimengerti oleh pengguna.
1. Interview
Interview merupakan salah satu cara yang paling sering digunakan untuk mendapatkan
kebutuhan sistem. Proses ini memungkinkan pengembang dan pengguna berinteraksi secara
langsung dan menggali fungsi-fungsi yang diperlukan oleh organisasi dalam sebuah perangkat
lunak. Agar dapat menemukan kebutuhan sistem secara utuh, sebaiknya pengembang memilih
beberapa orang pengguna dengan latar belakang tanggung jawab berbeda untuk di-interview.
Inteview digunakan untuk menggali berbagai aspek yang berhubungan dengan
pengembangan sebuah perangkat lunak. Aspek tersebut mencakup identifikasi masalah bisnis
yang sering terjadi, keluhan-keluhan manajemen, pengguna, dan pelanggan yang sering
muncul, ide-ide pengembangan, dan harapan-harapan pengguna. Oleh karena itu, perlu
dibangun sebuah suasana yang dapat menghilangkan batas-batas antara pengembang dan
pengguna. Pengembang perlu menyiapkan daftar pertanyaan, tetapi harus fleksibel
menggunakan pertanyaan-pertanyaan tersebut pada saat proses interview berjalan. Proses
interview harus didesain untuk tidak menjadi terlalu serius sehingga orang yang di-interview
merasa bebas untuk menyampaikan pendapatnya. Namun, interview perlu dijaga agar tetap
terarah sehingga tujuannya dapat tercapai.
Sebelum dilakukan interview, perlu dibangun kesepahaman antara pengembang dan
pengguna bahwa proyek pengembangan sistem yang sedang dibangun merupakan kebutuhan
bersama. Adapun kerja sama di antara kedua belah pihak mutlak diperlukan, untuk menjamin
proyek dapat berjalan sebagaimana yang diharapkan.
2. Melakukan Diskusi
Cara lain untuk mendapatkan kebutuhan sistem yang dibangun adalah dengan
melakukan diskusi. Diskusi dilakukan antara tim pengembang dengan tim pengguna. Tim
pengguna dapat terdiri atas manajer puncak, manajer tingkat menengah dan bawah, serta
beberapa perwakilan pengguna. Semakin banyak orang yang terlibat dalam diskusi, semakin
banyak masukan yang diperoleh. Hal ini akan berguna untuk membuat sebuah basis data yang
andal dan bermanfaat tinggi.
Salah satu kelebihan metode diskusi dibandingkan interview adalah komunikasi dapat
dilakukan dengan dua arah. Hal ini memungkinkan pengguna lebih mudah menyampaikan apa
yang dipikirkannya terkait pengembangan sistem yang sedang dilakukan. Selain itu, jika terjadi
perbedaan pandangan antara sesama pengguna, perbedaan tersebut dapat langsung
diselesaikan. Dengan demikian, diharapkan sistem yang dibangun benar-benar memenuhi
kebutuhan bisnis organisasi dan menjadi solusi bagi persoalan bisnis organisasi.
3. Pengamatan di Lapangan
Pengamatan langsung di lapangan merupakan cara yang paling efektif untuk
mempelajari bisnis organisasi dan mengidentifikasi kebutuhan sistem untuk menunjang bisnis
organisasi. Pengamatan langsung akan memberikan pemahaman bagi pengembang mengenai
operasi bisnis yang dilakukan organisasi. Pengamat akan merasakan langsung hal yang dialami
pelanggan dan mengetahui cara pandang pegawai organisasi yang melakukan kegiatan bisnis.
Pengamatan di lapangan akan membuat pengembang dapat menemukan masalah bisnis yang
sering terjadi, cara memperbaiki sebuah proses agar menjadi lebih baik, bidang pelayanan yang
perlu ditingkatkan, dan sebagainya.
Pengamatan lapangan memungkinkan pengembang dapat menemukan
kesulitankesulitan yang terkadang tidak terungkap melalui proses interview atau diskusi. Sering
kali pegawai tidak mengungkapkan kendala-kendala yang terjadi jika berhubungan dengan
tanggung jawab dan pekerjaan mereka sendiri. Selain itu, pengamatan lapangan memungkinkan
pengembang dapat mengukur secara langsung sebuah proses atau pekerjaan dan menemukan
ide-ide untuk memperbaiki proses atau pekerjaan tersebut.
Meskipun memberikan beberapa kelebihan dibandingkan metode yang lain,
pengamatan lapangan juga memiliki kekurangan. Beberapa kelemahan dari metode
pengamatan lapangan adalah sebagai berikut.
1. Event operasi, adalah aktivitas dalam sebuah proses bisnis yang dilakukan untuk
menyediakan produk atau jasa kepada pelanggan.
2. Event informasi, adalah aktivitas yang mencakup perekaman data tentang event operasi,
pengelolaan dan pemeliharaan data, serta pelaporan data menjadi informasi yang berguna
bagi manajemen dan pengambil keputusan.
3. Event pengambilan keputusan atau manajemen, adalah aktivitas manajemen atau
pengambil keputusan lainnya membuat keputusan tentang perencanaan (planning),
pengendalian (controlling), dan evaluasi (evaluating) proses bisnis yang ada.
Ketika sebuah organisasi ingin mengembangkan sebuah perangkat lunak, sistem
tersebut akan digunakan untuk mendukung proses bisnis yang dijalankan dalam organisasi
tersebut. Oleh karena itu, ketika melakukan analisis kebutuhan sistem, pengembang perlu
memahami proses bisnis yang ada dalam organisasi tersebut. Hal ini diperlukan agar
pengembang dapat menganalisis proses bisnis yang ada dan merancang sebuah perangkat
lunak yang dapat membuat proses bisnis tersebut dapat dijalankan dengan cara yang lebih
mudah, cepat, efisien, dan murah.
Menurut Hollander (1999), ketika melakukan analisis proses bisnis, ada beberapa
karakteristik penting yang perlu dipahami dari sebuah proses bisnis, antara lain sebagai berikut.
1. Bank hanya mengizinkan nasabah meminjam dengan cicilan 33% dari pendapatan bulanan.
2. Sebuah maskapai penerbangan memberikan waktu pembelian dengan diskon satu hari lebih
dahulu kepada pelanggan yang mempunyai nomor keanggotaan.
3. Nasabah dengan kartu ATM reguler hanya diizinkan menarik uang tunai melalui ATM
maksimal sebesar Rp5.000.000,00 per hari, kartu ATM Gold Rp10.000.000,00 per hari, dan
seterusnya.
4. Di supermarket, pelanggan diberi kesempatan membeli barang diskon tertentu, tetapi tidak
boleh membeli melebihi jumlah tertentu (misalnya hanya bisa membeli dua buah setiap
pembelian).
5. Di supermarket, pelanggan yang mempunyai kartu anggota otomatis diberi diskon sebesar
jumlah tertentu.
6. Di perpustakaan, anggota perpustakaan hanya diizinkan meminjam sampai lima buah buku
secara bersamaan.
Ketika organisasi dijalankan tanpa dukungan teknologi, aturan tersebut dijaga dengan
membuat sebuah prosedur dan menugaskan pegawai tertentu untuk memastikan aturan
tersebut dipatuhi. Karena dijaga dan dikontrol oleh manusia, pada organisasi dengan
manajemen buruk sering kali aturan tersebut tidak dijalankan dengan benar, baik karena
disengaja maupun karena kelalaian orang tertentu. Ketika sebuah organisasi membangun
sebuah sistem untuk mendukung bisnis mereka, organisasi mempunyai harapan bahwa sistem
tersebut dapat membantu agar aturan bisnis yang ada dijalankan.
Ketika melakukan analisis kebutuhan sistem, pengembang perlu mengidentifikasi
aturanaturan bisnis yang diterapkan oleh organisasi. Pengembang juga perlu menganalisis
aturan mana yang dapat diterapkan atau didukung oleh sistem, dan aturan mana yang tetap
harus dikendalikan oleh manusia. Penerapan aturan yang dikontrol oleh sistem akan membuat
proses yang berjalan lebih mudah dan cepat, mengurangi kerja pegawai, dan meningkatkan
kepatuhan pada aturan tersebut.
a. Organisasi melayani rental mobil kepada pelanggan, baik perusahaan maupun perorangan.
b. Jika pada masa rental, ada mobil yang mengalami kerusakan fatal yang terjadi bukan karena
kesalahan penggunaan oleh pelanggan, perusahaan akan mengganti dengan mobil sejenis
sampai masa rental habis.
c. Jika mobil yang dirental bukan milik perusahaan, pergantian dilakukan jika perusahaan
mempunyai stock mobil yang tersedia atau dapat mengganti dari pemilik mobil lain yang
tersedia.
d. Mobil dari pemilik dapat didaftarkan sebagai mobil yang disewakan jika sudah disetujui oleh
bagian customer service.
e. Organisasi membayar sewa kepada pemilik mobil setiap akhir bulan yang besarnya sesuai
dengan lamanya mobil dirental oleh pelanggan.
f. Bagi pembaya cash langsung kepada pemilik mobil, pemilik mobil harus membayar komisi
kepada perusahaan sebesar 10% dari total biaya rental.
g. Pelanggan dapat merental mobil secara harian, mingguan, dan bulanan. Untuk rental
mingguan diberikan potongan biaya 3% dan bulanan 7%.
h. Pembayaran oleh pelanggan dilakukan dengan cash, debit card, atau saldo yang ada di akun
perusahaan.
i. Pembayaran biaya sewa kepada pemilik mobil dilakukan dengan cara transfer ke rekening
pemilik.
j. Pendaftaran mobil hanya dapat dilakukan oleh pemilik mobil sesuai dengan nama yang
terdaftar di STNK.
k. Semua mobil, baik milik perusahaan maupun milik pemilik, harus memiliki asuransi yang
menanggung risiko kecelakaan dan kehilangan.
Selanjutnya, aturan-aturan bisnis tersebut sedapat mungkin akan diterapkan pada
sistem yang sedang dikembangkan. Dengan demikian, perangkat lunak yang ada akan
membantu perusahaan menerapkan aturan yang ada.
Setelah melakukan analisis kebutuhan dan mempelajari semua proses serta aturan
bisnis organisasi. Berikut ini merupakan contoh daftar pengguna dan kebutuhan fungsional
untuk masing- masing pengguna pada perangkat lunak yang akan dikembangkan dalam
menunjang bisnis eCar Rent.
1. Manajer Cabang, sesuai dengan tanggung jawab dan peranan dari manajer cabang,
kebutuhan fungsionalnya di antaranya sebagai berikut.
- Mendaftarkan mobil baru (milik perusahaan).
- Melihat laporan mobil.
- Melihat laporan penerimaan dari rental.
- Melihat laporan pelanggan.
- Melihat laporan daftar mobil.
- Melihat laporan review mobil dari pelanggan.
- Melihat laporan review pemilik terhadap pelanggan.
2. Kasir, kebutuhan fungsional untuk kasir adalah Mencatat pembayaran dari pelanggan dan
pemilik.
3. Bagian Keuangan, kebutuhan fungsional untuk bagian keuangan adalah Mencatat
pembayaran kepada pemilik.
4. Customer Service, kebutuhan fungsional untuk customer service adalah sebagai berikut.
- Mendaftarkan pelanggan baru (personal dan perusahaan).
- Melihat profil dari pelanggan.
- Melihat history peminjaman dari pelanggan.
- Melihat history review dari pelanggan.
- Menyetujui pelanggan yang mendaftar lewat aplikasi/web.
- Menyetujui mobil yang didaftarkan oleh pemilik.
- Menyetujui permohonan rental. - Mencatat pergantian mobil.
5. Bagian Pengurusan Mobil, kebutuhan fungsional untuk bagian pengurusan mobil adalah
sebagai berikut.
- Mencatat mobil keluar (dibawa pelanggan).
- Mencatat mobil masuk (dikembalikan pelanggan).
- Membuat review pelanggan yang meminjam mobil.
6. Pemilik Mobil, kebutuhan fungsional untuk pemilik mobil adalah sebagai berikut.
- Membuat akun pemilik mobil.
- Mendaftarkan mobil ke sistem.
- Melihat profil dari pelanggan.
- Melihat history peminjaman dari pelanggan.
- Melihat history review dari pelanggan. - Menyetujui permohonan rental mobil.
- Mencatat mobil masuk.
- Mencatat mobil keluar.
- Memberikan review untuk pelanggan yang meminjam mobil.
7. Pelanggan, kebutuhan fungsional untuk pelanggan rental adalah sebagai berikut.
- Membuat akun pelanggan.
- Melihat daftar mobil yang tersedia.
- Mengajukan permohonan rental. - Meng-upload persyaratan rental.
- Membuat review mobil yang digunakan.
- Menambah saldo di eCar Rent
Setelah menentukan kebutuhan fungsional, langkah selanjutnya adalah menentukan
kebutuhan nonfungsional atau karakteristik yang harus dimiliki sistem. Pada kasus eCar Rent,
kebutuhan nonfungsional sistem dapat disimpulkan sebagai berikut
1. Sistem sudah berbasis web sehingga semua cabang dapat mengakses sistem dan manajer
pusat dapat melihat perkembangan bisnis di setiap cabang.
2. Sistem yang dikembangkan mempunyai sistem backup data yang baik, yang dapat
memastikan data tetap aman jika sistem utama mengalami gangguan.
3. Sistem bersifat responsif, yaitu dapat menyesuaikan tampilan dengan perangkat yang
digunakan.
4. Sistem mempunyai tampilan yang nyaman untuk digunakan oleh pengguna (menggunakan
tampilan grafik, teks, susunan tombol, dan warna yang standar).
5. Sistem untuk pelanggan dan pemilik mobil tersedia dalam bentuk mobile dan dapat diinstal
di system operasi Android dan IOS.
6. Sistem mempunyai tingkat ketersediaan layanan 100%, dengan kata lain tidak boleh mati.
7. Sistem dapat melayani akses dari 100.000 pengguna sekaligus.
8. Sistem dilengkapi dengan fitur keamanan yang menjamin data tidak diakses oleh orang yang
tidak berhak dan aman dari penyadapan.
9. Sistem mempunyai mekanisme untuk mencegah kesalahan input data yang tidak disengaja
oleh pengguna.
10. Sistem mempunyai fleksibilitas untuk pengembangan di masa yang akan datang, baik dari
kapasitas jumlah pengguna maupun penambahan fungsi.
11. Sistem mempunyai kapasitas untuk dioperasikan dengan sistem yang lain.
RANGKUMAN
1. Paradigma pemrograman berorientasi objek memberikan kemudahan dalam penanganan
sistem yang rumit dan kompleks.
2. Paradigma pemrograman beroritentasi objek dilandaskan pada beberapa prinsip dasar,
yaitu objek, class, abstraksi, enkapsulasi, inheritance, dan polimorfisme.
3. Pemodelan dengan UML dilakukan untuk memudahkan pengembang dan pengguna
memahami
sistem, serta berbagai dokumentasi dan alat komunikasi dalam proses pengembangan
sistem.
4. Beberapa metode pengembangan sistem adalah metode Waterfall dan Agile, yang
mempunyai keunggulan dan kekurangannya masing-masing.
5. Analisis kebutuhan dilakukan untuk mendapatkan kebutuhan fungsional dan nonfungsional
dari sistem yang akan dikembangkan.
6. Beberapa metode untuk mendapatkan kebutuhan sistem antara lain: interview, diskusi, dan
pengamatan lapangan.
7. Ketika melakukan analisis kebutuhan, penting bagi pengembang untuk memahami proses bisnis dan
aturan bisnis organisasi agar dapat menjadi pertimbangan ketika mengumpulkan kebutuhan sistem.
8. Kebutuhan fungsional sistem dimodelkan dengan menggunakan diagram use case