ETS PPL
1. Apakah perbedaan model analysis dengan model desain?
Analisis sistem adalah sebuah proses dalam mengumpulkan dan melakukan analisa persyaratan sistem dalam lingkungannya. Keuntungan dalam analis ini adalah mampu mengidentifikasi masalah dan penyebabnya, memberi solusi dengan identifikasi secara detail. Analis dan desain sistem informasi saling berkaitan dengan pengertian yang berbeda. Adapun desain sistem adalah proses merancang arsitektur, antarmuka, modul, komponen hingga data agar sesuai persyaratan khusus. Desain berguna untuk membantu menciptakan ide kreasi karya cukup efisien, mengurangi biaya pengembangan dan menciptakan pengalaman pengguna terbaik. Dengan sistem analis dan desain yang terprogram dengan baik, maka kebutuhan dari perangkat lunak dapat terkondisikan secara maksimal.
Perbedaan Model Analisis dan Model Desain
Model analisis dan model desain merupakan dua tahap penting dalam berbagai bidang, seperti pengembangan perangkat lunak, pembelajaran, dan sistem informasi. Meskipun saling terkait, keduanya memiliki perbedaan yang jelas dalam fokus dan tujuannya.
Fokus Utama:
Model Analisis: Berfokus pada pemahaman situasi saat ini dan identifikasi masalah yang ada. Melibatkan pengumpulan data, analisis kebutuhan, dan pendefinisian ruang lingkup proyek.
Model Desain: Berfokus pada penciptaan solusi untuk masalah yang telah diidentifikasi dalam tahap analisis. Melibatkan perancangan arsitektur sistem, pembuatan prototipe, dan pengembangan spesifikasi teknis.
Tujuan:
Model Analisis: Menghasilkan pemahaman yang mendalam tentang masalah, kebutuhan pengguna, dan batasan proyek. Membantu dalam pengambilan keputusan yang tepat dan terarah.
Model Desain: Menghasilkan solusi yang efektif dan efisien untuk menyelesaikan masalah yang ada. Memenuhi kebutuhan pengguna dan mencapai tujuan proyek.
Berikut adalah gambaran umum tahapan pada kedua model :
Model Analisis:
Analisis Kinerja: Mengevaluasi sistem atau proses yang ada untuk mengidentifikasi kelemahan dan area yang perlu diperbaiki.
Analisis Kebutuhan: Mengumpulkan data tentang kebutuhan pengguna, tujuan proyek, dan batasan yang ada.
Analisis Kelayakan: Menilai apakah proyek layak dilakukan berdasarkan sumber daya, waktu, dan biaya yang tersedia.
Model Desain:
Perancangan Arsitektur: Menentukan struktur keseluruhan sistem atau solusi, termasuk komponen utama dan interaksinya.
Pembuatan Prototipe: Mengembangkan model awal dari solusi untuk menguji dan menyempurnakan desain.
Pengembangan Spesifikasi Teknis: Menggunakankan detail teknis dari solusi, termasuk fungsionalitas, antarmuka pengguna, dan persyaratan perangkat keras/perangkat lunak.
2. Jelaskan output proses Desain Aplikasi?
Proses desain aplikasi menghasilkan berbagai macam output yang penting untuk pengembangan dan implementasi aplikasi yang sukses. Berikut adalah beberapa output utama dari proses desain aplikasi:
a. Dokumentasi Desain
Arsitektur Sistem: Menjelaskan struktur keseluruhan aplikasi, termasuk komponen utama, interaksi antar komponen, dan aliran data.
Desain Antarmuka Pengguna (UI): Menjelaskan tampilan dan nuansa aplikasi, termasuk tata letak layar, elemen UI, dan skema warna.
Desain Interaksi Pengguna (UX): Menjelaskan bagaimana pengguna akan berinteraksi dengan aplikasi, termasuk alur navigasi, interaksi pengguna, dan umpan balik sistem.
Spesifikasi Teknis: Menjelaskan detail teknis aplikasi, termasuk bahasa pemrograman, basis data, dan persyaratan perangkat keras/perangkat lunak.
Panduan Pengguna: Memberikan instruksi kepada pengguna tentang cara menggunakan aplikasi, termasuk fitur utama, fungsionalitas, dan pemecahan masalah.
b. Prototipe
Prototipe Kertas: Sketsa kasar yang menggambarkan tampilan dan nuansa aplikasi.
Prototipe Interaktif: Model yang memungkinkan pengguna untuk berinteraksi dengan aplikasi dan menguji fungsionalitasnya.
c. Dokumentasi Desain
Dokumentasi desain adalah dokumen yang merangkum semua aspek desain dari aplikasi. Ini mencakup informasi tentang keputusan desain yang diambil, alasan di balik keputusan tersebut, dan panduan penggunaan untuk pengembang yang akan bekerja pada aplikasi.
d. Kode Aplikasi
Kode sumber yang ditulis dalam bahasa pemrograman yang dipilih untuk membangun aplikasi.
e. Tes Unit dan Integrasi
Uji coba yang memastikan bahwa komponen aplikasi individual dan interaksinya berfungsi dengan benar.
f. Dokumentasi Pengujian
Menjelaskan hasil pengujian dan langkah-langkah yang diambil untuk mengatasi bug dan masalah lainnya.
g. Model Data
Model data merinci struktur data yang akan digunakan oleh aplikasi. Ini mencakup tabel-tabel basis data, hubungan antara tabel-tabel tersebut, dan skema basis data secara keseluruhan. Model data menjadi landasan untuk pengembangan bagian aplikasi yang berhubungan dengan penyimpanan dan pengambilan data.
h. Algoritma dan Logika Bisnis
Merujuk pada penjelasan terperinci mengenai bagaimana aplikasi akan mengoperasikan serangkaian langkah-langkah yang diperlukan untuk mencapai tujuan fungsionalitas yang diinginkan. Ini mencakup pemecahan proses-proses yang terlibat dalam berbagai fitur aplikasi dan bagaimana aplikasi akan mengelola data serta berinteraksi dengan pengguna.
i. Dokumentasi Teknis
Sebuah dokumen rinci yang menjelaskan cara pembangunan aplikasi dilakukan, meliputi spesifikasi teknis, panduan pengembangan, dan instruksi instalasi. Dokumentasi ini memberikan detail tentang teknologi yang digunakan, arsitektur sistem, dan struktur basis data yang akan diimplementasikan.
3. Visualisasikan Deskripsi dari aplikasi parkir berikut (Studi Kasus)
Sistem Masuk Parkir
Sistem ini bekerja dengan cara membaca tag RFID kendaraan yang masuk.
Jika tag terdaftar dalam database, sistem akan mengecek apakah terdapat slot parkir yang tersedia.
Jika slot parkir tersedia, sistem akan menampilkan nomor slot parkir di layar LCD, membuka portal masuk, dan mencatat waktu masuk kendaraan.
Jika slot parkir tidak tersedia, sistem akan menampilkan pesan "Mohon maaf parkir penuh" di layar LCD.
Jika tag tidak terdaftar dalam database, sistem akan menampilkan pesan "Mohon maaf tag tidak terdaftar" di layar LCD.
Sistem ini menggunakan sensor untuk mendeteksi keberadaan kendaraan di setiap slot parkir.
Ketika kendaraan keluar dari area parkir, sistem akan mencatat waktu keluar kendaraan dan memperbarui status slot parkir.
Sistem ini dirancang untuk memberikan kemudahan dan efisiensi dalam proses parkir mobil.
Pengguna tidak perlu mencari tempat parkir secara manual, dan sistem akan secara otomatis mengarahkan mereka ke slot parkir yang tersedia.
Sistem ini juga dapat membantu meningkatkan keamanan area parkir dengan mencegah kendaraan yang tidak terdaftar masuk ke dalam area parkir.
Berikut adalah beberapa komponen utama dari sistem parkir mobil otomatis :
Tag RFID: Digunakan untuk mengidentifikasi kendaraan dan menyimpan informasi tentang kendaraan tersebut.
Sensor: Digunakan untuk mendeteksi keberadaan kendaraan di setiap slot parkir.
Layar LCD: Digunakan untuk menampilkan informasi kepada pengguna.
Portal: Digunakan untuk mengontrol akses ke area parkir.
Komputer: Digunakan untuk mengontrol seluruh sistem dan memproses data.
Sistem Keluar Parkir
Sistem ini bekerja dengan cara membaca kendaraan yang keluar.
Langkah 1: Membaca Tag
Sistem akan membaca tag yang telah dimasukkan oleh pengguna. Tag ini bisa berupa kode, barcode, RFID, atau jenis identifikasi lainnya.
Langkah 2: Memeriksa Tag
Sistem akan memeriksa apakah tag tersebut terdaftar dalam database sistem. Jika tag terdaftar, maka sistem akan melanjutkan ke langkah berikutnya.
Langkah 3: Menampilkan Pesan
Jika tag terdaftar, maka sistem akan menampilkan pesan "Selamat Jalan" pada layar LCD.
Langkah 4: Membuka Portal OUT
Sistem akan mencoba membuka portal OUT. Jika portal OUT berhasil dibuka, maka proses pembacaan tag selesai.
Langkah 5: Menangani Kesalahan
Jika portal OUT tidak berhasil dibuka, maka sistem akan menampilkan pesan "Portal OUT tidak terbuka" pada layar LCD. Proses pembacaan tag selesai.
4. Buat HLD dan LLD dari rancangan desain aplikasi parkir (Studi Kasus)
Kebutuhan Fungsional
1. Pencarian dan Pemesanan Tempat Parkir
Pengguna dapat mencari tempat parkir berdasarkan lokasi, harga, fasilitas, dan jam buka.
Hasil pencarian ditampilkan pada peta dengan ikon dan informasi singkat tentang setiap lokasi.
Pengguna dapat mengklik ikon untuk melihat informasi lebih detail tentang lokasi parkir.
2. Pembayaran Parkir
Pengguna dapat membayar parkir melalui aplikasi menggunakan kartu kredit/debit atau dompet digital.
3. Fitur Tambahan
Integrasi dengan sistem navigasi (misalnya, Google Maps, Waze).
Pencarian tempat parkir berdasarkan jenis kendaraan (misalnya, mobil untuk penyandang cacat).
Informasi tentang peraturan parkir di lokasi tertentu.
4. Manajemen Akun Pengguna
Pengguna dapat membuat akun dan mengelola profil mereka.
Pengguna dapat menambahkan kendaraan mereka.
Pengguna dapat melihat riwayat pemesanan dan pembayaran mereka.
Pengguna dapat mengubah pengaturan akun mereka.
5. Keamanan dan Privasi Data
Data pengguna harus dienkripsi dan dilindungi dengan aman.
Aplikasi harus menggunakan autentikasi dan otorisasi untuk melindungi data pengguna.
Pengguna harus memiliki kontrol atas data mereka dan bagaimana data tersebut digunakan.
Berikut ini adalah rancangan dasar untuk sistem manajemen tempat parkir yang mencakup fungsi-fungsi yang tersebut :
Manajemen Tempat Parkir
Tambahkan Tempat Parkir: Admin dapat menambahkan informasi tempat parkir baru, termasuk jenis tempat parkir dan tarifnya.
Hapus Tempat Parkir: Admin dapat menghapus tempat parkir yang tidak lagi digunakan atau tidak diperlukan.
Modifikasi Informasi Tempat Parkir: Admin dapat mengubah informasi tempat parkir, seperti jenis tempat parkir atau tarifnya.
Tentukan Jenis Tempat Parkir: Sistem memungkinkan admin untuk menentukan jenis tempat parkir, seperti mobil, motor, atau VIP.
Tentukan Tarif Parkir: Admin dapat menetapkan tarif parkir untuk setiap jenis tempat parkir.
Pelacakan Ketersediaan Tempat Parkir
Ketersediaan Real-Time: Sistem melacak ketersediaan tempat parkir secara real-time dan memberikan informasi kepada pengguna tentang tempat parkir yang tersedia.
Manajemen Kendaraan
Registrasi Kendaraan: Petugas parkir dapat mendaftarkan kendaraan yang masuk ke area parkir.
Penerbitan Tiket Parkir: Sistem akan mengeluarkan tiket parkir untuk kendaraan yang masuk ke area parkir.
Pembayaran Parkir: Sistem memproses pembayaran parkir berdasarkan tarif yang ditetapkan dan durasi parkir kendaraan.
Penanganan Pelanggaran Parkir: Sistem mencatat dan menangani pelanggaran parkir, seperti kendaraan yang parkir di tempat yang tidak diperbolehkan.
Manajemen Pengguna
Kelola Informasi Pengguna: Admin dapat menambahkan, menghapus, atau memodifikasi informasi pengguna, termasuk data pribadi dan riwayat parkir.
Tetapkan Peran dan Akses Pengguna: Admin dapat menetapkan peran dan tingkat akses untuk pengguna, misalnya, petugas parkir atau admin sistem.
Lacak Aktivitas Pengguna: Sistem mencatat aktivitas pengguna, seperti masuk atau keluar dari sistem, atau melakukan perubahan pada data parkir.
Pelaporan
Laporan Pendapatan Parkir: Sistem menghasilkan laporan tentang pendapatan parkir berdasarkan waktu tertentu.
Laporan Penggunaan Parkir: Sistem menyajikan laporan tentang penggunaan tempat parkir, termasuk jumlah kendaraan yang parkir per jenis dan durasi parkirnya.
Laporan Pelanggaran Parkir: Sistem memberikan laporan tentang pelanggaran parkir yang terjadi dan tindakan yang diambil.
Kebutuhan Non-Fungsional
Ketersediaan : Aplikasi harus tersedia 24/7 dengan downtime minimal.
Performa : Aplikasi harus responsif,cepat dalam memuat data dan dapat menangani banyak pengguna secara bersamaan.
Skalabilitas : Aplikasi harus dapat diskalakan untuk mengakomodasi pertumbuhan jumlah pengguna dan tempat parkir.
Keamanan : Aplikasi harus aman dari serangan siber dan pencurian data.
Kegunaan : Aplikasi harus mudah digunakan dan dipahami oleh pengguna dari semua tingkat keahlian.
API
Berdasarkan hal di atas, kita dapat membuat daftar fungsi atau API yang dibutuhkan oleh sistem untuk interaksi.
request Parking Space(Vehicle) atau /request Parking Space/{vehicle} > mengembalikan tiket dengan detail slot.
checkout(Tiket, Pembayaran) atau /checkout/ {tiket dan pembayaran sebagai data formulir pos}
Database
Untuk merancang basis data aplikasi parkir, kita perlu mempertimbangkan struktur data yang memadai untuk menyimpan informasi tentang tempat parkir, kendaraan, pengguna, transaksi pembayaran, dan aktivitas lainnya. Berikut adalah desain dasar untuk basis data aplikasi parkir :
Tabel Tempat Parkir
Tabel Pengguna
Tabel Kendaraan
Tabel Pelanggaran Parkir
Tabel Transaksi Parkir
Perhitungan
Berdasarkan perkiraan, berikut adalah estimasi skalabilitas untuk aplikasi parkir
Estimasi Lalu Lintas (Traffic Estimates)
Sistem mengharapkan 10.000 order/menit. Jadi, order per detik adalah
Order per detik = 10.000 order per menit / 60 detik/menit = 167 order/detik
Estimasi Penyimpanan (Storage Estimates)
Dengan perkiraan 10.000 order per menit, maka order per hari adalah :
Order per hari = 10.000 order/menit * 60 menit/jam * 24 jam/hari = 14.400.000 order/hari
Total order yang diharapkan dalam 5 tahun adalah:
Total order 5 tahun = 14.400.000 order/hari * 12 bulan/tahun * 5 tahun = 864.000.000 order
Diasumsikan ukuran objek 500 bytes, maka total penyimpanan dalam 5 tahun adalah:
Total penyimpanan 5 tahun = 864.000.000 order * 500 bytes/order = 432.000.000.000 bytes
Konversi ke Gigabyte (GB): 432.000.000.000 bytes / (1024 * 1024 * 1024) bytes/GB = 432 GB
Estimasi Bandwidth (Bandwidth Estimates)
Untuk order, dengan perkiraan 167 order/detik, total data masuk untuk layanan ini adalah:
Data masuk per detik = 167 order/detik * 500 bytes/order = 83.500 bytes/detik
Konversi ke Megabyte (MB) per detik: 83.500 bytes/detik / (1024 * 1024) bytes/MB ≈ 0.08 MB/detik
Teknologi yang Digunakan
Backend Development
Node.js: Platform JavaScript untuk membangun aplikasi backend.
Python dengan Flask atau Django: Bahasa pemrograman Python dengan framework web Flask atau Django.
Express.js: Framework Node.js untuk membuat aplikasi web dan API.
Frontend Development
React.js: Library JavaScript untuk antarmuka pengguna interaktif.
Vue.js: Framework JavaScript untuk antarmuka pengguna modern dan responsif.
Angular: Framework JavaScript untuk aplikasi web dan mobile.
Database
MySQL atau PostgreSQL: Sistem manajemen basis data relasional untuk menyimpan data aplikasi.
MongoDB: Basis data NoSQL untuk data yang berubah dengan cepat.
Authentication and Authorization
JSON Web Tokens (JWT): Standar untuk mengamankan pertukaran informasi.
OAuth: Protokol otentikasi untuk memberikan akses terbatas kepada pihak ketiga.
Security
HTTPS: Protokol untuk mengamankan komunikasi di internet.
Helmet: Middleware Node.js untuk melindungi aplikasi dari serangan web.
Cloud Services
Amazon Web Services (AWS), Google Cloud Platform (GCP), dan Microsoft Azure: Platform cloud untuk menyediakan layanan komputasi dan penyimpanan.
Version Control
Git: Sistem kontrol versi untuk melacak perubahan dalam kode sumber.
Komentar
Posting Komentar