205
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

SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 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

Page 2: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 3: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

iii

Page 4: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

iv

Page 5: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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……

Page 6: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 7: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 8: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 9: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 10: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 11: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 12: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 13: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 14: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 15: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 16: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 17: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 18: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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:

Page 19: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 20: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 21: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 22: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 23: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 24: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 25: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 26: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 27: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 28: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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)

Page 29: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 30: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 31: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 32: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 33: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 34: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 35: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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)

Page 36: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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 :

Page 37: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 38: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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:

Page 39: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 40: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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),

Page 41: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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,

Page 42: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 43: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 44: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 45: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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-

Page 46: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 47: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 48: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 49: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 50: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 51: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 52: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 53: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 54: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 55: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 56: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 57: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 58: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 59: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 60: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 61: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 62: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 63: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 64: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 65: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 66: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 67: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 68: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 69: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 70: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 71: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 72: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 73: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 74: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 75: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 76: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 77: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 78: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 79: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 80: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 81: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 82: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 83: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 84: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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: -

Page 85: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 86: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 87: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 88: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 89: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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: -

Page 90: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 91: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 92: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 93: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 94: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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”.

Page 95: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 96: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

80

Alternate Course:

Conclusion: Dalam proses ini melakukan proses lihat dari database report

Postcondition: Admin berhasil melihat atau menghapus report.

Business Rules: -

Assumptions: -

Page 97: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 98: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 99: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 100: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 101: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 102: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 103: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 104: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

88

3.12 Activity Diagram Monitoring Server

SistemAdmin

Memilih tombol cek server Melihat daftar index server

Daftar server aktifTes koneksi pada

Semua server

Page 105: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 106: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 107: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 108: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 109: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 110: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 111: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 112: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 113: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 114: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 115: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 116: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 117: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 118: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 119: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 120: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 121: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 122: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

106

Report Frame reportSistem Border

Admin memilih

Menu report

Delete()Admin bisa melihat dan

Menghapus report

Report Controler

Delete()

list file

View()

true

true

Page 123: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 124: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 125: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

LAMPIRAN 6

ATRIBUT DAN METHOD

Page 126: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 127: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 128: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 129: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 130: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 131: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 132: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 133: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 134: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 135: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 136: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 137: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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)

Page 138: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 139: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 140: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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;

Page 141: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 142: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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`

Page 143: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 144: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 145: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 146: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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 {

Page 147: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 148: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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")

Page 149: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 150: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 151: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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 :

[email protected]

Password : harry

false

Login Client Username : [email protected]

Password : harry

Berhasil login

Username :

[email protected]

Password : harry

Gagal login

InsertUser Nama : maman

Username :

[email protected]

Password : maman

Insert sucses

Tes isUser exist

Username :

[email protected]

Password : maman

true

updatePassword Id : 15

Username :

[email protected]

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

Page 152: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 153: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 154: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 155: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 156: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 157: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 158: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 159: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 160: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 161: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 162: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 163: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 164: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

148

Page 165: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 166: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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));

}

Page 167: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

151

Hasil Pengujian

isUserExist

Fungsi berikut ini adalah fungsi untuk melakukan cek apakah user tersebut

Login

InsertUser

updatePassword

deleteAccount

View all user

Page 168: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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");

}

Page 169: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

153

Hasil Pengujian

search

View Index

Find

indexing

Page 170: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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);

}

}

Page 171: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

155

Hasil Pengujian

getFreeSpace

sendFile

MD5

deleteFile

deleteDir

isServer Active

Page 172: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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");

}

}

Page 173: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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);

Page 174: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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 .

Page 175: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 176: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 177: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 178: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 179: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 180: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 181: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 182: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 183: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 184: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 185: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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' ;

Page 186: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 187: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 188: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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.

Page 189: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 190: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 191: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 192: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 193: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 194: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 195: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

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

Page 196: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

180

Page 197: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

181

LAMPIRAN KUISIONER

Page 198: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

182

Page 199: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

183

Page 200: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

184

Page 201: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

185

Page 202: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

186

Page 203: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

187

Page 204: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

188

Page 205: SISTEM PENYIMPANAN DATA TERDISTRIBUSI PADA WEB …

189