1.
Pendahuluan
Jaringan komputer memegang peran yang signifikan dalam menghadapi persaingan kompetitif di masa yang akan datang, karena dapat memberikan efisiensi pada penggunaan sumber daya yang ada, misalnya dengan penggunaan data bersama-sama yang disimpan dalam satu komputer. Jaringan komputer juga memungkinkan untuk melakukan proses pengiriman data (transfer file) secara cepat dan real time. Transfer file merupakan aktivitas pengiriman data maupun informasi yang dilakukan dengan menggunakan jaringan komputer. Teknik transfer file yang sering dilakukan selama ini adalah metode Unicast atau Point to Point. Proses transfer file dengan menggunakan metode ini hanya dapat melayani pertukaran data peer to peer atau file yang akan dikirim dari satu IP (Internet Protocol) ke IP yang lainnya. Kelemahan dari sistem transfer file dengan menggunakan metode tersebut adalah proses transfer file yang dikirimkan hanya dari 1 PC (Personal Computer) ke PC yang lainnya. Apabila file akan dikirimkan ke beberapa PC secara bersamaan, maka dilakukan pengulangan proses pengiriman file. Multicast merupakan teknik transfer file yang dikembangkan untuk melengkapi teknik pengiriman file sebelumnya yakni unicast. Multicast adalah istilah teknis yang berarti user dapat mengirim data potong (paket) ke beberapa komputer pada saat yang sama. Multicasting mengirimkan data dari satu host ke banyak host yang berbeda, namun tidak ke semua client. Data hanya dikirimkan kepada client yang telah bergabung dengan kelompok multicast tertentu.
Berdasarkan permasalahan yang telah disebutkan maka dikembangkanlah suatu aplikasi yang mempermudah proses transfer file dalam sebuah jaringan komputer. Proses transfer file yang dikembangkan menggunakan metode Multicast file transfer. Aplikasi ini akan dikembangkan dengan GUI (Graphic User Interface) untuk memudahkan pengguna dalam proses transfer file antar komputer. Dengan adanya aplikasi ini diharapkan dapat menghasilkan suatu pengiriman file yang lebih efektif dan efisien. Adapun rumusan masalah dari penelitian ini adalah bagaimana implementasi multicasting pada aplikasi transfer file di jaringan komputer. Tujuan dari penelitian ini adalah merancang sebuah aplikasi yang dapat mengimplementasikan multicast pada transfer file dalam sebuah jaringan komputer. Manfaat dari penelitian ini adalah untuk menghasilkan sebuah aplikasi yang dapat membantu pengguna melakukan proses transfer file secara multicast pada jaringan komputer lokal. Batasan masalah dalam penelitian ini adalah proses pengiriman file dilakukan satu arah yakni dari server ke client.
2. Tinjauan Pustaka Pada penelitian sebelumnya transfer file dilakukan dengan teknik point to multipoint dimana satu komputer bisa mengirim data maksimal ke 10 komputer lainnya, dan hanya dijalankan pada komputer bersistem operasi windows. Teknik yang digunakan dalam aplikasi adalah pengiriman file secara peer to peer dan pengiriman file peer to multi IP address [1]. Adapun hasil penelitian yang diperoleh dapat dilihat pada Tabel 1 dan Tabel 2. Tabel 1 dan Tabel 2 merupakan hasil pengujian yang dilakukan sebelumnya. Pada masing-masing tabel terlihat waktu rata-rata yang dibutuhkan untuk melakukan proses proses pengiriman file antar dua komputer dengan besar file 9MB.
1
Tabel 1 Hasil Pengujian Pengiriman File Secara Peer to Peer [1] Use Aplikasi yang dibuat File Sharing
Waktu Min (second)
Waktu Max (second)
Rata-rata
0.0251
0.0359
0.0300
0.0839
0.1016
0.0932
Tabel 2 Hasil Pengujian Pengiriman File peer to Multi IP address Pada Jaringan LAN [1] Use Aplikasi yang dibuat File Sharing
Waktu Min (second)
Waktu Max (second)
Rata-rata
0.5842
0.9711
0.7223
2.7139
3.6812
3.1143
Berbeda dengan penelitian sebelumnya, penelitian lebih lanjut dilakukan terkait metode Multicast file transfer dengan judul “Implementasi Multicasting pada Aplikasi Transfer File di Jaringan Komputer” Pada penelitian ini menggunakan metode Multicast file transfer. Pengertian dari Multicast atau multicasting itu sendiri adalah sebuah teknik di mana sebuah data dikirimkan melalui jaringan ke sekumpulan komputer yang tergabung ke dalam sebuah group tertentu. Proses pengiriman data dari server ke client pun tidak membutuhkan autentikasi file sehingga tidak membutuhkan proses keamanan autentikasi pada saat peroses transfer file dilakukan. Multicasting merupakan sebuah cara pentransmisian data secara connectionless (komunikasi dapat terjadi tanpa adanya negosiasi pembuatan koneksi), dan client dapat menerima transmisi multicast dengan mencari di mana lokasinya, seperti halnya ketika mencari frekuensi dari sebuah stasiun radio, untuk mendengarkan siaran radio [2]. Dalam multicast, paket data dikirimkan dari satu atau beberapa komputer ke sejumlah komputer pada jaringan. Pengiriman bisa lebih dari satu dan dikirimkan ke sejumlah penerima, multicast bekerja pada protocol UDP. Tidak seperti transmisi broadcast, client multicast dapat menerima paket data hanya jika sebelumnya client telah memilih untuk melakukannya (dengan bergabung ke alamat group multicast yang spesifik). Multicasting sering diperlukan dalam sistem jaringan komputer untuk melakukan proses transfer suatu file dari host ke host yang lain. Proses transfer file ini dapat berupa pengiriman file ke suatu host atau mengambil file dari suatu host. Proses mengirim file ke suatu host disebut upload file, sedangkan proses untuk mengambil file dari suatu host disebut download file [3].
Gambar 2 Arsitektur Transfer File Sederhana [3]
Gambar 2 menunjukkan contoh dari arsitektur pengiriman file secara sederhana, dimana terlihat bahwa terdapat lapisan dalam pengiriman file yang sederhana, yaitu : lapisan network access, lapisan transport, lapisan application. Lapisan network access mengirimkan frame-frame data yang dibutuhkan IP packet melalui network interface. Lapisan transport bertugas memecah data dan membangun kembali data yang diterima. Sedangkan lapisan application berisi protocol-protocol yang di dalamnya terdapat perintah pengiriman file [1]. 2
UDP atau User Datagram Protocol adalah salah satu protokol lapisan transport TCP/IP yang mendukung komunikasi yang tidak andal (unreliable), tanpa koneksi (connectionless) antara host-host dalam jaringan yang menggunakan TCP/IP. 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 TCP/IP. 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 Unit/MTU) 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. 3
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.
4
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
5
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.
6
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.
7
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
Tahap awal perancangan aplikasi dimulai dengan membuat interface yang dapat digunakan oleh client dalam melakukan proses penerimaan file. Aplikasi yang dijalankan pada sisi client ini secara otomatis akan menghubungkan client dengan group multicast yang telah dibuat. Gambar 12 menunjukkan Form transfer file pada client, yang menampilkan berbagai menu yang berkaitan dengan proses keikutsertaan Client pada proses transfer file. Client dapat langsung mengakses menu tersebut tanpa harus login ke aplikasi terlebih dahulu. Form tersebut juga diletakkan pada komputer client. Aplikasi secara otomatis akan join ke group ketika client melakukan proses join group. Sebelum menerima file yang ada pada group, client terlebih dahulu melakukan setting path file untuk file yang akan diterima. Selain form transfer file dari sisi client, maka terdapat pula form transfer file dari sisi server.
8
Gambar 12 Form Transfer File Client
Gambar 13 Form Transfer File Server
Gambar 13 menunjukkan form transfer file pada server. Form ini terdapat pada komputer server. Proses pengiriman file dimulai dengan cara memilih file yang akan dikirimkan pada group. Kemudian user dapat memilih tombol send yang berada pada aplikasi. Sebelum memilih tombol send, user harus memastikan bahwa group dan port telah diisi terlebih dahulu, dikarenakan ketika proses pengiriman file dilakukan, server akan distart terlebih dahulu. Server harus membentuk group multicast sebelum melakukan proses transfer file. Kode Program 1 Implementasi CRC32 pada Server
Kode Program 1 merupakan perintah yang digunakan untuk melakukan proses pengecekan error pada sisi server sebelum file dikirimkan dari server ke group. Baris ke-1 merupakan deklarasi nama variabel untuk menampung nilai hasil pengecekan file. Kemudian nilai diisi dengan panjang buffer seperti pada baris ke-2. Selain dilakukan proses pengecekan file pada sisi server, aplikasi juga menerapkan proses pengecekan file menggunakan CRC32 pada sisi client. Proses pengecekan ini digunakan untuk mengecek apakah ukuran file yang dikirim sama dengan ukuran file yang diterima. Apabila kedua nilai sama maka proses transfer dilakukan. Namun sebaliknya apabila nilainya berbeda maka proses transfer file tidak dilanjutkan. Penerapan CRC32 pada sisi client dapat dilihat pada Kode Program 2. Kode Program 2 Implementasi CRC32 pada Client
9
Baris ke-1 pada Kode Program 2 merupakan deklarasi variabel untuk menyimpan nilai hasil pengecekan error menggunakan CRC32. Baris ke-2 sampai dengan baris ke-4 merupakan perintah untuk mengisi nilai variabel dari hasil pengecekan nilai. Baris ke-6 merupakan proses pengecekan antara nilai pengecekan sebelum file dikirim dan sesudah file berada di sisi client. Apabila nilainya sama atau tidak sama maka akan dilakukan proses konfirmasi seperti pada baris ke-7 dan baris ke-8. Aplikasi yang dibangun harus diuji untuk mengetahui apakah hasil dari aplikasi tersebut sudah sesuai dengan perancangan yang dilakukan, yaitu dengan melakukan proses pengujian aplikasi. Langkah pertama yang dilakukan pada proses pengujian aplikasi adalah merancang topologi jaringan yang akan digunakan dalam pengujian aplikasi. Gambar 14 menunjukkan rancangan topologi jaringan yang digunakan pada proses pengujian aplikasi. Pada Gambar 14, terlihat bahwa pengujian aplikasi menggunakan 1 server dan 3 client dengan IP yang berbeda. Setelah dilakukan pembangunan prototype, maka langkah selanjutnya adalah pengujian aplikasi dari sisi client dan sisi server. Pengujian aplikasi ini berfungsi untuk mengetahui apakah aplikasi yang dibuat sudah berjalan dengan baik atau masih terdapat kekurangan. Dalam pengujian aplikasi ini, komputer server dan client harus berada dalam sebuah jaringan komputer.
Gambar 14 Topologi Jaringan Aplikasi
Gambar 15 Kondisi Awal Form Server
Gambar 15 menunjukkan form transfer file pada server. Form ini terdapat pada komputer server. Proses pengiriman file dimulai dengan cara melakukan proses create group dengan memilih tombol create. Setelah itu memilih file yang akan dikirimkan pada group. 10
Kemudian user dapat memilih tombol send yang berada pada aplikasi. Sebelum memilih tombol send, user harus memastikan bahwa group dan port telah diisi terlebih dahulu, dikarenakan ketika proses pengiriman file dilakukan, server akan di-start terlebih dahulu. Server harus membentuk group multicast sebelum melakukan proses transfer file. Tombol Close digunakan oleh server untuk keluar dari group. Kode Program 3 Perintah untuk Melakukan create group
Kode Program 3 merupakan perintah yang digunakan untuk melakukan create group. Baris ke-1 dan baris ke-2 merupakan variabel yang menyimpan informasi ip address dan port yang digunakan oleh group. Baris ke-3 sampai dengan baris ke-5 merupakan informasi nama file beserta path file yang akan dikirimkan ke dalam group. Baris ke-6 dan baris ke-7 merupakan perintah untuk melakukan start server sebelum melakukan transfer file. Proses selanjutnya setelah server di-start adalah file yang dikirim dikonversi ke dalam bentuk array byte. Ukuran file akan dicek apakah melebihi kapasitas maksimal atau tidak. Apabila ukuran file tidak melebihi ukuran maksimal maka file tersebut akan dikelompokkan ke dalam datagram paket yang masing-masing datagram paket berisi maksimal 65507 byte data yang belum dikurangi dengan header dari data dengan maksimal datagram paket adalah 255 [7]. Kode Program 4 Perintah Untuk Deklarasi Nilai Variabel Datagram
Kode Program 4 merupakan perintah untuk deklarasi nilai default dari fungsi yang digunakan pada proses transfer file. Baris ke-1 merupakan deklarasi untuk menentukan ukuran header pada datagram paket yang akan digunakan untuk transfer file. Baris ke-2 merupakan jumlah datagram paket yang digunakan dalam proses pengiriman data. Baris ke-3 merupakan ukuran maksimal dari masing-masing datagram paket yang berisi byte array data. Nilai tersebut telah dikurangi dengan nilai header paket. Baris ke-4 dan baris ke-5 merupakan deklarasi ip dan port yang digunakan dalam proses pengiriman file. Kode Program 5 merupakan perintah untuk proses transfer file ke group. Baris ke-1 dan baris ke-2 merupakan perintah untuk pengecekan jumlah datagram paket yang akan digunakan pada proses transfer, dimana jumlah tersebut tidak boleh melebihi jumlah maksimal yang telah ditentukan. Apabila jumlah file lebih dari batas maksimal maka akan ditampilkan pesan seperti pada baris ke-3. Baris ke-5 sampai dengan baris ke-19 merupakan perintah untuk mengisi setiap datagram paket dengan byte array data yang akan dikirim ke group. Sebelum dikirim, setiap datagram paket akan dicek isinya oleh CRC32 seperti terlihat pada baris ke-20 sampai dengan baris ke-22. Baris ke-23 merupakan perintah untuk melakukan proses transfer file ke group.
11
Kode Program 5 Perintah untuk Melakukan Proses Sending File
Gambar 16 Kondisi Awal Form Client
Gambar 16 menunjukkan kondisi awal dari form aplikasi di sisi client. User dapat memilih lokasi penyimpanan file yang akan diterima dari group dengan cara memilih tombol browse. Sebelum melakukan proses download file, user harus memastikan bahwa ip address dan port yang digunakan sama dengan yang digunakan oleh server. Setelah memilih lokasi penyimpanan, user dapat melakukan proses join group dengan cara memilih tombol Join Group. Apabila proses join berhasil maka file yang dikirimkan kepada client akan diunduh dan disimpan pada lokasi yang telah diatur sebelumnya seperti yang terlihat pada Gambar 17. Gambar 17 merupakan tampilan untuk melakukan proses receive file. Pada saat client melakukan proses download file, maka langkah pertama yang dilakukan adalah client melakukan proses join server melalui ip dan port yang telah ditentukan. Proses join server dapat dilihat pada Kode Program 6.
12
Gambar 17 Form Receive File Kode Program 6 Perintah untuk Melakukan Join Server Client
Kode Program 6 merupakan perintah join server yang ada di sisi client. Baris ke-1 dan ke-2 merupakan deklarasi variabel yang dibutuhkan untuk proses koneksi. Baris ke-3 sampai dengan baris ke-5 merupakan perintah untuk melakukan join ke server. Apabila proses unduh berhasil maka akan ditampilkan informasi file yang berhasil diunduh seperti yang terlihat pada Gambar 17. Proses penulisan file dari group ke client dapat dilihat pada Kode Program 7. Kode Program 7 Perintah untuk Melakukan File Write
Kode Program 7 merupakan perintah yang digunakan untuk menulis file ke folder yang telah diatur oleh client. Baris ke-1 merupakan perintah untuk mengecek apakah semua datagram dari file telah dimiliki secara lengkap oleh client. Baris ke-2 sampai dengan baris ke-6 merupakan perintah untuk menyatukan semua datagram paket yang ada, menjadi sebuah file yang akan diterima oleh client. Selain konfirmasi dari client, server juga akan menerima konfirmasi bahwa file yang di-download oleh client telah selesai dilakukan seperti terlihat pada Gambar 18.
13
Gambar 18 Confirmation Receive File Server
Gambar 18 merupakan tampilan konfirmasi pada server setelah terjadi proses download file. Konfirmasi tersebut berisi informasi bahwa proses download file yang dilakukan oleh client telah selesai. Hasil perbandingan waktu pengiriman file dapat dilihat pada Tabel 3. Pada Tabel 3 informasi ukuran file maksimal yang dapat diproses pada aplikasi adalah kurang lebih 15MB. Perbedaan waktu antara kedua client dalam proses download file disebabkan oleh proses pengumpulan datagram pada sisi client yang berbeda-beda sesuai dengan kecepatan koneksi client ke group. Setelah mendapatkan waktu dari masing-masing client, maka ditentukan perhitungan waktu rata-rata dengan cara menambahkan waktu dari masing-masing client kemudian dibagi dengan jumlah client untuk menghasilkan waktu rata-rata.
Tabel 3 Perbandingan Waktu Pengiriman antara Metode Multicast dan Sharing File Ukuran Type Rata-Rata Waktu Pengiriman (Sec) File of Doc Multicast Sharing File 510 KB DOC 14 1 1.371MB MP3 12.5 3 4.190MB PDF 16.5 3 6.293MB ZIP 42.5 3 9.71MB FLV 59 2.5 14.588MB MP3 638 4.5
Berdasarkan data pada Tabel 3, dapat disimpulkan bahwa waktu yang dibutuhkan dalam proses pengiriman file menggunakan multicast lebih banyak daripada waktu yang dibutuhkan untuk proses pengiriman file dengan menggunakan metode file sharing. Proses looping datagram yang diterapkan pada multicast menyebabkan proses penerimaan file lebih lama daripada file sharing yang tidak menerapkan looping dalam proses pengiriman data. Selain itu multicast yang bersifat connectionless yang berarti data yang dikirimkan dalam bentuk paket tidak harus melakukan call setup seperti pada TCP yang memungkinan data sampai tidak berurutan dan mungkin hilang atau rusak dalam perjalananan dari host asal ke host tujuan sehingga host tujuan akan menunggu paket yang hilang atau rusak untuk diterima kembali.
5.
Simpulan
Multicasting dapat digunakan untuk proses transfer file. Data akan dipecahkan kedalam bentuk datagram paket sebelum dikirimkan ke client. Looping datagram yang digunakan pada aplikasi memungkinkan semua datagram yang dikirimkan dari server dapat diterima oleh client walaupun proses looping datagram paket dapat menyebabkan proses penerimaan file disisi client membutuhkan waktu yang lebih lama daripada sharing file. 14