Anda di halaman 1dari 7

Nama : Tatia Deswita Anggraeni

Nim : 312210478
Kelas : Ti.22.A5
Matkul : Sistem terdistribusi
TUGAS
1. Jelaskan dua kategori utama model dalam sistem terdistribusi dan berikan contoh model
dari masing-masing kategori.
Jawaban

1) Model Client-Server:
• Dalam model ini, terdapat dua jenis entitas utama: klien (client) dan server.
• Klien adalah entitas yang meminta layanan atau sumber daya dari server.
• Server adalah entitas yang menyediakan layanan atau sumber daya kepada klien.
• Contoh model dari kategori ini adalah:
❖ Model Web Server: Di sini, klien (misalnya, browser web) meminta halaman
web atau data dari server web (seperti Apache atau Nginx), yang kemudian
memproses permintaan tersebut dan mengirimkan hasilnya kembali ke klien.
❖ Model Database Server: Dalam sistem database terdistribusi, klien (misalnya,
aplikasi atau pengguna) meminta data atau operasi tertentu dari server database
(seperti MySQL, PostgreSQL, atau MongoDB), dan server akan memproses
permintaan tersebut dan memberikan respons ke klien.

2) Model Peer-to-Peer (P2P):


• Dalam model ini, entitas dalam jaringan (peer) memiliki kemampuan yang setara
dan dapat bertindak sebagai klien dan server sekaligus.
• Setiap peer dapat meminta layanan atau sumber daya dari peer lain dan juga
memberikan layanan atau sumber daya kepada peer lain.
• Contoh model dari kategori ini adalah:
❖ Jaringan File Sharing: Misalnya, dalam jaringan BitTorrent, setiap node atau
peer dalam jaringan dapat meminta bagian-bagian tertentu dari file yang
dibagikan kepada peer lain, dan pada saat yang sama, juga memberikan bagian-
bagian file tersebut kepada peer lain yang membutuhkannya.
❖ Jaringan Blockchain: Dalam jaringan blockchain seperti Bitcoin atau
Ethereum, setiap node dapat meminta informasi tentang transaksi atau blok
tertentu kepada node lain dalam jaringan, dan pada saat yang sama, juga
memberikan informasi tersebut kepada node lain yang membutuhkannya.
2. Sebutkan dan jelaskan 3 permasalahan utama dalam system terdistribusi.
Jawaban

Dalam sistem terdistribusi, ada beberapa permasalahan yang sering muncul dan harus
diatasi untuk memastikan kinerja dan keandalan sistem. Berikut adalah tiga permasalahan
utama dalam sistem terdistribusi beserta penjelasannya:
1) Konsistensi Data:
• Permasalahan konsistensi data muncul ketika ada beberapa salinan data yang
terdistribusi di berbagai node atau server dalam sistem.
• Dalam sistem terdistribusi, sulit untuk memastikan bahwa semua salinan data selalu
konsisten karena adanya latensi jaringan, pemrosesan asinkron, dan kegagalan
jaringan atau node.
• Penyelesaian permasalahan konsistensi data melibatkan penggunaan protokol
konsistensi seperti ACID (Atomicity, Consistency, Isolation, Durability) dalam
sistem basis data terdistribusi, atau konsep konsistensi eventual dalam sistem yang
lebih skala besar seperti sistem basis data NoSQL atau sistem blockchain.

2) Keandalan (Reliability):
• Keandalan merujuk pada kemampuan sistem untuk tetap beroperasi secara benar
dan konsisten meskipun terjadi kegagalan pada salah satu komponennya.
• Dalam sistem terdistribusi, keandalan menjadi perhatian utama karena setiap
komponen dapat mengalami kegagalan, baik itu node, jaringan, atau perangkat
keras.
• Strategi yang umum digunakan untuk meningkatkan keandalan sistem terdistribusi
termasuk replikasi data di beberapa node, penggunaan teknik deteksi dan
pemulihan kesalahan, serta penggunaan arsitektur yang toleran kesalahan.

3) Skalabilitas (Scalability):
• Skalabilitas merujuk pada kemampuan sistem untuk menangani peningkatan beban
kerja atau jumlah pengguna tanpa mengorbankan kinerja atau waktu respons.
• Dalam sistem terdistribusi, skalabilitas menjadi kritis karena ukuran dan
kompleksitas sistem dapat tumbuh seiring waktu.
• Terdapat dua jenis skalabilitas yang penting:
❖ Skalabilitas Horisontal: Menambahkan lebih banyak node atau server ke
dalam sistem untuk menangani beban kerja yang lebih besar.
❖ Skalabilitas Vertikal: Meningkatkan kapasitas dan kekuatan sumber daya
pada setiap node atau server dalam sistem.
• Solusi untuk meningkatkan skalabilitas termasuk desain sistem yang terdistribusi
dengan baik, penggunaan teknologi cloud untuk penyediaan sumber daya sesuai
kebutuhan, dan penerapan teknik pengelolaan beban seperti pemisahan tugas
atau partisi data.
3. Jelaskan 3 solusi atau teknik yang dapat digunakan untuk mengatasi permasalahan
skalabilitas dalam sistem terdistribusi.
Jawaban

Skalabilitas adalah salah satu perhatian utama dalam desain dan pengembangan sistem
terdistribusi. Berikut adalah tiga solusi atau teknik yang dapat digunakan untuk mengatasi
permasalahan skalabilitas dalam sistem terdistribusi:
1) Pembagian Beban (Load Balancing):
• Teknik ini mengatur distribusi beban kerja secara merata di antara sumber daya
yang tersedia dalam sistem terdistribusi.
• Sebuah komponen khusus, yang disebut load balancer, digunakan untuk
mendeteksi beban kerja pada setiap sumber daya dan mengarahkan permintaan dari
klien ke sumber daya yang paling sesuai.
• Load balancer dapat melakukan pembagian beban berdasarkan kriteria tertentu
seperti beban saat ini, ketersediaan, atau lokasi geografis.
• Contoh teknologi load balancing termasuk HAProxy, Nginx Load Balancer, dan
solusi cloud seperti Elastic Load Balancing (ELB) di AWS.

2) Replikasi Data:
• Dalam teknik replikasi data, salinan data disimpan di beberapa node dalam sistem
terdistribusi.
• Hal ini memungkinkan akses cepat dan redundansi data, sehingga meningkatkan
ketersediaan dan kinerja sistem.
• Perubahan pada data harus disinkronkan di antara salinan-salinan tersebut untuk
memastikan konsistensi.
• Replikasi data dapat dilakukan secara sinkron atau asinkron tergantung pada
kebutuhan sistem.
• Contoh implementasi replikasi data termasuk replikasi master-slave dalam database
terdistribusi dan teknologi replikasi file seperti Hadoop Distributed File System
(HDFS).

3) Elastisitas (Elasticity):
• Teknik elastisitas memungkinkan sistem untuk secara otomatis menyesuaikan
kapasitasnya berdasarkan permintaan yang berubah.
• Sumber daya dapat ditambahkan atau dikurangi secara dinamis sesuai dengan
beban kerja saat ini.
• Hal ini dapat dilakukan melalui otomatisasi provisioning sumber daya cloud,
seperti penambahan instance pada layanan komputasi cloud (misalnya, EC2 di
AWS) atau penyesuaian kapasitas kontainer dalam lingkungan berbasis Docker.
• Teknik elastisitas memungkinkan sistem untuk tetap responsif terhadap lonjakan
trafik atau permintaan, sambil menghindari pemborosan sumber daya saat beban
turun.
• Menggabungkan atau menggunakan kombinasi dari teknik-teknik ini dapat
membantu meningkatkan skalabilitas sistem terdistribusi dan memastikan
ketersediaan, kinerja, dan efisiensi yang optimal.

4. Jelaskan perbedaan antara model Client-Server dan Peer-to-Peer (P2P) dalam sistem
terdistribusi.
Jawaban

Perbedaan antara model Client-Server dan Peer-to-Peer (P2P) dalam sistem terdistribusi
meliputi:
1) Struktur Komunikasi:
• Client-Server: Dalam model ini, komunikasi terjadi antara klien (client) dan server.
Klien mengirim permintaan ke server untuk mendapatkan layanan atau sumber
daya tertentu, dan server merespons dengan memberikan layanan atau sumber daya
tersebut kepada klien.
• Peer-to-Peer (P2P): Dalam model ini, komunikasi terjadi langsung antara peer atau
node dalam jaringan. Setiap peer memiliki kemampuan yang setara dan dapat
bertindak sebagai klien dan server sekaligus. Peer dapat meminta layanan atau
sumber daya dari peer lain dan juga memberikan layanan atau sumber daya kepada
peer lain.

2) Hierarki dan Pemrosesan:


• Client-Server: Model ini memiliki struktur hierarkis di mana server berperan
sebagai entitas sentral yang menyediakan layanan atau sumber daya kepada klien.
Server memiliki kekuatan pemrosesan yang lebih besar dan bertanggung jawab
untuk memproses permintaan dari klien.
• Peer-to-Peer (P2P): Model ini tidak memiliki hierarki yang jelas. Setiap peer
memiliki kemampuan yang setara dan bertanggung jawab untuk memproses
permintaan dari peer lain. Pemrosesan terdistribusi di antara semua peer dalam
jaringan.

3) Ketergantungan pada Infrastruktur Sentral:


• Client-Server: Model ini bergantung pada infrastruktur sentral yang terdiri dari
server atau sekumpulan server yang menyediakan layanan kepada klien.
Ketersediaan dan kinerja sistem tergantung pada ketersediaan dan kinerja server
pusat tersebut.
• Peer-to-Peer (P2P): Model ini tidak tergantung pada infrastruktur sentral. Setiap
peer dalam jaringan memiliki kemampuan untuk berkomunikasi secara langsung
dengan peer lainnya. Oleh karena itu, ketersediaan layanan tidak bergantung pada
satu titik kegagalan.
4) Skalabilitas:
• Client-Server: Skalabilitas sistem tergantung pada kapasitas dan kinerja server
pusat. Untuk meningkatkan kapasitas, Anda perlu menambahkan atau
meningkatkan server, yang memerlukan koordinasi dan manajemen yang cermat.
• Peer-to-Peer (P2P): Skalabilitas sistem terdistribusi P2P cenderung lebih baik
karena setiap peer dapat bertindak sebagai penyedia layanan dan sumber daya.
Dengan demikian, semakin banyak peer yang bergabung dalam jaringan, semakin
besar kapasitas dan kemampuan sistem secara keseluruhan.
• Dengan demikian, meskipun keduanya adalah model yang umum digunakan dalam
sistem terdistribusi, mereka memiliki perbedaan dalam struktur, hierarki,
ketergantungan pada infrastruktur sentral, dan skalabilitas. Pemilihan model yang
tepat tergantung pada kebutuhan spesifik dan karakteristik sistem
yang ingin dibangun.

5. Jelaskan apa yang dimaksud dengan "konsistensi data" dalam system terdistribusi dan
sebutkan 2 mekanisme yang umum digunakan untuk mencapainya.
Jawaban

Konsistensi data dalam sistem terdistribusi mengacu pada kondisi di mana semua kopi data
yang ada dalam sistem berada dalam keadaan yang sama dan saling konsisten. Dalam
konteks ini, ketika terjadi operasi pembacaan atau penulisan data di beberapa node atau
lokasi dalam sistem terdistribusi, penting untuk memastikan bahwa semua kopi data
tersebut mengalami perubahan yang sama secara sinkron.
Dua mekanisme umum yang digunakan untuk mencapai konsistensi data dalam sistem
terdistribusi adalah:
1) Replication Synchronous (Replikasi Sinkron):
• Dalam replikasi sinkron, setiap operasi penulisan (write) di node utama akan
menunggu hingga operasi penulisan berhasil direplikasi di semua node lain
sebelum memberikan konfirmasi ke klien bahwa operasi telah selesai.
• Pendekatan ini memastikan bahwa semua kopi data akan selalu konsisten setelah
operasi penulisan, karena tidak ada perubahan yang dikonfirmasi sebelum data
berhasil direplikasi ke semua node.

2) Replication Asynchronous (Replikasi Asinkron):


• Dalam replikasi asinkron, operasi penulisan di node utama tidak menunggu hingga
operasi replikasi selesai di semua node lainnya. Sebaliknya, node utama
memberikan konfirmasi segera setelah operasi penulisan selesai di node tersebut.
• Replikasi data ke node lain kemudian terjadi secara asinkron di belakang layar. Ini
dapat meningkatkan kinerja sistem karena tidak ada penundaan untuk menunggu
replikasi selesai, tetapi juga meningkatkan risiko inkonsistensi data jika replikasi
gagal atau tertunda.

Kedua mekanisme ini memiliki trade-off yang perlu dipertimbangkan. Replikasi sinkron
memberikan kepastian konsistensi data tetapi dapat memperlambat kinerja, sementara
replikasi asinkron dapat meningkatkan kinerja tetapi meningkatkan risiko inkonsistensi
data dalam kondisi tertentu. Pemilihan mekanisme yang tepat tergantung pada kebutuhan
spesifik dan tingkat kepentingan konsistensi data dalam sistem terdistribusi.

6. Jelaskan apa itu "cloud computing" dan bagaimana hubungannya dengan sistem
terdistribusi.
Jawaban

Cloud computing adalah model penyediaan layanan komputasi melalui internet, yang
memungkinkan pengguna untuk mengakses sumber daya komputasi seperti server,
penyimpanan data, basis data, perangkat lunak, dan layanan lainnya secara elastis dan
sesuai permintaan. Dalam model ini, sumber daya tersebut disediakan oleh penyedia
layanan cloud dan diakses melalui jaringan internet, biasanya melalui antarmuka berbasis
web.Hubungan antara cloud computing dan sistem terdistribusi sangat erat karena cloud
computing sendiri didasarkan pada infrastruktur terdistribusi yang luas dan kompleks.
Beberapa aspek hubungan ini termasuk:
1) Distribusi Sumber Daya: Cloud computing melibatkan penggunaan sumber daya
komputasi yang didistribusikan secara geografis. Layanan cloud disediakan melalui
jaringan server yang tersebar di berbagai lokasi, sehingga memungkinkan
pengguna untuk mengakses sumber daya yang terdistribusi secara luas.
2) Skalabilitas: Sistem cloud dirancang untuk memberikan skalabilitas yang elastis,
yang sering kali didukung oleh teknologi terdistribusi. Ini memungkinkan
pengguna untuk menambah atau mengurangi kapasitas sumber daya sesuai dengan
kebutuhan mereka, tanpa perlu melakukan investasi modal besar atau melakukan
pengelolaan infrastruktur yang rumit.
3) Toleransi Terhadap Kegagalan: Penyedia layanan cloud menggunakan teknologi
terdistribusi untuk memastikan ketersediaan tinggi dan toleransi terhadap
kegagalan. Dengan mendistribusikan sumber daya komputasi dan menyediakan
cadangan yang terdistribusi, cloud computing dapat menjaga ketersediaan layanan
bahkan dalam kasus kegagalan perangkat keras atau infrastruktur.
4) Pemrosesan Terdistribusi: Beberapa layanan cloud menyediakan kemampuan
untuk menjalankan beban kerja yang memerlukan pemrosesan terdistribusi, seperti
analisis data besar (big data), komputasi paralel, atau pengolahan batch. Ini
memungkinkan pengguna untuk menjalankan aplikasi yang memerlukan sumber
daya komputasi yang besar tanpa harus mengelola infrastruktur secara langsung.
Dengan demikian, cloud computing dapat dianggap sebagai salah satu bentuk ekstensi
atau implementasi dari konsep sistem terdistribusi dalam konteks penyediaan layanan
komputasi. Ini menyediakan akses yang mudah dan hemat biaya ke sumber daya
komputasi terdistribusi, memungkinkan organisasi dan individu untuk memanfaatkan
keuntungan dari infrastruktur yang kuat dan elastis tanpa perlu mengelola sendiri
infrastruktur yang rumit.
7. Sebutkan 3 contoh aplikasi yang menggunakan sistem terdistribusi.
Jawaban
berikut adalah tiga contoh aplikasi yang menggunakan sistem terdistribusi:
1) Sistem Database Terdistribusi:
• Database terdistribusi digunakan untuk menyimpan dan mengelola data secara
terdistribusi di beberapa node atau server. Contohnya termasuk Google Spanner,
Amazon Aurora, dan Apache Cassandra.
• Sistem ini memungkinkan ketersediaan tinggi, skalabilitas, dan toleransi terhadap
kegagalan dengan menyimpan salinan data di beberapa lokasi.

2) Aplikasi E-niaga (E-commerce):


• Platform e-niaga seperti Amazon, eBay, dan Alibaba menggunakan sistem
terdistribusi untuk menangani lalu lintas yang tinggi, manajemen inventaris, dan
pemrosesan pesanan dari pelanggan di seluruh dunia.
• Sistem ini biasanya melibatkan penggunaan server pusat yang berinteraksi dengan
server regional atau lokal untuk menyediakan layanan yang cepat dan responsif
kepada pengguna.

3) Aplikasi Media Sosial:


• Platform media sosial seperti Facebook, Twitter, dan Instagram menggunakan
sistem terdistribusi untuk menyimpan dan mengelola data pengguna, memfasilitasi
interaksi antara pengguna, dan menyediakan konten secara cepat.
• Sistem ini harus mampu menangani lalu lintas besar, memastikan ketersediaan
layanan, dan menyediakan pengalaman pengguna yang mulus di berbagai wilayah
geografis.

Aplikasi lain yang menggunakan sistem terdistribusi termasuk sistem manajemen konten
(CMS) terdistribusi, sistem perbankan terdistribusi, dan aplikasi permainan daring yang
melibatkan banyak pemain. Dalam semua contoh ini, sistem terdistribusi digunakan untuk
meningkatkan ketersediaan, kinerja, dan skalabilitas aplikasi.

Anda mungkin juga menyukai