Desain Sistem adalah proses mendefinisikan arsitektur, komponen, modul, antarmuka, dan data untuk sebuah sistem untuk memenuhi persyaratan yang ditentukan. Ini melibatkan penerjemahan persyaratan pengguna ke dalam cetak biru terperinci yang memandu fase implementasi. Tujuannya adalah untuk menciptakan struktur yang terorganisir dengan baik dan efisien yang memenuhi tujuan yang diinginkan sambil mempertimbangkan faktor-faktor seperti skalabilitas, pemeliharaan, dan kinerja.
Dalam setiap proses pengembangan, baik itu Perangkat Lunak atau teknologi lainnya, tahap yang paling penting adalah Desain. Tanpa tahap perancangan, Anda tidak dapat melompat ke bagian implementasi atau pengujian. Hal yang sama juga terjadi pada Sistem.
Desain Sistem tidak hanya merupakan langkah penting dalam pengembangan sistem, tetapi juga menyediakan tulang punggung untuk menangani skenario yang luar biasa karena mewakili logika bisnis perangkat lunak.
Sumber: geeksforgeeks.org
Pentingnya fase Desain Sistem dalam SDLC
Dari langkah-langkah SDLC di atas, jelas bahwa desain sistem berperan sebagai tulang punggung karena sebaik apapun bagian coding yang dieksekusi, nantinya akan menjadi tidak relevan jika desain yang sesuai tidak baik. Jadi, di sini kita mendapatkan informasi penting yang krusial mengapa hal ini ditanyakan di setiap Perusahaan Berbasis Produk.
Tujuan dari desain sistem
- Kepraktisan: Kita membutuhkan sistem yang harus menargetkan sekumpulan audiens (pengguna) yang sesuai dengan yang mereka rancang.
- Akurasi: Desain sistem di atas harus dirancang sedemikian rupa sehingga memenuhi hampir semua persyaratan yang dirancang baik itu persyaratan fungsional maupun non-fungsional.
- Kelengkapan: Desain sistem harus memenuhi semua kebutuhan pengguna
- Efisien: Desain sistem harus sedemikian rupa sehingga tidak boleh digunakan secara berlebihan yang melebihi biaya sumber daya atau kurang digunakan karena sekarang kita tahu bahwa hal tersebut akan menghasilkan hasil yang rendah (output) dan waktu respons yang lebih sedikit (latensi).
- Keandalan: Sistem yang dirancang harus dekat dengan lingkungan yang bebas dari kegagalan untuk jangka waktu tertentu.
- Optimalisasi: Waktu dan ruang adalah hal yang mungkin kita lakukan untuk potongan kode agar masing-masing komponen dapat bekerja dalam sebuah sistem.
- Terukur (fleksibilitas): Desain sistem harus dapat beradaptasi dengan waktu sesuai dengan kebutuhan pengguna yang berbeda dari pelanggan yang kita tahu akan terus berubah dari waktu ke waktu. Contoh terbaik di sini adalah perusahaan terkenal: Nokia. Ini adalah aspek yang paling penting saat merancang sistem dan merupakan hasil mengapa 1 dari 100 startup berhasil dalam jangka panjang, contoh terbaiknya adalah GeeksforGeeks.
Sumber: geeksforgeeks.org
Catatan: Desain Sistem juga membantu kita untuk mencapai toleransi kesalahan, yaitu kemampuan perangkat lunak untuk terus bekerja meskipun ada satu atau dua komponen yang gagal.
Sekarang setelah melihat sekilas dan membahas tujuan di atas, mari kita bahas keuntungan dari desain sistem untuk memahaminya dengan lebih baik karena keuntungan di bawah ini membuat pemahaman kita lebih dekat dengan kehidupan nyata.
Komponen desain sistem
Di bawah ini adalah beberapa komponen utama dari Desain Sistem yang dibahas secara singkat. Versi detailnya akan dibahas di postingan yang berbeda:
- Penyeimbang beban: Komponen paling penting untuk skalabilitas, ketersediaan, dan ukuran kinerja sistem.
- Penyimpanan Nilai Utama: Ini adalah sistem penyimpanan yang mirip dengan tabel hash di mana penyimpanan nilai kunci adalah tabel hash terdistribusi.
- Penyimpanan Gumpalan (Blob): Blob adalah singkatan dari objek besar biner, seperti namanya adalah penyimpanan untuk data yang tidak terstruktur seperti YouTube, dan Netflix.
- Database: Database adalah kumpulan data yang terorganisir sehingga dapat dengan mudah diakses dan dimodifikasi.
- Pembatas Kecepatan: Ini menetapkan jumlah maksimum permintaan yang dapat dipenuhi oleh layanan.
- Sistem Pemantauan: Pada dasarnya, ini adalah perangkat lunak di mana administrator sistem memantau infrastruktur seperti bandwidth, CPU, router, switch, dll.
- Antrian Pesan Sistem Terdistribusi: Media transaksi antara produsen dan konsumen.
- Generator ID Unik Terdistribusi: Dalam kasus sistem terdistribusi yang besar, setiap saat banyak tugas yang terjadi sehingga untuk membedakannya, berikan tag yang sesuai dengan setiap peristiwa.
- Pencarian Terdistribusi: Di setiap situs web, informasi penting yang akan dicari pengunjung dimasukkan ke dalam bilah pencarian.
- Layanan Pencatatan Terdistribusi: Menelusuri urutan kejadian dari ujung ke ujung.
- Penjadwal Tugas Terdistribusi: Sumber daya komputasi seperti CPU, memori, penyimpanan, dll.
Sumber: geeksforgeeks.org
Komponen desain sistem
Siklus hidup desain sistem (SDLC)
Siklus Hidup Desain Sistem (SDLC) adalah proses komprehensif yang menguraikan langkah-langkah yang terlibat dalam mendesain dan mengembangkan sistem, baik itu aplikasi perangkat lunak, solusi perangkat keras, atau sistem terintegrasi yang menggabungkan keduanya. SDLC mencakup serangkaian fase yang memandu para insinyur melalui pembuatan sistem yang sesuai dengan kebutuhan pengguna dan tujuan organisasi. SDLC bertujuan untuk memastikan bahwa produk akhir dapat diandalkan, terukur, dan dapat dipelihara.
Fase (Tahapan) dari Siklus Hidup Desain Sistem adalah:
Perencanaan
- Studi kelayakan
- Desain sistem
- Implementasi
- Pengujian
- Penerapan
- Pemeliharaan dan dukungan
- Arsitektur sistem
Arsitektur perangkat lunak adalah cara yang digunakan untuk mendefinisikan bagaimana komponen-komponen desain digambarkan dalam perancangan dan penyebaran perangkat lunak.
Pada dasarnya, arsitektur adalah desain kerangka sistem perangkat lunak yang menggambarkan komponen, tingkat abstraksi, dan aspek-aspek lain dari sistem perangkat lunak. Untuk memahaminya dalam bahasa awam, tujuan atau logika bisnis harus sangat jelas dan ditata dalam selembar kertas. Di sini, tujuan dari proyek-proyek besar dan panduan lebih lanjut untuk meningkatkan skala tersedia untuk sistem yang ada dan sistem yang akan datang untuk ditingkatkan.
Pola arsitektur sistem
Ada berbagai cara untuk mengatur komponen dalam arsitektur perangkat lunak. Dan berbagai organisasi komponen yang telah ditentukan sebelumnya dalam arsitektur perangkat lunak dikenal sebagai pola arsitektur perangkat lunak. Banyak pola yang telah dicoba dan diuji. Sebagian besar dari mereka telah berhasil memecahkan berbagai masalah. Dalam setiap pola, komponen-komponen diatur secara berbeda untuk memecahkan masalah tertentu dalam arsitektur perangkat lunak.
Berbagai jenis Pola Arsitektur Perangkat Lunak meliputi:
- Pola Berlapis
- Pola Klien-Server
- Pola Berbasis Peristiwa
- Pola Mikrokernel
- Pola Layanan Mikro
Sumber: geeksforgeeks.org
Pola arsitektur sistem
Modularitas dan antarmuka dalam desain sistem
- Desain modular mengacu pada metode/prosedur untuk desain produk yang melibatkan pengintegrasian atau penggabungan elemen-elemen yang lebih kecil dan independen untuk menciptakan produk jadi. Sebuah produk besar (seperti mobil) dapat dipisahkan menjadi komponen-komponen yang lebih kecil dan lebih sederhana yang dikembangkan dan diproduksi secara terpisah menggunakan pendekatan desain modular. Produk akhir dibuat dengan mengintegrasikan (atau merakit) masing-masing bagian komponen ini.
- Antarmuka Dalam Desain Sistem adalah area di mana pengguna berinteraksi. Ini terdiri dari tampilan layar yang memfasilitasi navigasi sistem, layar dan formulir yang mengumpulkan data, dan laporan sistem.
Evolusi, peningkatan atau skala dari sistem yang sudah ada
Dengan meningkatnya penggunaan teknologi, baik secara offline maupun online, kini menjadi suatu keharusan bagi setiap pengembang untuk mendesain dan membuat sistem yang dapat diskalakan. Jika sistem tidak terukur, dengan bertambahnya pengguna, kemungkinan besar sistem akan mengalami crash. Oleh karena itu, konsep penskalaan berperan.
Misalkan ada sebuah sistem dengan konfigurasi disk dan RAM tertentu yang menangani tugas-tugas tertentu. Sekarang jika kita perlu mengembangkan sistem kita atau meningkatkan skala, kita memiliki dua opsi.
- Meningkatkan Spesifikasi sistem yang ada: Kami hanya meningkatkan prosesor dengan meningkatkan RAM dan ukuran disk dan banyak komponen lainnya. Perhatikan bahwa di sini kami tidak peduli dengan skalabilitas dan ketersediaan bandwidth jaringan. Di sini sesuai dengan evolusi, kami bekerja pada faktor ketersediaan hanya dengan mempertimbangkan skalabilitas yang akan dipertahankan. Ini dikenal sebagai penskalaan vertikal.
- Buat Sistem Terdistribusi dengan menghubungkan beberapa sistem secara bersamaan: Kita lihat di atas bahwa jika skalabilitas tidak sesuai dengan standar maka kita membutuhkan beberapa sistem untuk ukuran ini karena ukuran ketersediaan memiliki batasan. Untuk meningkatkan skalabilitas, kita membutuhkan lebih banyak sistem (lebih banyak potongan blok) dan ini dikenal sebagai penskalaan horizontal.
Sumber: geeksforgeeks.org
Evolusi, peningkatan atau skala dari sistem yang sudah ada
Bagaimana data mengalir antar sistem
Data mengalir di antara sistem melalui Diagram Aliran Data atau DFD.
Data Flow Diagram atau DFD didefinisikan sebagai representasi grafis dari aliran data melalui informasi. DFD dirancang untuk menunjukkan bagaimana sebuah sistem dibagi menjadi bagian-bagian yang lebih kecil dan untuk menyoroti aliran data di antara bagian-bagian ini Catatan: Pengirim dan Penerima harus selalu ditulis dengan huruf besar. Sebaiknya gunakan huruf besar apa pun yang ditempatkan dalam kotak persegi sesuai konvensi DFD.
Sumber: geeksforgeeks.org
Komponen DFD:
Sumber: geeksforgeeks.org
Contoh desain sistem: sistem reservasi maskapai penerbangan
Sekarang karena kita telah membahas tentang dasar-dasar Desain Sistem sejauh ini, sekarang mari kita pahami Desain Sistem melalui contoh dasar - Sistem Reservasi Penerbangan.
Untuk memahami lebih baik tentang komponen dan desain Sistem Reservasi Maskapai Penerbangan, mari kita tinjau terlebih dahulu diagram alir tingkat konteksnya:
Sumber: geeksforgeeks.org
Contoh desain sistem: sistem reservasi maskapai penerbangan
Sekarang mari kita pahami DFD dari Sistem Reservasi Maskapai Penerbangan:
- Pada diagram alir di atas, Penumpang, Agen Perjalanan, Maskapai Penerbangan adalah sumber-sumber yang dilalui oleh data yang berpindah.
- Di sini data ditransmisikan dari Penumpang untuk memesan tiket Pesawat seperti yang ditunjukkan dengan tanda panah DFD di mana permintaan perjalanan ditempatkan.
- Sekarang, data ini ditransmisikan melalui dua sumber, seperti yang ditunjukkan di atas, yaitu 'Agen Perjalanan' dan 'Maskapai Penerbangan' di mana jika kursi tersedia, Preferensi dan permintaan Penerbangan Udara ditempatkan ke sumber tersebut.
- Agen Perjalanan dan Tiket yang sesuai ditempatkan sesuai permintaan.
- Jika tidak ada tiket yang tersedia, maka permintaan Reservasi Penumpang ditempatkan ke sumber - Maskapai Penerbangan.
Keuntungan dari desain sistem
Setelah membahas secara rinci tentang pengenalan desain sistem, sekarang adalah suatu keharusan untuk membahas kelebihan dan kekurangannya.
Keuntungan terbesar dari desain sistem adalah menanamkan kesadaran dan kreativitas pada pengembang full-stack melalui ikatan sinergis dari gateway protokol API, jaringan dan database.
Beberapa keuntungan utama dari Desain Sistem meliputi:
- Mengurangi biaya desain produk.
- Proses pengembangan perangkat lunak yang cepat
- Menghemat waktu keseluruhan dalam SDLC
- Meningkatkan efisiensi dan konsistensi programmer.
- Menghemat sumber daya
Belajar desain sistem: tutorial desain sistem
Merasa tersesat di dunia Desain Sistem yang luas? Saatnya untuk bertransformasi! Daftarkan diri Anda dalam kursus Menguasai Desain Sistem Dari Solusi Tingkat Rendah hingga Tingkat Tinggi - Kursus Langsung dan mulailah perjalanan yang menggembirakan untuk menguasai konsep dan teknik desain sistem secara efisien.
Disadur dari: geeksforgeeks.org