ABSTRAK
Nama : Hocky Yudhiono
Program Studi : Ilmu Komputer
Judul : PeerToCP: Editor Kode dan Shared Shell Kolaboratif dalam
Waktu Nyata Berbasis WebRTC
Pembimbing : Muhammad Hafizhuddin Hilman S.Kom., M.Kom., Ph.D.
Aplikasi kolaboratif dalam waktu nyata menjadi bagian dari kehidupan manusia modern
saat ini. Teknologi ini digunakan terutama untuk berkomunikasi dan meningkatkan
produktivitas dengan mengurangi hambatan ruang dan waktu. Salah satu sistem aplikasi
yang marak digunakan adalah editor dokumen yang dapat digunakan beberapa pengguna
secara bersamaan. Dilatarbelakangi oleh motivasi tersebut, penelitian ini memaparkan
sebuah aplikasi editor kode kolaboratif local-first berbasis peer-to-peer yang diimplementasi dengan WebRTC dan CRDT. Selain itu, aplikasi ini menyertai shell bersama
yang dapat dijalankan oleh salah satu pengguna dan digunakan oleh setiap pengguna
lain dalam suatu kelompok jaringan. Terdapat beberapa variasi arsitektur backend pada
aplikasi yang dibandingkan dalam penelitian ini. Dari segi algoritma dalam menjaga
konsistensi dokumen, dua pendekatan berbeda yang diteliti ialah algoritma OT (operational transformation) dan metode yang memanfaatkan struktur data CRDT (conflict-free
replicated data types). Dari segi arsitektur jaringan, penelitian ini mengevaluasi CRDT
berbasis client-server, CRDT berbasis peer-to-peer, serta OT berbasis client-server.
Keterbatasan OT yang diimplementasi pada penelitian ini membutuhkan suatu sumber
kebenaran berupa server, sehingga OT berbasis peer-to-peer tidak dievaluasi. Penelitian
ini menemukan bahwa variasi implementasi CRDT peer-to-peer yang diujikan memiliki
performa lebih baik untuk sejumlah pengguna n ≤ 8. Selain itu, signalling server pada
variasi ini menggunakan resource yang minim, sehingga lebih optimal untuk kelompok
jaringan yang lebih banyak. Terlepas dari hal tersebut, variasi CRDT client-server
memiliki pertumbuhan kompleksitas waktu yang lebih rendah terhadap jumlah pengguna
dalam satu kelompok jaringan dan penggunaan resource pada sistem klien yang lebih
rendah, namun lebih tinggi pada servernya. Sehingga variasi CRDT client-server
dapat dipertimbangkan penggunaannya ketika terjadi masalah saat melakukan inisialiasi
jaringan peer-to-peer atau jumlah pengguna dalam suatu kelompok jaringan jauh lebih
banyak dari eksperimen yang dilakukan pada penelitian ini.
Kata kunci:
WebRTC, WebSocket, local-first, waktu nyata, editor kode, conflict-free replicated data
types, operational transformation, shell bersama, Yjs, Electron
|
|