3 UDP atau User Datagram Protocol adalah salah satu protokol lapisan transport TCPIP yang
mendukung komunikasi yang tidak andal unreliable, tanpa koneksi connectionless antara host-host dalam jaringan yang menggunakan TCPIP. Protokol ini didefinisikan dalam RFC
768. UDP memiliki karakteristik-karakteristik sebagai berikut : Connectionless tanpa koneksi, pesan-pesan UDP akan dikirimkan tanpa harus dilakukan proses negosiasi koneksi
antara dua host yang hendak bertukar informasi. Unreliable tidak andal, pesan-pesan UDP akan dikirimkan sebagai datagram tanpa adanya nomor urut atau pesan acknowledgement.
Protokol lapisan aplikasi yang berjalan di atas UDP harus melakukan pemulihan terhadap pesan-pesan yang hilang selama transmisi.
UDP menyediakan mekanisme untuk mengirim pesan-pesan ke sebuah protokol lapisan aplikasi atau proses tertentu ke dalam sebuah host dalam jaringan yang menggunakan
TCPIP. Header UDP berisi Field Source Identification dan Destination Process Identification. UDP menyediakan perhitungan checksum berukuran 16-bit terhadap
keseluruhan pesan UDP. UDP tidak menyediakan layanan-layanan antar-host berikut: UDP tidak menyediakan mekanisme penyanggaan buffering dari data yang masuk ataupun data
yang keluar. Tugas buffering merupakan tugas yang harus diimplementasikan oleh protokol lapisan aplikasi yang berjalan di atas UDP. UDP tidak menyediakan mekanisme segmentasi
data yang besar ke dalam segmen-segmen data, seperti yang terjadi dalam protokol TCP. Karena itulah, protokol lapisan aplikasi yang berjalan di atas UDP harus mengirimkan data
yang berukuran kecil tidak lebih besar dari nilai Maximum Transfer UnitMTU yang dimiliki oleh sebuah antarmuka dimana data tersebut dikirim. Karena, jika ukuran paket data
yang dikirim lebih besar dibandingkan nilai MTU, paket data yang dikirimkan bisa saja terpecah menjadi beberapa fragmen yang akhirnya tidak jadi terkirim dengan benar. UDP
tidak menyediakan mekanisme flow-control, seperti yang dimiliki oleh TCP.
Proses pengiriman file dapat dilakukan dengan beberapa metode antara lain adalah pengiriman file menggunakan metode multicast. Teknik Multicast hadir untuk mengatasi
kelemahan dari Unicast dan Broadcast dalam proses pengiriman data multimedia seperti real time ke banyak receiver. Multicast adalah jaringan untuk menangani metode penyampaian
informasi ke sekelompok tujuan sekaligus menggunakan strategi yang paling efisien untuk menyampaikan pesan melalui setiap link jaringan yang hanya sekali, membuat salinan hanya
ketika link ke beberapa tujuan split. Dalam IP Multicast pelaksanaan konsep multicast terjadi pada tingkat IP routing, dimana routers membuat jalur distribusi optimal untuk datagrams
dikirim ke alamat multicast tujuan mencakup pohon secara real-time [4].
Keuntungan dari multicast ini adalah enhanched effieciency yakni pengontrolan trafik jaringan; Optimized performance yakni mengeliminasi trafik yang berlebihan; Distributed
application yakni memungkinkan membuat aplikasi multipoint, seperti distribusi file ke beberapa titik secara langsung. Kerugian dari multicast adalah sebagai berikut : Best Effort
Delivery, tingkat kepercayaan pengiriman data aplikasi multicast tidak dapat diharapkan dan harus dirancang sedemikian rupa; No Congestion Avoidance, kekurangan dari TCP
windowing dan mekanisme slow start dapat menghasilkan kemacetan dalam jaringan. UDP tidak memiliki mekanisme kepercayaan, jadi persoalan kepercayaan harus dialamatkan dalam
aplikasi multicast dan reliabilitas transfer data sangat diperlukan [5].
3. Metode Perancangan Sistem
Metode yang digunakan untuk perancangan sistem dalam penelitian ini adalah metode prototyping. Prototyping merupakan proses iteratif dalam pengembangan sistem dimana
kebutuhan diubah ke dalam sistem yang bekerja working system yang secara terus menerus diperbaiki melalui kerjasama antara pengguna dan analis [6]. Diagram metode prototyping
ditunjukkan pada Gambar 4.
4
Gambar 4 Metode Prototyping [6]
Kemudian berdasarkan masukan dari user, prototype akan dikembangkan sesuai dengan masukan dari user. Hal ini dilakukan terus sampai user menerima prototype dari
sistem yang dibangun [6]. Kebutuhan awal yang dibuat dari penelitian ini adalah suatu sistem transfer file dengan menggunakan multicasting dimana pada penelitian sebelumnya terdapat
beberapa kelemahan dalam proses transfer file menggunakan sharing file. Proses pengiriman dilakukan pada satu komputer dan proses pengiriman file dengan sharing file harus
memerlukan koneksi pada server. Multicast dapat membentuk group yang terdiri dari beberapa host yang saling terhubung tanpa mengakses data yang ada pada komputer server.
Hal ini disebabkan karena file akan dikirimkan server kepada beberapa client melalui group dalam waktu yang bersamaan. Maka solusi untuk mengatasi kelemahan aplikasi sebelumnya,
dibangunlah aplikasi transfer file menggunakan Multicasting dengan prototype yang pertama adalah aplikasi dapat digunakan lebih dari 1 satu client. Setelah pembangunan prototype
pertama, kemudian dilakukan evaluasi sistem, dimana diketahui bahwa sistem yang dibangun tidak dapat menunjukkan bahwa data yang diterima sesuai dengan data yang dikirim.
Berdasarkan hasil evaluasi prototype pertama, maka pada prototype kedua, dilakukan penambahan pengecekan error menggunakan metode pengecekan error CRC32 pada aplikasi
tersebut. Setelah dievaluasi maka dibuatlah prototype ketiga, yaitu dengan penambahan fungsi create group pada sisi server dan join pada sisi client. Prototype keempat dibuat
sebagai hasil evaluasi prototype ketiga dengan penambahan fungsi close group pada aplikasi yang dibuat. Setelah melakukan proses evaluasi prototype keempat dapat disimpulkan bahwa
hasil yang diharapkan dari sistem telah terpenuhi, maka pembangunan prototype sistem dinyatakan selesai. Selanjutnya dilakukan pengujian sistem untuk mengetahui kelemahan
sistem dan dilakukan perbaikan. Berdasarkan analisis kebutuhan, dan skema diagram jaringan yang sudah dijelaskan sebelumnya, maka selanjutnya akan dijelaskan tentang gambaran
umum dari sistem transfer file yang akan dibuat. Sistem yang akan dibuat, yaitu: Sistem Operasi pada server dan client yang digunakan pada aplikasi ini menggunakan sistem operasi
Windows. Semua client akan digabungkan dalam sebuah group dengan IP Group 224.4.5.6. Port yang digunakan dalam aplikasi ini adalah port 4444.
5
Gambar 5 Flow Chart Aplikasi
Gambar 5 merupakan flow chart aplikasi. Server melakukan proses start server. Group multicast harus dibuat sebelum melakukan proses pengiriman file. Kemudian server
melakukan proses pencarian data yang akan dikirimkan kepada client. Kemudian file tersebut dikirimkan kepada client melalui group multicast yang telah dibentuk sebelumnya. Server
dapat melakukan close group, yakni menutup koneksi ke group multicast yang sudah dibentuk sebelumnya. Sebelum menerima file yang dikirimkan, client harus melakukan
pengaturan lokasi penyimpanan file yang akan diterima. Setelah itu client harus melakukan proses join ke group multicast. Kemudian, apabila lokasi penyimpanan telah disiapkan maka
file yang dikirimkan dari server dapat diterima oleh client. Gambar 6 merupakan use case diagram yang digunakan pada aplikasi server. Sender Server adalah aktor yang dapat
mengakses proses multicast transfer file, yang di dalamnya terdapat proses muliticast server serta proses CRC32 di sisi server. Server berfungsi untuk melakukan proses pengiriman file
ke client. Gambar 7 merupakan use case diagram yang digunakan pada aplikasi client. Receiver Client adalah aktor yang dapat mengakses proses multicast transfer file yang di
dalamnya terdapat proses muliticast client serta proses CRC32 di sisi client.
Client berfungsi untuk menerima file yang dikirimkan oleh server. Client tidak dapat melakukan proses
pengiriman file seperti yang dilakukan oleh server.
Gambar 6 Use Case Diagram Aplikasi Server
6
Gambar 7 Use Case Diagram Aplikasi Client
Gambar 8 Activity Diagram Multicasting Server
Gambar 8 merupakan activity diagram pada proses multicasting yang terdapat pada sisi server. Proses transfer file dimulai dengan create group. Apabila proses create group
berhasil maka proses selanjutnya adalah mencari file yang akan dikirim dari server ke client. File tersebut kemudian akan dicek ukuran, nama, dan type file sebelum dilakukan proses
pengiriman ke client. File tersebut kemudian dipecah dalam bentuk byte array yang akan dikirim ke group. Namun sebelum proses pengiriman dilakukan, sistem akan mencatat nilai
file yang nantinya akan dijadikan sebagai pembanding setelah file berhasil diunduh oleh client. Proses pengecekan tersebut dilakukan dengan menggunakan metode checking error
CRC32. Kemudian file yang telah dipecah dalam bentuk byte array dikirimkan ke group. Proses pengiriman file ke group akan terus berlangsung selama server masih terhubung
dalam group multicast.
7
Gambar 9 Activity Diagram Multicasting Client
Gambar 9 merupakan activity diagram pada proses multicasting yang terdapat pada sisi client. Langkah pertama pada tahap ini adalah proses pengaturan path penyimpanan.
Setelah path diatur maka client dapat melakukan proses join group. Client yang berhasil join dapat melakukan proses unduh file. Proses unduh dimulai dengan pengecekan file yang
meliputi nama dan ukuran file. Sebelum proses unduh, terlebih dahulu dilakukan proses pengecekan nilai file dangan menggunakan CRC32. File akan terus dikumpulkan sampai
jumlah paket data yang diterima sama dengan jumlah paket yang dikirimkan. Apabila nilai hasil pengecekan sama dengan nilai sebelum file dikirim maka file dapat diunduh. Atau
sebaliknya apabila terdapat selisih antara nilai sebelum file dikirim dengan nilai file yang akan diunduh maka proses transfer file dibatalkan. File kemudian diunduh dengan cara
menyusun byte array yang ada pada group ke dalam komputer client atau yang disebut dengan proses file write. Proses terakhir adalah client mengirimkan konfirmasi ke server
apakah proses pengiriman berhasil dilakukan ataukah gagal.
Proses pengiriman file pada aplikasi dimulai dengan mengubah file ke dalam bentuk byte array. Kemudian file akan dikirimkan dari server ke group untuk selanjutnya diterima
oleh client. Proses pengiriman file dari server ke group dapat dilihat pada Gambar 10. Gambar 10 menunjukkan activity diagram proses pengiriman file. Server akan melakukan
broadcast file yang telah dikonversi ke dalam bentuk datagram paket yang dikirimkan secara terus-menerus ke dalam group. Setiap client yang join akan menerima setiap datagram yang
ada pada group. Datagram-datagram tersebut akan dikumpulkan membentuk sebuah file yang akan ditulis ke client. Proses penulisan file ke client akan dilakukan apabila semua datagram
yang dikirimkan telah diterima dengan baik. Aplikasi transfer file dilengkapi dengan CRC32 yang digunakan untuk melakukan proses pengecekan file sebelum dan sesudah file
dikirimkan. Fungsi ini digunakan sebagai validasi apakah file yang diterima bermasalah atau tidak. Setelah file diubah ke dalam bentuk byte array, maka setiap datagram paket akan dicek
kondisi filenya menggunakan CRC32. Hasill pengecekan berupa angka yang kemudian akan disisipkan di setiap datagram paket. File kemudian dikirim apabila proses pengecekan telah
selesai. Pada saat client menerima datagram yang dikirim dari server maka CRC32 akan melakukan proses pengecekan file yang sama seperti pada sisi server. Hasil dari proses ini
akan berupa angka yang akan dibandingkan dengan angka hasil pengecekan pada sisi server. Apabila terdapat selisih pada kedua angka tersebut maka file gagal diterima oleh client, atau
sebaliknya client dapat menerima file yang dikirimkan apabila tidak terdapat selisih antara hasil pengecekan di server dan di client.
8
Gambar 10 Activity Diagram Proses Pengiriman File
Gambar 11 Class Diagram Aplikasi
Gambar 11 menunjukkan class diagram yang digunakan pada aplikasi. Terdapat lima kelas yang saling berelasi pada aplikasi. Masing-masing form baik server dan client akan
terhubung dalam kelas group scanner. Server form dan client form masing-masing memiliki kelas CRC32 yang digunakan untuk melakukan proses pengecekan file sebelum file dikirim
oleh server dan diterima oleh client.
4. Hasil pembahasan dan implementasi