Modul 7: Metodologi Pengembangan Sistem dan Aplikasi
TIPS: Rangkuman ini hanya sebagai pemahaman secara umum. Pastikan Anda juga membaca BMP (Buku Materi Pokok) versi cetak atau digital di Ruang Baca Virtual (RBV) untuk pemahaman lebih mendalam.
DILARANG: Memperjualbelikan seluruh konten atau latihan soal yang terdapat di portal ini. Pelanggaran akan dikenakan sanksi sesuai ketentuan yang berlaku.
Kegiatan Belajar 1: Metodologi Pengembangan Sistem
A. METODOLOGI SIKLUS HIDUP PENGEMBANGAN SISTEM
Terdapat dua pendekatan umum untuk mengembangkan aplikasi kustom (disesuaikan): Siklus Hidup Pengembangan Sistem Tradisional (System Development Life Cycle/SDLC) dan pendekatan prototipe evolusioner.
1. Langkah-Langkah SDLC
Metodologi SDLC generik mencakup tiga fase utama:
Fase Definisi: Mengawali proyek dengan mendefinisikan secara tepat apa yang harus dilakukan oleh sistem. Ini mencakup Analisis Kelayakan dan Definisi Persyaratan.
Fase Konstruksi: Menghasilkan sistem kerja sesuai spesifikasi. Ini mencakup Desain Sistem, Pembangunan Sistem, dan Pengujian Sistem.
Fase Implementasi: Sistem baru diinstal, dioperasikan, dan dipelihara. Ini mencakup Instalasi, Operasi, dan Pemeliharaan.
2. Memulai Proyek Sistem Baru
Proses dimulai dengan pengajuan proposal formal dari departemen bisnis, yang kemudian ditinjau dan diprioritaskan.
a. Tahap Definisi
Analisis Kelayakan: Menilai kelayakan proyek dari tiga aspek: ekonomi, operasional, dan teknis. Analis SI bekerja sama dengan manajer bisnis untuk mendefinisikan ruang lingkup dan batasan sistem.
Definisi Persyaratan: Fokus pada "apa" yang harus dilakukan sistem (proses, aliran data, keterkaitan data), bukan "bagaimana" implementasinya. Langkah ini sangat krusial dan memakan waktu untuk memastikan semua detail kebutuhan bisnis tertangkap.
b. Tahap Konstruksi
Desain Sistem: Spesialis SI merancang sistem fisik/teknis berdasarkan persyaratan fungsional. Ini mencakup keputusan tentang perangkat keras, perangkat lunak, struktur database, dan modul pemrosesan. Kualitas sistem yang tinggi harus mencakup karakteristik seperti akurasi, keamanan, efisiensi, dan kemudahan penggunaan.
Pembangunan Sistem: Melibatkan produksi program komputer dan pengembangan database. Pengguna biasanya hanya menjawab pertanyaan untuk klarifikasi.
Pengujian Sistem: Upaya besar untuk memastikan sistem bekerja dengan benar. Melibatkan pengujian modul, pengujian subsistem, dan pengujian integrasi seluruh sistem.
c. Tahap Implementasi
Instalasi: Mencakup pembuatan file dan database, serta konversi data dari sistem lama. Pengguna berperan penting dalam membersihkan dan memverifikasi data. Pelatihan pengguna juga merupakan bagian krusial dari langkah ini. Empat strategi konversi: paralel, percontohan (pilot), bertahap (phasing), dan pemotongan (cutover).
Operasi: Sistem baru mulai digunakan dalam mode produksi. Biasanya ada tiga versi aplikasi yang dikelola: versi pengembangan, versi uji, dan versi produksi.
Pemeliharaan: Proses melakukan perubahan pada sistem setelah masuk ke mode produksi, baik untuk memperbaiki bug, menyesuaikan dengan perubahan lingkungan, maupun untuk meningkatkan sistem.
3. Tim Proyek SDLC
Pengembangan sistem biasanya dilakukan oleh tim proyek sementara yang terdiri dari perwakilan departemen SI dan unit bisnis terkait.
Anggota tim dapat mencakup manajer proyek, analis sistem, pemrogram, spesialis data, dan terkadang konsultan eksternal.
B. MENGELOLA PROYEK SDLC
Tiga faktor kunci untuk mengelola proyek SDLC dengan sukses:
Ukuran Proyek yang Dapat Dikelola: Proyek yang sangat besar sulit dikelola. Sistem besar sebaiknya dipecah menjadi modul-modul yang lebih kecil dan dibangun sebagai serangkaian proyek yang dapat dikelola.
Definisi Persyaratan Akurat: SDLC mengasumsikan persyaratan dapat didefinisikan secara lengkap di awal. Jika persyaratan tidak didefinisikan dengan baik atau sering berubah, proyek berisiko mengalami pembengkakan biaya dan ketidakpuasan.
Sponsor Eksekutif: Dukungan dari manajer bisnis utama sangat penting untuk menyediakan sumber daya (waktu staf, dana) dan memastikan sistem baru diadopsi. Keterlibatan pengguna secara aktif juga sangat krusial.
C. KEUNTUNGAN DAN KERUGIAN SDLC
Kelebihan/Keuntungan:
Proses yang sangat terstruktur dan sistematis.
Kontrol yang ketat pada setiap tahapan.
Definisi persyaratan yang menyeluruh sebelum konstruksi dimulai.
Tonggak pencapaian yang jelas dengan persetujuan manajemen.
Kekurangan/Kerugian:
Tidak fleksibel terhadap perubahan persyaratan selama proyek berlangsung.
Proses yang memakan waktu dan mahal.
Memerlukan komitmen kuat dari manajemen puncak.
Sulit untuk kembali ke tahap sebelumnya jika diperlukan revisi.
Peran pengguna seringkali terbatas dan pasif.
D. METODOLOGI PROTOTIPE
Prototyping adalah pendekatan pengembangan evolusioner di mana sistem awal dibangun dengan cepat untuk dievaluasi oleh pengguna. Sistem kemudian direvisi berulang kali berdasarkan umpan balik. Pendekatan ini sangat berguna ketika persyaratan bisnis tidak sepenuhnya jelas di awal.
Langkah-langkah Pembuatan Prototipe:
Identifikasi kebutuhan dasar sistem.
Bangun prototipe awal yang fungsional.
Pengguna menggunakan prototipe dan memberikan umpan balik untuk perbaikan.
Pembangun memodifikasi sistem berdasarkan umpan balik.
Ulangi langkah 3 dan 4 hingga prototipe memenuhi kebutuhan pengguna.
Selesaikan konstruksi dengan meningkatkan efisiensi operasional.
Instal sistem baru dan pindahkan ke status operasional.
E. TIM PROYEK PROTOTIPE
Proses prototipe memerlukan interaksi yang sangat erat antara spesialis SI dan pengguna bisnis.
Manajer bisnis menentukan apakah solusi menjawab masalah, sementara manajer SI memastikan eksplorasi kemampuan teknologi.
Memerlukan pengguna bisnis yang dapat dibebaskan dari tugas rutinnya untuk berpartisipasi aktif dalam evaluasi dan pemberian umpan balik.
F. KEUNTUNGAN DAN KERUGIAN PROTOTIPE
Keuntungan:
Hanya memerlukan persyaratan dasar di awal proyek, memungkinkan pendekatan evolusioner.
Sistem kerja awal tersedia lebih cepat untuk dievaluasi pengguna.
Komitmen awal yang besar mungkin tidak diperlukan, karena biaya dan manfaat dapat dievaluasi setelah prototipe awal dibuat.
Penerimaan pengguna cenderung lebih tinggi karena keterlibatan yang aktif.
Kerugian:
Prototipe akhir mungkin kurang dalam fitur keamanan dan kontrol dibandingkan sistem yang dikembangkan dengan SDLC.
Ekspektasi pengguna mungkin tidak realistis; mereka mungkin enggan menunggu versi operasional yang sepenuhnya teruji dan terdokumentasi.
G. PROTOTIPE DALAM PROSES SDLC
Prototyping sering diintegrasikan ke dalam proses SDLC untuk meningkatkan efektivitasnya:
Pertama, digunakan pada tahap definisi untuk membantu pengguna memvisualisasikan dan menentukan persyaratan, terutama untuk antarmuka pengguna.
Kedua, digunakan untuk implementasi percontohan (pilot) dari prototipe yang berfungsi dalam skala kecil untuk menilai kelayakan dan mendapatkan dukungan dari sponsor eksekutif.
H. PENDEKATAN BARU
Dua metodologi yang bertujuan untuk pengembangan yang lebih cepat:
1. Rapid Application Development (RAD)
Metodologi hibrid yang menggabungkan struktur SDLC dengan kecepatan prototipe.
Tujuannya adalah menghasilkan sistem dalam waktu kurang dari satu tahun.
Menggunakan teknik seperti sesi JAD (Joint Application Design) dan alat CASE (Computer-Aided Software Engineering) untuk mempercepat proses desain dan konstruksi.
2. Metodologi Tangkas (Agile)
Pendekatan pengembangan perangkat lunak yang iteratif dan inkremental, cocok untuk proyek kecil dengan persyaratan yang dinamis.
Didasarkan pada empat nilai kunci: kesederhanaan, komunikasi, umpan balik, dan keberanian.
Menekankan pada perangkat lunak yang berfungsi daripada dokumentasi yang komprehensif, dengan siklus pengiriman yang sangat pendek.
I. PEMROGRAMAN EKSTREM
Pemrograman eXtreme (XP) adalah salah satu pendekatan dalam metodologi Agile.
Karakteristik utamanya adalah pemrograman berpasangan (pair programming), di mana dua pemrogram bekerja bersama pada satu komputer.
Siklus analisis, desain, kode, dan pengujian sangat terintegrasi dan diulang terus-menerus.
Perubahan kode sering terjadi (harian) dan tim menguji kode mereka sendiri.
Desain dijaga tetap sederhana, lengkap, tanpa duplikasi kode, dan memiliki komponen sesedikit mungkin.
J. SCRUM
Scrum adalah kerangka kerja (framework) pengembangan yang menggunakan pendekatan Agile untuk mengatasi masalah secara kreatif dan adaptif.
Kekuatan utamanya terletak pada kolaborasi tim.
Tiga pilar Scrum adalah keterbukaan (transparency), pemeriksaan (inspection), dan penyesuaian (adaptation).
Menggunakan serangkaian rapat (meetings) terstruktur:
Pertemuan Scrum Harian: Sesi "berdiri" singkat (5-15 menit) untuk melaporkan kemajuan dan hambatan.
Pertemuan Scrum: Pertemuan bulanan untuk koordinasi antartim.
Rapat Perencanaan Cepat (Sprint Planning): Pertemuan bulanan untuk mengalokasikan pekerjaan dari backlog proyek.
Rapat Tinjauan Cepat (Sprint Review): Meninjau pencapaian rencana kerja bulanan dan mengidentifikasi area perbaikan.
K. MENGELOLA PROYEK PERANGKAT LUNAK MENGGUNAKAN STAF OUTSOURCE
Outsourcing (mengalihkan pekerjaan ke pihak eksternal) digunakan untuk menekan biaya dan memanfaatkan keahlian teknis yang tidak tersedia secara internal.
Outsourcing lepas pantai (offshore) menjadi pilihan yang menguntungkan ketika:
Persyaratan sistem dapat didefinisikan dengan baik dan stabil.
Waktu sangat penting, memanfaatkan perbedaan zona waktu untuk kerja 24/7.
Biaya proyek merupakan pertimbangan utama.
L. PENGEMBANGAN APLIKASI PENGGUNA (USER APPLICATION DEVELOPMENT/UAD)
Tantangannya adalah memaksimalkan manfaat dari UAD tanpa menciptakan risiko yang tidak dapat diterima.
1. Keuntungan dan Kerugian dari UAD
Keuntungan: Pengguna tidak perlu menjelaskan kebutuhan mereka kepada analis, tidak perlu menunggu alokasi sumber daya SI, dan memiliki kontrol penuh atas biaya pengembangan.
Kerugian: Kurangnya kontrol atas keamanan dan kualitas data, hilangnya peluang integrasi, dan peningkatan risiko operasional jika pengembang pengguna pindah.
2. Menilai Risiko dari UAD
Risiko dinilai berdasarkan tiga karakteristik:
a. Karakteristik Aplikasi: Cakupan (pribadi atau departemen) dan kompleksitas masalah bisnis.
b. Karakteristik Alat: Kompleksitas perangkat lunak yang digunakan dan keterhubungannya dengan sistem lain.
c. Karakteristik Pengembang: Tingkat keterampilan dan keahlian teknis dari pengguna yang mengembangkan aplikasi.
3. Pedoman untuk Pengembang Aplikasi Pengguna
Metodologi yang digunakan harus disesuaikan dengan cakupan, ukuran, dan kompleksitas aplikasi. Aplikasi yang lebih besar dan lebih kompleks, terutama yang digunakan oleh banyak orang, harus dikembangkan dengan disiplin yang lebih tinggi dan dokumentasi yang memadai.
Kegiatan Belajar 2: Metodologi Pembelian Paket Perangkat Lunak
A. KEPUTUSAN MEMBUAT ATAU MEMBELI
Organisasi sering dihadapkan pada pilihan antara membangun (make) aplikasi khusus atau membeli (buy) paket perangkat lunak jadi.
Keuntungan Membeli Paket Perangkat Lunak:
Penghematan biaya: Biaya pengembangan dibagi di antara banyak pelanggan.
Implementasi lebih cepat: Perangkat lunak sudah ada dan telah diuji.
Staf internal tersedia untuk mengerjakan proyek strategis lainnya.
Kelemahan Membeli:
Paket perangkat lunak jarang cocok 100% dengan kebutuhan perusahaan.
Perusahaan mungkin harus mengubah proses bisnisnya agar sesuai dengan alur kerja dalam paket perangkat lunak.
B. METODOLOGI PEMBELIAN
Proses pembelian paket perangkat lunak merupakan modifikasi dari pendekatan SDLC.
1. Tahap Pembeliana. Tahap Definisi: Diperluas dengan lima langkah tambahan:
Analisis Kelayakan: Sama seperti SDLC, tetapi juga mempertimbangkan kelayakan membeli vs. membangun.
Definisi Persyaratan: Mendefinisikan apa yang harus dilakukan sistem sebagai dasar untuk evaluasi paket.
Buat daftar singkat paket yang cocok: Mengeliminasi paket yang tidak memenuhi persyaratan wajib.
Menetapkan kriteria seleksi: Menentukan kriteria wajib dan yang diinginkan untuk mengevaluasi paket dan vendor.
Mengembangkan dan mendistribusikan RFP (Request for Proposal): Dokumen formal yang dikirim ke vendor potensial untuk meminta proposal.
Evaluasi tanggapan vendor terhadap RFP dan pilih paket: Proses evaluasi yang melibatkan penilaian skor, demonstrasi perangkat lunak, dan uji coba (test drive).
Menegosiasikan kontrak: Membuat kontrak hukum yang mencakup harga, lisensi, jadwal, dukungan, dan prosedur pemeliharaan.
b. Tahap Konstruksi:
Tergantung pada apakah paket perangkat lunak dimodifikasi. Jika tidak ada modifikasi besar, tahap ini bisa sangat singkat.
c. Tahap Implementasi:
Sama seperti SDLC (instalasi, operasi, pemeliharaan), namun sangat bergantung pada kualitas dukungan dari vendor.
Instalasi: Sama seperti SDLC, namun sangat bergantung pada kualitas dukungan vendor.
Operasi: Kunci sukses di awal adalah jalur komunikasi yang baik dengan vendor untuk menyelesaikan masalah.
Pemeliharaan: Umumnya dilakukan oleh vendor sesuai dengan kontrak pembelian.
C. TIM PROYEK UNTUK PEMBELIAN PAKET
Implementasi paket yang sukses memerlukan komitmen besar dari manajer bisnis dan pengguna, karena seringkali memerlukan perubahan proses bisnis.
Tidak jarang manajer bisnis mengambil peran sebagai manajer proyek, dengan manajer SI tetap memimpin aspek teknis.
Untuk paket besar seperti ERP, seringkali melibatkan pihak ketiga (konsultan) sebagai mitra implementasi.
D. MENGELOLA PROYEK SISTEM YANG DIBELI
Keberhasilan proyek bergantung pada pemilihan produk dan vendor yang tepat yang mampu memenuhi kebutuhan saat ini dan masa depan.
Proses pembelian memerlukan modal besar dalam waktu yang relatif singkat, sehingga keterlibatan yang tepat dari manajer bisnis, pengguna, dan spesialis SI sangat penting.
E. PEMBELIAN SISTEM KECIL
Untuk sistem yang lebih kecil dan sederhana, proses pembelian dapat disederhanakan.
Namun, bagi usaha kecil, ini tetap merupakan investasi besar. Mereka mungkin perlu mengandalkan bantuan dari vendor perangkat keras, pemasok lokal, atau konsultan eksternal karena keterbatasan pengetahuan internal.
F. KEUNTUNGAN DAN KERUGIAN MEMBELI
Keuntungan Utama:
Implementasi lebih cepat dibandingkan pengembangan kustom.
Secara ekonomi bisa sangat menarik, terutama untuk usaha kecil.
Risiko Utama:
Kurangnya pengetahuan paket: Organisasi mungkin tidak terbiasa dengan fungsionalitas paket dan memerlukan pelatihan signifikan.
Ketergantungan pada vendor untuk peningkatan dan pemeliharaan di masa depan.