SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …
Transcript of SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …
i
SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB SERVER
DENGAN MEMANFAATKAN REMOTE METHOD INVOCATION (RMI)
SKRIPSI
Diajukan untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Komputer
Program Studi Teknik Informatika
OLEH :
Antonius Hari Widiatmoko
075314052
JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2011
ii
DISTRIBUTED DATA STORAGE SYSTEM ON THE WEB SERVER
USING REMOTE METHOD INVOCATION (RMI)
A Thesis
Presented as Partial Fulfillment of the Requirements
To Obtain the Sarjana Komputer Degree
In Department of Informatics Engineering
By :
Antonius Hari Widiatmoko
075314052
INFORMATICS ENGINEERING STUDY PROGRAM
INFORMATICS ENGINEERING DEPARTMENT
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKART
2011
iii
iv
v
HALAMAN PERSEMBAHAN
Jangan melihat apa yang telah kamu lakukan,
tapi…. Lihatlah apa yang belum kamu lakukan
jangan puas saat kamu sampai pada puncak,
karena diatas puncak masih ada puncak lagi
Skripsi ini saya persembahkan pada :
Tuhan Yesus Kristus
Kedua Orang tua Saya
Keluarga, Kekasih dan teman-teman
Terima Kasih Semuanya……
vi
PERNYATAAN KEASLIAN KARYA
Saya menyatakan dengan sesungguhnya bahwa skripsi yang saya tulis ini
tidak memuat karya orang lain, kecuali yang telah disebutkan dalam kutipan
dan daftar pustaka, sebagaimana layaknya karya ilmiah.
Yogyakarta, 22 Juli 2011
Penulis
Antonius Hari Widiatmoko
vii
“Sistem Penyimpanan Data Terdistribusi pada Web Server dengan
Memanfaatkan Remote Method Invocation (RMI)”
ABSTRAKSI
Server merupakan sebuah service / layanan yang diberikan pada client
yang mengakses server tersebut, bermacam – macam layanan yang dapat
disediakan oleh server salah satunya adalah layanan penyimpanan / storage,
dalam hal ini server tersebut menyediakan resources storage yang dimilikinya
dan di berikan pada client, dalam membuat layanan yang ini maka diperlukan
media penyimpanan yang besar pula.
Agar server memiliki penyimpanan yang besar pasti di perlukan
penyimpanan yang besar pula, sebuah server dapat menggunakan storage yang
dimiliki untuk diakses oleh client, namun jumlahnya pasti terbatas. Untuk
mendapatkan penyimpanan yang besar maka dapat dibuat sebuah prosedur untuk
membagi penyimpanan pada komputer lain selain untuk mendapatkan
penyimpanan yang besar dengan membagi tempat penyimpanan, maka besar
penyimpanan menjadi tak terbatas karena dengan cara ini jumlah komputer dapat
ditambah sewaktu – waktu.
Untuk membagi penyimpanan pada komputer lain maka diperlukan
metode untuk mengirimkan file dari server ke komputer penyimpanan. Pada
skripsi ini prosedur pengiriman yang digunakan adalah RMI (Remote Method
Invocation), RMI adalah cara untuk berkomunikasi antar komputer dengan
menggunakan java, dengan RMI prosedur berbasiskan java yang berjalan pada
JVM (Java Virtual Machine) sebuah komputer dapat dipangil dari komputer lain.
Dengan memanfaatkan kemampuan RMI dalam berkomunikasi antar komputer
maka mempermudah prosedur untuk menyimpan dan mengambil file dari
komputer penyimpanan. Prosedur penyimpanan tersebut akan di aplikasikan pada
web server, sehingga web server tersebut memiliki penyimpanan yang besar dan
tak terbatas.
viii
“Distributed Data Storage System On The Web Server
Using Remote Method Invocation (RMI)”
ABSTRACTION
Server is a service provided to clients who access it, various services can be
provided by a server one of which is a storage service, the server provides storage
resources they have and given to the client, when making this service will require
the storage medium is very large.
if the server has a good storage service certainly require a large storage
well, a server can use the storage that is owned to be accessed by the client, but
storage is limited. To get a large storage server must have a procedure for dividing
the storage on another computer, by dividing the storage on another computer
then it will get a large storage by sharing storage space, so the storage then
becomes infinite because in this way the number of computers used to store can
be added at any - time.
To share the storage on another computer then need a method to transmit
files from a server to a computer storage. In this thesis the delivery procedure
used is RMI (Remote Method Invocation), RMI is a way to communicate between
computers using java, the Java RMI-based procedure that runs in the JVM (Java
Virtual Machine) on a computer can be called to from another computer. By
exploiting the ability of RMI to communicate between computers, then simplify
the procedure for uploading and downloading files from computer storage. The
storage procedure can be applied on a web server, so the web server has a large
storage even infinite.
ix
HALAMAN PERSETUJUAN
PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS
Yang bertanda tangan dibawah ini, saya mahasiswa Universitas Sanata Dharma:
Nama : Antonius Hari Widiatmoko
NIM : 075314052
Demi pengembangan ilmu pengetahuan, saya memberikan kepada
perpustakaan Universitas Sanata Dharma karya ilmiah saya yang berjudul :
Sistem Penyimpanan Data Terdistribusi Pada Web Server
Dengan Memanfaatkan Remote Method Invocation (RMI)
Beserta perangkat yang diperlukan (bila ada). Dengan demikian saya
memberikan kepada Perpustakaan Universitas Sanata Dharma hak untuk
menyimpan, mengalihkan dalam bentuk media lain, mengelolanya dalam
bentuk pangkalan data, mendistribusikan secara terbatas, dan
mempublikasikannya di internet atau media lain untuk kepentingan akademis
tanpa perlu meminta izin dari saya maupun memberikan royalti kepada saya
selama tetap mencantumkan nama saya sebagai penulis.
Demikian pernyataan ini saya buat dengan sebenarnya
Yogyakarta, 22 Juli 2011
Yang menyatakan,
Antonius Hari Widiatmoko
x
KATA PENGANTAR
Puji syukur kepada Yesus Kristus yang telah memberikan karunia
rahmat dan bimbingannya sehingga penulis dapat menyelesaikan skripsi dengan
judul “Sistem Penyimpanan Data Terdistribusi Pada Web Server Dengan
Memanfaatkan Remote Method Invocation (RMI)”.
Terima kasih sebesar-besarnya kepada semua pihak yang turut
memberikan dukungan, semangat dan bantuan sehingga selesainya skripsi ini:
1. Tuhan Yesus Kristus yang telah memberikan semuanya sehingga penulis
bisa menyelesaikan skripsi ini.
2. Bapak Puspaningtyas Sanjoyo Adi S.T., M.T. selaku dosen pembimbing
atas bimbingan, waktu, pikiran dan kesabaran yang telah diberikan.
3. Seluruh dosen Universitas Sanata Dharma khususnya para dosen penguji
yang telah memberikan saran dan masukan yang berguna bagi
kesempurnaan skripsi ini.
4. Laboran komputer atas bantuan kepada penulis ketika melakukan ujian
akhir.
5. Kedua orang tua, Alexius Slamet dan Lucia Surati yang telah memberikan
dukungan, perhatian dan pengorbanan untuk dapat mengantarkan saya
hingga menjadi seperti sekarang ini.
6. Adik – adik ku dan semua saudara yang telah memberikan doa serta
dukungan.
7. Kekasih tercinta, Florensia Dwinta P.K, atas semangat, perhatian dan
dukungannya.
8. Teman-teman seperjuangan yang sama-sama menempuh kuliah bersama,
tugas kita tidak habis sampai disini, semoga kita semua bisa menjadi
orang–orang yang sukses.
9. Semua pihak yang berperan baik secara langsung maupun tidak langsung
sehingga penulis dapat menyelesaikan tugas akhir ini
xi
Penulis menyadari bahwa masih banyak kekurangan yang terdapat
pada laporan tugas akhir ini. Saran dan kritik saya harapkan untuk
perbaikan-perbaikan pada masa yang akan datang. Semoga bermanfaat.
Yogyakarta, 22 Juli 2011
Penulis,
Antonius Hari Widiatmoko
xii
DAFTAR ISI
HALAMAN PERSETUJUAN ........................................................................................ iii
HALAMAN PENGESAHAN .......................................................................................... iv
HALAMAN PERSEMBAHAN ....................................................................................... v
PERNYATAAN KEASLIAN KARYA .......................................................................... vi
ABSTRAKSI ................................................................................................................... vii
ABSTRACT ..................................................................................................................... vii
HALAMAN PERSETUJUAN ........................................................................................ ix
KATA PENGANTAR ....................................................................................................... x
DAFTAR ISI ................................................................................................................... xii
DAFTAR GAMBAR ....................................................................................................... xv
DAFTAR TABEL .......................................................................................................... xvi
PENDAHULUAN ............................................................................................................. 1
1.1. Latar Belakang Masalah ................................................................................. 1
1.2. Rumusan Masalah ........................................................................................... 2
1.3. Tujuan Penelitian ............................................................................................ 2
1.4. Batasan Masalah ............................................................................................. 2
1.5. Luaran yang Diharapkan ................................................................................. 3
1.6. Metodologi Penelitian ..................................................................................... 3
1.7. Sistematika Penulisan ..................................................................................... 5
TINJAUAN PUSTAKA .................................................................................................... 6
2.1. Konsep Jaringan .............................................................................................. 6
2.1.1. Berdasarkan Fungsinya ................................................................................... 6
2.1.1.1. Peer to Peer .................................................................................................... 7
2.1.1.2. Client Server ................................................................................................... 8
2.1.2. Jaringan Intranet, Extranet dan Internet ......................................................... 9
2.1.2.1. Intranet ............................................................................................................ 9
2.1.2.2. Extranet ......................................................................................................... 10
2.1.2.3. Internet .......................................................................................................... 10
2.2. Sistem terdistribusi........................................................................................ 11
2.2.1. Sistem Komputerisasi Terdistribusi .............................................................. 11
2.2.2. Komputasi terdistribusi ................................................................................. 12
2.2.3. Perancangan Terdistribusi Three-tier ............................................................ 12
xiii
2.2.4. Karakteristik Sistem Tredistribusi ................................................................ 14
2.3. File System ................................................................................................... 16
2.4. RMI ............................................................................................................... 19
2.4.1. Arsitektur Layer RMI .................................................................................... 20
2.4.2. Membuat Program Dengan RMI ................................................................... 22
2.5. Penyimpanan Data ........................................................................................ 28
2.5.1. RAID (Redundant Array of Independent Disk) ............................................. 28
2.6. Message Digest 5 (MD 5) ............................................................................. 29
2.7. Penelitian Sebelumnya .................................................................................. 30
ANALISIS DAN PERANCANGAN SISTEM .............................................................. 32
3.1. Arsitektur Sistem Penyimpanan Terdistribusi .............................................. 32
3.1.1. Contoh arsitektur sistem ............................................................................... 34
3.2. Komunikasi Sistem ....................................................................................... 37
3.2.1. Sistem File Server ......................................................................................... 38
3.2.2. Sistem Aplication server ............................................................................... 38
3.2.3. Sistem Client ................................................................................................. 38
3.3. Sistem yang Dikembangkan ......................................................................... 39
3.3.1. Pembagian Penyimpanan File ....................................................................... 39
3.3.2. Indexing File ................................................................................................. 40
3.3.3. Mengungah File ............................................................................................ 41
3.3.4. Mendownload File ........................................................................................ 42
3.4. Use Case ....................................................................................................... 43
3.3.1. Algoritma Upload dan Download ................................................................. 43
3.3.2. Diagram Use Case......................................................................................... 45
3.3.3. Narasi Use case ............................................................................................. 47
3.3.4. Activity Diagram ........................................................................................... 47
3.4. Model Analisis .............................................................................................. 47
3.4.1. Relasi Use Case ............................................................................................ 47
3.4.2. Diagram Kelas Analisis Keseluruhan ........................................................... 47
3.5. Model Desain ................................................................................................ 48
3.5.1. Atribut dan Method ....................................................................................... 48
3.5.2. Rancangan Interface ..................................................................................... 48
3.5.3. Entity Relational Diagram ............................................................................ 48
xiv
3.6. Metode Evaluasi ........................................................................................... 50
3.6.1. Pengujian Method ......................................................................................... 50
3.6.2. Pengujian Use Case ...................................................................................... 50
3.6.3. Beta Testing .................................................................................................. 50
IMPLEMENTASI DAN ANALISIS HASIL ................................................................ 51
4.1. Implementasi ................................................................................................. 51
4.1.1. Implementasi File ......................................................................................... 51
4.1.2. Implementasi Antar Muka ............................................................................ 53
4.2. Instalasi ......................................................................................................... 53
4.3. Pengujian ...................................................................................................... 53
4.4. Analisa Hasil ................................................................................................. 54
KESIMPULAN DAN SARAN ....................................................................................... 59
5.1. Kesimpulan ................................................................................................... 59
5.2. Saran ............................................................................................................. 60
DAFTAR PUSTAKA ...................................................................................................... 61
LAMPIRAN 1 PLANNING ........................................................................................... 63
LAMPIRAN 2 NARASI USE CASE ............................................................................. 65
LAMPIRAN 3 ACTIVITY DIAGRAM ........................................................................ 81
LAMPIRAN 4 SEQUENCE DIAGRAM ..................................................................... 91
LAMPIRAN 5 DIAGRAM KELAS ANALISIS ........................................................ 107
LAMPIRAN 6 ATRIBUT DAN METHOD ............................................................... 109
LAMPIRAN 7 DESAIN PENGUJIAN ....................................................................... 134
LAMPIRAN 8 IMPLEMENTASI ANTAR MUKA/ INTERFACE ........................ 140
LAMPIRAN 9 HASIL PENGUJIAN .......................................................................... 149
LAMPIRAN 10 INSTALASI ....................................................................................... 170
xv
DAFTAR GAMBAR
Gambar 1 Metode Incremental ........................................................................................... 3
Gambar 2 Jaringan komputer .............................................................................................. 6
Gambar 3 Jaringan Peer to Peer ......................................................................................... 7
Gambar 4 Jaringan Client Server ........................................................................................ 8
Gambar 5 Internetworking ................................................................................................ 11
Gambar 6 Arsitektur Three Tier ....................................................................................... 13
Gambar 7 Arsitektur RMI ................................................................................................. 20
Gambar 8 Layer pada sistem RMI .................................................................................... 21
Gambar 9 Referensi Remot Object ................................................................................... 22
Gambar 10 Gambaran umum sistem penyimpanan file terdistribusi ................................ 33
Gambar 11 Arsitektur dengan file server lokal ................................................................. 34
Gambar 12 Arsitektur peneggunaan file server bersama-sama ........................................ 35
Gambar 13 Arsitektur file server dengan jaringan internet ............................................... 36
Gambar 14 Arsitektur database terpisah dan tergabung ................................................... 37
Gambar 15 Desain sistem penyimpanan dengan 4 server................................................. 39
Gambar 16 Prosedur mengungah file ............................................................................... 41
Gambar 17 Prosedur mengunduh file ............................................................................... 42
Gambar 18 Algoritma Download .................................................................................... 43
Gambar 19 Algoritma Upload .......................................................................................... 44
Gambar 20 Use Case Sistem ............................................................................................. 45
Gambar 21 ER Diagram ................................................................................................... 49
Gambar 22 Physical design .............................................................................................. 50
xvi
DAFTAR TABEL
Tabel 1 Indexing File ........................................................................................................ 40
Tabel 2 Tabel use case ...................................................................................................... 46
Tabel 3 Implementasi file ................................................................................................. 51
Tabel 4. Rencana Pergerjaan (planning) ........................................................................... 63
Tabel 5. Pelaksanaan Rencana .......................................................................................... 63
BAB I
PENDAHULUAN
1.1. Latar Belakang Masalah
Perkembangan teknologi membantu memudahkan manusia dalam
berbagai hal, di dunia maya internet merupakan salah satu teknologi untuk
berkomunikasi dan bertukar informasi maupun data. Dalam internet terjadi
komunikasi antara client dan server. Client merupakan pengguna resource
yang disediakan oleh server, semakin banyak client yang memanfaatkan
server tersebut secara tidak langsung semakin besar sumberdaya (resource)
yang harus di sediakan oleh server tersebut.
Salah satu kemampuan server yang sering menjadi permasalahan yaitu
tempat penyimpanan. Sebuah server yang baik memiliki kapasitas
penyimpanan yang besar sehingga semua data-data client bisa di simpan pada
server tersebut. Selain itu memiliki error handling yang baik, yakni apabila
server mengalami masalah atau kerusakan maka kerusakan pada server
tersebut dapat di hindari atau setidaknya dapat di lokalisir sehingga tidak
semua data mengalami kerusakan, dan layanan terhadap client tetap terjaga.
Ada beberapa pilihan untuk mendapatkan server yang memiliki
kemampuan menyimpan yang besar, murah namun handal, salah satunya
dengan memanfaatkan sistem penyimpanan yang terdistribusi. Dengan
menggunakan sistem penyimpanan yang terdistribusi maka data-data yang
dimiliki oleh server tersebut dapat disimpan dalam beberapa komputer lain
sehingga server tersebut memiliki kapasitas penyimpanan yang besar. Dengan
menggunakan sistem penyimpanan server yang terdistribusi maka
meningkatkan kemampuan server dalam mengamankan data yang di simpan
pada server tersebut, jadi apabila salah satu komputer mengalami kerusakan
sehingga data hilang, maka data yang hilang hanya data pada komputer yang
mengalami kerusakan tersebut. Hal ini berbeda dengan sistem penyimpanan
server yang terpusat, yang menyebabkan semua data hilang bila terjadi
kerusakan pada sistem tersebut. Dalam hal ini untuk meningkatkan keamanan
2
menyimpan data maka dapat menggunakan tehnik penyimpanan mirroring,
tehnik mirroring ini dipilih karena untuk menjaga file yang disimpan aman
dan memiliki backup di komputer lain, sehingga bila salah satu rusak dapat
menggunakan mirrornya, untuk mendukung tehnik mirroring diatas maka
dalam melakukan transfer file perlu menggunakan validasi yaitu dengan
membandingkan nilai MD5 sebelum dan sesudah dikirim, ini dipakai untuk
memastikan file yang dikirim untuh.
Salah satu cara untuk membuat sistem penyimpanan server yang
terdistribusi adalah dengan menggunakan Remote Method Invocation (RMI).
RMI adalah sistem yang memungkinkan objek yang running di satu JVM
(Java Virtual Mechine ) untuk memanggil suatu metode / fungsi dari satu
objek yang berjalan di JVM yang lain, yang memungkinkan komunikasi
remote antar program JAVA, sehingga akses method dapat dilakukan dari
jarak jauh(dari komputer lain).
1.2. Rumusan Masalah
Dari uraian diatas maka dapat dirumuskan masalah pada sistem ini
adalah bagaimana membuat sistem untuk penyimpanan data pada server yang
memiliki kapasitas besar bahkan tak terbatas dengan menggunakan biaya yang
murah serta mudah, dengan memanfaatkan Java RMI sebagai salah satu cara
untuk berkomunikasi yaitu dasar pengiriman file antar komputer.
1.3. Tujuan Penelitian
Adapun tujuan dari penyusunan skripsi ini adalah sebuah sistem yang
bisa digunakan oleh web server agar memiliki penyimpanan yang besar dan
penyimpanannya terdistribusi pada file server, serta mudah ditambah sehingga
memiliki penyimpanan yang besar bahkan tak terbatas.
1.4. Batasan Masalah
Terdapat batasan masalah pada pembuatan sistem ini mengenai
kemampuan dari program yang dibuat:
3
Sistem ini hanya diperuntukkan bagi web server dalam menyimpan file secara
terdistribusi dan di kembangkan menggunakan RMI.
Dalam pembuatan sistem ini tidak membuat sistem antara client dan server,
client hanya memanfaatkan fasilitas web server saja.
Sistem ini belum memiliki handling bila terjadi kegagalan pengiriman
dikarenakan web server mati mendadak dikarenakan listrik mati.
Asumsi keamanan jaringan komputer sudah memadai dimana jaringan
komputer memiliki pengamanan untuk sebuah web server dan port sistem.
Dalam sistem ini tidak menangani sistem versi dari file, sehingga setiap file
yang diungah diangap file yang berbeda.
1.5. Luaran yang Diharapkan
Harapan dari penyusunan skripsi ini adalah sebuah program atau
sistem yang bisa membagi dan mengatur penyimpanan server kedalam
komputer lain.
1.6. Metodologi Penelitian
Untuk melaksanakan dan menunjang keberhasilan pembuatan sistem
ini maka dalam perancangan dan pengembangannya menggunakan metode
Incremental, adapun langkah-langkahnya sebagai berikut :
Communication
Planing
Modeling
Construction
Deployment
Communication
Planing
Modeling
Construction
Deployment
Communication
Planing
Modeling
Construction
Deployment
Waktu
Gambar 1 Metode Incremental
4
1. Communication (Analisis Kebutuhan):
Mengumpulkan kebutuhan secara lengkap kemudian dianalisis dan
didefinisikan kebutuhan yang harus dipenuhi oleh program yang akan
dibangun. Fase ini dikerjakan agar bisa menghasilkan desain yang
lengkap. Dalam skripsi ini fase ini dilaksanakan pada BAB 1 dan BAB 2.
2. Planning ( Perencanaan ):
Merencanakan dari tahap perancangan, tahap pengerjaan dan testing.
Dalam skripsi ini rencana/planning ada pada Lampiran pertama.
3. Modeling ( Analisis dan Desain ) :
Desain dikerjakan setelah kebutuhan selesai dikumpulkan secara
lengkap. Pada skripsi ini diimplementasikan dengan membuat desain
yang ada pada BAB 3.
4. Construction ( Code dan Test):
Desain program diterjemahkan ke dalam kode-kode dengan
menggunakan bahasa pemrograman yang sudah ditentukan. Dalam
sistem yang saya buat disini saya menggunakan JAVA. Program yang
dibangun dapat langsung diuji baik secara unit. Penyatuan unit-unit
program kemudian diuji secara keseluruhan (sistem testing). Penjelasan
secara lengkap tahap code dan testing sistem ini ada pada BAB 4.
5. Deployment ( Penerapan program ):
Mengoperasikan program dilingkungkannya (instalasi) dan melakukan
pemeliharaan, seperti penyesuaian atau perubahan karena adaptasi
dengan situasi sebenarnya. Pada skripsi ini untuk melakukan instalasi
dan deployment ada pada Lampiran Instalasi.
5
1.7. Sistematika Penulisan
Sistematika dalam penulisan skripsi ini adalah sebagai berikut :
BAB I : PENDAHULUAN
Pada bab ini berisi tentang latar belakang masalah, rumusan masalah,
batasan masalah, tujuan penulisan, metodologi penelitian dan
sistematika penulisan.
BAB II : LANDASAN TEORI
Pada bab ini berisi berbagai acuan dan bahan-bahan yang bisa
digunakan untuk menjawab permasalahan yang di hadapi seperti teori-
teori mengenai konsep dasar sistem yang mendukung dalam
menyelesaikan masalah yang terjadi.
BAB III : ANALISIS DAN PERANCANGAN
Perancangan sistem ini menjelaskan tentang rancangan dari sistem
secara mendetail.
BAB IV : IMPLEMENTASI SISTEM
Pada bagian ini membahas tenteng implementasi program yang akan
dibuat.
BAB V : ANALISIS DAN HASIL
Pada bagian ini berisi analisa hasil yang telah didapat selama proses
implementasi sistem.
BAB VI : KESIMPULAN DAN SARAN
Pada bab ini berisi kesimpulan dari semua kegiatan penyusunan skripsi
ini serta saran untuk pengembangan yang lebih lanjut.
DAFTAR PUSTAKA
Berisi daftar pustaka yang digunakan sebagai referensi dalam
pembuatan skripsi.
BAB II
TINJAUAN PUSTAKA
2.1. Konsep Jaringan
Jaringan komputer adalah kumpulan dari sejumlah perangkat berupa
komputer, hub, switch, router, atau perangkat jaringan lainnya yang terhubung
dengan menggunakan media komunikasi tertentu (Wagito, 2005). Perangkat
yang terhubung dengan jaringan disebut juga sebagai node. Hal ini
memungkinkan pengguna dapat bertukar dokumen dan data, mencetak pada
printer yang sama, dan menggunakan sumber daya dalam jaringan tersebut.
Jaringan komputer dapat di bedakan dalam beberapa kriteria seperti berikut :
2.1.1. Berdasarkan Fungsinya
Jaringan komputer, merupakan sekumpulan komputer yang
dihubungkan melalui media fisik dan software yang memfasilitasi
komunikasi antara komputer-komputer tersebut. Dengan demikian sebuah
jaringan komputer yang sangat sederhana bisa digambarkan seperti
gambar berikut
Media Fisik
Komputer 1 Komputer 2
Gambar 2 Jaringan komputer
Pada gambar terlihat bahwa komputer 1 dan komputer 2 terhubung
melalui media fisik. Komunikasi antara keduanya berlangsung melalui
media fisik tersebut. Media fisik ini bisa berupa kabel, ataupun udara yang
7
menjadi media bagi komunikasi elektromagnetik. berikut jenis komputer
berdasarkan fungsinya :
2.1.1.1. Peer to Peer
Hub
Peer 3
Peer 1 Peer 2
Peer 4
Gambar 3 Jaringan Peer to Peer (UZUMAKI, 2010)
Pada arsitektur peer to peer seperti pada gambar diatas di
memungkinkan setiap node untuk menjadi sebuah server, sehingga tidak
ada istilah server sentral (Somantri, 2005). Pada jaringan ini tidak ada
komputer client maupun komputer server karena semua komputer dapat
melakukan pengiriman maupun penerimaan informasi sehingga semua
komputer berfungsi sebagai client sekaligus sebagai server. Dalam
konfigurasi ini setiap komputer bisa saling bagi-pakai (share) sumber
daya, seperti file-file pengolah kata, spreadsheet, printer, CD-ROM drive,
scanner, dan lain-lain tanpa perlu ada konsep restrict security.
8
2.1.1.2. Client Server
Hub
Client 1
Client 3
Client 2
Server
Gambar 4 Jaringan Client Server (UZUMAKI, 2010)
Istilah Client/Server mengacu pada hubungan antara dua
sistem atau proses. Client adalah sistem yang mengajukan
permintaan (request) ke server. Dalam banyak situasi maka yang
mana sistem client dan yang mana sistem server ditentukan oleh
hubungan antara yang mengajukan permintaan (client) ke yang
memberikan layanan yaitu serve (Hall, 1994).
Server adalah komputer yang menyediakan fasilitas bagi
komputer-komputer lain didalam jaringan dan client adalah
komputer-komputer yang menerima atau menggunakan fasilitas
yang disediakan oleh server. Server merupakan komputer yang
berfungsi sebagai penyedia layanan untuk semua pemakai (user).
Sehingga komputer ini memiliki spesifikasi yang lebih tinggi dari
komputer lain yang menjadi workstation yang terhubung padanya.
Spesifikasi yang diterapkan untuk memilih sebuah server memiliki
ketanguhan, keamanan, berkecepatan tinggi, memiliki fault
9
tolerance dan di lengkapi dengan interface I/O yang cepat.
(Lazuardi, 2008)
Server dijaringkan tipe client-server disebut dengan
dedicated server karena murni berperan sebagai server yang
menyediakan fasilitas kepada workstation dan server tersebut tidak
dapat berperan sebagai workstation. Server dan client tersebut
memiliki beberapa karakteristik antara lain :
Karak teristik dari masing – masing client server (Mulholland, 2004)
Karakteristik Server
a. Pasif
b. Menunggu request
c. Menerima request, memproses mereka dan mengirimkan
balasan berupa service
Karakteristik Client
a. Aktif
b. Mengirim request
c. Menunggu dan menerima balasan dari server
2.1.2. Jaringan Intranet, Extranet dan Internet (Syafriza, 2005)
2.1.2.1. Intranet
Intranet merupakan sebuah jaringan internal perusahaan yang
dibangun menggunakan teknologi internet (arsitektur berupa aplikasi
web dan menggunakan protokol TCP/IP). LAN tidak sama dengan
intranet, karena dari segi penggunaan, luas area maupun
implementasinya, intranet lebih luas dan bekerja lebih maksimal
seperti halnya internet. Namun sangat terbatas dalam hal privilege dan
hak akses para pemakainya. Sebuah LAN bisa saja disebut intranet,
apabila LAN tersebut menerapkan aplikasi web dan menggunakan
protokol TCP/IP didalamnya. Biasanya sebuah LAN dapat
10
dihubungkan dengan jaringan internet, sedangkan intranet justru
menghindari koneksi dengan jaringan luar
2.1.2.2. Extranet
Extranet merupakan jaringan intranet misalnya perusahaan
yang ingin mengekspose sebagian informasi yang mereka miliki ke
jaringan luar. Informasi yang diekspose bisa berupa info
produk/layanan, file-file yang diperlukan konsumen, klien atau
karyawan yang mobile, atau juga database yang diperkenankan
diakses dari jaringan lain atau jaringan internet.
Firewall akan memproteksi sebagian jaringan internal
perusahaan sehingga tidak dapat diakses dari jaringan luar,
sekaligus membatasi akses jaringan internal agar tidak dapat
mengakses semua layanan/service dari internet.
2.1.2.3. Internet
Interconnected Network atau yang lebih populer dengan
sebutan internet adalah sebuah sistem komunikasi global yang
menghubungkan komputer-komputer dan jaringan-jaringan
komputer di seluruh dunia.
Setiap komputer dan jaringan, terhubung secara langsung
maupun tidak langsung ke beberapa jalur utama yang disebut
internet backbone, Secara harafiah, internet adalah rangkaian
komputer yang terhubung kebeberapa jaringan lain. Ketika
komputer terhubung secara global dengan menggunakan TCP/IP
sebagai protokol pertukaran paket data (packet switching
communication protocol), maka rangkaian jaringan komputer yang
besar ini dapat dinamakan internet. Cara menghubungkan
rangkaian komputer dengan kaedah ini dinamakan internetworking.
11
Gambar 5 Internetworking
Internetworking merupakan kumpulan jaringan lokal area,
juga metropolitan area yang umumnya terhubung melalui
router-router sehingga membentuk jaringan wide area yang
begitu besar. Terkoneksi ke internet berarti menghubungkan
perangkat komputer atau perangkat lain yang digunakan,
kedalam jaringan komputer global di dunia.
2.2. Sistem terdistribusi
Sistem terdistribusi adalah sistem yang terdiri dari kumpulan
mikrokomputer yang memiliki kekuatan pemrosesan yang tidak dapat dicapai
oleh superkomputer dalam sistem terdistribusi semua resource dapat di
gunakan secara bersamaan, contohnya adalah beberapa komputer bersama-
sama dan mengambil keuntungan dari sumber daya masing-masing dengan
cara kolektif. Setiap komputer kontribusi beberapa sumber (seperti memori,
pengolahan daya dan ruang hard drive) ke jaringan secara keseluruhan.
2.2.1. Sistem Komputerisasi Terdistribusi
Sistem komputerisasi terdistribusi adalah suatu set aplikasi atau
program sistem yang dijalankan pada suatu jaringan untuk saling berbagi
data informasi di berbagai tempat/lokasi. (Jia, 2005). Isu kenapa
menggunakan sistem komputerisasi terdistribusi yaitu isu tentang
12
execution (processes), artinya proses untuk melayani permintaan user
yang menjalankan di berbagai tempat. Dengan sistem seperti ini telah
memungkinkan berbagi informasi dan berbagi resource (object) . sehingga
dapat meningkatkan performance suatu sistem dengan penggunaan
resource tersebut oleh berbagai individu user melalui proses yang di
lakukan melalui perantara (middleware) dan proses yang bersifat parallel
(threading).
2.2.2. Komputasi terdistribusi
Komputasi terdistribusi adalah semua atau beberapa komputer
bersama-sama mengambil keuntungan dari sumber daya masing-masing
dengan cara kolektif. Setiap komputer kontribusi beberapa sumber (seperti
memori, pengolahan daya dan ruang hard drive) ke jaringan secara
keseluruhan. Ternyata seluruh jaringan ke komputer besar, dengan
komputer masing-masing individu yang bertindak sebagai pemroses dan
perangkat penyimpanan data.
2.2.3. Perancangan Terdistribusi Three-tier
Three-tier adalah sebuah arsitektur client-server dimana masing-
masing user interface, functional process logic ("business rules"), data
storage dan data access dikembangkan dan disusun sebagai modul-modul
yang independen, bahkan sering berada pada platform yang berbeda.
"three-tier" atau "three-layer", adalah bagian dari multi-tier architectures
(Howes, 1999)
13
remote data access
procedur call
remote data access or
transaction processing
dataprocessingPresentation
share data serviceshare aplication serviceclient
Gambar 6 Arsitektur Three Tier
Ada beberapa alasan kenapa membangun sistem yang terdistribusi
di banding dengan sistem yang terpusat.
1. Resource Sharing : Dalam sistem terdistribusi, situs-situs yang
berbeda saling terhubung satu sama lain melalui jaringan, sehingga
situs yang satu dapat mengakses dan menggunakan sumber daya yang
terdapat dalam situs lain. Misalnya, user di situs A dapat mengakses
file yang dimiliki situs B dan sebaliknya user di situs B dapat
mengakses file yang terdapat di situs A.
2. Computation Speedup : Apabila sebuah komputasi dapat dipartisi
menjadi beberapa subkomputasi yang berjalan bersamaan, maka sistem
terdistribusi akan mendistribusikan subkomputasi tersebut ke situs-
situs dalam sistem. Dengan demikian, hal ini meningkatkan kecepatan
komputasi (computation speedup).
3. Reliability : Dalam sistem terdistribusi, apabila sebuah situs
mengalami kegagalan, maka situs yang tersisa dapat melanjutkan
operasi yang sedang berjalan. Hal ini menyebabkan reliabilitas sistem
menjadi lebih baik.
4. Communication : Ketika banyak situs saling terhubung melalui
jaringan komunikasi, user dari situs-situs yang berbeda mempunyai
kesempatan untuk dapat bertukar informasi.
14
2.2.4. Karakteristik Sistem Tredistribusi
Menurut (Tanenbaum, 1995) mengidentifikasikan lima karakteristik
yang penting untuk pengembangan sistem terdistribusi
1. Transparency
Penyembunyian aspek distribusinya, yaitu tersebarnya sistem
namun tampak sebagai satu sistem bagi user.
2. Flexibility
Sistem terdistribusi mampu mendukung berbagai jenis sistem
operasi, perangkat keras dan perangkat lunak. Misalnya sistem
terdistribusi dalam kantor masih dapat berjalan dengan baik meskipun
terdiri dari komputer yang masih baru dan komputer yang sudah lama.
3. Reliability
Kerusakan yang terjadi pada satu komputer dalam sistem
terdistribusi tidak mempengaruhi kinerja sistem secara keseluruhan.
Misalnya sekumpulan komputer yang melakukan proses perhitungan
secara bersama-sama. Apabila salah satu komputer mati, sistem tersebut
masih dapat bekerja sehingga proses pemantauan dapat terus berjalan.
4. Performance
Dalam pemakaian sumberdaya bersama apabila terjadi permintaan
secara bersamaan, sistem terdistribusi tidak akan menjad kacau. Misalnya
permintaan data dari basis data bank dapat dilakukan oleh beberapa orang
teller dalam waktu yang bersamaan.
5. Scalability
Ukuran sistem terdistribusi dapat diubah dan tetap dapat berjalan
dengan baik. Perubahan dapat dilakukan dari segi jumlah pengguna
maupun dari segi kekuatan perangkat keras komputer-komputer dalam
sistem terdistribusi itu sendiri.
15
Selain kelebihan yang dimiliki sistem terdistribusi juga memiliki
kelemahan yaitu :
1. Kompleksitas : sistem terdistribusi bersifat lebih kompleks daripada
sistem tersentral
2. Keamanan : sistem terdistribusi dapat diakses dari beberapa komputer
dan jalur jaringan mudah di sadap, sehingga keamanan jaringan sistem
terdistribusi menjadi masalah besar.
3. Kemampuan untuk dikendalikan : komputer yang terdapat di sistem
terdistribusi bisa terdiri dari berbagai tipe yang berbeda dan mungkin
di jalankan pada sistem operasi yang berbeda pula, kesalahan pada satu
mesin bisa berakibat pada yang lain. Sehingga harus banyak usaha
untuk mengendalikannya.
4. Tidak dapat diramalkan : sistem terdistribusi tidak dapat di ramalkan
tanggapannya, tanggapan tergantung beban total sistem,
pengorganisasian, dan beban jaringannya.
Pada saat ini ada tiga standar yang bisa mendukung untuk komputasi
objek terdistribusi yaitu :
1. CORBA (Command Object Request Broker Architecture)
CORBA merupakan suatu set standard middleware yang dikeluarkan olah
OMG (Object Management Group). Standard CORBA mendefinisikan
pendekatan yang tidak dependen mesin dan generic terhadap objeck
terdistribusi. Sejumlah implementasi ini tersedia untuk aplikasi sistem
operasi UNIX dan Microsoft
2. DCOM (Distributed Component Object Mode)
DCOM dikembangkan oleh Microsoft. Model komputasi terdistribusi
kurang umum dari model CORBA dan DCOM memberikan dukungan
yang terbatas pada interoperabilitas.
16
3. RMI (Remote Method Invocation)
Java RMI yang ada pada bahasa Java telah didesain khusus sehingga hanya
bisa bekerja pada lingkungan Java, untuk membuat program aplikasi Java
to Java yang terdistribusi Hal ini berbeda dengan sistem RMI lainnya,
misalnya CORBA, yang biasanya didesain untuk bekerja pada lingkungan
yang terdiri dari banyak bahasa dan heterogen
2.3. File System
File System atau Sistem Berkas merupakan sebuah metode untuk
memberi nama pada berkas dan meletakkannya pada media penyimpanan.
Semua sistem operasi mulai dari DOS, Windows, Macintosh dan turunan
UNIX memiliki Sistem Berkas sendiri untuk meletakkan file dalam sebuah
struktur hierarki.
Beberapa contoh dari sistem berkas adalah : FAT, NTFS, EXT2,
EXT3, dan EXT4. Setiap file system pasti memiliki batasan salah satunya
yang mempengaruhi terhadap penyimpanan file adalah maksimal ukuran file
dan maksimal ukuran volume yang dapat disimpan.
FAT16 (File Allocation Table)
FAT16 dikenalkan oleh MS-DOS pada tahun 1981. Awalnya, Sistem
ini di design untuk mengatur file di floopy drive dan mengalami beberapa kali
perubahan sehingga digunakan untuk mengatur file di harddisk. FAT16 adalah
sistem berkas yang menggunakan unit alokasi yang memiliki batas hingga 16-
bit, sehingga dapat menyimpan hingga 216 unit alokasi (65536 buah).
Sistem berkas ini memiliki batas kapasitas hingga ukuran 2 Gigabyte
saja. Ukuran unit alokasi yang digunakan oleh FAT16 bergantung pada
kapasitas partisi yang akan hendak diformat. Fat 16 menggunakan metode 8.3
(8.3 maksudnya adalah 8 nama file dan tiga extention) untuk melakukan suatu
penamaan dari suatu file.
17
FAT32
FAT32 mulai di kenal pada tahun 1976 dan digunakan pada sistem
operasi Windows 95 SP2, dan merupakan pengembangan lanjutan dari
FAT16. Karena menggunakan tabel alokasi berkas yang besar (32-bit),
FAT32 secara teoritis mampu mengalamati hingga 232
unit alokasi
(4294967296 buah). Meskipun demikian, dalam implementasinya, jumlah
unit alokasi yang dapat dialamati oleh FAT32 adalah 228
(268435456
buah).
File system FAT32 juga tidak mampu menampung single file
berukuran 4 Gigabyte atau lebih. Jumlah file yang bisa ditampung oleh
direktori pada file system FAT32 yaitu sebanyak 65535 file. FAT32
mampu menyimpan dan membaca file dengan kapasitas 4 Terabyte (1
Terabyte= 1024 Gigabyte).
NTFS (New Technology File System)
NTFS di kenalkan pertama pada Windows NT dan merupakan file
system yang sangat berbeda di banding teknologi FAT. NTFS atau New
Technology File System, merupakan sebuah sistem berkas yang
dibekalkan oleh Microsoft dalam keluarga sistem operasi Windows NT,
yang terdiri dari Windows NT 3.x (NT 3.1, NT 3.50, NT 3.51), Windows
NT 4.x (NT 4.0 dengan semua service pack), Windows NT 5.x (Windows
2000, Windows XP, dan Windows Server 2003), serta Windows NT 6.x
(Windows Vista, Windows 7). NTFS bekerja berdasarkan prinsip BTree
dan menggunakan Full Indexing. Karena itu pula fragmentation dapat
ditekan seminimal mungkin. Kemudian, setiap file pada NTFS memiliki
checksum, yang memungkinkan file tersebut diperbaiki secara sempurna
bila suatu saat NTFS tersebut bermasalah.
Jumlah file maksimum pada file system-nya adalah
4,294,967,295. Dengan kata lain jumlah maksimum file dalam satu folder
18
pada NTFS sekitar 4 miliar sejumlah dengan batasan file system nya.
Sedangkan untuk besar maksimum file nya adalah sebesar 16TB. NTFS
mampu menyimpan dan membaca file dengan kapasitas 16 Exabyte (1
Exabyte= 1024 Terabyte)
NTFS support terhadap metadata, yaitu database yang berisi
informasi suatu file. Pada NTFS menawarkan security yang jauh lebih baik
, kompresi file , cluster dan bahkan support enkripsi data. Kekurangan
NTFS yang sering dibicarakan adalah kompatibilitas terhadap software
atau operating sistem lawas seperti win 9x dan ME. Sistem operasi lama
milik microsoft ini tidak mampu membaca file system NTFS
EXT3
EXT3 merupakan peningkatan dari EXT2 file system dan EXT3
merupakan pengembangan dari EXT2. EXT3 bertujuan untuk menjadi
kompatibel dengan EXT2 sebelumnya, banyak struktur on-disk mirip
dengan EXT2. Karena itu, EXT3 tidak memiliki beberapa fitur desain
yang lebih baru, seperti luasan, alokasi dinamis inode, dan suballocation
blok Ada batas-direktori 31.998 per satu sub direktori. Berasal dari batas
atas 32.000 link per inode. EXT3, seperti filesystem Linux terbaru, tidak
dapat fsck-ed sementara filesystem dipasang untuk menulis.
EXT4
File system EXT4 yang biasa digunakan linux merupakan file
system ke empat yang dikembangkan sebagai penerus EXT3. File system
EXT4 juga meningkatkan daya tampung maksimal file system ke 1
exabyte dan mengurangi waktu yang diperlukan untuk melakukan
pengecekan hardisk (fsck yang mana pada File system EXT3, setiap 20-30
kali mount). File system EXT4 memiliki keunggulan performance yang
significant dalam menulis dan membaca file berukuran besar. EXT4
mempunyai pengalamatan 48-bit block yang artinya dia akan mempunyai
19
1EB = 1,048,576 TB ukuran maksimum file system dengan 16 TB untuk
maksimum file size nya
Berikut ini merupakan table perbandingan beberapa file system
(Microsoft, 2011) dan (bill, et al., 2003):
File System FAT16 FAT32 NTFS EXT3 EXT4
Maximum
file size
232
- 1 b 232
- 1 b 256 TB 2 TB 16 TB
Maximum
volume size
4 GB 32 GB . 16 EB 16 TB 1EB limited
to 16 TB
Files per
volume
216
222
232
- 1 223
4 billion
2.4. RMI
Remote Method Invocation (RMI) adalah prosedur yang memungkinkan
programmer untuk membuat sistem terdistribusi berbasis Java, dimana metode
remote objek Java dapat dipanggil dari Java virtual mesin pada JVM host yang
berbeda (download.oracle.com, 1995, 2011). RMI menggunakan paradigma
pemrograman berorientasi obyek (Object Oriented Programming) dengan
menggunakan RMI memungkinkan kita untuk mengirim obyek sebagai
parameter dari remote method. Dengan dibolehkannya program Java
memanggil method pada remote obyek, RMI membuat pengguna dapat
mengembangkan aplikasi Java yang terdistribusi pada jaringan.
Sistem RMI terdiri atas tiga layer/lapisan, yaitu (download.oracle.com,
1995, 2011)
20
1. Stub atau Skeleton layer, yaitu Stub pada sisi klien (berupa proxy), dan
Skeleton pada sisi server.
2. Remote reference layer, yaitu perilaku remote reference (misalnya
pemanggilan kepada suatu objek)
3. Transport layer, yaitu set up koneksi, pengurusannya dan remote object
tracking.
2.4.1. Arsitektur Layer RMI
Client
Service
proxy
Server
Service
ImplementationRMI
“Magic”
<< interface >>
Service
Gambar 7 Arsitektur RMI (java.sun.com, 2000)
Implementasi RMI pada dasarnya dibangun dari tiga lapisan abstraksi,
yang pertama adalah lapisan Stub dan Skeleton, yang terletak persis di
bawah aplikasi yang di kerjakan. Lapisan ini pemanggilan metode yang
dilakukan oleh klien untuk variabel interface dan meneruskan panggilan
tersebut ke remote RMI service. Lapisan berikutnya adalah lapisan remote
reference layer berfungsi untuk menerjemahkan da mengelola references
lalu meneruskan ke remote service object
Masing-masing layer dalam arsitektur RMI disusun oleh interface dan
protokol tertentu, yaitu tiap layer bersifat independen terhadap layer
lainnya, dan bisa diganti oleh implementasi alternatif tanpa mengganggu
layer lainnya. Sebagai contoh, implementasi transport yang digunakan
RMI adalah yang berbasis TCP (menggunakan Java socket), tapi bisa
digantikan dengan menggunakan UDP. Hubungan antara layer-layer
tersebut dapat dijelaskan pada gambar berikut :
21
RMI Server
skeleton
Remote Reference Layer
RMI Client
stub
Remote Reference Layer
Transport Layer
Gambar 8 Layer pada sistem RMI (java.sun.com, 2000)
Dalam melakukan komunikasi yaitu transfer data/file, sistem ini
menggunakan Remote Method Invocation (RMI). dengan menggunakan
RMI untuk membuat sistem yang terdistribusi maka kita tidak perlu
memikirkan cara untuk mentransmisikan, terutama bagian low level details
seperti soket, marshalling & unmarshalling. karena untuk mengirimkan
data RMI sudah menyediakan koneksi tersebut. Untuk dapat melakukan ini
sebuah komputer (server) harus menyediakan layanan remote prosedur.
Pendekatan yang dilakukan adalah, sebuah server meng-expose public
method dan membuka socket, lalu server tinggal menunggu client yang
meminta prosedur yang disediakan oleh server, ini menyebabkan public
method tersebut dapat di lihat dari sisi client, jadi seolah-olah client
memanggil method pada server tersebut sebagai fungsi lokal. Sehingga
RMI bisa menjadi jawaban atas kebutuhan sistem terdistribusi akan sifat
transparansi, yaitu abstraksi proses pengaksesan resource melalui jaringan
internet terlihat sebagai proses pengaksesan resource lokal pada sisi client.
Ilustrasi berikut menggambarkan aplikasi RMI terdistribusi yang
menggunakan registry untuk mendapatkan referensi ke objek remote.
Server memanggil registry untuk mengasosiasikan (mengikat) suatu nama
dengan objek remote. Client mencari objek remote dengan namanya pada
registry server dan meng-invoke method dari objek. Ilustrasi ini juga
22
menunjukkan sistem RMI menggunakan Aplication server untuk
memanggil class bytecodes, dari server ke client dan dari client ke server,
untuk objek-objek yang diperlukan.
RMI
Client
RMI
Server
Web Server
RMI Regirtry
Web Server
URL
Protokol
RMI
RMI
RMI
URL
Protokol
URL
Protokol
Gambar 9 Referensi Remot Object
2.4.2. Membuat Program Dengan RMI
Dalam RMI, semua informasi tentang satu pelayanan server
disediakan dalam suatu definisi remote interface. Dengan melihat pada
definisi interface, seorang pemrogram dapat memberitahukan method apa
yang dapat dikerjakan oleh server, meliputi data apa yang diterima dan
data apa yang akan dikirim sebagai tanggapan. Definisi yang ada pada
remote interface menentukan karakteristik method yang disediakan server
yang dapat dilihat oleh client. Client programmer harus dapat mengetahui
methods apa yang disediakan server dan bagaimana memanggilnya
langsung dengan melihat ke remote interface. Client mendapatkan
referensi ke remote object melalui RMI registry. Membangun suatu
aplikasi terdistribusi menggunakan RMI meliputi 6 langkah. Keenam
langkah tersebut adalah:
23
1. Mendefinisikan Remote Interface
Definisi remote interface menentukan karakteristik-
karakteristik method yang disediakan server yang dapat dilihat oleh
client. Karakteristik-karakteristik ini meliputi nama-nama method dan
tipe-tipe parameternya, dua hal ini bersama-sama membentuk method
signature. Dengan melihat pada remote interface, client tahu method
apa yang disediakan oleh server dan bagaimana memanggilnya.
Pemanggilan remote method bisa gagal karena ada kemungkinan tidak
dapat berhubungan ke server, yang bisa disebabkan karena server
sedang mati atau overload. Oleh karena itu, RMI harus mampu
melaporkan error massage, RMI menangani hal ini menggunakan
exception handling. Untuk mengindikasikan bahwa suatu obyek
dalam suatu interface benar-benar suatu remote object, obyek harus
mengimplementasikan suatu remote interface. Suatu remote interface
harus mempunyai beberapa karakteristik sebagai berikut:
1. Remote interface harus dideklarasikan sebagai public. Kalau tidak,
client tidak akan bisa mengambil (loading) remote object yang
mengimplementasi remote interface.
2. Remote interface mengekstensi interface java.rmi.remote. Ini
dilakukan untuk memenuhi persyaratan membuat obyek menjadi
remote.
3. Tiap method yang dideklarasikan dalam remote interface harus
mendeklarasikan java.rmi. RemoteException dan throws
clausenya.
2. Implementasi Remote Interface dan Server
Langkah kedua dalam pengembangan aplikasi terdistribusi
menggunakan RMI adalah implementasi remote interface yang telah
didefinisikan dalam langkah sebelumnya. Hal ini dilakukan dengan
24
menuliskan satu kelas (class server) yang mengimplementasi interface
di atas. Kelas yang implementasi tersebut haruslah:
1. Mendeklarasikan bahwa kelas tersebut mengimplementasi remote
interface. Dalam pemrograman Java, jika suatu kelas
mendeklarasikan untuk mengimplementasikan suatu interface,
maka suatu “kontrak” antara kelas dengan compiler telah dibuat.
Dengan kontrak ini, kelas menjanjikan bahwa ia akan menyediakan
method bodies, bagi tiap method signatures yang dideklarasikan
dalam interface. Kelas implementasi ini juga harus mewarisi
UnicastRemoteObject sehingga dapat digunakan untuk membuat
remote object yang menggunakan RMI default socket-based
transport untuk berkomunikasi.
2. Menentukan konstruktor untuk remote object. Konstruktor
mempunyai fungsi sebagai berikut: menginisialisasi variabel-
variabel dari instance yang baru dibuat pada suatu kelas dan
mengembalikan instance dari kelas kepada program yang
memanggil konstruktor. Remote object harus di-“ekspor” agar bisa
menerima permintaan remote method yang masuk. Dengan
mengekstensi java.rmi.server.UnicastRemoteObject kelas akan di-
ekspor secara otomatis. Konstruktor harus melakukan throw
java.rmi. RemoteException, karena usaha RMI untuk mengekspor
remote object mungkin mengalami kegagalan atau ada
kemungkinan sumber daya komunikasi tidak tersedia.
3. Menyediakan satu implementasi untuk tiap remote method. Kelas
implementasi bagi remote object berisi kode yang
mengimplementasi tiap remote method yang dispesifikasikan
dalam remote interface. Passing argumen ke, atau return value
dari method bisa berupa tipe java apapun, bisa juga obyek jika
obyek tersebut mengimplementasi interface java.io.serializable.
Dalam RMI, obyek lokal dilewatkan dengan copy (by default),
25
yang berarti semua field dalam obyek disalin, sedangkan remote
object dilewatkan dengan referensi. Referensi ini sebenarnya
mereferensi ke suatu stub, yang adalah proxy (pada sisi client)
bagi remote object.
4. Membuat dan menginstal satu security manager. Method main
server harus membuat dan menginstal security manager, bisa
RMISecurityManager atau security yang didefinisikan sendiri oleh
pemrogram. Security manager ini menjamin kelas-kelas yang di-
load tidak melakukan operasi yang tidak diperbolehkan. Jika tidak
ada security manager yang dipsesifikasi maka tidak akan ada class
loading yang diperbolehkan.
5. Membuat satu atau lebih instance dari remote object. Method
main server harus membuat satu atau lebih instance dari remote
object implementation untuk menyediakan layanan. Begitu
instance dibuat, server siap mendengarkan permintaan client.
6. Mendaftarkan remote object dengan RMI registry. Agar client
dapat memanggil satu method dalam remote object, pertama-tama
client harus mendapatkan referensi ke remote object dari satu
registry. Oleh karena itu, remote object harus didaftarkan dalam
RMI registry. Konversi penamaan oleh karenanya diperlukan
untuk pendaftaran dan pencarian obyek dari namanya. Sistem RMI
menyediakan satu solusi dengan URL-based registry yang
memungkinkan kita untuk melekatkan obyek, menggunakan
//host/object-Name, di mana object-Name adalah satu nama yang
sederhana.
Sebagai contoh:
Naming.rebind (“//hostname/Arithserver”, obj);
Mendaftarkan remote object Arithserver dengan RMI registry.
Begitu terdaftar, client dapat mencari obyek dari namanya,
26
mendapatkan referensinya, dan memanggil secara remote method
yang ada padanya. Pada contoh di atas hostname adalah hostname
di mana server akan berjalan. Yang perlu diperhatikan tentang
argumen dalam method Naming.rebind:
1. Jika hostname diabaikan dalam URL, host defaultnya adalah
host saat itu.
2. Dalam defaultnya, RMI registry akan berjalan pada port 1099.
Meskipun demikian, dapat juga digunakan nomor port yang
lain, misalnya //hostname:4000.
3. Mengkompilasi Source Files dan Membuat Stub dan Skeleton.
Ini merupakan proses dua langkah. Langkah pertama adalah
mengkompilasi source files yang terdiri dari implementasi remote
interface, kelas-kelas implementasi, kelas-kelas server, dan kelas-kelas
client dengan menggunakan Java compiler. Kompilasi ini akan
menghasilkan Java bytecode class. Langkah kedua, membuat stub dan
skeleton dengan mengkompilasi kelas dengan rmic compiler.
4. Memulai RMI Registry.
RMI menyediakan konsep yang disebut dengan RMI registry,
yang akan berjalan pada port generik dan memberitahu client pada
port mana server akan menanggapi permintaan tertentu client.
Registry menyediakan satu referensi bagi client untuk melihat server.
Kode client tidak perlu menyertakan port tempat server berjalan jika
dapat melihat port tersebut secara dinamis dari registry. Port mana
yang digunakan oleh registry bukan merupakan satu persoalan, port
1099 dipandang sebagai default port bagi RMI registry. Dengan
menggunakan RMI registry, client dapat memperoleh referensi ke
obyek yang berada pada komputer lain dan memanggil method-nya
seperti ke obyek lokal. Server menggunakan Naming. rebind untuk
27
mendapatkan penetapan port dari RMI registry, sedangkan client
melihat ke server dengan Naming.lookup dalam registry dan
kemudian membuat permintaan untuk suatu referensi obyek.
RMI registry dijalankan dengan baris perintah, pada sistem Windows:
Start rmiregistry
Registry harus dihentikan dan dijalankan lagi setiap ada
modifikasi remote interface atau penggunaan remote interface
tambahan dalam suatu remote object implementation. Jika hal ini
tidak dilakukan, maka tipe referensi obyek yang ada dalam registry
tidak akan sesuai dengan kelas yang telah dimodifikasi.
5. Menjalankan Server dan Client
Pada saat menjalankan server, java.rmi. server.codebase
property harus ditentukan, sehingga kelas stub dapat di-download
secara dinamis ke registry dan kemudian ke client. Jika codebase
property mereferensikan ke suatu directory tertentu, maka harus
dipastikan bahwa kelas-kelas lain yang diperlukan untuk download
juga harus dipasang pada directory yang direferensikan oleh java.rmi.
server.codebase. Server dijalankan dengan baris perintah ”java”.
Contoh berikut memperlihatkan baris perintah untuk menjalankan
server:
Java -Djava.rmi.server.codebase =http:// hostname/
-Djava.security.policy=D:\directory_file _policy\policy
directory_file_kelas_implementasi.KelasImplementasi
Begitu registry dan server telah dijalankan, aplikasi bisa dijalankan
pada sisi client.
28
2.5. Penyimpanan Data
2.5.1. RAID (Redundant Array of Independent Disk)
RAID singkatan dari “Redundant Array of Independent Disk”. Konsep
RAID diciptakan untuk mendapatkan kapasitas yang lebih besar dan/atau
Fault tolerance yang disebabkan oleh kerusakan Harddisk. Fault Tolerance
adalah kemampuan dari suatu system untuk dapat tetap berfungsi meskipun
mengalami kegagalan. RAID didesain untuk meningkatkan keandalan data
dan/atau meningkatkan kinerja I/O dari harddisk. Berdasarkan (Stallings,
1996) RAID dibagi ke dalam 6 level.
1. RAID 0 (Striping)
RAID 0 adalah RAID yang tidak memiliki redudansi data, yaitu
data yang disimpan akan disebar ke semua disk, untuk menyimpan file ke
harddisk penyimpananya dengan menggunakan round roubin striping,
namun bila ada data yang rusak maka tidak memiliki backup
2. RAID 1 (Mirroring)
RAID 1 bekerja dengan prinsip cermin, yaitu berpasang-pasangan
dan identik antara satu dengan yang lainnya. Jadi dengan RAID 1, data
yang ditulis ke satu Harddisk secara simultan ditulis juga ke Harddisk
yang lainnya. Sehingga jika terjadi kerusakan 1 Harddisk pada RAID 1,
system server masih memiliki data cadangan di harddisk yang lainnya
3. RAID 2
RAID 2 juga menggunakan sistem stripping. Namun ditambahkan
tiga harddisk lagi untuk pariti hamming, sehingga data menjadi lebih
reliable. Karena itu, jumlah harddisk yang dibutuhkan adalah minimal 5
(n+3, n > 1). Ketiga harddisk terakhir digunakan untuk menyimpan
hamming code dari hasil perhitungan tiap bit-bit yang ada di harddisk
lainnya.
29
4. RAID 3
RAID 3 juga menggunakan sistem stripping. Juga menggunakan
harddisk tambahan untuk reliability, namun hanya ditambahkan sebuah
harddisk lagi untuk parity. Karena itu, jumlah harddisk yang dibutuhkan
adalah minimal 3 (n+1 ; n > 1). Harddisk terakhir digunakan untuk
menyimpan parity dari hasil perhitungan tiap bit-bit yang ada di harddisk
lainnya.
5. RAID 4
RAID 4 Sama dengan sistem RAID 3, namun menggunakan parity
dari tiap block harddisk, bukan menggunakan bit. Kebutuhan harddisk
minimalnya 3 (n+1 ; n >1)
6. RAID 5
RAID 5 pada dasarnya sama dengan RAID 4, namun dengan pariti
yang terdistribusi. Yakni, tidak menggunakan harddisk khusus untuk
menyimpan paritinya, namun paritinya tersebut disebar ke seluruh
harddisk. Kebutuhan harddisk minimalnya adalah 3, (n+1 ; n >1).
7. RAID 6
Secara umum adalah peningkatan dari RAID 5, yakni dengan
penambahan parity menjadi 2 (p+q). Sehingga jumlah harddisk
minimalnya adalah 4 (n+2 ; n > 1). Dengan adanya penambahan pariti
sekunder ini, maka kerusakan dua buah harddisk pada saat yang
bersamaan masih dapat ditoleransi.
2.6. Message Digest 5 (MD 5)
Merupakan sebuah metode keamanan yang didesain oleh Ronald
Rivest (salah satu penemu dari Algoritma RSA) pada tahun 1991. Dalam
kriptografi, MD5 (Message-Digest algortihm 5) ialah fungsi hash
kriptografik yang digunakan secara luas dengan hash value 128-bit. Pada
standart Internet (RFC 1321), MD5 telah dimanfaatkan secara bermacam-
30
macam pada aplikasi keamanan, dan MD5 juga umum digunakan untuk
melakukan pengujian integritas sebuah file.
MD5 merupakan salah satu fungsi dari kriptografi yang dapat
membangkitkan kode unik dari suatu file dan dapat mendeteksi
perubahan isi dari suatu file walaupun perubahan tersebut sangat
kecil. Perubahan dapat terdiri dari penambahan, pengurangan atau
penggantian isi dari suatu file.
MD5 merupakan hash satu arah sehingga kode yang dihasilkan
dari suatu data sangat sulit untuk dikembalikan ke kode sumbernya.
MD5 akan mengubah masukan dengan panjang variabel menjadi keluaran
dengan panjang tetap yaitu 128 bit. Algoritma MD5 dengan fungsi
hashnya sangat peka terhadap perubahan file, maka algoritma MD5 cocok
untuk aplikasi yang menjaga integritas suatu data
Namun yang patut diketahui, penggunaan MD5 bukan untuk
merahasiakan data atau pesan akan tetapi untuk menjaga otentifikasi data
sehingga data satu dengan data yang telah terkirim tidak akan diubah-ubah
untuk kepentingan yang lain.
2.7. Penelitian Sebelumnya
Pada penelitian sebelumnya, sudah ada pengembangan RMI untuk
beberapa penerapannya. Seperti pada teori perkuliahan client-server
dengan percobaan untuk membuat kalkulator dengan RMI sehingga
penghitungan dapat di lakukan di beberapa komputer lain, beberapa
contoh dari skripsi yakni Pengolahan citra untuk menyimpan data foto
rongten dari pasien yang dirawat (Budianto, 2006). dan sistem panduan
missile pertahanan udara dijadikan sebagai model studi perancangan
sistem tersebar (Bahtiar, 2004), selain itu juga digunakan dalam game
untuk memberitahukan posisi terhadap lawan.
31
Dari beberapa pemanfaatan yang sudah pernah ada maka dalam
penelitian dan pembuatan sistem yang saya lakukan ini juga
memanfaatkan RMI. Dalam sistem ini, RMI digunakan sebagai cara
berkomunikasi file server dan application server. Dalam berkomunikasi
RMI digunakan untuk komunikasi terutama dalam melakukan transfer file.
BAB III
ANALISIS DAN PERANCANGAN SISTEM
3.1. Arsitektur Sistem Penyimpanan Terdistribusi
Telah di jelaskan sebelumnya pada latar belakang bahwa sistem ini
memiliki fungsi untuk mengatur sistem penyimpanan data web server
sehingga dapat di lakukan penyimpanan secara terdistribusi pada beberapa
komputer lain. karena penyimpanan merupakan sebuah kebutuhan yang
penting pada saat ini, contohnya banyak website yang menyediakan tempat
penyimpanan gratis dan menyediakan layanan backup data sebagai
pengamanan terhadap data yang kita miliki. Contoh lain yang dapat kita ambil
adalah email, layanan email yang memiliki ruang penyimpanan untuk setiap
user, dan itu pasti semua data akan di disimpan oleh server. Data dari
windows live sebagai penyedia SkyDrive yakni penyimpanan Online, bahwa
setiap user berhak atas 25GB penyimpanan Online. maka dapat di bayangkan
seberapa banyak media penyimpanan yang harus dimiliki server SkyDrive
untuk menyimpan data yang dimiliki oleh semua user.
Secara umum sistem penyimpanan file terdiri dari 3 komponen utama,
meliputi :
1. Client
2. Aplication Server / Web Server
3. File Server
Sistem ini dirancang untuk memenuhi kebutuhan web server akan tempat
penyimpanan yang besar dan tak terbatas. Web server akan dihubungkan
dengan komputer lain yang akan digunakan sebagai media penyimpanan disini
disebut file server, file server tersebut tidak harus komputer yang memiliki
spesifikasi yang tinggi seperti server seharusnya, karena komputer tersebut
hanya akan di gunakan sebagai tempat penyimpanan saja. Sedangkan jumlah
komputer yang di hubungkan ke application server tidak terbatas. Sehingga
server tersebut akan memiliki tempat penyimpanan yang selalu bisa ditambah.
33
Dengan menggunakan sistem penyimpanan yang terdistribusi maka
meningkatkan keamanan data yang kita simpan, karena disimpan pada
beberapa komputer maka terhindar dari kerusakan data karena komputer yang
kita gunakan untuk menyimpan data rusak.
Berikut merupakan gambaran dari sistem penyimpanan file yang terdiri
dari 3 jenis komponen utama, yaitu :
Internet/
intranet
Internet/
intranet
File Server 1
Aplication Server/
Web Server
File Server 2
File Server N
Client
Admin
Gambar 10 Gambaran umum sistem penyimpanan file terdistribusi
Dari gambar diatas dapat di lihat desain dari sistem ini dimana client
mengakses aplication server(web server) yang memiliki tempat penyimpanan
pada komputer lain. Bila client mengungah data maka dikirim ke aplication
server dan diteruskan pembagianya ke file server, sedangkan saat melakukan
pengunduhan application server akan memberikan link yang akan
mengarahkan ke file server
34
3.1.1. Contoh arsitektur sistem
Berikut merupakan contoh desain implementasi jaringan yang
nantinya bisa diterapkan, pada gambar dibawah ini terlihat web server bisa
terhubung dengan beberapa file server dan memiliki jaringan intranet
tersendiri sehingga tidak bisa diakses dari luar, dengan implementasi pada
jaringan seperti ini maka keamanan jaringan lebih terjamin karena web
server dan file server tidak bisa diakses dari luar. Konfigurasi jaringan
seperti ini cocok digunakan untuk kebutuhan lokal saja seperti
penyimpanan untuk sebuah kantor atau sekolah yang membutuhkan
penyimpanan.
File Server 1File Server 4
File Server 2
File Server 3
Web Server Client
Gambar 11 Arsitektur dengan file server lokal
Pada gambar diatas merupakan rancangan jaringan untuk lokal area
dengan pemanfaatan file server hanya digunakan untuk sebuah web server
saja. Untuk implementasi selanjutnya file server dapat digunakan untuk
penyimpanan secara bersama-sama
35
Web Server Web Server
File Server 3
File Server 1File Server 5
File Server 2
File Server 4
Client
Client
Gambar 12 Arsitektur peneggunaan file server bersama-sama
Dapat dilihat pada gambar diatas merupakan arsitektur jaringan
dengan menggunakan jaringan lokal, dapat dilihat contoh desain sistem
penyimpanan yang terdiri dari 5 File Server dan diakses oleh 2 web server
yang masing-masing memiliki client sendiri, desain seperti ini bisa
digunakan untuk beberapa kantor yang menginginkan penyimpanan
bersama namun memiliki web server yang berbeda.
36
internet
internet
internet
internet
internet internet
File Server 2
File Server 1
Web Server
File Server 5
File Server 4
File Server 3
Web Server
Web Server
Client
Client Client Client
Gambar 13 Arsitektur file server dengan jaringan internet
Pada desain berikutnya seperti gambar diatas dapat dilihat desain
yang digunakan untuk skala jaringan yang lebih besar, misalnya untuk
penyimpanan online, desain seperti ini dimungkinkan jumlah file server
yang banyak, dalam penggunaan satu file server bisa digunakan untuk satu
web server maupun banyak web server. Dengan jaringan yang terhubung
dengan internet maka web server dan file server dapat diakses dari
manapun yang terhubung dengan internet, dalam arsitektur ini web server
dan file server dengan asumsi memiliki pengamanan sendiri, dan jaringan
internet adalah jaringan yang aman dan serta tidak memiliki kendala.
Arsitektur berikutnya dibedakan berdasarkan penyimpanan database
yang digunakan, untuk menyimpan database dapat menggunakan
komputer yang sama atau dibebankan pada satu komputer khusus.
37
Database ServerWeb Server
File Server 1 File Server 2
Web Server
File Server 1 File Server 2
Gambar 14 Arsitektur database terpisah dan tergabung
Untuk jenis pertama yaitu web server bertindak sebagai web server
sekaligus database server, rancangan ini untuk penyimpanan dengan skala
kecil, rancangan yang kedua yaitu web server hanya bertindak sebagai web
server, sedangkan untuk server basisdatanya menggunakan komputer
tersendiri, dengan menggunakan rancangan ini beban web server lebih
ringan karena tidak menangani database, rancangan ini dapat diterapkan
untuk desain sistem yang lebih besar.
3.2. Komunikasi Sistem
Pada sistem ini, komunikasi antar sistem menggunakan konsep client
server, yaitu aplication server merupakan client dari file server dan aplication
server juga berperan sebagai server karena memiliki client lain yaitu
pengguna sistem nantinya.
RMI pada sistem ini hanya digunakan pada sistem antara aplication server
dan file server, yang digunakan untuk melakukan komunikasi dan transfer
data, sedangkan pada client dan aplication server menggunakan protocol
HTTP, sehingga tidak memerlukan aplikasi khusus pada client.
38
3.2.1. Sistem File Server
File server ini merupakan bagian dari sistem client server yang
berperan sebagai server dari cliennya yaitu aplication server. File server
ini bertugas untuk melakukan penyimpanan data. Komputer yang di
fungsikan sebagai file server ini lebih cenderung untuk pasif, bila tidak ada
perintah dari aplication server maka komputer tersebut tidak akan
melakukan apa-apa. File server ini tidak harus memiliki kemampuan yang
tinggi karena yang dimanfaatkan dari komputer ini dalam besarnya
penyimpanan yang dimiliki.
3.2.2. Sistem Aplication server
Bagian ini merupakan layanan utama yang akan di kerjakan yaitu
sebuah web server. Aplication server ini memiliki tanggung jawab untuk
menyediakan pelayanan bagi client, terutama pelayanan terhadap data
yang akan di akses oleh client. aplication server ini memiliki sebuah
sistem yang bisa membagi tempat penyimpananya pada beberapa
komputer lain dan memastikan file yang disimpan pada file server sama
sebelum dan sesudah dikirim. Dengan menggunakan sistem penyimpanan
ini maka aplication server akan memiliki tempat penyimpanan yang tidak
terbatas, dengan semakin banyaknya komputer yang di gunakan untuk
media penyimpanan maka semakin besar tempat penyimpanan pada server
tersebut.
3.2.3. Sistem Client
Bagian ini merupakan front-end dari sistem penyimpanan server
dimana user dapat berinteraksi dengan sistem. Dengan menggunakan
sistem ini maka client berhubungan dengan application server saat
mengungah saja. Sedangkan pada saat mengunduh, client meminta link
download pada application server dan mengunduh pada file server secara
langsung.
39
3.3. Sistem yang Dikembangkan
3.3.1. Pembagian Penyimpanan File
Dalam melakukan penyimpanan aplication server harus
memikirkan persebaran data yang disimpan sehingga data tidak hanya
berkumpul pada satu file server saja, maka dari itu untuk menyimpan data
aplication server akan memiliki perhitungan berapa file server yang
dimiliki, dengan mengetahui jumlah komputer yang dimiliki maka web
serve akan menjadwalkan secara urut sehingga penyimpananya dapat
merata, berikut merupakan contoh gambaran penyimpanan dengan
memiliki 4 file server.
Master2 Master1
Slave 3Master 4
Web
Server
Slave 4Master 3
Slave 2 Slave 1
Gambar 15 Desain sistem penyimpanan dengan 4 server
Pada gambar diatas dapat dilihat untuk menyimpan sistem ini
memiliki prosedur penyimpanan yang diterapkan untuk mengirimkan file
dari web server ke file server. Dalam proses menyimpan file sistem ini
mengadopsi tehnik gabungan antara RAID 0 dan RAID 1. Striping (RAID
0) dalam sistem ini tidak memecah file dan disebar seperti pada striping
sesungguhnya namun file yang di upload oleh client akan di disimpan
40
pada file server secara bergantian sedangkan Mirroring (RAID 1) dalam
sistem ini juga bukan mirroring sesungguhnya namum proses menyimpan
file pada dua file server jadi data yang dikirim dipastikan disimpan pada 2
file server.
Proses yang terjadi saat beberapa file diterima di web server maka
sistem menjalankan prosedur striping yaitu mengatur file yang dikirim
oleh user ke semua file server yang ada, dengan metode ini file akan
tersebar ke semua file server, lalu tehnik kedua adalah mirroring, dengan
tehnik ini file yang dikirim oleh client tersebut akan di duplikasi dan
disimpan di 2 file server yaitu master dan slave server, tehnik ini
digunakan untuk meningkatkan keamanan data, sehingga jika terjadi
kerusakan pada master file server, system server masih memiliki data
cadangan di slave file server
3.3.2. Indexing File
Dalam menyimpan file perlu adanya prosedur yang digunakan agar
nantinya mempermudah saat melakukan pencarian file. Indexing ini
memiliki fungsi utama untuk mempercepat pencarian file yang dimiliki
application server tersebut. aplication server akan memiliki sebuah
database yang berguna untuk menyimpan keterangan yang dimiliki oleh
file (metadata), Indexing file ini akan menyimpan metadata file dalam
database dengan format tertentu agar mempermudah mencocokan
pencarian dengan kata kunci pencarian, tabel di bawah ini akan
menjelaskan metode yang di gunakan dalam menyimpan index file
tersebut.
Tabel 1 Indexing File
NO NamaFile Metadata LokasiSimpan
1 Laporan tahunan 2010 Laporan
tahunan
Server1
41
2 Jatuh cinta lagi Lagu
kesayangan
Server2
3 Laporan praktikum
pemrograman 1
Laporan
semester 2
Server2
… … …. …
Setelah data di simpan dalam database, maka saat mencari cukup
melihat index di application server saja.
3.3.3. Mengungah File
Dalam menyimpan file, aplication server akan memilih tempat
penyimpanan sesuai dengan urutan giliran file server, setelah menentukan
file server yang digunakan maka file akan dikirim ke aplication server.
Prosedur penyimpanan file pada sistem ini akan di gambarkan pada
gambar di bawah ini :
Internet/
Intranet
File ServerAplication
Server
Simpan File
Stream File
Kirim File
Stream File
File File
Gambar 16 Prosedur mengungah file
Pada gambar diatas dapat di lihat bahwa alur pengiriman /
penyimpanan file, yaitu dari file yang ada di aplication server akan di ubah
42
menjadi stream file, kemudian aplication server akan mentransmisikan
stream tersebut menggunakan fungsi kirim file, dimana fungsi ini
merupakan fungsi yang memanggil fungsi simpan file yang ada di file
server, setelah semua data berhasil di kirim maka file server akan
menyimpan sesuai nama dan tempat penyimpanannya, lalu untuk
memastikan file yang dikirim sama maka akan ada prosedur yang
mencocokan file sebelum dan sesudah dikirim.
3.3.4. Mendownload File
Dalam mengunduh file yang ada pada file server , aplication server
memiliki prosedur pengunduhan. Gambar di bawah ini akan menjelaskan
bagaimana bisa memperoleh link untuk mengunduh file.
Internet/
Intranet
File ServerAplication
Server
Download link
Membuat
download link ke
file server
Index file
File terpilih
File
Gambar 17 Prosedur mengunduh file
Pada gambar diatas dapat di lihat hubungan client dengan
application server adalah untuk mendapatkan alamat penyimpanan file,
sedangkan untuk proses downloadnya client langsung mengakses file
server
43
3.4. Use Case
3.3.1. Algoritma Upload dan Download
Berikut merupakan algoritma utama sistem penyimpanan yang berisi proses
menyimpan dan mengambil file pada file server.
Start
Cari file server
yang menyimpan
file tersebut
End
Membuat link
download
Pilih file yang di
download
bisa
bisa
akses master
dan slave?
tidak
Gambar 18 Algoritma Download
Gambar di samping merupakan
prosedur untuk mengunduh file yang
ada di file server.
Pada proses ini yaitu saat user
melakukan pengunduhan file, dengan
langkah sebagai berikut user memilih
file yang di download pada web
browser, lalu aplication server mencari
IP server yang menyimpan file tersebut,
karena sistem ini memiliki 2
penyimpanan yaitu master dan slavenya
untuk 1 file yang sama, maka link
download yang ditampimpilkan adalah
master dan bila master tidak bisa
diakses baru akan menampilkan link
download dari slave
44
Start
Kirim file yang di
upload
Pilih server
End
Cek
Server aktif?
tidak
Kirim file ke file
server
ya
Cek MD5
File sama?
ya
Cek
Kapasitas cukup?
ya
tidak
tidak
Buffer file di web
server
Hitung MD5 file
Gambar 19 Algoritma Upload
Berikut merupakan proses upload file,
yaitu saat user menyimpan file pada file
server.
Pada proses ini diawali saat user memilih
file yang akan di simpan melalui web
browser, lalu web server akan mem-
buffer file yang dikirim. Setelah file
sampai di web server akan menampilkan
pada user bahwa proses upload telah
selesai namun dalam proses penyimpanan
Lalu terjadi proses yang terjadi
adalah menjalankan thread untuk
menyelesasikan proses penyimpanan,
yaitu pilih server dan di cek apakah
server aktif dan kapasitasnya mencukupi
bila tidak maka memilih file server lain,
bila cukup maka file dikirim ke file server
tersebut dengan menghitung dahulu MD5
file yang dikirim, lalu setelah file sampai
di file server maka di lakukan cek MD5
untuk memastikan file yang dikirim utuh,
bila hasil md5 tidak sama maka file di
kirim ulang, bila sama maka file berhasil
di ungah.
45
3.3.2. Diagram Use Case
Dari spesifikasi rancangan sistem diatas maka menghasilkan usecase dari
sistem penyimpanan file terdistribusi.
<<include>>
client
view
search download
upload
delete
change password
<<extend>>
<<extend>>
<<extend>>
register
view report
delete account
monitoring server
change passwordclient
add server
admin
login client
System
<<include>>
<<include>>
<<include>>
<<include>>
<<include>>
<<include>>
<<include>>
<<include>>
login admin
<<extend>>
Change IP
Gambar 20 Use Case Sistem
Diagram use case diatas memberikan gambaran fitur yang dimiliki oleh
aplication server yang memiliki fungsi utama untuk memanagement file
server. Dalam use case tersebut memiliki 2 aktor utama, web admin memiliki
fungsi untuk menjalankan aplication server dan mengatur penggunaan file
server, sedangkan client hanya mengakses layanan web untuk yang di
46
sediakan oleh aplication server, apabila client membutuhkan file maka
aplication server akan mencarikan di file server setelah itu baru di berikan
pada client.
Tabel 2 Tabel use case
No Nama Usecase Deskripsi Use Case Aktor
1 Register Use case ini mengambarkan proses
dimana client mendaftar pada sistem.
Client
2 Login Client Use case ini digunakan untuk
memvalidasi user yang ingin masuk
kedalam sistem.
Client
3 View Use case ini digunakan untuk melihat
file yang dimiliki client tersebut pada
file server, dan untuk mencari file
yang pernah diungah oleh client.
Client
4 Search Use case ini digunakan untuk mencari
file berdasarkan kata kunci pencarian
Client
5 Upload Use case ini digunakan untuk
mengungah file pada file server .
Client
6 Download Use case ini digunakan untuk
mengunduh file dari file server .
Client
7 Delete Use case ini digunakan untuk
menghapus file pada indexFile dan file
server .
Client
8 Change
Password Use case ini digunakan untuk
mengubah password client.
Client
9 Login Admin Use case ini digunakan untuk
memvalidasi admin yang ingin masuk
kedalam sistem.
Admin
10 Add Server Use case ini digunakan untuk
menambah file server .
Admin
11 Change IP Use case ini digunakan untuk
menganti IP file server.
Admin
12 Monitoring
Server Use case ini digunakan untuk melihat
daftar file server dan melakukan cek
status file server .
Admin
13 Delete Account Use case ini digunakan untuk
menghapus client beserta file yang
dimiliki client tersebut
Admin
14 Change
Password Client Use case ini digunakan untuk
mengubah password yang dimiliki
client.
Admin
15 View Report Use case ini digunakan untuk melihat Admin
47
dan menghapus laporan error saat
terjadi kegagalan upload.
3.3.3. Narasi Use case
Setiap use case yang di gambarkan akan dirinci dalam sebuah
narasi yang merupakan deskripsi tekstual dari kejadian bisnis dan
bagaimana pengguna berinteraksi dengan sistem untuk menyelesaikan
tugas tersebut. Untuk lebih jelas tahap ini dapat di lihat pada lampiran 1
3.3.4. Activity Diagram
Activity Diagram merupakan diagram yang menjelaskan aktivitas
user dengan program. Untuk lebih jelas tahap ini dapat di lihat pada
lampiran 2
3.4. Model Analisis
Model analisis adalah salah satu proses untuk menerjemahkan
skenario use case menjadi kelas analisis. Dalam kelas analisis
terdapat tiga jenis, yakni interface, controller dan entity. Dalam class
analisis juga berisi diagram sequence.
3.4.1. Relasi Use Case
Pada tahap ini, analisis kelas dilakukan pada semua use case.
Setiap use case dicari kelas analisis sehingga kebutuhan kelas
dapat ditentukan. Untuk lebih jelas tahap ini dapat di lihat pada
lampiran 3.
3.4.2. Diagram Kelas Analisis Keseluruhan
Setelah melalui proses relasi use case, kemudian akan dibuat
suatu diagram kolaborasi dari seluruh use case. Karena use case yang
banyak maka diagram kelas analisis ditampilkan berdasarkan penguna
48
agar mudah di mengerti. Untuk lebih jelas tahap ini dapat di lihat
pada lampiran 4.
3.5. Model Desain
Tahap berikutnya dalam pengembangan perangkat lunak ini
adalah dengan membuat model desain. Pemodelan desain ini bertujuan
untuk menghasilkan suatu model atau representasi dari entitas yang
kemudian akan dibangun.
3.5.1. Atribut dan Method
Bagian ini akan menjelaskan lebih detail mengenai atribut dan
method dari kelas desain. Detail tentang atribut dan method kelas desain
dapat dilihat pada lampiran 5.
3.5.2. Rancangan Interface
Bagian ini akan menjelaskan tentang user interface yang akan
diimplementasikan pada program. Rancangan user interface, dapat
dilihat pada lampiran 5.
3.5.3. Entity Relational Diagram
Berikut merupakan rancangan basisdata, yang akan digunakan
sebagai penyimpanan, dalam sistem penyimpanan data terdistribusi ini
memiliki 5 entitas yang terdiri dari index server, index file, data user,
admin dan report
49
dateerror username nama_client
username
updateslave
tanggal_uploadid_user
id_server
size_file
md5
nama_filemaster id_server metadata_file
id_index
password
id_client
indexServer IndexFile
dataUser
*,1
0,1
1,*1,0
id_server id_index
id_index
punya
id_client
punya
id
report
password
admin
Gambar 21 ER Diagram
Dalam entitas diatas index server merupakan table untuk
menyimpan data-data server, table index file digunakan untuk menyimpan
data-data file, table data user digunakan untuk menyimpan data username
dan password user, table admin digunakan untuk menyimpan data
username dan password milik admin, sedangkan table report digunakan
untuk menyimpan report error saat terjadi kegagalan proses pada sistem.
Berikut merupakan physical design, sebagai implementasi dari sesain data
base.
50
Gambar 22. Physical design
3.6. Metode Evaluasi
3.6.1. Pengujian Method
Pada langkah ini dalam melakukan pengujian apakah fungsi yang dibuat
dapat berjalan dengan baik, dengan cara melakukan test setiap fungsi yang ada
apakah dapat berjalan baik. Untuk lebih lengkapnya dapat di lihat pada lampiran
6.
3.6.2. Pengujian Use Case
Pada langkah ini melakukan pengujian apakah setiap case dapat berjalan
dengan lancar, dengan cara ini dapat diketahui apakan sistem berjalan sesuai
dengan rancanganya. Dengan melakukan tes ini di harapkan fungsi sistem yang
di kerjakan dapat berjalan dengan baik. Untuk lebih jelas maka untuk desain
pengujian use case ada dilihat pada lampiran 6.
3.6.3. Beta Testing
Pada langkah ini melakukan pengujian semua fungsi dapat berjalan dengan
lancar, namun pada test beta ini pengguna sistem adalah pengguna sesunguhnya
dan jumlahnya tester pada skala tertertu misalnya hanya skala Lab. Untuk lebih
jelas maka untuk desain beta test ada dilihat pada lampiran 6.
BAB IV
IMPLEMENTASI DAN ANALISIS HASIL
Bab ini berisi tentang implementasi sistem yang dibuat
berdasarkan analisa dan perancangan yang telah dibuat pada tahap
sebelumnya. Bab ini juga berisi pengujian dan analisa sistem.
4.1. Implementasi
4.1.1. Implementasi File
Berikut merupakan implementasi file dari desain sistem yang telah di
kerjakan, dari desain sistem yang dibuat tidak semua rancangan
diimplementasikan sama persis dengan desain, ada beberapa pengabungan
pada saat implementasi, berikut merupakan daftar implementasi filenya.
Tabel 3 Implementasi file
Use case Kelas Desain Implementasi File Jenis
Register Register Frame Home.jsp Interface
Register Controler Controller.java Controller
Data User dataUser.java Entity
Login
Client
Login Client
Frame
Home.jsp Interface
Login Client
Controler
Controller.java Controller
Data User dataUser.java Entity
View View Frame View.jsp Interface
Index File indexFile.java Entity
Search Search Frame Search.jsp Interface
Search Frame
Controler
Controller.java Controler
Index File indexFile.java Entity
Upload Upload Frame View.jsp Interface
Upload Buffer
Controler
uploadProses.jsp Controller
Upload Controler uploadControler.java Controller
Index File indexFile.java Entity
File Server fileserver.java Entity
Index Server indexServer.java Entity
Report report.java Entity
52
Download Download Frame View.jsp, Search.jsp Interface
File Server fileserver.java Entity
Report report.java Entity
Delete Delete Frame View.jsp Interface
Delete
Controler
Controller.java Controler
Index File indexFile.java Entity
File Server fileserver.java Entity
Change
Password
Change Password
Frame
changePassword.jsp Interface
Change Password
Controler
Controller.java Controler
Data User dataUser.java Entity
Login
Admin
Login Admin
Frame
adminIndex.jsp Interface
Login Admin
Controler
Controller.java Controller
Admin admin.java Entity
Add Server Add Server Frame adminTambahServer.jsp Interface
Add Server
Frame Controler
Controller.java Controler
Add Server
Controler
addServerControler.java Controller
Index File indexFile.java Entity
File Server fileserver.java Entity
Change IP Change IP Frame
Change
Monitoring
Server
Monitoring Server
Frame
adminMonitoringServer.jsp Interface
Index File indexFile.java Entity
File Server fileserver.java Entity
Delete
Account
Account Frame manageAccount.jsp Interface
Delete Account
Frame Controler
Controller.java Controler
Delete Account
Controler
deleteUserControler Controller
Data User dataUser.java Entity
Index File indexFile.java Entity
File Server fileserver.java Entity
Change
Password
Client
Account Frame manageAccount.jsp Interface
Change Password
Client Controler
Controller.java Controler
Data User dataUser.java Entity
View Report
ReportFrame adminViewReport.jsp Interface
Report Controler Controller.java Controler
Report report.java Entity
53
Dari tabel diatas dapat dilihat bahwa ada beberapa file yang dalam
implementasinya bergabung menjadi satu file yang sama yaitu: Register
Controler, Login Client Controler, Login Admin Controler, Search Frame
Controler, Delete Controler, Change Password Controler, Add Server
Frame Controler, Delete Account Frame Controler, Change Password
Client Controler dan Report Controler kelas-kelas diatas merupakan kelas
controler dan digabungkan menjadi satu kelas yang bernama
controller.java, dalam java controller gabungan ini dinamakan servlet.
Untuk kelas frame juga ada beberapa frame yang implementasinya
digabungkan menjadi 1 kelas frame yaitu: Login Frame dan Register Frame
yang diimplementasikan menjadi 1 kelas yaitu Home.jsp. Berikutnya kelas
Delete Frame, Download Frame, Upload Frame, View Frame yang di
implementasikan pada kelas view.jsp. untuk kelas download frame di
implementasikan pada 2 kelas yaitu View.jsp dan Search.jsp. Untuk kelas Delete
Account dan Change Password Client diimplementasikan pada 1 kelas yaitu
manageAccount.jsp
4.1.2. Implementasi Antar Muka
Setelah program selesai dibuat maka akan ditampilkan antarmuka dari
program tersebut. Gambar antar muka dari program yang telah dibuat dapat
dilihat di lampiran 7.
4.2. Instalasi
Untuk bisa menjalankan program maka ada prosedur instalasi, agar
program bisa dijalankan. Karena file server di desain agar bisa menggunakan
sistem operasi windows maupun linux maka instalasinya pun berbeda, untuk
lebih jelasnya langkah-langkahnya dapat dilihat pada lampiran 9.
4.3. Pengujian
Setelah program dibuat maka dibutuhkan tahap pengujian sesuai
dengan desain pengujian pada lampiran 6, setiap fungsi yang sudah dibuat di
uji untuk memastikan fungsi tersebut bisa berjalan lancar begitu pula use case
54
yang menggunakan fungsi-fungsi tersebut, untuk lebih jelasnya dapat dilihat
pada lampiran 8.
4.4. Analisa Hasil
Setelah melakukan analisis kebutuhan dan membuat desain untuk
menyelesaikan permasalahan penyimpanan data terdistribusi pada web server,
maka penulis sudah mengimplementasikannya lalu melakukan test atau
pengujian. Berikut analisa dari pengembangan sistem :
1. Dalam sistem ini pengaksesan file memiliki batasan hanya client yang
terdaftar yang bisa mengungah dan mengunduh file, client yang tidak
terdaftar masih bisa melakukan pencarian namun tidak bisa
mengunduh file, sebab sistem ini didesain agar user yang bisa
mengunduh hanyalah user yang sudah mendaftar.
2. Dalam melakukan pencarian file sistem dibatasi hasil pencarianya,
yaitu 100 file saja yang ditampilkan, hal ini agar sistem tidak terlalu
berat saat melakukan pencarian di database, apabila ditampilkan
semua hasil maka kurang optimal karena datanya terlalu banyak.
3. Penggunaan file server secara bergantian menyebabkan beban traffic
jaringan tidak terlalu berat karena pengaksesannya tersebar merata di
semua file server. Hal ini juga menyebabkan penyimpananya juga
tersebar sehingga beban penyimpanan tidak menumpuk pada 1 file
server saja.
4. Untuk mengungah file sistem ini memiliki standar prosedur
pengiriman yang baik. Pada saat mengungah client hanya
mengirimkan file ke web server, saat file yang dikirim sudah sampai di
web server maka sistem akan menjalankan thread yang berfungsi
untuk mengirimkan file ke kedua file server yang dipilih. Sehingga
pengiriman bisa lebih cepat karena dilakukan secara bersamaan,
namun tetap lebih lama bila dibandingkan dengan sistem terpusat
karena harus menulis 2x yaitu di web server dan di file server.
55
5. Dalam melakukan pengiriman java memiliki cara yakni dengan
menggunakan stream file dan buffer file, bila menggunakan stream
maka buka dan tutup stream harus dilakukan pada komputer yang
sama sehingga tidak bisa digunakan pada sistem ini. Maka pada RMI
menggunakan fungsi buffer untuk mengirim file namun buffer
memiliki kendala yakni permasalahan besar file yang dikirim, apabila
menggunakan fungsi buffer maka besar file yang dikirim tergantung
pada memori komputer yang digunakan untuk mengirim file. Oleh
karena itu pada sistem ini untuk mengirim file dari web server ke file
server menggunakan library RMI IO, dengan menggunakan library ini
file dapat dikirim ke komputer lain dengan menggunakan stream.
6. Jaminan data yang dikirim dari web server ke file server dengan
menggunakan validasi MD5, cara ini sangat populer di internet
khususnya apabila file yang di unduh berukuran besar. Dalam
menyimpan file sistem ini terlebih dahulu menghitung MD5 file
tersebut dan dilakukan cek lagi setelah file selesai dikirim, bila
ternyata file hasil pengiriman berbeda maka akan mengirim ulang
sampai nilai MD5 nya sama. Hal ini untuk memastikan authenticity
file sebelum dan sesudah dikirim sama. Hasil MD5 juga ditampilkan di
sisi client agar client juga bisa melakukan check saat sudah selesai
mengunduh file.
7. Dalam proses menyimpan, file akan disimpan pada 2 file server.
sehingga setiap file memiliki backup datanya masing-masing One
master, one slave. Hal ini untuk menjaga agar saat file server tidak bisa
diakses maka ada komputer lain yang masih bisa diakses. Konsep
master slave ini diterapkan pada saat mengunduh file, saat mengunduh
maka akan mengakses file server master terlebih dahulu, apabila
master tidak bisa diakses maka akan mengunduh dari file server slave.
8. Sistem ini memiliki fitur untuk menambah file server fitur ini membuat
sistem penyimpanan ini menjadi tidak terbatas, sebab penyimpanannya
dapat ditambah dengan mudah.
56
9. Sistem ini memiliki fungsi untuk melihat report, yaitu untuk
mengetahui keadaan sistem apakah file server dapat berjalan dengan
lancar, hal ini membantu dalam memudahkan perawatan sistem
sehingga setiap kerusakan dapat di ketahui langsung oleh admin.
10. Pada proses upload bila koneksi dari web server ke file server terputus
terjadi proses menunggu terus dari client, hal ini menyebabkan server
mencoba melakukan koneksi terus menerus untuk mengirim file
sehingga proses menunggu yang terlalu lama, sehingga solusinya pada
proses loop selain melakukan cek pengiriman juga melakukan cek
koneksi juga agar bila saat mengirim terjadi putus koneksi dapat
langsung di menggagalkan proses pengiriman.
11. Dibandingkan dengan sistem lain seperti file sharing sistem ini lebih
mudah dirawat, terutama dalam penambahan kapasitas penyimpanan
sistem, cukup dengan menambah file server maka kapasitas
penyimpanan server bertambah.
12. Sistem ini dalam menyimpan file mengikuti sistem operasi yang
digunakan, batasan ukuran dan jumlah file yang bisa disimpan pada
suatu folder tergantung pada tipe partisi yang digunakan oleh sistem
operasi yang digunakan sebagai file server.
13. Sistem ini di desain untuk bisa berjalan pada jaringan intranet maupun
internet namun pada tahap testing sistem ini hanya dilakukan uji coba
pada jaringan dengan segmen/network yang berbeda dengan
menggunakan 1 buah router. Sehingga disimpulkan kalau sistem ini
bisa berjalan pada jaringan internet .
Berikut ini adalah analisa berdasarkan karakteristik sistem
terdistribusi (Tanenbaum, 1995)
1. Transparency
Sistem penyimpanan terdistribusi ini mendukung aspek
transparansi, yakni dari sisi user hanya mengetahui kalau file yang
diungah akan disebar ke berbagai file server namun user tidak tahu ke file
57
server mana file nya akan disimpan. User tidak mengetahui dimana alamat
file server yang akan dituju, saat terjadi penambahan file server user tidak
mengetahuinya, user mengetahui alamat file server pada saat mengunduh
karena langsung mengakses file server.
2. Flexibility
Sistem penyimpanan terdistribusi ini biasa berjalan dalam
keberagaman, untuk file server dapat menggunakan hardware mainframes,
workstations, PC, Server dll dan dapat berjalan di operating sistem
berbasis windows dan linux
3. Reliability
Sistem penyimpanan terdistribusi ini mendukung reliability yaitu
kalau mesin mati (down), penyimpanan tetap bisa berjalan meskipun
dengan jumlah layananan yang tersisa. Dengan memiliki master dan slave
file server maka apabila master file server mengalami kerusakan masih
ada slave file server yang menjadi backupnya. Namun sistem ini belum
memiliki backup bila web server down.
4. Performance
Dalam hal performance sistem ini dapat menangani request secara
bersama sama untuk melakukan akses terhadap web server maupun file
server secara bersama-sama namun testing masih dalam skala Lab.
5. Scalability
Sistem penyimpanan ini tetap berjalan lancar meskipun terjadi
penambahan file server tidak berpengaruh bagi user, apabila file server
mengalami down dan tidak bisa diakses masih memiliki slave server yang
bisa diakses, namun percobaan bahwa sistem ini dapat berjalan dengan
lancar hanya pada jaringan sederhana karena pengembangannya baru
dalam skala Lab.
58
Berikut merupakan analisa hasil dari test beta yang dilakukan pada
pengguna langsung.
1. Beberapa user menyarankan adanya help, bila ada client yang
bingung maka langsung bisa membuka help. Sehingga untuk setiap
halaman ditambahkan link untuk mengakses menu help.
2. Beberapa menu masih kurang terlihat jelas dan beberapa belum
memiliki tooltip, maka untuk perbaikan ini di sisi tampilan mengganti
style button dan menambahkan tooltip.
3. Pada saat percobaan untuk upload dilakukan bersama-sama ada
client yang merasakan lambat dan ada yang merasakan cepat, namun
lebih banyak yang merasa lambat, berdasarkan analisa prosesor yang
digunakan oleh server selalu mendekati 100%, ditemukan bug,
kesalahannya adalah saat mengirim, di kelas uploadControler sistem
melakukan check apakan thead pengiriman sudah berhasil apa belum
dan memakan resource processor. maka menurunkan class (extend)
Thread pada kelas upload controller dan menambahkan sleep pada
saat prosos upload, agar proses lain dapat melakukan upload juga
dengan lancar. Sleep pengiriman juga memperhitungkan besar file
agar mendapatkan waktu pengiriman yang optimal.
4. Sistem ini memiliki fungsi untuk mengubah IP file server, dengan
fitur ini apabila ingin memindahkan file server tinggal mengganti IP
nya di database dan memindahkan datanya. Fitur ini memang
diperlukan apabila ada masalah dengan IP file server yang digunakan
sehingga memudahkan dalam maintains.
BAB V
KESIMPULAN DAN SARAN
5.1. Kesimpulan
Setelah sistem ini selesai dibuat maka diperoleh beberapa kesimpulan
sebagai berikut.
1. Sistem ini dapat menjawab kebutuhan akan penyimpanan terdistribusi
pada web server yang membutuhkan penyimpanan yang besar dan
tidak terbatas besar penyimpananya.
2. Dengan menggunakan sistem ini maka web server akan memiliki
penyimpanan yang tidak terbatas dan besarnya selalu bisa ditambahkan
setiap saat, dengan memanfaatkan fasilitas case add server.
3. Penerapan RMI sebagai metode transfer file antar komputer dapat
diimplementasikan dengan baik pada aplikasi penyimpanan web
server, dengan memanfaatkan case upload dan file yang diungah akan
disebar di beberapa file server
4. Dengan menggunakan sistem ini maka file memiliki backup data,
karena setiap file disimpan oleh 2 file server agar bisa menjadi backup
bila salah satu server tidak bisa diakses, karena penyimpanannya
menggunakan konsep master slave.
5. Transparansi sistem disisi user tidak mengetahui bahwa file yang
diunggah akan disimpan di file server yang mana.
6. Flexibility akan berbagai hardware (komputer) yang digunakan
sebagai file server dan mendukung operating sistem windows dan
linux.
7. Reliability bila file server down masih memiliki backup sebagai slave
server
8. Performance storage (penyimpanan) yang lebih baik karena disimpan
diatur oleh masing-masing file server.
60
9. Skalabilitas sistem ini hanya pada level jaringan yang sederhana
dengan percobaan masih dalam skala Lab.
5.2. Saran
Dari sistem ini masih diperlukan beberapa saran guna meningkatkan
kemampuan server
1. Pembatasan akses terhadap file yang disimpan, dengan adanya
pengaturan akses agar file yang disimpan tidak semuanya bisa dilihat
oleh orang lain
2. Penambahan fitur sinkronisasi antara master dan slave server, agar bila
terjadi kerusakan file di salah satu server bisa langsung diperbaiki
secara otomatis.
DAFTAR PUSTAKA
Bahtiar, Arief. 2004. Perancangan dan Implementasi Sistem Tersebar Panduan Missile
Dengan Java RMI. [Tesis] Bandung, Jawa Barat, Indonesia : Institut Teknologi Bandung,
2004.
bill, ball dan hoyt, duff. 2003. Red Hat Linux 8. United Statws of America : Sams
Publishing, 2003. 0-672-32458-X.
Budianto, Aris. 2006. Perancangan Aplikasi Client-Server Untuk Mengolah Citra
Menggunakan Java RMI. [Tugas Akhir] Jogjakarta : Electrical Engineering Department
Faculty of Engineering, Gadjah Mada University, 2006.
Client/Server dengan Java Remote Method Invocation (Java RMI). Rohmah. September
2003. 2, Surakarta : Universitas Muhammadiyah Surakarta, September 2003, JURNAL
TEKNIK ELEKTRO DAN KOMPUTER EMITOR, Vol. III, hal. Vol. 3, No. 2. ISSN 1411-8890.
download.oracle.com. 1995, 2011. An Overview of RMI Applications. Oracle. [Online]
Oracle Corporation, 1995, 2011. [Dikutip: 2 Desember 2010.]
http://download.oracle.com/javase/tutorial/rmi/index.html.
Hall, CarL. 1994. Technical Foundations Of Client/Server Systems. New York : John Wiley
& Sons, 1994.
Howes, T.A, Smith, M.C, Good, G.S. 1999. Understanding and Deploying LDAP Directory
Service. U.S.A : Mac Milan, 1999.
J, Frank dan Derfler, Jr. 1997. Panduan Mengabungkan LAN. Jakarta : PT. Gramedia,
1997. ISBN 1-56276-031-9.
java.sun.com. 2000. jGuru: Remote Method Invocation (RMI). Oracle. [Online] Oracle
Corporation, 2000. [Dikutip: 1 Januari 2010.]
http://java.sun.com/developer/onlineTraining/rmi/RMI.html.
Jia, Weijia, and Zhou, Wanlei. 2005. Distributed Network System From Concepts to
Implementaions. s.l. : Springer Science and Bussines Media, Inc, 2005.
Konsep Jaringan Dengan Memanfaatkan Middleware ORB (Object Request Broken).
Somantri, Maman. 2005. 2005, Transmisi, hal. Volume 10 No.1, 41-45.
Lazuardi, Novri. 2008. Perencanaan Jaringan Komputer VOIP (Voice Over Internet
Portokol) Menggunakan Asteriks SIP (Session Initiation Portokol). Sulawesi : USU
Repository, 2008.
62
Leondes, Cornelius. 2002. Database and Data Communication Network Systems, Three-
Volume Set: Techniques and Applications. University of California, Los Angeles, U.S.A. :
Academic Press, 2002. ISBN 10: 0-12-443895-4.
Microsoft. 2011. File Systems. microsoft | technet. [Online] 2011. [Dikutip: 18 Juli 2011.]
http://technet.microsoft.com/en-us/library/cc938437.aspx.
Mulholland, Andrew and Hakala. 2004. Programing Multiplayer Games. s.l. : Wordware
Publishing, inc., 2004.
Nugroho, Adi. 2010. Rekayasa Perangkat Lunak Berorientasi Obyek dengan Metode
UDSP. Yogyakarta : ANDI, 2010. ISBN : 978-979-29-1503-7.
Oetomo, Budi Sutedjo Dharma. 2006. Konsep dan aplikasi pemrograman client server
dan sistem terdistribusi. Pengujian Client Server : Andi, 2006. ISBN/ISSN 979-763-146-x.
Roger S, Pressman. 2010. Software Engineering : A Practitioner’s Approach – 7th Ed.
New York : MacGraw Hill Companies Inc, 2010.
Roger S, Pressman, Ph.D. 2002. Rekayasa Perangkat Lunak pendekatan praktis (Buku
Satu). Yogyakarta : ANDI, 2002. ISBN 979-553-808-0.
Simarmata, Janner. 2010. Rekayasa Perangkat Lunak. Yogyakarta : ANDI, 2010. ISBN:
978-979-29-137-7.
Stallings, William. 1996. Computer Organization and Architecture - 4th Ed. s.l. : Prentice-
Hall International, Inc., 1996. ISBN 0-13-394255-4.
Syafriza, Melwin. 2005. Pengantar Jaringan Komputer. Yogyakarta : Andi Offset, 2005.
Tanenbaum. 1995. Distributed Operating System. New Jersey : Prentice-Hall
International, Inc., 1995. ISBN 0-13-143934-0.
UMNIATI, NAELI. 2005. Pengantar Sistem Terdistribusi. Staff Site Gunadarma University.
[Online] 2005. [Dikutip: 4 Januari 2011.]
http://naeli.staff.gunadarma.ac.id/Downloads/files/8465/Komunikasi_revisi.pdf.
UZUMAKI, RYUKA. 2010. Perbedaan Peer to Peer dengan Client server. Malang , Jawa
TImur, Indonesia : s.n., 06 November 2010.
Wagito. 2005. Jaringan Komputer Teori dan Implementasi Berbasis Linux. Yogyakarta :
Gava Media, 2005.
LAMPIRAN 1
PLANNING
Berikut merupakan rencana pengerjaan (planning) yang akan
digunakan untuk membuat sistem ini, dalam perencanaan sistem ini
memiliki checkpoint untuk melihat perkembangan tahap awal pada
pengembangan sistem yaitu dengan adanya seminar judul skripsi, pada
checkpoint menyelesaikan 3 tahap yaitu communication, planning serta
modeling , namun pada tahap ini modeling belum terselesaikan semuanya
tapi dasar model untuk sistem ini sudah ada:
Tabel 4. Rencana Pergerjaan (planning)
Phase
Bulan
I II III IV V VI
Communication
Planning
Modeling
Construction
Deployment
Tabel 5. Pelaksanaan Rencana
Phase
Bulan
I II III IV V VI
Iterasi Pertama
Communication
Planning
Modeling
Construction
Check poin
64
Deployment
Iterasi Kedua
Communication
Planning
Modeling
Construction
Deployment
Dalam pelaksanaannya planning diatas dapat berjalan dengan
lancar, karena adanya tambahan fungsi yang dibutuhkan untuk sistem
maka ada iterasi yang kedua yaitu dengan penambahan fungsi penggantian
IP file server, sehingga pada iterasi kedua ini mengulang tahap modeling,
construction dan deployment.
LAMPIRAN 2
NARASI USE CASE
NO Use case Narasi Use case
1 Register Lampiran 2.1
2 Login Client Lampiran 2.2
3 View Lampiran 2.3
4 Search Lampiran 2.4
5 Upload Lampiran 2.5
6 Download Lampiran 2.6
7 Delete Lampiran 2.7
8 Change Password Lampiran 2.2
9 Login Admin Lampiran 2.9
10 Add Server Lampiran 2.10
11 Change IP Lampiran 2.11
12 Monitoring Server Lampiran 2.12
13 Delete Account Lampiran 2.13
14 Change Password Client Lampiran 2.14
15 View Report Lampiran 2.15
2.1 Narasi Use case Register
Author : Antonius Hari W Date : 3 Maret 2011
Version : 1.0
Use-case Name: Register Jenis Use-Case
Use-case ID: Business Requirements:
Priority : High
Primary Business
Actor:
Client
Other
Participating
Actor:
-
Other Interested
Stakeholder:
-
Decription: Use case ini menggambarkan proses pendataan client baru.
Precondition: -
Trigger: Use case ini digunakan apabila client ingin mendaftar pada
sistem.
Typical Course of
event:
Actor Action System Response
Step 1: Client memilih
menu “REGISTER” pada
homepage.
Step 2: Sistem menampilkan
form inputan nama, e-mail dan
password.
66
2.2 Narasi Use case Login Client
Step 3: Client mengisi data
dan memilih tombol “
REGISTER”.
Step 4: Cek apakah user sudah
terdaftar
Step 5: Bila client belum terdaftar
maka sistem menyimpan data
client pada data user
Step 6: Menampilkan keterangan
berhasil mendaftar.
Alternate Course: Alt-Step 4: Jika user sudah ada di database maka menampilkan
keterangan bahwa user sudah terdaftar.
Conclusion: Proses ini adalah proses client mendaftar untuk bisa
menggunakan layanan server.
Postcondition: Client berhasil mendaftar
Business Rules: -
Assumptions: -
Author : Antonius Hari W Date : 3 Maret 2011
Version : 1.0
Use-case Name: Login Client Jenis Use-Case
Use-case ID: Business Requirements:
Priority : High
Primary Business
Actor:
Client
Other
Participating
Actor:
-
Other Interested
Stakeholder:
-
Decription: Use case ini menggambarkan proses saat client melakukan
validasi sebelum masuk ke sistem.
Precondition: client telah terdaftar.
Trigger: Use case ini digunakan apabila ada client yang ingin masuk ke
dalam sistem.
Typical Course of
event:
Actor Action System Response
Step 1: Client memilih
menu Login pada
homepage
Step 3: User memasukkan
username dan password,
lalu memilih tombol
“LOGIN”.
Step 2: Sistem meminta user
untuk memasukkan username dan
password.
67
2.3 Narasi Use case Login Admin
Step 4: Sistem mengecek validasi
user pata tabel data user.
Step 5: Sistem masuk kedalam
menu utama
Alternate Course: Alt-Step 4: Jika username dan password yang dimasukkan tidak
sesuai maka sistem akan memberikan keterangan gagal dan
secara otomatis kembali ke menu login.
Conclusion: Pada proses adalah proses untuk masuk ke sistem
Postcondition: Client berhasil login dan masuk ke menu utama.
Business Rules: Client harus memasukkan username dan password dengan
benar.
Assumptions: -
Author : Antonius Hari W Date : 3 Maret 2011
Version : 1.0
Use-case Name: Login Admin Jenis Use-Case
Use-case ID: Business Requirements:
Priority : High
Primary Business
Actor:
Admin
Other
Participating
Actor:
-
Other Interested
Stakeholder:
-
Decription: Use case ini menggambarkan proses saat admin melakukan
validasi sebelum masuk ke sistem.
Precondition: admin telah terdaftar.
Trigger: Use case ini digunakan apabila ada admin yang ingin masuk ke
dalam sistem.
Typical Course of
event:
Actor Action System Response
Step 1: Admin memilih
menu Login pada
homepage
Step 3: Admin
Memasukkan username dan
password, lalu memilih
tombol “LOGIN”.
Step 2: Sistem meminta admin
untuk memasukkan username dan
password.
Step 4: Sistem mengecek validasi
user pata tabel admin.
Step 5: Sistem masuk kedalam
menu utama
68
2.4 Narasi Use case View
Alternate Course: Alt-Step 4: Jika username dan password yang dimasukkan tidak
sesuai maka sistem akan memberikan keterangan gagal dan
secara otomatis kembali ke menu login.
Conclusion: Pada proses adalah proses untuk masuk ke sistem
Postcondition: Admin berhasil login dan masuk ke menu utama.
Business Rules: Admin harus memasukkan username dan password dengan
benar.
Assumptions: -
Author : Antonius Hari W Date : 3 Maret 2011
Version : 1.0
Use-case Name: View Jenis Use-Case
Use-case ID: Business Requirements:
Priority : High
Primary Business
Actor:
Client
Other
Participating
Actor:
-
Other Interested
Stakeholder:
-
Decription: Use case ini menggambarkan proses client melihat file yang
dimiliki.
Precondition: Client telah melakukan login
Trigger: Use case ini digunakan apabila client ingin melihat file yang
pernah di upload
Typical Course of
event:
Actor Action System Response
Step 1: Client memilih
menu lihat “VIEW” yang
ada pada homepage
Step 2: Sistem akan
menampilkan daftar file yang
berisi tombol delete dan
download file tersebut, serta
textfield pencarian dan tombol
find untuk melihat secara berdasar
kata kunci tertentu.
Step 3: Sistem menampilkan
dalam bentuk table.
Alternate Course: Alt-Step 2: Bila memilih tombol find maka akan menampilkan
berdasarkan textfiend pencarian.
Conclusion: Dalam proses ini melakukan proses lihat data dari database
Postcondition: client berhasil melihat file.
Business Rules: -
69
2.5 Narasi Use case Search
2.6 Narasi Use case Upload
Assumptions: -
Author : Antonius Hari W Date : 3 Maret 2011
Version : 1.0
Use-case Name: Search Jenis Use-Case
Use-case ID: Business Requirements:
Priority : High
Primary Business
Actor:
Client
Other
Participating
Actor:
-
Other Interested
Stakeholder:
-
Decription: Use case ini menggambarkan proses dimana client mencari file
yang dimiliki dengan fitur pencarian.
Precondition: Client telah Login.
Trigger: Use case ini digunakan apabila Client ingin mencari file.
Typical Course of
event:
Actor Action System Response
Step 1: Client memilih
menu “SEARCH FILE”
pada homapage
Step 3: Client
memasukkan inputan kata
kunci, lalu memilih tombol
“ SEARCH ”.
Step 6: setelah mendapat
daftar file hasil pencarian
client dapat melakukan
pengunduhan, seperti pada
case download.
Step 2: sistem menampilkan form
pencarian dan tombol “ SEARCH
”
Step 4: Sistem melakukan
perbandingan kata kunci pada
index file.
Step 5: sistem mengirimkan hasil
pencarian tersebut dalam bentuk
tabel.
Alternate Course:
Conclusion: Proses ini adalah proses mencari daftar file pada index file
Postcondition: Client berhasil menemukan file
Business Rules: -
Assumptions: -
Author : Antonius Hari W Date : 3 Maret 2011
70
Version : 1.0
Use-case Name: Upload Jenis Use-Case
Use-case ID: Business Requirements:
Priority : High
Primary Business
Actor:
Client
Other
Participating
Actor:
-
Other Interested
Stakeholder:
-
Decription: Use case ini menggambarkan proses file yang disimpan hingga
sampai di file server
Precondition: Client telah berhasil login.
Trigger: Use case ini digunakan apabila ada client yang ingin
menyimpan file.
Typical Course of
event:
Actor Action System Response
Step 1: Client memilih
menu “UPLOAD FILE”
pada home page
Step 3: Client memilih file
dan memasukkan metadata
file. Lalu memilih tombol
“UPLOAD”.
Step 2: Sistem menampilkan
form inputan file dan metadata.
Step 4: Sistem menerima file dan
disimpan pada temporary lalu
mencari file server yang paling
terakhir tidak digunakan.
Step 5: sistem membandingkan
ukuran file dan ukuran
penyimpanan server
Step 6: Sistem menghitung MD5
dan dikirim bersamaan dengan
pengiriman file ke file server
Step 7: File server melakukan
cek md5 file, untuk mengetahui
hasil file yang dikirim apakah
utuh.
Step 8: Sistem menyimpan
metadata file tersebut di index
file.
Step 9: Sistem akan menghapus
temporary file setelah berhasil di
71
2.7 Narasi Use case Download
kirim ke file server.
Step 9: Sistem memberikan
konfirmasi berhasil
Alternate Course: Alt-Step 5: Bila penyimpanan server tidak mencukupi,
melakukan cek server lain, dan mengirim report ke database
report.
Alt-Step 7: Bila hasil cek md5 file berbeda maka, melakukan
proses ungah file lagi.
Conclusion: Dalam proses ini client dapat menyimpan file
Postcondition: Client berhasil menyimpan file.
Business Rules: -
Assumptions: -
Author : Antonius Hari W Date : 3 Maret 2011
Version : 1.0
Use-case Name: Download Jenis Use-Case
Use-case ID: Business Requirements:
Priority : High
Primary Business
Actor:
Client
Other
Participating
Actor:
-
Other Interested
Stakeholder:
-
Decription: Use case ini menggambarkan proses dimana client yang ingin
mengunduh file yang ada di file server.
Precondition: Client sudah melakukan pencarian file atau lihat file
Trigger: Use case ini digunakan apabila client ingin mengunduh file.
Typical Course of
event:
Actor Action System Response
Step 1: client menjalankan
case view atau search.
Step 3: Client memilih file
yang ingin diunduh, lalu
memilih tombol
“DOWNLOAD”.
Step 2: Sistem akan
menampilkan daftar file beserta
download link pada client. yang
mengarah ke file server langsung
Step 3: Sistem akan melakukan
check apakah file server bisa
diakses. Dan menampilkan link
72
2.8 Narasi Use case Delete
download
Alternate Course: Alt-Step 3: jika file server tidak bisa diakses maka akan
mengirim report gagal melakukan download
Conclusion: Proses ini menggambarkan proses saat user mengunduh file
yang dicari
Postcondition: Client berhasil mengunduh file
Business Rules: -
Assumptions: -
Author : Antonius Hari W Date : 3 Maret 2011
Version : 1.0
Use-case Name: Delete Jenis Use-Case
Use-case ID: Business Requirements:
Priority : High
Primary Business
Actor:
Client
Other
Participating
Actor:
-
Other Interested
Stakeholder:
-
Decription: Use case ini menggambarkan proses dimana client menghapus
file yang dimilikinya.
Precondition: Client telah berhasil login.
Trigger: Use case ini digunakan bila client ingin menghapus file
Typical Course of
event:
Actor Action System Response
Step 1: Client memilih
menu “VIEW FILE” pada
homepage.
Step 3: Client memilih file
ingin dihapus.
Step 2: Sistem menampilkan
daftar file dan tombol “DELETE”
.
Step 4: Sistem mengirimkan
perintah hapus file tersebut pada
file server.
Step 5: File server menghapus
file.
Step 6: Bila penghapusan
berhasil maka index file akan di
hapus juga.
73
2.9 Narasi Use case Change Password
Step 7: Sistem menampilkan
pesan file berhasil dihapus
Alternate Course: Alt-Step 6: jika sistem gagal menghapus file maka memberikan
konfirmasi gagal menghapus.
Conclusion: Proses ini adalah proses client menghapus file yang dimiliki
Postcondition: Client berhasil menghapus file
Business Rules: -
Assumptions: -
Author : Antonius Hari W Date : 3 Maret 2011
Version : 1.0
Use-case Name: Change Password Jenis Use-Case
Use-case ID: Business Requirements:
Priority : High
Primary Business
Actor:
Client
Other
Participating
Actor:
-
Other Interested
Stakeholder:
-
Decription: Use case ini mengambarkan proses mengubah password
Precondition: -
Trigger: Use case ini menggambarkan proses dimana client ingin
mengubah password login.
Typical Course of
event:
Actor Action System Response
Step 1: Client memilih
menu “CHANGE
PASSWORD”
Step 3: Client mengisi /
mengubah data dari dan
memilih tombol
“CHANGE”.
Step 2: Sistem menampilkan
form inputan password baru, dan
tombol “CHANGE”.
Step 4: Sistem menyimpan
perubahan data pada data user.
Step 5: Sistem menampilkan
keterangan berhasil mengubah.
Alternate Course: Alt-Step 4: Jika proses menyimpan gagal maka mengirimkan
konfirmasi gagal mengubah password.
Conclusion: Proses ini adalah proses mengubah data user pada data base
Postcondition: Data client berhasil diubah
Business Rules: -
Assumptions: -
74
2.10 Narasi Use case Add Server
Author : Antonius Hari W Date : 3 Maret 2011
Version : 1.0
Use-case Name: Add Server Jenis Use-Case
Use-case ID: Business Requirements:
Priority : High
Primary Business
Actor:
Admin
Other
Participating
Actor:
-
Other Interested
Stakeholder:
-
Decription: Use case ini digunakan apabila admin ingin menambah file
server baru.
Precondition: Admin telah login.
Trigger: Use case ini digunakan bila admin ingin memperbesar tempat
penyimpanan
Typical Course of
event:
Actor Action System Response
Step 1: Admin memilih
menu “ADD SERVER”
pada homepage.
Step 3: Admin
memasukkan IP untuk
master dan slave. Lalu
memilih tombol ” ADD
SERVER”.
Step 2: Sistem menampilkan
form inputan alamat IP untuk
master dan slave.
Step 4: Sistem akan melihat
apakah server tersebut sudah
terdaftar
Step 5: Sistem akan melakukan
test koneksi untuk melihat apakah
server aktif.
Step 6: Sistem akan mencatat file
server pada index server jika tes
koneksi berhasil
Step 7: Sistem menampilkan
keterangan berhasil menambah
server.
75
2.11 Narasi Use case Change IP
Alternate Course: Alt-Step 5: Jika testing koneksi file server master maupun slave
baru gagal, maka menampilkan informasi server off-line dan
gagal menyimpan.
Conclusion: Proses ini adalah proses memperbesar tempat penyimpanan
dengan menambah file server.
Postcondition: File server berhasil ditambahkan.
Business Rules: Admin harus men-setting IP file server dan menginstal aplikasi
pada file server tersebut.
Assumptions: Admin sudah bisa men-setting IP.
Author : Antonius Hari W Date : 3 Maret 2011
Version : 1.0
Use-case Name: Change IP Jenis Use-Case
Use-case ID: Business Requirements:
Priority : High
Primary Business
Actor:
Admin
Other
Participating
Actor:
-
Other Interested
Stakeholder:
-
Decription: Use case ini digunakan apabila admin ingin menambah
mengganti IP server
Precondition: Admin telah memindah data ke alamat IP server yang baru
Trigger: Use case ini digunakan bila admin harus melakukan pengantian
IP
Typical Course of
event:
Actor Action System Response
Step 1: Admin memilih
menu “CHANGE SERVER”
pada homepage.
Step 3: Admin
memasukkan IP. Lalu
memilih tombol ” Change
SERVER”.
Step 2: Sistem menampilkan
form inputan alamat IP.
Step 4: Sistem akan melihat
apakah server tersebut sudah
terdaftar
Step 5: Sistem akan melakukan
test koneksi untuk melihat apakah
server aktif.
76
2.12 Narasi Use case Monitoring Server
Step 6: Sistem akan menganti IP
server pada indexserver
Step 7: Sistem menampilkan
keterangan berhasil menambah
server.
Alternate Course: Alt-Step 5: Jika testing koneksi file server gagal, maka
menampilkan informasi server off-line dan gagal mengubah.
Conclusion: Proses ini adalah proses menganti alamat IP file server.
Postcondition: File server berhasil diganti.
Business Rules: Admin harus men-setting IP file server dan menginstal aplikasi
pada file server tersebut., lalu membackup file pada file server
yang baru
Assumptions: Admin sudah bisa men-setting IP.
Author : Antonius Hari W Date : 3 Maret 2011
Version : 1.0
Use-case Name: Monitoring Server Jenis Use-Case
Use-case ID: Business Requirements:
Priority : High
Primary Business
Actor:
Admin
Other
Participating
Actor:
-
Other Interested
Stakeholder:
Usecase ini mengambarkan proses cek server aktif
Decription:
Precondition: Admin telah login dan memiliki file server
Trigger: Use case ini menggambarkan proses dimana admin melihat
apakah ada server yang off-line.
Typical Course of
event:
Actor Action System Response
Step 1: admin memilih
menu “MONITORING
SERVER”.
Step 3: Admin memilih
tombol “CHECK”
.
Step 2: Sistem menampilkan
table daftar file server dari index
server, dan tombol “CHECK”
Step 4: Sistem melakukan cek
server aktif pada semua file
server yang dimiliki.
Step 5: Sistem menampilkan
hasil tes dalam table daftar file
77
2.13 Narasi Use case Delete Account
server .
Alternate Course: Alt-Step 4: Saat melakukan cek server aktif bila server tidak
dapat di akses maka dan mengirim report error.
Conclusion: Proses ini merupakan proses check apakah file server aktif atau
tidak
Postcondition: -
Business Rules: -
Assumptions: -
Author : Antonius Hari W Date : 3 Maret 2011
Version : 1.0
Use-case Name: Delete Account Jenis Use-Case
Use-case ID: Business Requirements:
Priority : High
Primary Business
Actor:
Admin
Other
Participating
Actor:
-
Other Interested
Stakeholder:
Usecase ini menggambarkan proses penghapusan client
Decription:
Precondition: Admin telah login, dan berada di halaman lihat daftar user
Trigger: Use case ini menggambarkan proses dimana admin ingin
menghapus client tertentu.
Typical Course of
event:
Actor Action System Response
Step 1: admin memilih
menu “ DELETE CLIENT”.
Step 3: Admin memilih
client yang dicari lalu
memilih “ DELETE
CLIENT”.
.
Step 2: Sistem menampilkan
daftar client dengan tombol
“DELETE CLIENT”.
Step 4: Sistem mengirimkan
perintah pada seluruh file server
yang menyimpan id user tersebut.
Step 5: File server melakukan
penghapusan direktori milik client
tersebut.
Step 6: Bila berhasil maka index
file user dihapus.
78
2.14 Narasi Use case Change Password Client
Step 7: Sistem menghapus client
tersebut dari data user.
Step 8: Sistem memberikan
keterangan client berhasil
dihapus.
Alternate Course: Alt-Step 5: Jika penghapusan file gagal maka index file tidak di
hapus.
Alt-Step 7: Jika penghapusan file belum semuanya terhapus,
maka client belum di hapus dari daftar user dan menampilkan
keterangan gagal menghapus.
Conclusion: Proses ini merupakan proses menghapus file client dan
menghapus client dari daftar penguna.
Postcondition: Client berhasil dihapus
Business Rules: -
Assumptions: Admin tahu id atau nama atau email client yang akan dihapus.
Author : Antonius Hari W Date : 3 Maret 2011
Version : 1.0
Use-case Name: Change Password
Client Jenis Use-Case
Use-case ID: Business Requirements:
Priority : High
Primary Business
Actor:
Admin
Other
Participating
Actor:
-
Other Interested
Stakeholder:
-
Decription: Use case ini menggambarkan proses saat admin mengubah
password client
Precondition: Admin telah login, dan admin berada di halaman lihat daftar user
Trigger: Use case ini menggambarkan proses bila admin ingin mengubah
password client.
Typical Course of
event:
Actor Action System Response
Step 1: Admin memilih
client yang ingin direset
passwordnya pada halaman
daftaruser,
Step 2: lalu memasukkan
password baru dan
menekan tombol “UPDATE
PASSWORD”.
79
2.15 Narasi Use case View Report
Step 3: Sistem mengubah
password user pada database data
user.
Step4: Sistem menampilkan
keterangan bahwa berhasil
melakukan pengubahan password.
Alternate
Course:
Alt-Step 3: Jika proses pengubahan gagal maka mengirimkan
konfirmasi gagal mengubah password.
Conclusion: Proses ini adalah proses mengubah password user pada data base
Postcondition: Data client berhasil diubah
Business Rules: -
Assumptions: -
Author : Antonius Hari W Date : 3 Maret 2011
Version : 1.0
Use-case Name: View Report Jenis Use-Case
Use-case ID: Business Requirements:
Priority : High
Primary Business
Actor:
Admin
Other
Participating
Actor:
-
Other Interested
Stakeholder:
-
Decription: Use case ini menggambarkan proses client melihat report error
server
Precondition: Admin telah melakukan login
Trigger: Use case ini digunakan apabila admin ingin melihat error yang
terjadi saat sebuah proses dijalankan.
Typical Course of
event:
Actor Action System Response
Step 1: Client memilih
menu lihat “VIEW
REPORT” yang ada di
homepage
Step 4: admin dapat
melihat dan dapat
melakukan hapus report.
Step 2: Sistem akan
Menampilkan daftar file dari
database report dan tombol hapus
report.
Step 3: Admin menghapus report
maka report akan di hapus dari
database report.
80
Alternate Course:
Conclusion: Dalam proses ini melakukan proses lihat dari database report
Postcondition: Admin berhasil melihat atau menghapus report.
Business Rules: -
Assumptions: -
LAMPIRAN 3
ACTIVITY DIAGRAM
No Usecase Activity Diagram
1 Register Lampiran 3.1
2 Login Client Lampiran 3.2
3 View Lampiran 3.3
4 Search Lampiran 3.4
5 Upload Lampiran 3.5
6 Download Lampiran 3.6
7 Delete Lampiran 3.7
8 Change Password Lampiran 3.8
9 Login Admin Lampiran 3.9
10 Add Server Lampiran 3.10
11 Change IP Lampiran 3.11
12 Monitoring Server Lampiran 3.12
13 Delete Account Lampiran 3.13
14 Change Password Client Lampiran 3.14
15 View Report Lampiran 3.15
3.1 Activity Diagram Register
Cek user sudah terdaftar
Terdaftar dalam sistemGagal mendaftar
Ya
Tidak
Memilih menu register
Memasukkan data diri
UserSistem
82
3.2 Activity Diagram Login Client
menampilkan halaman login
memasukkan
username dan password
mengecek validasi user
Kembali
ke halaman loginMasuk Sistem
Ya
Tidak
User Sistem
Memilih menu login
3.3 Activity Diagram Login Admin
menampilkan halaman login
memasukkan
username dan password
mengecek validasi user
Kembali
ke halaman loginMasuk Sistem
Ya
Tidak
User Sistem
Memilih menu login
83
3.4 Activity Diagram View
SistemUser
Memilih menu
lihat file
Menampilkan daftar file
Berdasar index user
List file user
3.5 Activity Diagram Search
User Web Server
Memilih Menu
Cari FileMenampilkan Form Pencarian
Memasukkan Kata Kunci
Mencari Index User
Hsil pencarian
Sehingga bisa melakukan download
84
3.6 Activity Diagram Upload
File ServerUser Sistem
Menampilkan Halaman
Tambah File
memilih file dan
Memasukkan metadata
Menerima file
Mengirimkan stream file
Ke file server
Menyimpan
Index File
Menyimpan file
Memilih file server
Memilih menu upload
3.7 Activity Diagram Download
User Web Server
Melihat daftar file Menampilkan daftar file
Mendapatkan download link
85
3.8 Activity Diagram Delete
User File ServerWeb Server
Mencari Letak File
Menghapus Index
Perintah hapus file Menghapus file
Memilih file yang di hapus
3.9 Activity Diagram Change Password UserSistem
Menganti password
Keterangan berhasilGagal mengubah
gagal
berhasil
Memilih menu ubah password
Memasukkan password baru
Menampilkan halaman ubah password
86
3.10 Activity Diagram Add Server
Admin Sistem
menampilkan halaman
tambah server
Memasukkan IP File Server
Tes koneksi
Server berhasil
ditambahkan
Menampilkan
Keterangan gagal
tidak
terkoneksi
Memilih menu
Tambah server
Apakah server
sudah terdaftar
terdaftar
87
3.11 Activity Diagram Change IP
Admin Sistem
menampilkan halaman
change server
Memasukkan IP File Server
Tes koneksi
Server berhasil
diganti
Menampilkan
Keterangan gagal
tidak
terkoneksi
Memilih menu
Change IP
Apakah server
sudah terdaftar
terdaftar
88
3.12 Activity Diagram Monitoring Server
SistemAdmin
Memilih tombol cek server Melihat daftar index server
Daftar server aktifTes koneksi pada
Semua server
89
3.13 Activity Diagram Delete Account
File ServerAdmin Sistem
Menampilkan daftar client
Memilih client yang
dihapus
Melihat daftar
File server
Menghapus directory user
Menyimpan
Index File
Menyimpan file
Kirim perintah hapus directory
berhasil
gagal
Memilih lihat client
90
3.14 Activity Diagram Change Password Client UserSistem
Menganti password client
Keterangan gagalKeterangan berhasil
berhasil
gagal
Memilih user yang akan di ubah
Memasukkan password baru
3.15 Activity Diagram View Report
SistemAdmin
Memilih menu
Lihat reportMenampilkan semua report
List report
Delete report Menghapus report
LAMPIRAN 4
SEQUENCE DIAGRAM
No Usecase Sequence Diagram
1 Register Lampiran 4.1
2 Login Client Lampiran 4.2
3 View Lampiran 4.3
4 Search Lampiran 4.4
5 Upload Lampiran 4.5
6 Download Lampiran 4.6
7 Delete Lampiran 4.7
8 Change Password Lampiran 4.8
9 Login Admin Lampiran 4.9
10 Add Server Lampiran 4.10
11 Change IP Lampiran 4.11
12 Monitoring Server Lampiran 4.12
13 Delete Account Lampiran 4.13
14 Change Password
Client
Lampiran 4.14
15 View Report Lampiran 4.15
4.1 Sequence Diagram Register
Register
Frame
Register
Controler Data user
Kelas Analisis
No Nama Kelas Tipe Deskripsi
1 Register Frame Interface untuk menampilkan form pendaftaran
2 Register Controler Controller untuk mengatur data yang di masukkan
client hingga disimpan di data user
3 Data User Entity Untuk melihat dan menyimpan data
pribadi user
92
Opt
Register
Frame
Register
ControlerData User
register(data client)
Client memasukkan nama
email, password
Sistem Border
isUserExist()
false
Keterangan berhassil mendaftar
insertUser()
true
register(data client)
isUserExist()
true
Keterangan user exist
Bila user sudah aktif maka
menampilkan keterangan user
sudah terdaftar
Melakukan cek apakah user
sudah terdaftar
Memasukkan user baru ke
data base.
4.2 Sequence Diagram Login Client
Login Client
FrameLogin Client
Controler Data user
Kelas Analisis
No Nama Kelas Tipe Deskripsi
93
1 Login Client
Frame
Interface Untuk menampilkan form login
2 Login Client
Controler
Controller Untuk melakukan validasi apakah user
ada di database data user
3 Data User Entity Untuk melihat dan menyimpan data
username dan password user
Data UserLogin Admin Frame Login Admin Controler
login(Username, Password)
true
Sistem Border
Memasukkan
username dan passwordSend(username, passwd)
masuk ke sistem
login(Username, Password)
Send(username, passwd)
Keterangan gagal masuk
false
Bila user belum terdaftar
Sistem melakukan cek
validasi user
4.3 Sequence Diagram Login Admin
AdminLogin Admin
Controler
Login Admin
Frame
Kelas Analisis
No Nama Kelas Tipe Deskripsi
1 Login Admin Interface Untuk menampilkan form login
94
Frame
2 Login Admin
Controler
Controller Untuk melakukan validasi apakah user
ada di database data user
3 Admin Entity Untuk melihat dan menyimpan data
username dan password admin
AdminLogin Admin Frame Login Admin Controler
login(Username, Password)
true
Sistem Border
Memasukkan
username dan passwordSend(username, passwd)
masuk ke sistem
login(Username, Password)
Send(username, passwd)
Keterangan gagal masuk
false
Bila user belum terdaftar
Sistem melakukan cek
validasi user
4.4 Sequence Diagram View
View Frame Index File
Kelas Analisis
No Nama Kelas Tipe Deskripsi
1 View Frame Interface Untuk menampilkan daftar file yang di
simpan
2 Index File Entity Untuk melihat dan menyimpan daftar file
95
user
View Frame Index File
list file
Sistem Border
Client memilih
menu view View()
Find()
list file
4.5 Sequence Diagram Search
Search Frame Index FileSearch Frame
Controler
Kelas Analisis
No Nama Kelas Tipe Deskripsi
1 Search Frame Interface Untuk menampilkan form pencarian
2 Search Frame
Controler
Controler Untuk mengatur Search Frame
3 Index File Entity Untuk melihat dan menyimpan daftar file
user
96
Search
FrameIndex File
ListFile
Memilih menu
Pencarian (search)
Sistem Border
search(key)
Setelah melakukan pencarian
bila ingin melakukan
pengunduhan file maka
berlanjut pada case download
Search
Frame Controler
search(key)
ListFile
4.6 Sequence Diagram Upload
Index Server
Upload Frame
File Server
Upload
Controler
Index File
Report
Upload
Buffer Controler
Kelas Analisis
No Nama Kelas Tipe Deskripsi
1 Upload Frame Interface Untuk menampilkan form upload file
2 Upload Buffer
Controler
Controller Untuk mem-buffer file yang dikirim
oleh user
3 Upload Controler Controller Untuk mengontrol penyimpanan file
dan melakukan indexing
4 Index File Entity Untuk melihat dan menyimpan daftar
index file yang di ungah
5 File Server Entity Untuk menyimpan file yang di ungah.
6 Index Server Entity Untuk meihat dan menyimpan daftar
file server yang dimiliki
7 Report Entity Untuk melihat dan menyimpan daftar
error yang pernah terjadi dalam proses.
97
opt
Index ServerUpload Frame Upload Controler
file,metadata
Fle Server Index File
sukses
Client memilih file
dan mengisi meta data
Simpan Index
choseServer()
Sistem Border
getFreeSpace()
true
Ip server
md5Check()true
Thread sendFile(Master , Slave)
Report
Memilih file server berdasar
urutan
Getfree space untuk
mendapatkan ukuran server
sekaligus cek server apakah
bisa diakses.
Melakukan cek md5
Mengirim file dan melakukan
cek MD5 di file server
Menyimpan Index
file,metadata
gagal
Client mengisi file
dan meta data
Simpan Index
choseServer()
getFreeSpace()
false
Ip server
md5Check()false
Thread sendFile(byte, md5)
Pilih server
Kirim ulang
sendReport()
Memilih file server ulang
hingga mendapat server yang
aktif
Mengirim file ulang karena
hasil MD5 berbeda
Bila gagal maka
menampilkan keterangan
gagalGagal
Getfilesize()
md5Check()
deleteTemp()
md5Check()
MarkServer(ip)
Upload
Buffer Controler
reciveFile()
Upload(file)
Keterangan berhasil
reciveFile()
Sistem membuffer file
Bila proses upload file server
Gagal maka menampilkan
keterangan gagal
Keterangan berhasil
Gagal
4.7 Sequence Diagram Download
File Server
report
Download Frame
Kelas Analisis
No Nama Kelas Tipe Deskripsi
1 Download Frame Interface Untuk menampilkan daftar file user
yang akan di unduh
2 Index File Entity Untuk melihat data dan server setiap
file
3 Report Entity Untuk melihat dan menyimpan daftar
error yang pernah terjadi dalam proses.
98
Index FileDownload Frame Fle Server
download
List file
Client memilih file
yang akan di download
Sistem Border
Sistem melakukan cek file
server mana yang bisa di
akses
Client dapat mengunduh file
Menjalankan case view
atau search
Menjalankan case view
atau search
Sistem menampilkan index
dan link download setiap file
isAccesible()
Report
Client memilih file
yang akan di download
Bila server tidak bisa diakses
maka tdak bisa di download
Dan mengirimkan error report
isAccesible()
sendReport()
4.8 Sequence Diagram Delete
File Server
Index File
Delete FrameDelete
Controler
Kelas Analisis
No Nama Kelas Tipe Deskripsi
1 Delete Frame Interface Untuk menampilkan daftar file dengan
form delete file
2 Delete
Controler
Controler Untuk mengatur proses penghapusan
file dan mengatur proses delete index
3 Index File Entity Untuk meihat dan menyimpan daftar
99
index file.
4 File Server Entity Untuk menyimpan file
Opt
Index FileDelete Frame Fle Server
deleteFile(file)
deleteIndex(id)
Client memilih file
yang dihapus
Sistem Border
Kirim perintah hapus file ke
file server
Bila penghapusan berhasil,
maka hapus index file
Bila hapus file di file server
gagal maka index file tidak di
hapus
true
Keterangan berhasil
deleteFile(file)
false
Delete
Controler
deleteFile()
Keterangan berhasil
deleteFile()
false
4.9 Sequence Diagram Change Password
Change Password
Frame Data userChange
Password Controler
Kelas Analisis
No Nama Kelas Tipe Deskripsi
1 Change Password
Frame
Interface Untuk menampilkan form ubah
password
2 Change Password
Controler
Controler Untuk mengatur dan mengirim
perubahan password
3 Data User Entity Untuk meihat dan menyimpan data
username dan password user
100
Opt
Change Password
Frame
Change Password
Controler
sukses
ChangePassword()
ChangePassword()
gagal
Client memasukkan nama
email, password
Sistem Border
Menyimpan perubahan data
Gagal mengubah data
menampilkan keterangan
gagal mmengubah password
Data User
sukses
UpdatePassword(password)
UpdatePassword(password)
gagal
4.10 Sequence Diagram Add Server
Index Server
File Server
Add Server
FrameAdd Server
Controler
Add Server
Frame Controler
Kelas Analisis
No Nama Kelas Tipe Deskripsi
1 Add Server Frame Interface Untuk menampilkan form menambah
server
2 Add Server
Frame Controler
Controller Untuk mengatur add server frame
3 Add Server
Controler
Controller Untuk melakukan proses tes
koneksi ke server hingga di catat di
index server 4 Index Server Entity Untuk melihat dan menyimpan daftar
file server
101
5 File Server Entity Untuk menyimpan dan mengambil file
Opt
Add Server
ControlerIndex Server
Add Server
FrameFle Server
sukses
sukses
insertIndexServer
isServerActive()
inServerActive()
Gagal
Admin memilih menu
Tambah serveer dan
Memasukkan IP File Server
Sistem Border
Cek apakah server terdaftar
Melakukan cek server apakah
aktif
Bila server aktif, maka
menyimpan index server
Bila server sudah terdaftar
maka menampilkan
keterangan server sudah
terdaftar
Bila cek server aktif gagal
maka
tidak menyimpan index
isServerExist()
isServerExist()
sukses
ya
AddServer(IP)
false
Add Server
Frame Controler
Addserver()
sukses
AddServer()
Gagal
4.11 Sequence Diagram Change IP
Index Server
File Server
Add Server
Frame
Kelas Analisis
No Nama Kelas Tipe Deskripsi
1 Change Server
Frame
Interface Untuk menampilkan form menganti
server
2 Index Server Entity Untuk melihat dan menyimpan daftar
file server
3 File Server Entity Untuk menyimpan dan mengambil file
102
Opt
Index ServerChange Server Frame Fle Server
sukses
sukses
changeIndexServer
isServerActive()
inServerActive()
Gagal
Admin memilih menu
Change server dan
Memasukkan IP File Server
Sistem Border
Cek apakah server terdaftar
Melakukan cek server apakah
aktif
Bila server aktif, maka
menganti index server
Bila cek server aktif gagal
maka
tidak mengganti index
isServerExist()
false
4.12 Sequence Diagram Monitoring Server
Monitoring Server
Frame
Index Server
File Server
Kelas Analisis
No Nama Kelas Tipe Deskripsi
1 Monitoring Server
Frame
Interface Untuk menampilkan daftar server dan
form cek server aktif
2 Index File Entity Untuk meihat dan menyimpan daftar
index file.
3 File Server Entity Untuk menyimpan file
103
Monitoring Server
FrameFile Server
listServer()
Daftar server
isServerActive()
Hasil Tes
admin masuk ke halaman
Lihat server
Sistem Border
Mengambil seluruh daftar file
Melakkukan cek server aktif
indexServer()
4.13 Sequence Diagram Delete Account
Delete Account
Controler
File Server
Data userDelete Account
Controler
Index File
Delete Account
Frame Controler
Kelas Analisis
No Nama Kelas Tipe Deskripsi
1 Delete Account
Frame
Interface Untuk menampilkan daftar user dan
form delete user
2 Delete Account
Frame Controler
Controller Untuk mengatur delete account frame
dan menjalankan update controler
3 Delete Account
Controler
Controller Untuk melakukan fungsi hapus file,
hapus index dan hapus user.
4 Data User Entity Untuk meihat dan menyimpan data user.
5 Index File Entity Untuk meihat dan menyimpan daftar
index file.
6 File Server Entity Untuk menyimpan file
104
Opt
Index FileData UserDelete Account
Frame
Delete Account
ControlerFile Server
konfirmasi sukses
Sukses
deleteDir()
viewAllUser()
deleteIndex()
Sukses
Gagal
delete(id User)
Konfirmasi Gagal
Admin memilih
user yang akan dihapus
Sistem Border
Mengirim perintah hapus file
Ke file server
File server melakukan
penghapusan
Bila hapus berhasil maka
menghapus index file
Bila index file sudah bersih
maka user di hapus dari index
user.
Hapus User (id)
Sukses
Bila hapus file gagal maka
index file tidah di hapus
Bila index file belum terhapus
semua maka index user juga
tidak hapus juga
deleteDir()
delete(id User)
List user
Menampilkan daftar client
Delete Account
Frame Controler
delete(id User)
konfirmasi sukses
delete(id User)
Konfirmasi Gagal
4.14 Sequence Diagram Change Password Client
Data user Change Password
Client Frame
Change Password
Client Controler
Kelas Analisis
No Nama Kelas Tipe Deskripsi
1 Change Password
Client Frame
Interface Untuk menampilkan daftar file dan
form pengubahan password client.
2 Change Password
Client Controler
Controler Untuk mengatur Change Password
Client Frame dan menjalankan fungsi
update password
3 Data User Entity Untuk melihat dan menyimpan data
nama, username dan password user
105
Opt
Change Password
ControlerData User
sukses
updatePasswd()
updatePasswd()
Gagal
Memilih user yang ingin
di ubah passwordnya
Dan Menasukkan password baru
Password user diubah,
dan menampilkan keterangan berhasil
Sistem Border
Sistem menampilkan daftar
user
Bila sistem gagal mengubah
maka menampilkan
keterangan gagal
listAllUser()
List user
Change Password
Frame
sukses
Gagal
4.15 Sequence Diagram View Report
Report FrameReportReport
Controler
Kelas Analisis
No Nama Kelas Tipe Deskripsi
1 Report Frame Interface Untuk menampilkan daftar report error
Report Controler Controler Untuk mengetur proses penghapusan
report
2 Report Entity Untuk melihat dan menyimpan log error
saat terjadi suatu proses.
106
Report Frame reportSistem Border
Admin memilih
Menu report
Delete()Admin bisa melihat dan
Menghapus report
Report Controler
Delete()
list file
View()
true
true
LAMPIRAN 5
DIAGRAM KELAS ANALISIS
5.1 Diagram Kelas untuk User Admin
Delete Account
Controler
Monitoring Server
Frame
Index Server
File Server
Data userDelete Account
Controler
Add Server
Frame
Change Password
Client Frame
Index File
Report Frame Report
Add Server
Controler
Add Server
Frame Controler
Report
Controler
Delete Account
Frame Controler
Change Password
Client Controler
AdminLogin Admin
Controler
Login Admin
Frame
Change IP
Frame
108
5.2 Diagram kelas untuk User Client
View Frame
Change Password
Frame
Register FrameRegister
Controler
Search Frame
Index Server
Upload Frame
File Server
Upload
Controler
Login Client
FrameLogin Client
Controler Data user
Index File
report Delete Frame
Download Frame
Upload
Buffer Controler
Change
Password Controler
Delete
Controler
Search Frame
Controler
LAMPIRAN 6
ATRIBUT DAN METHOD
110
6.1 Register Frame
Fungsi
- Interface untuk menginputkan data pribadi yang digunakan untuk pendaftaran.
Atribut
- Text Field Username - Password Field Password - Button Register - Button Clear
Desain interface
6.2 Login Client Frame
Fungsi
- Untuk memasukkan username dan password sebagai validasi login
Atribut
- Text Field username - Password Field password - Button Login - Button Cancel
Desain interface
Login
logo
Username
Password
LoginCancel
111
6.3 Login Admin Frame
Fungsi
- Untuk memasukkan username dan password sebagai validasi login
Atribut
- Text Field username - Password Field password - Button Login - Button Cancel
Desain interface
6.4 Download Frame
Fungsi
- Untuk memilih file yang akan di diwoload
Atribut
- Table indexFile - Button Cancel - Button Delete
Desain interface
Login
logo
Username
Password
LoginCancel
Lihat File
logo
dokument1
dokument1
dokument1
20 MB
20 MB
20 MB
Download
Download
Download
dokument1
dokument1
dokument1
20 MB
20 MB
20 MB
Download
Download
Download
Upload
Hapus
HapusHapus
Hapus
Delete
kata kunciCari Cari
Download
Download Cancel
nama_file
Delete
Delete
112
6.5 Upload Frame
Fungsi
- Untuk memilih dan mengirim file yang akan di ungah
Atribut
- File chooser file - Text field Mete data - Button Cancel - Button Upload
Desain interface
6.6 Search Frame
Fungsi
- Untuk memasukkan kata kunci pencarian dan menampilkan hasil pencarian
Atribut
- Text fileld kataKunci - Button cari
Desain interface
113
6.7 Delete Frame
Fungsi
- Menghapus file yang dipilih dari tabel
Atribut
- Tabel index File - Button delete - Button cancel
Desain interface
6.8 View Frame
Fungsi
- Untuk menampilkan daftar file dalam bentuk table.
View
logo
dokument1
dokument1
dokument1
dokument1
dokument1
dokument120 MB
20 MB
Download
Download
Upload keySearch Search
Delete
nama file
Delete
Delete
DeleteCancel
114
Atribut
- Table index file Desain interface
6.9 Change Password Frame
Fungsi
- Untuk memasukkan password baru bila ingin mengubah password
Atribut
- Tex field field nama - Tex field field username - Password field new password - Button Change - Button Cancel
Desain interface
\
View
logo
dokument1
dokument1
dokument1
20 MB
20 MB
20 MB
Download
Download
Download
dokument1
dokument1
dokument1
20 MB
20 MB
20 MB
Download
Download
Download
Upload
Delete
keySearch Search
Delete
Delete
Delete
Delete
Delete
115
6.10 Add Server Frame
Fungsi
- Untuk menampilkan form inputan untuk menambah server baru
Atribut
- Text Field master IP server - Text Field slave IP server - Button Add - Button cancel
Desain interface
6.11 Change Server Frame
Fungsi
- Untuk menampilkan form inputan untuk menambah server baru
Atribut
- Text Field IP server - Button Change - Button cancel
Desain interface
List Server
logo
172.23.1.10
172.23.1.30
172.23.1.20
172.23.1.40
172.23.1.60
172.23.1.50
Mati
Mati
Mati
Add Server
nomor ipMaster IP
Add Cancel
Slave IP nomor ip
116
6.12 Monitoring Server Frame
Fungsi
- Untuk menampilkan daftar server yang bisa di akses dan tidak.
Atribut
- Table index server - Button check
Desain interface
6.13 Change Password Client Frame
Fungsi
- Untuk menampilkan daftar client dan mengubah password client
Atribut
- Table List Client - Text Field password - Button Change - Button Cancel
List Server
logo
172.23.1.10
172.23.1.30
172.23.1.20
172.23.1.40
172.23.1.60
172.23.1.50
Mati
Mati
Mati
Add Server
nomor ipMaster IP
Add Cancel
Slave IP nomor ip
List Server
logo
172.23.1.10
172.23.1.30
172.23.1.20
172.23.1.40
172.23.1.60
172.23.1.50
ON
Check
ON
ON
ON
ON
ON
117
Desain interface
6.14 Delete Account Frame
Fungsi
- Untuk menampilkan daftar user dan menghapus user
Atribut
- Table daftar user - Button delete - Button Cancel
Desain interface
6.15 Report Frame
Fungsi
- Untuk menampilkan daftar error yang terjadi di sistem
Atribut
- Table report - Button delete
Desain interface
Change Password
List Client
logo
client 1
client 3
client 2
Change Password
client 4
client 6
client 5
Delete
Delete
Delete
Delete
Delete
Delete
Change Password
Change Password
Change Password
Change Password
Change Password
Delete Account
DeleteCancel
Nama : nama client
118
6.16 File Server
Fungsi
- Untuk menyimpan dan mengambil file di file server
public boolean getFreeSpace (long fileName )
- Berguna untuk menghitung apakah file server mencukupi untuk menyimpan file yang dikirim
- Inputaanya adalah ukuran file yang akan di upload - Outputnya adalah Boolean, bila ukuran mencukupi maka outputnya
true, bila tidak cukup maka outputnya false Algoritma
1. Berikut code ini yang digunakan untuk mendapatkan free space di drive C
public void getFreeSpaces(long ukuran) {
long free = 0;
File file = new File("C:");
long freeSpace = file.getFreeSpace(); //unallocated / free disk space in
bytes.
free = freeSpace / 1024 / 1024;
System.out.println("ukuran " + free);
}
public Boolean MD5 (String alamatFile)
- Input berupa alamat temporary file yang di upload ataupun di download.
- Hasilnya adalah true atau false. Algoritma
1. Method ini merupakan library untuk menghitung nilai MD5 sebuah file. 2. Setelah mendapat nilai MD5 file setelah dan sebelum dikirim maka
119
dibandingkan 3. Bila hasinya sama maka return true 4. Bila hasilnya beda maka return false
public String sendFile(RemoteInputStream inFile, String md, String
namaFile, String id)
- Input adalah RemoteInputStream, md5, nama file dan id file - Hasilnya adalah boolean true atau false, bila return false maka sistem
akan meminta server mengirim kambali ke file server Algoritma
1. Dari input input diatas mana nama file dan id user digunakan untuk nama directory yang digunakan untuk menyimpan
2. Menulis ke file dengan mengunakan kode dibawah ini.
InputStream inputStream = RemoteInputStreamClient.wrap(inFile);
OutputStream out = new FileOutputStream(f);
byte buf[] = new byte[1024];
int len;
while ((len = inputStream.read(buf)) > 0) {
out.write(buf, 0, len);
}
out.close();
inputStream.close();
3. Bila berhasil maka mereturn true 4. Bila salah maka me return false dan file dikirim ulang dari web server.
public void deleteDir (File path)
- Untuk menghapus direktori di file server - Input berupa path directory
Algoritma
1. Input parameter alamat file 2. Cek apakah merupakan directory 3. Jika iya maka cek apakah ada file di dalamnya 4. Bila ada maka hapus file tersebut 5. Rekursiv langkah 2 hingga semuanya terhapus 6. Selesai.
public boolean deleteFile (File path)
- Untuk menghapus file di file server - Input berupa directory file server ditambah id dan nama file, yang
digabungkan - Outputnya berupa true atau false
Algoritma
1. Input parameter alamat file 2. Cek apakah file ada 3. Bila tidak ada maka return true dan selesai 4. Bila ada maka hapus file
Boolean hasil = path.delete();
5. Bila berhasil maka return true 6. Bila gagal maka return false
120
7. Selesai.
public int isServerActive(int i, int i0)
- Untuk melihat apakah server aktif, dengan melakukan test penjumlahan
- Input 2 bilangan integer - Outputnya berupa integer hasil penjumlahan
Algoritma
1. Input 2 bilangan 2. Kirim ke server 3. Server menghitung hasil penjumlahan 4. Bandingkan hasil penjumlahan dengan penjumlahan yang dilakukan
oleh server.
6.17 Data User
Fungsi
- Untuk menyimpan dan mengambil data pengguna sistem.
Atribut
- private String id; - private String nama; - private String username; - private String password;
Public static Boolean isUserExist (String username)
- Digunakan melihat apakah username yang dimasukkan sudah terdaftar sebelumnya
- Output nya true atau false, bila true maka user sudah terdaftar Algoritma
1. Masukkan parameter string username . 2. Buat koneksi dengan kelas database 3. Query,
SELECT `username` FROM `storage`.`dataUser` where `username` ='" +
username + "';
4. Execute query 5. Bila hasil resulset nya kosong return false 6. Bila hasil resulset nya tidak koson maka return true 7. Selesai.
public static ResultSet Login (dataUser data)
- Digunakan untuk validasi login, apakah user terdaftar atau tidak. - Input merupakan nama, username dan password
121
- Outputnya merupakan resutset hasil insert Algoritma
1. Masukkan parameter bertipe class dataUser, dengan set parameter username dan password.
2. Buat koneksi dengan kelas database 3. Query, dengan batasan hasil hanya 1 resulset
SELECT * FROM `storage`.`datauser` WHERE `username` = '" +
data.getUsername() + "' AND `password` = '" + data.getPassword() + "'
LIMIT 0, 1;
4. Execute query 5. Selesai.
public static boolean InsertUser (dataUser data)
- Digunakan untuk menyimpan data user yang nantinya akan digunakan untuk validasi login.
- Inputnya nama, username dan password . - Outputnya true atau false
Algoritma
1. Masukkan parameter bertipe class dataUser, dengan set parameter nama, username dan password.
2. Buat koneksi dengan kelas database 3. Query
INSERT INTO `storage`.`datauser`
(`nama_client`,`username`,`password`)VALUES('" + data.getNama() +
"','" + data.getUsername() + "','" + data.getPassword() + "');
4. Execute query 5. Bila berhasil maka return true 6. Bila gagal maka return false 7. Selesai.
public boolean updatePassword (dataUser data)
- Digunakan untuk menganti password baik oleh client sendiri maupun admin yang me-reset password.
- Inputnya id_user, nama, username dan password. - Outputnya true atau false
Algoritma
1. Masukkan parameter bertipe class dataUser, dengan set parameter id, username dan password.
2. Buat koneksi dengan kelas database 3. Query
UPDATE `storage`.`datauser` SET `password` = '" + data.getPassword()
+ "', `username` = '" + data.getUsername() + "' WHERE `id_client` = '" +
data.getId() + "' ;
4. Execute query 5. Bila berhasil mengubah data user maka return true 6. Bila gagal menghapus maka return false 7. Selesai.
public static boolean deleteAccount (int id_client)
122
- Digunakan menghapus account dari database datauser - Inputnya id_user yang akan dihapus - Outputnya true atau false
Algoritma
1. Masukkan parameter tipe id client yang akan di hapus. 2. Buat koneksi dengan kelas database 3. Query
DELETE FROM `storage`.`datauser` WHERE `id_client` = '" + id_client +
"';
4. Execute query 5. Bila penghapusan berhasil maka return true 6. Bila penghapusan gagal maka return false 7. Selesai.
public static ResultSet viewAllUser()
- Digunakan untuk menampilkan semua daftar client mengambil dari table data user.
- Outputnya resultset daftar client Algoritma
1. Buat koneksi dengan kelas database 2. Query
SELECT * FROM `storage`.`dataUser`
3. Execute query 4. Return hasil result set 5. Selesai.
6.18 Index File Fungsi
- Atribut
- private String idFiles; - private String path; - private String alamatTemporari; - private String nama_file; - private String metadata_file; - private String size_file; - private String tanggal_upload; - private String md5; - private String ip_server; - private String id_user; - private String master; - private String slave; - private String alamat; - private String ukuran;
public static ResultSet search (String katakunci)
- Digunakan untuk mencari semua file yang dimiliki oleh user tersebut - Input berupa Id user dan kata kunci - Hasilnya list file dalam bentuk Resultset
123
Algoritma
1. Masukan kata kunci dan id user 2. Buat koneksi dengan kelas database 3. Buat variable ResultSet untuk menyimpan hasil select 4. Query
SELECT * FROM `storage`.`indexFile` INNER JOIN `storage`.`indexServer`
ON (`indexFile`.`id_server` = `indexServer`.`id_server`) WHERE
metadata_file LIKE '%" + kaku + "%' OR nama_file LIKE '%" + kaku + "%'
LIMIT 0, 100;
5. Execute query 6. Return hasil ResultSet 7. Selesai
public static ResultSet find (String katakunci, String id)
- Digunakan untuk mencari file yang dimiki user tersebut dan sesuai dengan kata kunci yang dimasukkan user tersebut.
- Input berupa Id user dan kata kunci - Hasilnya list file dalam bentuk Resultset
Algoritma
1. Masukan kata kunci dan id user 2. Buat koneksi dengan kelas database 3. Buat variable ResultSet untuk menyimpan hasil select 4. Query
SELECT * FROM `storage`.`indexFile` INNER JOIN `storage`.`indexServer`
ON (`indexFile`.`id_server` = `indexServer`.`id_server`) WHERE id_user =
'" + id + "' and (metadata_file LIKE '%" + kaku + "%' OR nama_file LIKE '%"
+ kaku + "%') ;
5. Execute query 6. Return hasil ResultSet 7. Selesai
public static ResultSet view (String ID)
- Digunakan untuk melihat daftar file yang dimiliki oleh client tersebut - Input berupa Id User - Hasilnya list file dalam bentuk Resultset
Algoritma
1. Masukan id user 2. Buat koneksi dengan kelas database 3. Buat variable ResultSet untuk menyimpan hasil select 4. Query
SELECT * FROM `storage`.`indexFile` INNER JOIN `storage`.`indexServer`
ON (`indexFile`.`id_server` = `indexServer`.`id_server`) WHERE id_user =
'" + id + "';
5. Execute query 6. Return hasil ResultSet 7. Selesai.
124
public static void deleteIndex(String idFile)
- Digunakan untuk menghapus index file yang dimiliki user tersebut, Input berupa Id File yang ingin di hapus
Algoritma
1. Masukkan parameter Id File 2. Buat koneksi dengan kelas database 3. Query
DELETE FROM `storage`.`indexFile` WHERE `id_index` = '" + idFile + "' ;
4. Execute query 5. Selesai.
public static void indexing (indexFile file)
- Digunakan untuk mencatat file yang berhasil disimpan pada file server, disini juga menyimpan metadata dan alamat server yang menyimpan file tersebut.
- Input berupa atribut dari kelas indexFile Algoritma
1. Masukkan parameter indexFile 2. Buat koneksi dengan kelas database 3. Query
INSERT INTO `storage`.`indexFile` (`nama_file`, `metadata_file`,
`size_file`, `tanggal_upload`, `md5`, `id_server`, `id_user` ) VALUES
('" + ide.getNama_file() + "', '" + ide.getMetadata_file() + "','" +
ide.getSize_file() + "', '" + ide.getTanggal_upload()+ "', '" + ide.getMd5() +
"','" + ide.getIp_server() + "', '" + ide.getId_user() + "' );
4. Execute query 5. Selesai.
public static void deleteIndexAccount (String idUser)
- Digunakan untuk menghapus semua index file yang dimiliki user tersebut, fungsi ini dijalankan saat proses hapus account sehingga semua index user tersebut terhapus
- Input berupa Id File yang ingin di hapus Algoritma
1. Masukkan parameter Id File 2. Buat koneksi dengan kelas database 3. Query
"DELETE FROM `storage`.`indexFile` WHERE `id_user` = '" + idUser + "' ;"
4. Execute query 5. Selesai.
6.19 Index Server Fungsi
- Untuk menyimpan dan mengambil data file server. Atribut
- private String masterIP; - private String slaveIP;
125
public static void insertIndexServer(indexServer servise)
- Digunakan untuk memasukkan data server baru kedalam index server - Inputnya attrbut kelas indexServer
Algoritma
1. Masukkan parameter tipe kelas indexServer, dengan set IP Master dan IP Slave.
2. Buat koneksi dengan kelas database 3. Query,dengan ditambahkan keterangan date now();
INSERT INTO `storage`.` indexserver ` ( `master`, `slave`,
`UPDATE`)VALUES('" + servise.getMasterIP() + "', '" + servise.getSlaveIP()
+ "', now());
4. Execute query 5. Selesai.
public static ResultSet choseServer()
- Digunakan untuk memilih server yang paling lama tidak dipakai, dengan melihat waktu update yang terakhir server tersebut diakses.
- Outputnya hanya 1 index server dalam bentuk Resultset Algoritma
1. Buat koneksi dengan kelas database 2. Buat variable ResultSet untuk menyimpan hasil select 3. Query, dengan dibatasi hanya 1 resulset saja.
"SELECT `master`,`slave`FROM `storage`.` indexserver `ORDER BY
`update` ASC LIMIT 0, 1;"
4. Execute query 5. Return hasil ResultSet 6. Selesai.
Public static ResultSet listServer()
- Digunakan untuk menampilkan semua daftar index server yang dimiliki - Outputnya list index server dalam bentuk Resultset
Algoritma
1. Buat koneksi dengan kelas database 2. Buat variable ResultSet untuk menyimpan hasil select 3. Query
"SELECT * FROM `storage`.`indexserver`"
4. Execute query 5. Selesai.
126
Public isServerExist(String master, String slave)
- Digunakan untuk melakukan cek apakah file server tersebut sudah - Outputnya Boolean bila true maka sudah terdaftar
Algoritma
1. Buat koneksi dengan kelas database 2. Buat variable ResultSet untuk menyimpan hasil select 3. Query
"SELECT master, slave FROM `storage`.`indexserver`";
4. Execute query 5. Cek apakah IP master atau slave sudah terdaftar
if (mas.equalsIgnoreCase(rs.getString("master"))) {
hasil = true;
} else if (mas.equalsIgnoreCase(rs.getString("slave"))) {
hasil = true;
}else if (slv.equalsIgnoreCase(rs.getString("slave"))) {
hasil = true;
}else if (slv.equalsIgnoreCase(rs.getString("slave"))) {
hasil = true;
}
6. Return boolean hasil 7. Selesai.
Public static ResultSet listDeleteServer(String id)
- Digunakan untuk menampilkan semua daftar index server yang digunakan oleh user dengan id diatas
- Outputnya list index server dalam bentuk Resultset Algoritma
1. Buat koneksi dengan kelas database 2. Buat variable ResultSet untuk menyimpan hasil select 3. Query
SELECT DISTINCT(indexserver.master),indexserver.slave FROM
`storage`.`indexfile` INNER JOIN `storage`.`indexserver` ON
(`indexfile`.`id_server` = `indexserver`.`id_server`) WHERE id_user = '" +
id + "';
4. Execute query 5. Selesai.
public static void markServer(String master, String slave)
- Digunakan menghapus menandai server di database kalau server tersebut sudah digunakan, bengan mengupdate tanggal akses
- Inputnya ip master dan slave server Algoritma
1. Masukkan parameter IP server 2. Buat koneksi dengan kelas database 3. Query
UPDATE `storage`.`indexServer` SET `update` = NOW() WHERE `master`
127
= '" + master + "' AND `slave` = '" + slave + "';
4. Execute query 5. Selesai.
6.20 Report
Fungsi
- Untuk menyimpan dan melihat error yang terjadi di sistem Atribut
-
public void sendReport(String error)
- Digunakan untuk memasukkan error report ke data base, fungsi ini dijalankan oleh method yang mengalami error.
- Inputnya merupakan keterangan error Algoritma
1. Masukkan parameter String report 2. Buat koneksi dengan kelas database 3. Query, ditambahkan date now(), untuk menandai tanggal error report
tersebut.
INSERT INTO `storage`.`report` (`error`,`date` ) VALUES ('" + report + "',
now());
4. Execute query 5. Selesai.
6.21 Admin
Fungsi
- Untuk validasi login admin public static ResultSet loginadmin(String username, String passwd)
- Melihat username dan password admin. - Input username dan password
Algoritma
1. Masukkan parameter String report 2. Buat koneksi dengan kelas database 3. Query,
"SELECT * FROM `storage`.`admin` WHERE `username` = '" + username +
"' AND `password` = '" + passwd + "' LIMIT 0, 1;
4. Execute query 5. Return resutset 6. Selesai.
128
public boolean deleteReport(int id_report)
- Digunakan untuk menghapus error report yang tersimpan di database, bila admin sudah membaca maka admin bisa menghapus error tersebut
- Inputnya merupakan id report tersebut Algoritma
1. Masukkan parameter Id report 2. Buat koneksi dengan kelas database 3. Query
DELETE FROM `storage`.`report` WHERE `id` = '" + id_report + "' ;
4. Execute query 5. Bila berhasil menghapus maka return true 6. Bila hapus gagal maka return false 7. Selesai.
public static ResultSet viewReport()
- Digunakan untuk melihat daftar error sistem yang pernah terjadi. - Outputnya adalah resultset daftar error.
Algoritma
1. Buat koneksi dengan kelas database 2. Buat variable ResultSet untuk menyimpan hasil select 3. Query
SELECT * FROM `storage`.`report`
4. Execute query 5. Return hasil ResultSet 6. Selesai.
6.22 Login Client Controler
Fungsi
- Untuk menangani parameter username dan password yang dikirim user, dan mencocokan dengan data base.
Algoritma
1. Mengakses method login
ResultSet rsUser = dataUser.login(pengguna);
2. Mengambil return resultset 3. Bila ada maka mengatur session untuk client:
hasilID = rsUser.getString("id_client");
hasilNama = rsUser.getString("nama_client");
session.setAttribute("sesID", hasilID);
session.setAttribute("sesNama", hasilNama);
4. Bila resultset kosong maka menampilkan error page
6.23 Login Admin Controler Fungsi
- Untuk menangani parameter username dan password yang dikirim
129
admin, dan mencocokan dengan data base.
Algoritma
1. Mengakses method login
ResultSet rsUser = dataUser.login(pengguna);
2. Mengambil return resultset 3. Bila ada maka mengatur session untuk admin:
hasilNama = rsUser.getString("username");
session.setAttribute("asesNama", hasilNama);
4. Bila resultset kosong maka menampilkan error page
6.24 Register Controler
Fungsi
- Untuk menengani pendaftaran user baru
Algoritma
1. Cek apakah user tersebut sudah terdaftar
dataUser.isUserExist(request.getParameter("Username")
2. bila hasilnya true maka mengembalikan halaman error login; 3. bila hasilnya false maka 4. Mengakses method login
ResultSet rsUser = dataUser.login(pengguna);
5. Mengambil return resultset 6. Bila ada resultsetnya maka:
hasilID = rsUser.getString("id_client");
hasilNama = rsUser.getString("nama_client");
session.setAttribute("sesID", hasilID);
session.setAttribute("sesNama", hasilNama);
7. Bila resultset kosong maka menampilkan error page
6.25 Search Frame Controler
Fungsi
- Untuk menengani pendaftaran user baru
Algoritma
1. Menerima parameter pencarian 2. Mereturn parameter ke halaman search.jsp untuk menampilkan table
hasil pencarian sesuai dengan parameter
6.26 Upload Buffer Controler Fungsi
- Untuk melakukan buffer file dari client Algoritma
1. Merupakan fungsi dari tomcat untuk menerima upload file dari client
6.27 Upload Controler Fungsi
- Untuk menangani upload file dari user hinga dikirim ke file server, dan pencatatan index file.
130
public void upload(indexFile index)
- Mengirim dan mencatat index file yang disimpan pada file server Algoritma
1. Parameter file dan id user yang dikirim 2. Setelah mendapatkan file maka akan melakukan buffer file nanti akan
ditulis di temporary file 3. Id digunakan untuk membuat file sementara di directory server
sPath = getServletConfig().getServletContext().getRealPath(id);
4. setelah itu file di tulis di directory semetara tersebut
item.write(savedFile)
5. menghitung ukuran file.
File file = new File(alamatFile);
long bytes = file.length();
6. Memangil fungsi choseServer, untuk mendapatkan IP server 7. Mengubah date akses file server tersebut, bahwa file server tersebut
diakses sekarang.
UPDATE `storage`.`server` SET `update` = NOW() WHERE `master` = '" +
master + "' AND `slave` = '" + slave + "';
8. Memangil fungsi getFreeSpece di file server 9. Bila hasil false maka memilih file server lagi. 10. Bila hasil true maka 11. Cek md5 dengan library MD5check untuk dikirim sebagai penbanding
setelah file dikirim 12. Kirim file ke file server dengan fungsi sendFile ke master dan slave
server 13. Cek dengan MD5 Check apakah file yang terkirim sama 14. Bila hasil pengiriman false maka file dikirim ulang 15. Bila hasil pengiriman true 16. Menghapus temporary file
if (path.isDirectory()) {
for (File child : path.listFiles()) {
doDelete(child);
}
}
17. Melakukan indexing file, dengan memangil method indexing 18. Selesai.
public String MD5check(String alamatFile)
- Library yang digunakan untuk menghitung nilai md5 sebuah file Algoritma
File f = new File(alamatFile);
InputStream is = new FileInputStream(f);
byte[] buffer = new byte[8192];
int read = 0;
try {
131
while ((read = is.read(buffer)) > 0) {
digest.update(buffer, 0, read);
}
byte[] md5sum = digest.digest();
BigInteger bigInt = new BigInteger(1, md5sum);
output = bigInt.toString(16);
} catch (Exception e) {
throw new RuntimeException("Unable to process file for MD5",
e);
} finally {
is.close();
}
}
reciveFile()
- Ini merupakan library dari tomcat untuk menerima upload file dari web browser
6.28 Delete Controler
Fungsi
- Untuk mengatur proser hapus file Algoritma
1. Manarima id file dan nama file serta ip server 2. Menjalankan fungsi deleteFile
library dataDelete = new library(); Interface connectServer1 = dataDelete.connectServer(slave); deleteFile2 = connectServer1.deleteFile(idUser, namaFile);
3. Bila hasil penghapusan true maka mengirim result true 4. Menghapus index file 5. Bile hasil penghapusan false maka mengirim result .
6.29 Change Password Controler
Fungsi
- Untuk mengubah password oleh client
Algoritma
1. Menerima inputan id report yang akan dihapus 2. Menjalankan fungsi change password dengan parameter data user
dataUser use = new dataUser(idUser, passwd); hasil = use.updatePasswd(use);
3. Bila hasil pengubahan true maka mengirim result true dan menampilkan keterangan berhasil
4. Bile hasil pengubahan false maka mengirim result false dan menampilkan keterangan gagal
132
6.30 Change Password Client Controler
Fungsi
- Untuk mengubah password oleh admin
Algoritma
1. Menerima inputan id report yang akan dihapus 2. Menjalankan fungsi change password dengan parameter data user
dataUser use = new dataUser(idUser, passwd); hasil = use.updatePasswd(use);
3. Bila hasil pengubahan true maka mengirim result true dan menampilkan keterangan berhasil
4. Bile hasil pengubahan false maka mengirim result false dan menampilkan keterangan gagal
6.31 Add Server Frame Controler
Fungsi
- Untuk mengatur saat menambah server
Algoritma
1. Menerima inputan ip master dan slave server 2. Melakukan check apakah server sudah terdaftar 3. Check server exist untuk error handling tampilan 4. Menjalankan fungsi add server controler 5. Bila hasil penambahah true maka mengirim result true dan
menampilkan keterangan berhasil 6. Bile hasil penambahan false maka mengirim result false dan
menampilkan keterangan gagal
6.32 Add Server Controler
Fungsi
- Untuk menambah server baru
public boolean addServer(indexServer servis) - Input nya ip master dan slave - Outputnya Boolean true atau false
Algoritma
1. Menerima inputan ip master dan slave server 2. Melakukan check apakah server aktif 3. Bila aktif maka simpan indek dan return hasil true 4. Bila tidak aktif return false
6.33 Delete Account Frame Controler
Fungsi
- Untuk mengatur saat menghapus Account
Kondisi di servlet
- request.getParameter("action").equalsIgnoreCase("deleteUser")
133
Algoritma
1. Menerima inputan id user 2. Menjalankan fungsi delete account controller
deleteAccountControler data = new deleteAccountControler(); hasil = data.delete(idUser);
3. Bila hasil delete account true maka mengirim result true dan menampilkan keterangan berhasil
4. Bile hasil delete account false maka mengirim result false dan menampilkan keterangan gagal
6.34 Report Controler
Fungsi
- Untuk menghapus report
Kondisi di servlet
- request.getParameter("action").equalsIgnoreCase("deleteReport") Algoritma
5. Menerima inputan id report yang akan dihapus 6. Menjalankan fungsi delete report dengan para meter id report
deleteReport = report.deleteReport(Integer.parseInt(idReport));
7. Bila hasil delete true maka mengirim result true dan menampilkan keterangan berhasil
8. Bile hasil delete false maka mengirim result false dan menampilkan keterangan gagal
6.35 Delete Account Controler
Fungsi
- Untuk menghapus client dari data user dan menghapus file yang dimiliki client tersebut.
public void deleteUserControler (String id_client)
- Untuk mengontrol penghapusan file dan data user - Inputnya id user yang akan dihapus
Algoritma
1. Melihat daftar server 2. Memasukkan dalan array daftar server 3. Looping untuk mengakses semua server, memerintah file server
menghapus directory id client tersebut agar dihapus dengan memangil fungsi delDir.
4. Bila penghapusan berhasil 5. Menghapus index file milik id user tersebut dengan memangil fungsi
deleteIndex. 6. Menghapus dataUser dengan id tersebut dengan memangil fungsi
deleteAccount 7. Selesai.
LAMPIRAN 7
DESAIN PENGUJIAN
Untuk melakukan pengujian maka perlu adanya konfigurasi
jaringan, berikut konfigurasi jaringan yang digunakan untuk melakukan
ujicoba sistem dan testing.
FS 2
FS 1
FS 3FS 3
FS 1
FS 2
Web 2
Web 1
DB
Berikut merupakan desain pengujian sistem yang digunakan untuk
pengujian sistem, dengan menggunakan 3 file server yang masing-masing
memiliki slavenya dan arsitektur file server ini digunakan oleh 2 web server yang
satu dengan menggunakan webserver, untuk lebih jelasnya berikut
pengalamatan IP yang dipakai :
Kode Komputer IP Operating
System
FS1 File server 1(master) 172.23.9.45 Ubuntu 10.10
FS1 File server 1(slave) 172.23.9.46 Ubuntu 10.10
FS2 File server 2(master) 172.23.9.47 Ubuntu 10.10
135
FS2 File server 2(slave) 172.23.9.48 Windows XP
FS3 File server 3(master) 172.23.9.49 Ubuntu 10.10
FS3 File server 3(slave) 172.23.9.50 Ubuntu 10.10
Web 1 Web Server 1 172.23.9.40 Windows XP
Web 2 Web Server 2 172.23.9.42 Ubuntu 10.10
DB Database server 172.23.9.43 Windows XP
7.1 Pengujian method
7.1.1 Kelas Data User
Fungsi Input Output
isUserExist Username : [email protected]
Password : harry
true
Username :
Password : harry
false
Login Client Username : [email protected]
Password : harry
Berhasil login
Username :
Password : harry
Gagal login
InsertUser Nama : maman
Username :
Password : maman
Insert sucses
Tes isUser exist
Username :
Password : maman
true
updatePassword Id : 15
Username :
Password : maman
Password baru : mamanbaru
Password berubah
menjadi
„mamanbaru‟
deleteAccount Id : 15 Berhasil menghapus
file milik client id 15,
dan menghapus id
client 15 dari table
data user
ViewAllUser void Daftar client yang
terdaftar pada sistem
ini
136
7.1.2 Kelas Index File
Fungsi Input Output
search Katakunci = jpg Daftar file yang
mengandung kata
„jpg‟
Katakunci = isi Daftar file yang
mengandung kata „isi‟
View Id_user = 19 Daftar file yang
dimiliki oleh user
dengan id 19
Find Id user = 19
Kata kunci = test
Daftar file yang
dimiliki oleh user
dengan id 19, yang
mengandung kata
„test‟
Id user = 882
Kata kunci = komputer
Daftar file yang
dimiliki oleh user
dengan id 882, yang
mengandung kata
„komputer‟
indexing Mencoba menyimpan
indek sebuah file
Berhasil menyimpan
index di data base
deleteIndex Delete id index = 17 Keterangan berhasil
dan index user
tersebut terhapus.
deleteIndexAccount Delete id user = 232 Berhasil menghapus
index file milik user
232.
7.1.3 Kelas File Server
Fungsi Input Output
getFreeSpace Sebuah file dengan ukuran
tertentu
Keterangan space
server bila cukup maka
ada keterangan space
mencukupi
sendFile Mengirim sebuah file, ke
file server tertentu
Keterangan berhasil
menyimpan file tersebut
MD5Check Alamat file Menghasilkan milai
md5 sebuah file
deleteFile Alamat file File berhasil dihapus
dan bila berhasil ada
keterangan
penghapusan berhasil
deleteDir Alamat directory Directory berhasil
dihapus dan bila
berhasil ada keterangan
137
penghapusan berhasil
isServer Active 2 bilangan Integer Bila hasil jumlah 2
bilangan benar maka
server aktif
7.1.4 Kelas index Server
Fungsi Input Output
Chose server void IP untuk master dan
slave server
insertIndexServer IP master dan slave
server
Berhasil memasukkan
data dan keterangan
berhasil
listServer void Daftar semua file
server, master dan
slave server
isServerExis Ip master dan slave
server
True maka terdaftar
dan false maka server
belum terdaftar
listDeleteServer(String
id)
Id user Daftar file server
yang digunakan oleh
id user tersebut
Mark server Ip master dan slave
server
void
7.1.5 Kelas report
sendReport Report : server tidak bisa
diakses
Report masuk, dan
keterangan berhasil
menyimpan report
viewReport void Daftar semua report
yang pernah dikirim
deleteReport Id = 12 Report dengan id 12
terhapus dan
keterangan berhasil
7.1.6 Kelas admin
Fungsi Input Output
Login Admin Username : harry
Password : harry
Berhasil login
Username : harry
Password : bukanharry
Gagal login
7.2 Pengujian Usecase
7.2.1 Client
Fungsi Input Output
Register Mendaftar dengan email Bisa terdaftar dan
138
langsung masuk ke sistem
Login Client Memasukkan username dan
password
Bisa masuk kedalam
sistem
view Memilih menu view Daftar file yang pernah di
ungah user tersebut
search Memilih menu search dan
memasukkan kata kunci
Daftar file yang nama
atau metadatanya
mengundung kata kunci
Download Memilih file yang di download File yang ada di file
server berpindah ke sisi
client
Upload Memilih file yang diupload File yang ada di client
bepindah berpindah ke
sisi file server
Delete Memilih file yang didelete File yang ada di file
server berpindah ke
Change
Password
Memilih ubah password, dan
memasukkan password baru
Password berubah, bisa
login dengan password
baru
7.2.2 Admin
Fungsi Input Output
Login Client Memasukkan username dan
password
Bisa masuk kedalam
sistem
Add Server Menginstal file server pada
komputer dengan ip tertentu,
lalu memasukkan ip tersebut
pada form add server
File server dapat di akses
dan berhasil
menambahkan server baru
Change Server IP baru Sistem menyimpan dan
mengunduh file pada IP
file server yang baru
Monitoring
Server
Memilih menu monitoring
server
Menampilkan daftar file
server dan menampilkan
keterangan server yang
tidak bisa diakses
Change
Password Client
Memilih client yang akan
diubah dan memasukkan
password baru
Password client berubah,
dan hanya bisa login
dengan password yang
baru
Delete Account Memilih client yang didelete File yang ada di file
server milik client
terhapus dan index client
juga terhapus, client tidak
bisa login lagi.
View Report mendownload file pada file
server tertentu namun file
server tersebut dimatikan
Akan ada report baru
bahwa server tersebut
tidak bisa diakses
139
7.3 Pengujian Beta
Pengujian pada tahap ini adalah untuk menguji sistem ini pada penguna
terbatas secara langsung, pengujian ini untuk mendapatkan kesalahan atau bug
yang ada pada sistem yang belum ditemukkan sebelumnya dan mencari masukan
dari pengguna akan sistem yang dibuat.
Ini merupakan desain pertanyaan pada kuisioner yang akan dibagikan
No. Penilaian Hasil
1 Menu program dan kejelasan menu
2 Tampilan program secara
keseluruhan
3 Apakah bisa mendaftar
4 Apakah bisa login
5 Apakah bisa upload
6 Bagaimana kecepatan upload
7 Apakah bisa download
8 Bagai mana kecepatan download
9 Apakah bisa delete melakuka delete
file
10 Saran lain
No Penilaian Hasil
1 Menu program dan kejelasan menu
2 Tampian program secara keseluruhan
3 Apakah bisa mengganti password
client
4 Apakah bisa menambah server
5 Apakah bisa melihat server yang mati
dan hidup
6 apakah bisa menghapus account
7 Saran lain
LAMPIRAN 8
IMPLEMENTASI ANTAR MUKA/ INTERFACE
8.1 Interface Client
Menu utama yang terdiri dari home, search, view, password dan
logout. Pada menu home merupakan menu untuk ke halaman utama untuk
melakukan login maupun mendaftar pada sistem, menu search merupakan
menu untuk melakukan pencarian file, menu view merupakan menu untuk
melihat, mengungah, mengunduh, dan menghapus file, menu password
merupakan menu untuk mengubah password, menu logout merupakan menu
untuk mengakhiri sesi penggunaan aplikasi ini
Gambar dibawah ini adalah tampilan home page sistem, merupakan
halaman awal sistem, pada halaman ini client bisa mendaftar maupun login
kesistem.
Pada gambar dibawah ini adalah halaman home saat client
menjalankan melakukan login mendaftar sebagai user baru, untuk
melakukan login maupun register client memilih button login.
141
Pada gambar dibawah ini adalah interface untuk pencarian, dalam
pencarian sistem akan melakukan pencarian di database index file dan
menampilkan dalam bentuk table, dalam menampilkan daftar pencarian
sistem akan membatasi daftar file yang ditampilkan maksimal 100 file.
Dibawah ini merupakan interface yang berisi melihat, mengungah,
mengunduh dan menghapus file. Isinya adalah table yang menampilkan
daftar file yang pernah di ungah oleh client, juga memiliki fungsi find yang
digunakan untuk mencari file yang pernah di ungah oleh client, pencarian
berdasarkan kata kunci yang dimasukkan kemudian dicocokan dengan nama
dan metadata file yang disimpan di database.
142
Gambar dibawah merupakan tampilan hasil pencarian saat
menjalankan fungsi find (pencarian).
Pada gambar dibawah ini adalah interface untuk mengungah file,
untuk menjalankan memilih tombol upload maka akan menampilkan popup
untuk memilih file dan memasukkan meta data.
143
Pada gambar dibawah ini adalah interface untuk melakukan
download (pengunduhan), untuk melakukan pengunduhan dapat lakukan
pencarian atau melihat file yang pernah diunggah, lalu memilih file dan
akan ada tombol download untuk melakukan pengunduhan file tersebut
Bila memilih tombol download maka sistem akan membuka
halaman baru yang akan mendownload file secara otomatis, bila file yang
ada di master tidak bisa di akses maka akan menampilkan download link
dari slave server, dan bila kedua server tidak bisa diakses maka akan
menampikan keterangan bahwa server sementara tidak bisa diakses
144
Pada gambar dibawah merupakan interface menghapus file, untuk
menghapus file terlebih dahulu harus melihat file user tersebut yaitu use
case view agar bisa memilih file mana yang akan dihapus, untuk menghapus
maka client memilih tombol hapus yang ada di table daftar file tersebut,
maka sistem akan menghapus file yang disimpan di file server juga. Dan
akan menampilkan keterangan hasil penghapusan.
Gambar dibawah merupakan interface untuk menganti password,
user memilih menu password dan sistem akan menampilkan keterangan user
tersebut dan textfield untuk memasukkan password yang baru. Maka saat
client menekan tombol change sistem akan mengubah sesuai dengan data
yang diisikan di textfield.
145
Di bawah ini merupakan halaman help, bila ada yang kesulitan untuk
menggunakan program tersebut maka dapat langsung membuka halaman
help
8.2 Interface Admin
Gambar berikut merupakan tampilan halaman pertama admin yaitu
halaman login. Saat admin belum melakukan login maka semua menu akan
tertutup, setelah login baru admin bisa menjalankan fungsi-fungsi admin.
Gambar dibawah ini merupakan halaman home admin, berisi menu
untuk menambah server, monitoring server, melihat report, management
account dan logout. Untuk menu management account ini digunakan untuk
mengubah password client dan menghapus client.
146
Gambar dibawah ini adalah halaman untuk menambah server baru.
Untuk menambahkan file server baru maka user memasukkan IP master
dan slave lalu makilih tomol add. Pada halaman ini memiliki handling
tidak bisa bila memasukkan selain angka, memasukkan hanya 1 IP file
server saja, dan memasukkan IP master dan slave sama.
Gambar dibawah ini adalah keterangan bila IP server yang
dimasukkan tidak bisa diakses, apabila IP yang dimasukkan bisa di akses
maka penambahan server berhasil, sistem ini juga memiliki eror handling
bila menambahkan server yang sudah terdaftar akan menampilkan
keterangan ip mana yang sudah terdaftar.
147
Pada gambar dibawah ini merupakan halaman monitoring server,
halaman ini digunakan untuk menjalankan usecase monitoring server,
yaitu menampilkan semua file server yang dimiliki oleh sistem
penyimpanan. Monitoring server ini memiliki fungsi untuk melakukan
check server, yaitu melihat apakah file server dapat diakses dengan
memilih tombol check dan sistem akan menampilkan daftar keterangan
file yang bisa dan tidak bisa diakses.
Gambar dibawah ini merupakan interface untuk melihat report,
yaitu untuk menampilkan keterangan error yang terjadi saat proses upload
maupun download, admin juga bisa menghapus report dengan memilih
tombol delete report, sehingga bila report sudah dibaca oleh admin dapat
langsung dihapus.
Gambar dibawah ini merupakan interface manage user, yaitu untuk
mengubah password client dan menghapus client. Bila ingin mengubah
password maka memilih client yang akan diubah, dan memasukka
password di textfield ubah password lalu memilih tombol change
password, sedangkan untuk menghapus admin memilih user yang akan
dihapus dan memilih tombol delete.
148
LAMPIRAN 9
HASIL PENGUJIAN
9.1 Pengujian method
9.1.1 Kelas Data User
Fungsi yang digunakan untuk menguji method dalam kelas data user
public class data_user {
public static void main(String[] args) throws SQLException {
// =========================== test data_user
====================
System.out.println("==== Test Login 1 ===");
dataUser user1 = new dataUser("harry", "[email protected]", "harry");
ResultSet rsUser2 = dataUser.login(user1); // menghasilkan resulset bila
terdaftar
if (rsUser2.next()) {
System.out.println("Berhasil Login");
} else {
System.out.println("Gagal Login");
}
System.out.println("==== Test Login 2 ===");
dataUser user2 = new dataUser("harry", "[email protected]", "harry");
rsUser2 = dataUser.login(user2); // menghasilkan resulset bila terdaftar
if (rsUser2.next()) {
System.out.println("Berhasil Login");
} else {
System.out.println("Gagal Login");
}
//===========================isUser exist====================
dataUser test2 = new dataUser();
System.out.println("==== Test isUserExist 1 ===");
System.out.println("nama = harry, username = [email protected],
password = harry");
System.out.println(dataUser.isUserExist("[email protected]")); // return true
bila terdaftar
System.out.println("==== Test isUserExist 2 ===");
System.out.println("nama = harry, username = [email protected]
password = harry");
System.out.println(dataUser.isUserExist("[email protected]")); //
return true bila terdaftar
150
//===========================insert user====================
dataUser userInsert = new dataUser("maman", "[email protected]",
"maman");
System.out.println("==== insertUser() ===");
System.out.println("nama = maman, username = [email protected],
password = maman");
dataUser.insertUser(userInsert); // return true bila insert berhasil
System.out.println("==== Test isUserExist 'maman' ===");
System.out.println("nama = maman, username = [email protected],
password = maman");
System.out.println(dataUser.isUserExist("[email protected]")); //
return true bila terdaftar
//===========================update
password====================
dataUser test1 = new dataUser();
System.out.println("==== change password ===");
System.out.println("id = 15, nama = maman, username =
[email protected], password = mamanbaru");
test1.updatePasswd(user1);// return true bila update berhasil
//===========================delete account
password==============
System.out.println("==== menghapus client ===");
System.out.println("id = 15, nama = maman, username =
[email protected], password = mamanbaru");
dataUser.deleteAccount(Integer.valueOf(user1.getId()));// retune true bila
proses hapus berhasil
}
//=========================== list all user ==============
System.out.println("==== test list all user =====");
while (viewAllUser.next()) {
System.out.print ("Nama "+viewAllUser.getString(2));
System.out.println(" || Email "+viewAllUser.getString(2));
}
151
Hasil Pengujian
isUserExist
Fungsi berikut ini adalah fungsi untuk melakukan cek apakah user tersebut
Login
InsertUser
updatePassword
deleteAccount
View all user
152
9.1.2 Kelas Index File
Fungsi yang digunakan untuk menguji method dalam kelas Index File
public static void main(String[] args) throws SQLException {
//======================test search====================
indexFile id = new indexFile();
ResultSet search = indexFile.search("isi");
System.out.println("==== Test Search ===");
System.out.println("Daftar pencarian file untuk katakunci = 'isi'");
while (search.next()) {
System.out.println("file : "+search.getString(2));
}
//===========================test view====================
ResultSet find = indexFile.find("komputer","882");
System.out.println("==== Test view ===");
System.out.println("pencarian 'komputer' '882'");
while (find.next()) {
System.out.println("file : "+find.getString(2));
}
//========================test indexing====================
indexFile ide = new indexFile();
System.out.println("==== Test Indexing ===");
indexFile.indexing(ide);
//=======================test delete index================
indexFile del = new indexFile();
System.out.println("==== Test delete index ===");
indexFile.deleteIndex("17");
//==============test delete index account================
indexFile delin = new indexFile();
System.out.println("==== Test delete Account Index ===");
boolean deleteIndexAccount = indexFile.deleteIndexAccount("12");
}
153
Hasil Pengujian
search
View Index
Find
indexing
154
deleteIndex
deleteIndexAccount
9.1.3 Kelas File Server
Fungsi yang digunakan untuk menguji method dalam kelas File Server
public class test {
public static void main(String[] args) throws RemoteException, Exception {
fileServer serv = new fileServer();
System.out.println("==== Test lihat free space ===");
serv.getFreeSpaces(3000);
System.out.println("==== Test delete file ===");
System.out.println("id : 19, file : 100_1798.JPG");
boolean deleteFile = serv.deleteFile("19", "100_1798.JPG");
System.out.println("==== Test MD5 ===");
String md = "d:\\hari.xls";
serv.MD5check(md, "2a83409a239ff029b30e3c238c2e45ba");
System.out.println("==== Test delete directory ===");
File path = new File("d:\\RMI2\\aku");
System.out.println("delete : d:\\RMI2\\aku");
serv.delDir(path);
System.out.println("Delete berhasil");
System.out.println("==== Test is Server aktif ===");
serv.isServerActive(10, 10);
}
}
155
Hasil Pengujian
getFreeSpace
sendFile
MD5
deleteFile
deleteDir
isServer Active
156
9.1.4 Kelas index Server
Fungsi yang digunakan untuk menguji method dalam kelas index server
public class index_server {
public static void main(String[] args) throws SQLException {
//===========================test view====================
indexServer id = new indexServer();
System.out.println("==== Test Chose server ===");
ResultSet choseServer = indexServer.choseServer();
System.out.println("Master : " + choseServer.getString(2));
System.out.println("slave : " + choseServer.getString(3));
//===================test insert index Server=============
System.out.println("==== Test insert index Server ===");
System.out.println("insert IP : 192.168.10.20 dan 192.168.10.20");
indexServer id2 = new indexServer("192.168.10.20", "192.168.10.20");
indexServer.insertIndexServer(id2);
//=====================test List Server====================
System.out.println("==== Test List Server ===");
ResultSet listServer = indexServer.listServer();
while (listServer.next()) {
System.out.println("master : " + listServer.getString(2) + ", slave : " +
listServer.getString(3));
}
//====================test is Server Exist==============
System.out.println("==== test in server exist ===");
String listServerw = indexServer.isServerExist("192.168.10.20",
"192.168.10.23");
//=====================list delete server============
System.out.println("==== list delete server ===");
ResultSet listServ = indexServer.listDeleteServer("5");
ResultSet listServ2 = indexServer.listDeleteServer("7");
//==================Test mark server====================
System.out.println("==== Test mark server ===");
indexServer.markServer("192.168.10.20", "192.168.10.20");
}
}
157
Hasil Pengujian
Chose server
insertIndexServer
listServer
isServerExis
listDeleteServer(String id)
Mark server
9.1.5 Kelas report
Fungsi yang digunakan untuk menguji method dalam kelas index server
public class report_ {
public static void main(String[] args) throws SQLException {
//======================test view report====================
System.out.println("==== Test view report ===");
ResultSet viewReport = report.viewReport();
while (viewReport.next()) {
System.out.println(viewReport.getString(2));
}
//=====================test delete report====================
report test1 = new report();
System.out.println("==== Test delete report ===");
boolean deleteReport = report.deleteReport(12);
158
//=====================test send report====================
report test2 = new report();
System.out.println("==== Test send report ===");
report.sendReport("report : server tidak bisa diakses");
}
}
sendReport
viewReport
deleteReport
9.2 Pengujian Use Case
9.2.1 Register
Pada percobaan ini dilakukan test untuk mendaftarkan sebuah
account, maka checkbox account baru harus di centang. Proses yang
berikutnya terjadi terjadi dalam sistem akan mendaftarkan user tersebut, bila
pendaftaran berhasil maka akan langsung login ke sistem .
159
9.2.2 Login Client
Untuk tes berikut adalah mencoba login untuk user yang sudah
terdaftar pada sistem, maka mencoba untuk langsung memasukkan username
dan password
Berikutnya mencoba untuk memasukkan username dan password
yang salah, maka sistem akan memberikan keterangan username dan
password yang digunakan salah
9.2.3 View
Use case view adalah untuk melihat semua file milik user yang sudah
pernah di upload, dalam use case view juga memiliki fitur find (pencarian),
dalam fitur pencarian ini digunakan untuk mencari file milik user tersebut
yang sesuai dengan katakunci pencarian, sistem akan melakukan
perbandingan kata kunci nama file dan metadata file
160
Gambar dibawah ini saat menjalankan fungsi find (pencarian),
maka yang tampil adalah daftar file yang tampil sesuai dengan katakunci.
9.2.4 Search
Usecase search merupakan fungsi untuk mencari semua file yang
ada, pencarian berdasarkan database sehingga lebih cepat untuk
menemukanya, dalam pencarian menggunakan perbandingan dengan nama
file dan meta data, use case search ini digunakan untuk mencari file maka
file hasil pencarian akan ditampilkan beserta tombol downloadnya, client
yang belum login maka hanya dapat melakukan pencarian dan tidak bisa
mengunduh file.
9.2.5 Upload
Use case upload berikut merupakan fungsi yang digunakan untuk
mengungah file, pada percobaan ini mengungah sebuah file gambar . maka
161
file akan dikirim ke web server, dan dari web server akan menjalankan
thread yang akan melakukan proses upload, dalam proses upload ini file
akan dikirim bersamaan ke file server. Bila proses ungah berhasil maka akan
dilakukan indexing.
Pada daftar index file akan menampilkan keterangan dari file,
termasuk MD5 file yang bisa digunakan pada saat user ingin melakukan
check apakah file yang di unduh benar.
9.2.6 Download
Berikut merupakan use case download, download merupakan proses
pengunduhan file dari file server, dibawah ini hasil pengunduhan file yang
tadi sudah di upload. Saat melakukan proses download sistem akan
melakukan check terlebih dahulu pada file server yang menyimpan file
tersebut, bila master server tidak bisa diakses maka akan mangalihkan pada
slave server secara otomatis, bila ternyata kedua buah server tidak bisa
diakses maka akan menampilkan keterangan bahwa file server tidak bisa
diakses.
162
9.2.7 Delete
Tes berikutnya adalah melakukan test menghapus file dalam proses
penghapusan ini dilakukan dari website, untuk melihat apakah penghapusan
berjalan dengan benar maka di file server dilakukan cek dan file memang
bisa terhapus.
Gambar diatas adalah file yang ada di file server.
Gambar dibawah ini setelah file server di hapus, maka di file server
terhapus juga.
163
9.2.8 Login Admin
Percobaan login ini untuk mencoba apakan fungsi login ini berjalan
dengan benar, pada saat menjalankan use case login admin maka sistem
akan membandingkan masukan dengan table admin. Untuk pengujian ini
mencoba memasukkan username dan password yang benar dan hasilnya
seperti berikut.
Mencoba menasukkan username “harry”, password “harry”,
Hasilnya bisa masuk ke menu utama dan bisa mengakses semua
menu
Untuk percobaan login kedua ini adalah untuk menguji dengan
memasukkan password dan username yyang salah, berikut hasilnya
Mencoba menasukkan username “harry”, password “bukanharry”,
sebagai contoh password yang salah
164
Hasilnya percobaan tidak bisa masuk ke sistem karena password
yang salah, sistem menampilkan kembali halaman login dan pesan bahwa
password dan username salah.
9.2.9 Change Password
Percobaan change password ini adalah mencoba mengubah password
user tersebut, pada percobaan update password ini maka user memasukkan
password, dan sistem akan melakukan pengubahan password client tersebut,
bila sest terjadi pengubahan password gagal maka akan menampilkan
keterangan gagal, sedangkan bila proses berhasil akan menampilkan
keterangan berhasil
9.2.10 Add Server
Use case add server ini merupakan fungsi untuk menambah file
server baru, bila file server sudah terdaftar maka akan menampilkan
keterangan bahwa server sudah terdaftar, yang terjadi dalam sistem adalah
melakukan tes koneksi ke IP server yang di tambahkantersebut dalam proses
ini bila tes koneksi berhasil maka akan menampilkan keterangan kerhasil
dan hasilnya dapat dilihat pada use case monitoring server.
165
9.2.11 Monitoring Server
Usecase berikutnya adalah monitoring server, usecase ini digunakan
untuk melihat semua file server yang dimiliki, dalam use case ini memiliki
fungsi untuk melakukan check apakah file server bisa diakses dan bisa
digunakan untuk menyimpan, bila tidak bisa di akses maka akan
menampilkan keterangan error, sehingga admin bisa langsung melakukan
tindakan langsung pada file server.
9.2.12 Delete Account
Use case ini merupakan fungsi untuk menghapus user beserta semua
file yang pernah di ungah, maka yang dilakukan sistem adalah menghubungi
semua file server yang menyimpan file milik user tersebut dan dilakukan
penghapusan, bila penghapusan berhasil maka akan data user dalam database
baru dihapus.
166
Setelah id client 4 dihapus maka hilang dari daftar user, dan semua
file milik user dengan id 4 yang disimpan di file server akan terhapus, bila
penghapusan file belum semuanya maka index file belum dihapus, index
file akan dihapus setelah semua file berhasil dihapus dan user tersebut juga
akan dihapus dari table data user.
9.2.13 Change Password Client
Use case ini digunakan untuk mengubah password milik client, saat
use case ini dijalankan maka sistem akan mengubah data user tersebut sesuai
dengan password yang di masukkan.
167
9.2.14 View report
Use case view report ini digunakan untuk melihat error report yang
pernah terjadi saat melakukan upload maupun download, use case ini
digunakan agar admin dapat memantau kesalahan-kesalahan yang pernah
terjadi saat mengakses file server, sehingga dapat dilakukan tindakan
selanjutnya agar sistem dapat selalu berjalan dengan lancar.
9.3 Pengujian Beta
Setelah melakukan pengujian beta ini didapatkan beberapa kekurangan
yang terjadi pada sistem
1. Sistem ini belum memiliki help, sehingga penulis menambahkan
menu help di setiap halaman
2. Sistem ini memiliki kekurangan secara tampilan, beberapa tombol
kurang jelas, dan belum ada tooltip di semua menu. Sehingga penulis
melakukan perbaikan di bagian tampilan agar lebih sesuai
3. Sistem ini memiliki bug yaitu proses pengunggahan data terkadang
lama untuk client tertentu, setelah diteliti ternyata bug program
terdapat pada code yang diguiankan untu melakukan cek apakan
thread upload sudah berhasil melakukan upload ternyata memakan
resource procesor. Pada gambar dibawah ini adalah hasil capture
procesor yang selalu tinggi pada saat mengungah file.
168
Gambar dibawah ini adalah hasil capture kecepata n upload pada
jaringan LAN pada saat mengungah file tersebut.
Maka dari percobaan tersebut didapatkan kesimpulan kecepatan
transfer LAN adalah kira-kira 5MB/second. Sehingga penulis
memperhitungkan untuk menggunakan sleep dengan kelipatan 5 MB
sebagai interfal setiap second.
4. Sistem ini belum bisa menganti server bila mengalami kerusakan,
atau IP file server bila file server tersebut error, juga belum memiliki
fitur hapus file server. Berdasarkan masukan diatas maka penulis
169
menambahkan fitur untuk mengubah IP file server agar memudahkan
dalam maintains server file.
Maka dalam entity index server ditambahkan satu fungsi
untuk menganti alamat IP file server dengan menambahkan fungsi
ini maka IP file server dapat diganti bila memang perlu dilakukan,
namun konsekuensi dari fitur ini adalah data-data yang ada di file
server sebelumnya harus dipindahkan secara manual dan dilakukan
instalasi pada IP yang baru. Berikut merupakan query yang
digunakan untuk mengubah IP file server
Method :
Public static boolean ChangeIPServer(indexserver id)
Query:
UPDATE `storage`.`indexserver` SET `master` = 'master' , `slave`
= 'slave' , `update` = NOW() WHERE `id_server` = 'id_server' ;
LAMPIRAN 10
INSTALASI
10.1. Prosedur Instalasi
Untuk menjalankan sistem ini perlu menjalankan instalasi dan
perawatan. Pada tahap instalasi adalah memasangkan aplikasi pada komputer
yang akan digunakan agar sistem dapat berjalan dengan baik. Sedangkan pada
proses perawatan untuk menjaga sistem dapat berjalan dengan baik maka
perlu makakukan cek secara bertahap pada kondisi hardware setiap
minggunya, dan tools report server merupakan peringatan dini dari sistem bila
ada kerusakan maka report server ini perlu di cek setiap hari agar saat sistem
mengalami kerusakan dapat langsung diketahui.
10.1.1. Instalasi File Server
Kelengkapan File Server
Tomcat apache-tomcat-7.0.16.tar.gz Tomcat versi 7.0.16 untuk
linux
apache-tomcat-7.0.4.exe Tomcat versi 7.0.4. untuk
linux
File server File server.jar File server untuk
dijalankan di linux
FileServer.exe File server untuk
dijalankan di windows
Library commons-logging-api-
1.1.1.jar
Interface.jar
rmiio-2.0.2.jar
1. Instalasi tomcat di linux
171
Gambar diatas merupakan script untuk menginstal tomcat pada ubuntu
Untuk menjalankan dan mematikan tomcat maka menggunakan cara
seperti gambar diatas.
2. Instalasi tomcat di windows
Dibawah merupakan tampilan awal saat instalasi tomcat. Lalu pilih
next terus dan ikuti perintah yang ditampilkan
Klik I Agree pada apache license
172
Pilih paket yang diinstall
Untuk tampilan berikut ini merupakan tampilan untuk untuk setting
port tomcat, maka masukkan 80, karena merupakan port default web
server.
173
Bila sudah selesai maka untuk menjalankan tomcat, buka tomcat
manager pada start menu lalu jalankan server dengan memilih tombol
start.
Tampilan saat memulai menjalankan tomcat
174
3. Menjalankan File Server di linux
Setelah tomcat sudah bila dijalankan maka perlu
pengaturan hostname untuk instalasi di linux, Setting hostname ini
digunakan agar sistem RMI Server di linux tidak me-rebind
hostnamenya, namun yang di-rebind adalah IP server tersebut,
sehingga file server dapat di akses oleh komputer lain.
Yang dibutuhkan untuk instalasi library dan .jar aplikasi file server
tersebut
Library yang di perlukan agar sistem dapat berjalan
Untuk linux menggunakan .jar file yang dijalankan dengan
terminal dan memasukkan script seperti gambar dibawah ini
175
4. Menjalankan File Server Di Windows
Untuk instalasi di windows menggunakan .exe file dan
library, untuk menjalankan file dengan 2kali klik pada tersebut
maka akan membuka terminal baru yang menunjukkan bahwa
server telah berjalan
5. Men-deploy web server
Proses deploy .war file ini antara sistem operasi linux
maupun windows sama saja karena pengaturannya di tangani oleh
tomcat. Pertama membuka alamat server dengan memasukkan IP
pada web browser, maka akan tampil halaman tomcat. Untuk men-
deploy maka memilih menu Manager App, lalu memilih deploy
war file
Lalu memasukkan war file hasil compile dari program
176
Bila sudah bisa maka akan tampil dalam daftar server yang aktif
pada tomcat.
10.1.2. Instalasi Web Server(Aplication Server)
Kelengkapan Web Server
Tomcat apache-tomcat-7.0.16.tar.gz
apache-tomcat-7.0.4.exe
Web Server ThinkShare.war
MySql Server mysql-essential-5.0.22-win32.msi
1. Instalasi MySql Server untuk menyimpan data base
Pilih fitur yang akan diinstall pada mysql server
177
Ada 2 kemungkinan pengaturan yang bisa digunakan untuk setting
web server ini. Bila web server bergabung dengan MySql Server maka
pilih Server Machine, sedangkan bila MySql Server menggunakan
komputer sendiri maka memilih Dedicate MySql Server Machine, Pilih
next terus hingga proses selesai.
Pilih jenis database yang akan digunakan
Pilih port untuk koneksi ke MySql server
178
Setelah selesai tahap instalasi maka melakukan restore database ke
MySql server Untuk mengatur koneksi ke database karena memiliki
dimungkinkan memiliki database server sendiri maka harus ada
pengaturan IP, Port, username dan password agar bisa terkoneksi dengan
database server. Berikut settingan database connectionnya ada pada kelas
DBConnection.java
2. Deploy War File Web Server
Langkah ini adalah menaikkan aplikasi pada tomcat web server,
agar bisa diakses oleh melalui web browser. Dengan memasukkan alamat
localhost atau memasukkan IP komputer yang dipasangi tomcat server bila
diakses dari komputer lain, setelah bisa diakses maka memilih menu
Manager App
179
Setelah masuk dengan memasukkan username dan password yang
sesuai pada sat instalasi maka pilih deploy WAR file, lalu memasukkan
WAR file dari project yang telah di compile.
Pilih war file
Setelah berhasil men-deploy maka Web Server ini sudah bisa diakses dan
dijalankan
Gambar di bawah merupakan tampilan awal sistem yang berhasil di-
deploy
180
181
LAMPIRAN KUISIONER
182
183
184
185
186
187
188
189