Desain tingkat tinggi (high-level design) adalah tahap dalam proses pengembangan perangkat lunak yang berfokus pada penentuan struktur dan arsitektur umum sistem. Pada fase ini, gambaran umum sistem dikembangkan dengan mengidentifikasi komponen-komponen utama, modul-modul, dan interaksi antar bagian-bagian tersebut tanpa masuk ke detail implementasi. High-level design mencakup pembuatan diagram arsitektur, diagram modul, dan deskripsi komponen yang menjelaskan fungsi dan tanggung jawab utama masing-masing komponen. Tujuan utama dari tahap ini adalah untuk memberikan pemahaman yang jelas tentang cara sistem akan diorganisasikan dan bagaimana elemen-elemen utamanya akan berinteraksi satu sama lain untuk memenuhi persyaratan fungsional dan non-fungsional.
Pentingnya desain tingkat tinggi terletak pada kemampuannya untuk membangun fondasi yang solid bagi pengembangan dan desain yang lebih detail. Dengan mendefinisikan struktur dasar sistem, high-level design membantu mengidentifikasi potensi masalah arsitektural sejak dini, mengurangi risiko dan biaya perubahan pada fase-fase selanjutnya. Selain itu, desain tingkat tinggi memberikan panduan bagi pengembang dan tim teknis lainnya, memastikan bahwa semua anggota tim memiliki pemahaman yang sama mengenai tujuan dan struktur sistem. Ini juga memfasilitasi komunikasi antara berbagai pemangku kepentingan, memastikan bahwa visi dan tujuan proyek dipahami secara konsisten oleh semua pihak yang terlibat.
Pada tugas pertemuan kali ini, saya akan menganalisis desain tingkat tinggi dari aplikasi Twitter berdasarkan referensi video yang telah diberikan.
Twitter adalah platform media sosial yang memungkinkan pengguna berbagi pemikiran, informasi, dan berita dalam bentuk pesan pendek yang dikenal sebagai "tweet". Diluncurkan pada tahun 2006, Twitter telah menjadi salah satu platform komunikasi online paling populer di dunia, dengan jutaan pengguna aktif setiap hari. Pengguna dapat mengirim dan menerima tweet hingga 280 karakter, yang dapat berisi teks, gambar, video, dan tautan. Twitter juga menawarkan fitur seperti retweet, like, dan balasan untuk berinteraksi dengan tweet pengguna lain. Selain itu, fitur-fitur seperti hashtag dan trending topics memungkinkan pengguna menemukan dan berpartisipasi dalam percakapan yang sedang tren di platform ini.
Persyaratan Sistem
Persyaratan Fungsional:
Pengguna dapat membuat dan membagikan tweet, serta menghapusnya jika diperlukan. Mereka juga dapat berinteraksi dengan tweet lain dengan membalas, menyukai, me-retweet, dan membagikannya. Pengguna dapat mengikuti atau berhenti mengikuti akun lain. Saat mengakses timeline, pengguna melihat daftar tweet dari akun yang mereka ikuti, disusun berdasarkan relevansi. Pengguna juga dapat mencari tweet menggunakan kata kunci, hashtag, atau nama pengguna melalui kolom pencarian. Selain itu, mereka dapat melihat topik yang sedang tren di wilayah mereka di bagian tren.
Persyaratan Non-Fungsional:
Aplikasi perlu memastikan tingkat ketersediaan yang tinggi, skalabilitas yang memadai untuk menangani sejumlah besar pengguna, serta performa yang cepat dan responsif.
Estimasi Kapasitas untuk Desain Sistem Sosial Media
Untuk memperkirakan kapasitas sistem, kita perlu menganalisis perkiraan tingkat klik harian.
Estimasi Lalu Lintas:
Misalkan kita memiliki 800 juta pengguna total dengan 150 juta pengguna aktif harian (DAU), dan rata-rata setiap pengguna men-tweet 4 kali sehari. Ini memberi kita 600 juta tweet per hari.
Tweet juga dapat berisi media seperti gambar atau video. Kita dapat berasumsi bahwa 15 persen tweet adalah file media yang dibagikan oleh pengguna, yang memberi kita tambahan 90 juta file yang perlu disimpan.
15%×600 juta=90 juta/hari
Untuk Permintaan Sistem per Detik (RPS) kita adalah:
600 juta permintaan per hari diterjemahkan menjadi sekitar 7.000 permintaan per detik.
Misalkan setiap pesan rata-rata berukuran 150 byte, kita akan membutuhkan sekitar 90 GB penyimpanan basis data setiap hari.
15 persen dari pesan harian kita (90 juta) adalah file media sesuai persyaratan kita. Misalkan setiap file rata-rata berukuran 75 KB, kita akan membutuhkan 6.75 TB penyimpanan setiap hari.
Untuk 10 tahun membutuhkan 24.6675 PB penyimpanan.
(6.75 TB+0.09 TB)×365 hari×10 tahun=24.6675 PB
Estimasi Bandwidth:
Karena sistem kita menangani 6.84 TB data masuk setiap hari, kita akan membutuhkan bandwidth minimal sekitar 79 MB per detik.
Use Case Diagram
Pada diagram tersebut, pengguna akan mengakses Halaman Twitter mereka dan diarahkan ke halaman utama. Di halaman utama ini, terdapat tiga sub-halaman utama: Halaman Beranda, Halaman Pencarian, dan Halaman Pemberitahuan.
Halaman Beranda: Pengguna akan menemukan tweet terbaru serta memiliki opsi untuk memposting gambar atau video. Setiap tweet baru akan dilengkapi dengan tombol suka, tidak suka, komentar, serta tombol ikuti atau berhenti mengikuti.
Pengguna tamu: Hanya dapat melihat tweet tanpa akses untuk berinteraksi.
Pengguna terdaftar: Memiliki akses untuk melihat dan memposting tweet, serta dapat mengikuti atau berhenti mengikuti pengguna lain. Selain itu, mereka juga dapat membuat tweet baru.
Kami telah menerapkan arsitektur layanan mikro untuk platform Twitter kami, yang memisahkan layanan-layanan inti untuk mendukung penskalaan horizontal dan pengelolaan yang lebih baik terhadap model data masing-masing layanan. Pertama-tama, terdapat Layanan Pengguna yang bertanggung jawab atas otentikasi dan informasi pengguna, termasuk Halaman Login, Halaman Pendaftaran, Halaman Profil, dan Halaman Beranda. Selanjutnya, Layanan Umpan Berita mengurus pembuatan dan publikasi umpan berita pengguna. Kami juga mengimplementasikan Layanan Tweet yang menangani segala aspek terkait tweet, seperti memposting tweet dan menambahkan ke favorit. Selain itu, terdapat Layanan Pencarian yang mengurus fungsi pencarian, seperti mencari postingan teratas dan terbaru. Layanan Media didedikasikan untuk mengelola unggahan media seperti gambar, video, dan berkas lainnya. Kami juga menambahkan Layanan Analisis untuk melacak metrik dan analitik terkait penggunaan platform. Terakhir, kami memperkenalkan Algoritma Pemeringkatan untuk memberi peringkat tweet berdasarkan relevansinya bagi setiap pengguna.
Data Model
Kesimpulan
Twitter menangani ribuan tweet per detik sehingga Anda tidak bisa hanya memiliki satu sistem atau tabel besar untuk menangani semua data sehingga harus ditangani melalui pendekatan terdistribusi. Twitter menggunakan strategi sebar dan kumpulkan dengan menyiapkan beberapa server atau pusat data yang memungkinkan pengindeksan. Saat Twitter mendapatkan kueri (katakanlah #geeksforgeeks), Twitter mengirimkan kueri tersebut ke semua server atau pusat data dan menanyakan setiap shard Early Bird . Semua early bird yang cocok dengan kueri akan mengembalikan hasilnya. Hasilnya dikembalikan, diurutkan, digabungkan, dan diberi peringkat ulang. Pemeringkatan dilakukan berdasarkan jumlah retweet, balasan, dan popularitas tweet.
Nama: Muhamad Faiz Fernanda Kelas: PPB-A NRP: 50251211186 Analisis dan Implementasi Aplikasi "Dessert Clicker" dengan Jetpack Compose Tampilan Antarmuka Aplikasi 1. Analisis Kode Sumber Aplikasi "Dessert Clicker" Untuk memahami struktur serta fungsionalitas aplikasi, berikut adalah penjabaran dari komponen-komponen penting yang terdapat dalam proyek ini: 2. Struktur Data: Dessert.kt dan Datasource.kt Aplikasi ini menggunakan pendekatan data sederhana namun efektif dalam merepresentasikan berbagai jenis makanan penutup (dessert), dengan memanfaatkan data class pada Kotlin. data class Dessert( val imageId: Int, val price: Int, val startProductionAmount: Int ) Penjelasan atribut: imageId : ID untuk gambar (resource drawable) dari dessert. price : Harga per unit dari dessert. startProductionAmount : Jumlah minimum penjualan sebelum dessert ini mulai muncul di aplikasi. Data tersebut disediakan secara statis melalui ...
Nama : Muhamad Faiz Fernanda NRP : 502521118 Kelas : PPB-A Perkembangan Teknologi Perangkat Bergerak: Hardware, OS, dan Aplikasi 📱 Dari “Batu Bata” ke Kecerdasan Buatan: Evolusi Perangkat Bergerak Ponsel saat ini sudah menjadi bagian penting dalam kehidupan sehari-hari. Namun, tahukah Anda bahwa ponsel pertama beratnya lebih dari 1 kg? Yuk, kita lihat kilas balik perkembangan teknologi perangkat bergerak dari masa ke masa! 🧱 Era Awal: Ponsel Sebesar Batu Bata (1973 – 1999) 1973 : Martin Cooper (Motorola) membuat panggilan pertama dari ponsel DynaTAC seberat 1 kg. 1982–1992 : Mobira Senator dan Nokia 1011 hadir, namun masih besar dan berat. 1994 : IBM Simon, ponsel layar sentuh pertama dengan kalkulator dan email. 1999 : Nokia 7110 menjadi ponsel pertama yang bisa mengakses internet via WAP. 🚀 Era 2000-an: Kamera, Musik, dan Awal Smartphone 2000 : Ponsel kamera pertama dirilis, meski hanya 0.1 MP. 2003–2005 : Blackberry booming dengan BBM; Sony Ericsson Wal...
Nama : Muhamad Faiz Fernanda NRP : 5025211186 Membuat Aplikasi Kalkulator Dalam tugas ini, saya mengembangkan sebuah aplikasi Kalkulator Sederhana menggunakan Android Studio dengan memanfaatkan framework Jetpack Compose. Aplikasi ini dirancang untuk menjalankan operasi matematika dasar, yaitu penjumlahan, pengurangan, perkalian, dan pembagian. Langkah-Langkah Pembuatan Aplikasi Kalkulator 1. Inisialisasi Proyek Mulailah dengan membuat proyek baru di Android Studio, pilih template Empty Activity , dan pastikan opsi Jetpack Compose diaktifkan. 2. Perancangan Antarmuka Antarmuka dibangun menggunakan struktur Column , dengan komponen berikut: Card digunakan untuk menampilkan hasil perhitungan. Tombol angka dan operator ditata dalam grid dengan kombinasi Row dan Column . 3. Implementasi Fungsionalitas Setiap tombol menambahkan karakter ke string input. Saat tombol "=" ditekan, ekspresi akan diproses dan menghasilkan output. Struktur Utama ...
Komentar
Posting Komentar