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 NRP : 5025211186 Kelas : PPL-A Low Level Design Low-Level Design (LLD), atau desain tingkat rendah, adalah fase dalam pengembangan perangkat lunak yang secara rinci menjelaskan bagaimana setiap komponen dari sistem akan diimplementasikan. LLD menguraikan aspek teknis dan spesifik dari desain yang telah ditetapkan dalam tahap High-Level Design (HLD), yang memberikan gambaran umum dari arsitektur sistem. Dalam LLD, elemen-elemen seperti struktur data, algoritma, antarmuka, dan modul individual dijelaskan secara mendetail untuk memastikan implementasi yang akurat dan efisien. Desain ini menjadi panduan langsung bagi para pengembang dalam membangun sistem sesuai dengan spesifikasi yang ditetapkan. Aplikasi Simpan Pinjam Koperasi Pegawai Pada Komisi Yudisial RI Berbasis Android pada Koperasi Pegawai Komisi Yudisial RI bertujuan untuk mengatasi beberapa masalah yang ada, seperti proses pengajuan pinjaman yang ...
Nama : Muhamad Faiz Fernanda NRP : 5025211186 Kelas : PPL-A Evaluasi Akhir Semester Deskripsikan model bisnis yang di pilih? Jadi model bisnis yang saya pilih pada soal Evaluasi Akhir Semester ini yaitu Starbucks dimana konsep bisnis nya yaitu coffeshop.Bisnis ini menawarkan berbagai jenis kopi berkualitas tinggi, minuman panas dan dingin, serta makanan ringan. Fokus utama adalah memberikan pengalaman pelanggan yang nyaman dan santai dengan suasana yang ramah dan pelayanan yang personal. Seperti Starbucks, bisnis ini juga menekankan pada keberlanjutan dan kualitas bahan baku. Starbucks Coffe Promotion Promo Via sosmed (Twitter,FB,Web) Kompetisi foto selfie dengan tema "Starbucks" Discount member card Discount moment hari besar Three Constrasting Service Design 1. Production Line Approach Service design lebih mengalir, contohnya seperti Mcd, contoh di Star...
Nama : Muhamad Faiz Fernanda NRP : 5025211186 Estimasi Kapasitas Sistem Estimasi kapasitas dalam perancangan sistem adalah proses mengantisipasi atau menentukan maksimum beban atau permintaan yang dapat ditangani oleh sebuah sistem sesuai dengan parameter operasionalnya. Proses ini melibatkan evaluasi berbagai faktor seperti kemampuan perangkat keras, performa perangkat lunak, bandwidth jaringan, dan pola perilaku pengguna. Tujuannya adalah untuk memastikan bahwa sistem dapat menangani beban kerja yang diharapkan tanpa mengalami penurunan kinerja, kelebihan beban, atau kegagalan. Estimasi kapasitas ini sangat penting untuk merancang dan menyesuaikan skala sistem secara efisien guna memenuhi kebutuhan saat ini maupun di masa depan, termasuk untuk situs web, infrastruktur jaringan, atau sistem kompleks lainnya. Estimasi kapasitas sistem untuk Instagram, sebagai platform media sosial besar dengan fokus pada berbagi foto dan video, melibatkan beberapa pertimbangan pentin...
Komentar
Posting Komentar