TUGAS PERTEMUAN 5 PPL - HIGH LEVEL DESIGN
Nama: Arif Nugraha Santosa
NRP: 5025211048
Kelas: Perancangan Perangkat Lunak (A)
Tugas Pertemuan 5 PPL - High Level Design
High Level Design (HLD) adalah gambaran umum dari suatu sistem atau aplikasi yang menjelaskan struktur dan arsitektur sistem secara keseluruhan, tanpa mendalami detail implementasi. HLD biasanya dibuat pada tahap awal pengembangan perangkat lunak, sebelum desain tingkat rendah (LLD) dibuat. Tujuan HLD adalah memberikan gambaran yang jelas tentang sistem kepada para pemangku kepentingan seperti investor, manajer, dan arsitek. HLD membantu dalam pengambilan keputusan desain yang tepat, memudahkan komunikasi antar anggota tim pengembangan, serta mempermudah proses pengembangan dan pemeliharaan perangkat lunak.
Dalam pertemuan kelima mata kuliah Perancangan Perangkat Lunak kali ini, kita diminta untuk berlatih membuat high-level design dari sistem perangkat lunak yang sudah disediakan. Saya memilih untuk mengulas HLD dari sistem aplikasi Twitter berdasarkan video YouTube berikut:
Deskripsi
Twitter adalah aplikasi media sosial yang memungkinkan pengguna untuk memposting tweet berupa teks, gambar, video, dan link. Pengguna dapat mengikuti akun lain, memberikan like, retweet, dan reply pada tweet, serta melihat trending topic di wilayahnya. Twitter memiliki fitur pencarian yang memungkinkan pengguna untuk mencari tweet dengan mengetikkan kata kunci, tagar, atau username. Twitter juga memiliki fitur timeline yang menampilkan daftar tweet dari akun yang diikuti oleh pengguna, diurutkan berdasarkan relevansinya. Twitter memiliki ratusan juta pengguna aktif harian, sehingga sistem aplikasi harus memiliki tingkat ketersediaan dan skalabilitas yang tinggi untuk menangani jumlah pengguna yang besar. Performa aplikasi juga harus cepat dan responsif agar pengguna dapat menggunakan aplikasi dengan nyaman.
System Requirement
Sistem Twitter harus memenuhi beberapa persyaratan sebagai berikut.
Functional Requirements
- Pengguna dapat memposting sebuah tweet
- Pengguna dapat menghapus tweet yang telah diposting
- Pengguna dapat bereaksi pada sebuah tweet (reply, like, retweet, dan share)
- Pengguna dapat mengikuti dan batal mengikuti sebuah akun
- Ketika pengguna mengakses timeline Twitter, ia mendapatkan daftar tweet dari akun yang diikuti diurutkan berdasarkan relevansinya
- Pengguna dapat mencari tweet dengan mengetikkan kata kunci, tagar, atau username pada bar pencarian
- Pengguna dapat melihat trending topic di wilayahnya pada bagian trend
Non-Functional Requirements
- Sistem aplikasi harus memiliki tingkat ketersediaan yang tinggi
- Sistem aplikasi harus memiliki skalabilitas yang tinggi untuk menangani jumlah pengguna yang besar
- Performa aplikasi harus cepat dan responsif
Estimasi Kapasitas
Estimasi Trafik
Estimasi Penyimpanan
Arsitektur Sistem
- User service: Layanan ini menangani masalah terkait pengguna seperti otentikasi dan informasi pengguna.
- Newsfeed service: Layanan ini menangani algoritma pemberian tweet-tweet baru yang relevan kepada pengguna.
- Post tweet service: Layanan ini menangani pembuatan tweet oleh pengguna.
- Search tweet service: Layanan ini menangani pencarian tweet oleh keyword yang direquest oleh pengguna:
- Media service: Layanan ini menangani unggahan media berupa gambar, video, dll.
- Analysis service: Layanan ini digunakan untuk kasus penggunaan metrik dan anailitik
- Notification service: Layanan ini digunakan untuk pemberitahuan kepada pengguna, serperti akun baru yang follow, tweet baru, dll.
Use Case Diagram
- Halaman Beranda: Pengguna dapat melihat tweet terbaru, memposting gambar atau video, serta menggunakan tombol suka, tidak suka, komentar, dan tombol ikuti/berhenti mengikuti. Pengguna tamu hanya dapat melihat tweet tanpa akses untuk melakukan interaksi, sedangkan pengguna terdaftar dapat melihat dan memposting tweet serta mengikuti atau berhenti mengikuti pengguna lain.
- Halaman Pencarian: Memungkinkan pengguna untuk mencari postingan teratas dan terbaru.
- Halaman Pemberitahuan: Menampilkan notifikasi terkait aktivitas pengguna di platform.
High-Level Design
Data Model
- Tabel Pengguna: Menyimpan informasi pengguna seperti nama, alamat email, dan detail lainnya.
- Tabel Tweet: Menyimpan tweet beserta atributnya seperti teks, gambar, video, tanggal, dan waktu pembuatan tweet.
- Tabel Favorit: Memetakan tweet dengan pengguna untuk menyimpan daftar tweet favorit pengguna.
- Tabel Pengikut: Mencatat hubungan antara pengguna yang mengikuti dan diikuti.
- Tabel Umpan: Menyimpan properti dari setiap umpan yang akan ditampilkan kepada pengguna.
- Tabel Umpan_Tweet: Memetakan hubungan antara tweet dan umpan, memungkinkan tweet ditampilkan dalam umpan yang relevan untuk pengguna.



Comments
Post a Comment