FILE ONLINE
Diajukan Oleh :
EKO WAHYU APRILIANTO
NPM : 0434010286
JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNOLOGI INDUSTRI
UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN”
JAWA TIMUR
Puji syukur atas ke hadirat Tuhan Yang Maha Esa atas segala limpahan
Karunia-Nya sehingga dengan segala keterbatasan waktu, tenaga dan pikiran yang
dimiliki penyusun, akhirnya penyusun dapat menyelesaikan Tugas Akhir yang
berjudul “MEMBANGUN LAYANAN PENYEDIA PENYIMPANAN FILE
ONLINE” tepat waktu. Ucapan terima kasih kepada Bapak Prof.DR.Ir.H.
Akhmad Fauzi, MMT selaku pembimbing utama Tugas Akhir dan Bapak
Abdullah fadil, S. Kom selaku pembimbing pendamping dalam pembuatan Tugas
Akhir ini.
Skripsi dengan beban 4 SKS ini disusun guna diajukan sebagai salah satu
syarat untuk menyelesaikan program Strata Satu (S1) pada jurusan Teknik
Informatika, Fakultas Teknologi Industri, UPN ”VETERAN” Jawa Timur.
Melalui Skripsi ini penyusun merasa mendapatkan kesempatan besar
untuk memperdalam ilmu pengetahuan yang diperoleh selama di bangku
perkuliahan. Namun, penyusun menyadari bahwa Skripsi ini masih jauh dari
sempurna. Oleh karena itu penyusun sangat mengharapkan saran dan kritik dari
para pembaca untuk pengembangan aplikasi lebih lanjut.
Surabaya, November 2010
(Penulis)
iii ini, penyusun telah menuai banyak bantuan dan dukungan dari banyak pihak, untuk itu
pada kesempatan yang sangat berharga ini penyusun mengucapkan terima kasih untuk
semua pihak yang telah berjasa buat penyusun dan ucapan ini penyusun berikan kepada :
1. Bapak dan Ibu dirumah yang selalu memberi bimbingan moril, spiritual, materiil
dan kasih sayang serta tidak henti-hentinya memberikan doa agar semua lancar
dan sehingga terselesaikanya Skripsi ini.
2. Bapak Basuki Rahmat, Ssi, MT selaku Ketua Jurusan Teknik Informatika.
3. Bapak Prof. Dr. Ir. H. Achmad Fauzi, MMT selaku Dosen Pembimbing I
sekaligus Dosen Wali yang dengan sangat tulus meluangkan waktunya untuk
membimbing penyusun demi selesainya skripsi ini.
4. Bapak Abdullah Fadil, S.Kom selaku dosen pembimbing II yang mana selalu
mengarahkan dalam perancangan skripsi ini.
5. Bapak Ir. Kemal Wijaya, MT, Bapak Barry Nuqoba, S.Si, M.Kom, dan Bapak
Delta Ardy Prima, S.ST selaku Dosen Penguji Skripsi yang telah memberi banyak
masukan serta wawasan baru untuk memperbarui susunan dari skripsi penyusun.
6. Bapak IR. Mu`tasim Billah, MSI. selaku Wakil Dekan 1 yang selalu memberikan
bantuan dan arahan untuk menyelesaikan segala keperluan administrasi kampus.
7. Bapak Christia Aji Putra, S.Kom selaku PIA yang bersedia meluangkan waktunya
iv
penyusun selama proses pengerjaan skripsi sehingga selesai dan Juanda Group
special to Minggus yang memberikan tempat serta mediator yang sangat
bermanfaat bagi penyusun,
9. Buat semua yang ikut andil dalam proses ini, M. Faizal Baktimu selalu dikenang,
Pengorbananmu Selalu diingat, Karyamu selalu dihargai dan patut dipuji, Editor
Cahyo dBotax, yang memberiku jawaban dari pertanyaan yang sering terlintas.
Seksi penerangan Apryan Wedhus Budiharto yang selalu member informasi
terbaru di kampus, dan semua yang telah ikut andil maaf jika tidak bisa
menyebutkan satu persatu.
10.Buat semua Mahasiswa kelas parallel D angkatan 04 yang memberi support dan
dukungan. Yang sampai akhir kuliah ini selalu bersama dan membantu satu sama
lain Deni Duro, Ridwan Ceplek, Catur H, Johanes W, Akhmad Ubaidillah, dan
semua kawan yang member support maaf jika tidak bisa menyebutkan satu per
satu. Tapi terima kasih sebanyak-banyaknya. I LOVE U buat kalian.
11.Buat teman seperjuangan Merdeka Kusuma, Wisma Andi, Kurniawan S, Joe dan
semua peserta Ujian Lesan periode II tahun ajaran 2010/2011 yang saling
membantu, kapan kita bisa ketawa lagi dengan bebas.
12.Semua yang telah memberikan aku doa dan semangat masamu tidak akan
i Pembimbing II : Abdullah Fadil, S.Kom
ABSTRAK
Dalam perkembangannya media komunikasi data mengalami perubahan yang begitu cepat. Perkembangan teknologi telah menyebabkan terjadinya perubahan didalam aktivitas manusia sehari-hari, dimana manusia selalu menginginkan segala sesuatunya efisien dan efektif. Manusia mencari inovasi baru dalam penyediaan fasilitas dan sarana penyedia penyimpanan file secara online, sehingga dapat mengakses data dimanapun dan kapanpun selama terhubung dengan koneksi internet.
Pada penelitian Tugas Akhir ini, akan dilakukan pembuatan suatu sistem aplikasi layanan. Sebagai tahap awal pembuatan adalah pengumpulan data/literatur tentang kebutuhan sistem, kemudian dibuatlah sebuah analisa dan perancangan sistem layanan file sharing secara online. Pembuatan file sharing ini berbasis website, mulai dari bahasa pemerograman yang digunakan PHP (Hypertext Preprocessor), Apache sebagai webserver dan database server yang digunakan MySQL untuk media penyimpanan data.
Dengan adanya layanan penyedia penyimpanan file secara online ini, pendistribusian file dari pengguna ke mesin server dan sebaliknya secara aman serta manageable.
v
2.1. Perkembangan Media Penyimpanan... 8
2.4.1.3. Tipe Data String….... ... 26
2.4.1.4. Tipe Data Array….... ... 26
2.4.1.5. Tipe Data Object….... ... 27
BAB III ANALISA DAN PERANCANGAN SISTEM... 28
3.1. Analisa Sistem …... 28
3.2. Perancangan Sistem ... 28
3.2.1. Deskripsi Umum Sistem... 29
3.2.2. Kebutuhan Sistem... 30
3.2.2.1. CDM (Conceptual Data Model)... 30
3.2.2.2. PDM (Physical Data Model)... 33
3.2.3. Sistem Flow... 38
3.2.4. Interface (Perancangan Antar Muka) ... 44
4.3.4 Data Tabel Premium ... 60
4.3.5 Data Tabel User ... 61
4.3.6 Data Tabel Voucher ... 63
4.3.7 Data Tabel Request ... 63
BAB V UJI COBA DAN EVALUASI ... 65
5.1. Lingkungan Uji Coba... 65
5.2.1. Uji Coba Pada Form Utama Aplikasi ... 65
5.2.2. Uji Coba Pada Form Registrasi ... 66
5.2.3. Uji Coba Pada Form Upload ... 69
5.2.4. Uji Coba Pada Form My Files ... 71
5.2.5. Uji Coba Pada Form File Checker... 72
5.2.6. Uji Coba Pada Form Premium... 74
5.2.7. Uji Coba Pada Form Download Free Member ... 75
5.2.8. Uji Coba Pada Form Download Premium Member ... 77
5.2.9. Uji Coba Pada Form Edit Account User ... 80
5.2.10Uji Coba Pada Form Menu Admin... 82
BAB VI PENUTUP ... 84
6.1. Kesimpulan ... 84
Gambar 3.2 CDM System Layanan Online File Sharing... 31
Gambar 3.3 PDM Database ... 34
Gambar 3.4 Layanan Upload Pada Anymous User ... 39
Gambar 3.5 Layanan Upload / Download Pada Free User ... 40
Gambar 3.6 Layanan Upload / Download Pada Premium User ... 43
Gambar 3.7 Interface Pendaftaran User... 44
Gambar 3.8 Interface Upload ... 45
Gambar 3.9 Interface Link File ... 45
Gambar 3.10 Interface File Checker ... 46
Gambar 3.11 Interface List File ... 47
Gambar 4.1 Form Utama Aplikasi ... 52
Gambar 4.2 Form Pendaftaran User ... 53
Gambar 4.3 Tampilan Antarmuka Upload... 54
Gambar 4.4 Tampilan Antar Muka Link File ... 55
Gambar 5.1 Proses Registrasi Insert Data User ... 66
Gambar 5.2 Notifikasi Password Tidak Sama ... 66
Gambar 5.3 Notifikasi Field Dikosongi... 66
Gambar 5.4 Proses Registrasi Gagal... 67
Gambar 5.5 Proses Registrasi Berhasil ... 68
Gambar 5.6 Halaman Utama User ... 69
Gambar 5.7 Browse File Yang Akan Diupload ... 70
Gambar 5.8 Proses Upload Gagal Limit File Reached ... 70
Gambar 5.9 Halaman Link File ... 71
Gambr 5.10 Halaman List File... 72
Gambar 5.12 Halaman File Checker tidak Valid... 73
Gambar 5.13 Halaman Upgrade Premium Member ... 74
Gambar 5.14 Halaman Upgrade Premium Member Sukses ... 75
Gambar 5.15 Halaman Download Free User ... 76
Gambar 5.16 Limit Speed Download Free Member... 76
Gambar 5.17 Proses Resume Download Galal ... 77
Gambar 5.18 Download File Premium Member... 78
Gambar 5.19 Proses Download File Premium Member ... 78
Gambar 5.20 Proses Download File Premium Member ... 79
Gambar 5.21 Multiple Download Premium Member ... 80
Gambar 5.22 Form Editing Password Account ... 81
Gambar 5.23 Form Editing Password Account Berhasil ... 81
Gambar 5.24 Form Request Penerimaan Premium Member ... 82
1.1. Latar Belakang
Dalam sepuluh tahun terakhir, perkembangan teknologi telekomunikasi
dan teknologi komputer saat ini sudah semakin pesat dan banyak sekali diciptakan
alat-alat teknologi serta aplikasi baru untuk mendukung arus informasi dan
komunikasi, sehingga suatu informasi menjadi lebih mudah diakses dan didapat
oleh banyak orang yang membutuhkan dan menginginkannya. Pesatnya
perkembangan IP (internet protokol) jaringan dan teknologi telah menciptakan
kemungkinan untuk menyiapkan layanan online media center atau penyedia
penyimpanan file online, dengan demikian hampir siapa saja dapat mengakses
data yang diperlukan melalui jaringan internet. Teknologi ini didistribusikan
untuk melibatkan banyak komputer, jaringan dan bandwidth.
Sebagian besar layanan penyimpanan file online menawarkan ruang atau
kapasitas storage berdasarkan ukuran per-gigabyte, serta tak jarang penyedia
layanan file hosting memasukkan ukuran bandwidth kedalam komponen biaya.
Pada layanan penyedia penyimpana file online yang dibangun sebagai tugas akhir
ini, komponen biaya tidak dimasukkan dalam proses registrasi dan pembuatan
account. Biaya yang dikenakan hanya akan dikenakan apabila user terdaftar akan
melakukan proses upgrade level account. Biasanya berdurasi bulanan sampai
tahunan. Beberapa perusahaan menawarkan layanan gratis, dikarenakan
mengandalkan penghasilan yang didapat dari iklan yang terpasang dalam web
penyedia layanan file online tersebut. Beberapa penyedia penyimpanan file online
menggunakan account sebagai autentikasi untuk pengguna layanan file hosting
tersebut. Bagi pengguna yang sudah memiliki acount atau terdaftar sebagai
member pada penyedia media center maka pengguna tersebut akan medapatkan
fasilitas khusus dibandingkan dengan pengguna biasa. Sebagai contoh, yaitu
pemberian kapasitas ruang penyimpanan khusus untuk melakukan upload file
kedalam server layanan penyedia file online sehingga dapat diakses oleh
masyarakat umum serta mendapatkan kapasitas download yang lebih pula
dibandingkan dengan pengguna biasa atau gratis.
Terkadang file yang di-download dan di-upload memiliki batas kapasitas
atau ketentuan yang diberlakukan oleh penyedia layanan penyimpanan file online.
Akan tetapi, pada layanan penyimpanan file online ini, batasan untuk kapasitas
penyimpanan tiap user tidak akan diberikan batasan. Dengan demikian
memberikan kebebasan kepada tiap user terdaftar untuk melakukan upload dan
berbagi file sebanyak mungkin. Untuk proses autentikasi dan proses aktifasi
member dibuat dengan lebih simple tanpa harus repot melakukan verifikasi email
terlebih dahulu. Email dari user nantinya akan digunakan untuk proses aktifasi
pada saat upgrade account.
1.2. Rumusan Masalah
Berdasarkan uraian-uraian dari latar belakang permasalahan maka perlu
adanya pembahasan yang sistematis, permasalahan dapat dirumuskan sebagai
1) Bagaimana membuat sistem layanan penyedia penyimpanan file
online berbasis web pada Ubuntu 9.10 (Karmic).
2) Penggunaan PHP sebagai bahasa pemrograman web untuk proses
accounting, autentikasi dan authorisasi pengguna layanan media
penyimpanan file online.
3) Menetukan besarnya ruang penyimpanan file pada mesin layanan
media penyimpanan file online.
4) Menentukan batas speed limit bandwidth untuk proses download file
yang tersimpan di database.
5) Penentuan hak akses tiap level dari user dalam penggunaan layanan
penyimpanan file online.
1.3. Batasan Masalah
Agar permasalahan terfokus pada suatu permasalahan di atas, maka
diperlukan batasan masalah sebagaimana dibawah ini :
1) Penggunaan Ubuntu 9.10 (Karmic) sebagai sistem operasi pada mesin
server penyedia layananan penyimpanan file online.
2) Menggunakan PHP sebagai bahasa pemrograman web untuk proses
Accounting, Authentikasi dan Authorization.
3) Kecepatan download ditentukan berdasarkan layanan ISP yang
digunakan.
4) Proses perhitungan biaya tidak termasuk ke dalam sistem AAA
5) Semua user dapat mengakses file yang terdapat dalam database
selama memiliki link dari file yang masih valid.
6) Tidak membahas proses akivasi acount dan pembayaran online.
1.4. Tujuan Penelitian
Tujuan dari perancangan dalam membangun server layanan penyedia
penyimpanan file online adalah menyediakan media penyimpanan yang dapat
diakses melalui jaringan internet. Mempermudah pendistribusian file dari
pengguna ke mesin server dan sebaliknya secara aman serta manageable.
1.5. Manfaat Penelitian
Penelitian ini diharapkan mempunyai nilai guna dan manfaat bagi yang
membaca pada umumnya dan penulis khususnya. Selain itu diharapkan :
1) Pengguna layanan penyimpanan file online dapat di manajemen
dengan baik dikarenakan adanya batasan-batasan parameter yang
digunakan pada sistem.
2) Memperoleh pengetahuan baru dalam pengembangan distribusi file
secara efektifitas dan efisiensi dari implementasi server penyedia
layanan penyimpanan file online.
3) Memberikan kemudahan bagi pengguna layanan untuk dapat
mendistribusikan file pengguna dari manapun dan kapanpun selama
1.6. Metode Penelitian
Metode yang dilaksanakan dalam penelitian ini adalah :
1) Study Literatur
Pada tahap ini dilakukan penelusuran terhadap berbagai macam
literatur seperti buku, referensi-referensi baik melalui perpustakaan
mapun internet dan lain sebagainya yang terkait dengan judul
penelitian ini.
2) Analisa Aplikasi
Dari hasil study literatur akan dibuat deskripsi umum mengenai
teknologi penyimpanan file online berbasis opensource di dalam
jaringan internet.
3) Rancang-Bangun Aplikasi
Pada tahap ini dilakukan pembangunan server dengan melakukan
konfigurasi dan pengaturan pada paket-paket yang digunakan,
sehingga nantinya teknologi penyimpanan file online ini bisa
digunakan dan diimplementasikan dengan baik pada infrastruktur
jaringan
4) Uji Coba dan Evaluasi Aplikasi
Pada tahap ini dilakukan uji coba terhadap sistem yang telah
dibangun, apakah sudah sesuai dengan yang diharapkan.
Pada tahap ini dilakukan pembuatan laporan mulai dari study
literatur sampai dengan implementasi, serta penarikan kesimpulan
dan saran.
1.7. Sistematika Penelitian
Sistematika penulisan yang digunakan dalam Tugas Akhir ini adalah
sebagai berikut :
BAB I PENDAHULUAN
Berisi tentang gambaran umum latar belakang penulisan
Tugas Akhir, rumusan masalah, batasan masalah, tujuan
dan sistematika penulisan.
BAB II TINJAUAN PUSTAKA
Membahas tentang teori penunjang dari pembahasan
masalah antara lain tentang komponen-komponen yang
digunakan dalam pembangunan sistem yang dibangun.
BAB III ANALISA DAN PERANCANGAN SISTEM
Bab ini menjelaskan tentang perancangan web layanan jasa
penyimpanan file online dengan menggunakan aplikasi
PHP, NAS (Network Attached Stroage).
BAB IV IMPLEMENTASI SISTEM
Bab ini berisi hasil implementasi dari perancangan aplikasi
membangun server serta pengujian yang dilakukan terhadap
sistem yang telah dibuat.
BAB V PENUTUP
Bab ini akan menjelaskan tentang kesimpulan dari
keseluruhan isi dari laporan dan Tugas Akhir serta
saran-saran untuk pengembangan lebih lanjut.
DAFTAR PUSTAKA
Berisi tentang literatur sebagai teori pendukung
2.1 Perkembangan Media Penyimpanan
Berbicara mengenai komputer maka tidak terlepas dengan media
penyimpanan atau lebih dikenal dengan istilah storage. Artikel ini dan
kelanjutannya akan membahas mengenai storage dan teknologinya.
Perkembangan media penyimpanan atau storage seiring dengan
perkembangan perangkat keras atau hardware lain seperti prosesor. Perkembangan
prosesor khususnya kelas PC (personal computer) kalau kita lihat tingkatannya
sebagai berikut - XT, 286, 386, 486, Pentium I, Pentium II, Pentium III dan
Pentium IV. Kemudian untuk media penyimpanan kalau kita lihat ke tahun-tahun
di belakang. Awalnya kita berbicara mengenai KB (kilo byte = 1024 byte)
kemudian berkembang menjadi MB (Mega byte = 1024 KB). Namun, saat ini
sudah menggunakan GB (Giga Byte = 1024 MB). Bahkan di bidang storage
terutama backup, saat ini sudah mencapai Tera Byte (TB = 1024 GB) dan sedang
dikembangkan teknologi untuk mencapai tingkatan petabyte (1024 TB). Bila
diurutkan sebagai berikut:
Byte - 8 bits
Kilobyte - 1,024 bytes
Megabyte - 1,048,576 bytes - 1,024 KB
Gigabyte - 1,024 MB
Terabyte - 1,024 GB
Petabyte - 1,024 TB
Exabyte - 1,024 PB
Zettabyte - 1,024 XB
Yottabyte - 1,024 ZB
Storage komputer digunakan untuk menyimpan informasi atau lebih
dikenal dengan data. Dan sejalan dengan perkembangan Internet, semua data
digital perlu disimpan dan tersedia apabila diperlukan untuk diakses. Adapun tipe
storage yang umum digunakan untuk menyimpan adalah dengan menggunakan
media magnetic yang memiliki 2 macam format yang berbeda yaitu fixed / tetap,
dan removable atau bisa dibawa / dipindah.
Yang dimaksud dengan fixed media adalah teknologi media storage
dimana head untuk tulis / baca dan medianya (disk platter) dalam satu unit yang
sama contohnya harddisk. Sementara pada removable media, head untuk tulis /
baca terletak pada drive dan cartridge (tape) untuk menyimpan data dan bisa
dibawa atau dipindah contohnya yaitu tape drive dengan tape cartdrige. Media
tape ini dapat dibawa atau disimpan di tempat yang terpisah dari drivenya.
Sejak tahun 1725 telah dirancang sebuah media untuk menyimpan data
yang diperkenalkan oleh seorang tokoh bernama Basile Bouchon menggunakan
sebuah kertas berforasi untuk menyimpan pola yang digunakan pada kain. Namun
pertama kali dipatenkan untuk penyimpanan data sekitar 23 September 1884 oleh
Herman Hollerith - sebuah penemuan yang digunakan lebih dari 100 tahun hingga
pertengahan 1970. Contoh di sini adalah bagaimana sebuah punch card dapat
card), terjadi tahun 1972. Jumlah data yang tersimpan dalam media tersebut
sangat kecil, dan fungsi utamanya bukanlah menyimpan data namun menyimpan
pengaturan (setting) untuk mesin yang berbeda. Sejak tahun 1725 telah dirancang
sebuah media untuk menyimpan data yang diperkenalkan oleh seorang tokoh
bernama Basile Bouchon menggunakan sebuah kertas berforasi untuk menyimpan
pola yang digunakan pada kain. Namun pertama kali dipatenkan untuk
penyimpanan data sekitar 23 September 1884 oleh Herman Hollerith - sebuah
penemuan yang digunakan lebih dari 100 tahun hingga pertengahan 1970. Contoh
di sini adalah bagaimana sebuah punch card dapat berfungsi sebagai media
penyimpanan, memiliki 90 kolom (90 column punch card), terjadi tahun 1972.
Jumlah data yang tersimpan dalam media tersebut sangat kecil, dan fungsi
utamanya bukanlah menyimpan data namun menyimpan pengaturan (setting)
untuk mesin yang berbeda. Sejak tahun 1725 telah dirancang sebuah media untuk
menyimpan data yang diperkenalkan oleh seorang tokoh bernama Basile Bouchon
menggunakan sebuah kertas berforasi untuk menyimpan pola yang digunakan
pada kain. Namun pertama kali dipatenkan untuk penyimpanan data sekitar 23
September 1884 oleh Herman Hollerith - sebuah penemuan yang digunakan lebih
dari 100 tahun hingga pertengahan 1970.
Contoh di sini adalah bagaimana sebuah punch card dapat berfungsi
sebagai media penyimpanan, memiliki 90 kolom (90 column punch card), terjadi
tahun 1972. Jumlah data yang tersimpan dalam media tersebut sangat kecil, dan
fungsi utamanya bukanlah menyimpan data namun menyimpan pengaturan
(setting) untuk mesin yang berbeda.
Pada perkembangan selanjutnya seorang tokoh bernama Alexander Bain
menemukan Punch Tape dan juga merupakan orang yang pertama kali
mengetahui penggunaan paper tape yang biasanya digunakan untuk mesin
faksimili dan mesin telegram (tahun 1846). Setiap baris tape menampilkan satu
karakter, namun karena Anda dapat membuat fanfold dengan mudah maka dapat
menyimpan beberapa data secara signifikan menggunakan punch tape
dibandingkan dengan punch card.
Gambar 2.2 Punch Tape
Pada tahun 1946 RCA mulai mengembagkan Selectron Tube yang
merupakan awal format memori komputer dan Selectron Tube terbesar berukuran
10 inci yang dapat menyimpan 4096 bits. Harga satu buah tabung sangat mahal
Gambar 2.3 Selectron Tube
Pada tahun 1950-an magnetic tape telah digunakan pertama kali oleh IBM
untuk menyimpan data. Saat sebuah rol magetic tape dapat menyimpan data setara
dengan 10.000 punch card, membuat magnetic tape sangat populer sebagai cara
menyimpan data komputer hingga pertengahan tahun 1980-an. Pada tahun
1950-an magnetic tape telah digunak1950-an pertama kali oleh IBM untuk menyimp1950-an data.
Saat sebuah rol magetic tape dapat menyimpan data setara dengan 10.000 punch
card, membuat magnetic tape sangat populer sebagai cara menyimpan data
komputer hingga pertengahan tahun 1980-an.
Gambar 2.4 Magnetic Tape
Pada tahun 1963 Compact Cassette diperkenalkan oleh Philips, namun
tidak sampai tahun 1970 menjadi populer. Komputer, seperti ZX Spectrum,
Commodore 64 dan Amstrad CPC menggunakan kaset untuk menyimpan data.
dari data tiap sisinya. Jika disetarakan dengan DVD, maka data dalam Compact
Cassette dapat dijalankan selama 281 hari. - Magnetic Drum. Magnetic Drum
memiliki panjang 16 inci yang bekerja 12.500 putaran tiap menit. Media ini
digunakan untuk menunjang komputer IBM 650 sekitar 10.000 karakter dari
Memori Utama.
Gambar 2.5 Compact Cassete
Di tahun 1969, floppy disk pertama kali diperkenalkan. Saat itu hanya bisa
membaca (read-only), jadi ketika data tersimpan tidak dapat dimodifikasi maupun
dihapus. Ukurannya 8 inch dan dapat menyimpan data sekitar 80kB. Empat tahun
kemudian, floppy disk yang sama muncul dan dapat menyimpan data sebanyak
256kB. Selain itu, memiliki kemampuan dapat ditulis kembali (writeable).
Perkembangan selanjutnya, pada tahun 1990 lahir disk dengan ukuran 3 inci yang
dapat menyimpan data sekitar 250 MB, atau biasa disebut juga Zip disk.
Hard drive masih diproduksi di bawah pengembangan yang tetap
(konstan). Hitachi Deskstar 7K yang terdapat pada gambar di bawah adalah hard
drive pertama kali yang dapat menyimpan data 500GB setara dengan 120.000
World’s first hard drive IBM 305 RAMAC. Hal ini cenderung tiap tahun kita
dapat memperoleh drive yang dapat menyimpan data secara cepat dengan harga
murah.
Gambar 2.7 Harddisk
Di era perkembangan internet data tidak lagi disimpan dalam satu tempat
saja, tetapi sudah dapat diakses melalui media jaringan salah satunya dengan
menggunakan storage server. Storage server yaitu server yang berfungsi sebagai
penyimpanan data berkapasitas besar. Jenis server ini sekarang banyak dijual oleh
berbagai vendor, dan juga banyak digunakan oleh perusahaan berbasis IT. Storage
Server juga bisa menjadi media untuk menjalankan fungsi server lainnya, seperti
Email Server, Database Server, FTP Server, Application Server atau Multimedia
Server yang membutuhkan kapasitas penyimpanan bersama dan terpusat (shared
dan centralized data storage).
Secara umum sebuah Storage Server memiliki fungsi sebagai berikut:
1) Penyimpanan file-file secara umum (general storage).
3) Multimedia file (klip, gambar, lagu, film).
4) Backup data.
5) Datashare media (berbagi file dengan berbagai perangkat media).
Pada storage server memiliki fungsi yang dijalankan pada masing-masing
storage server, diantaranya adalah:
1) NDAS (Network Direct Access Storage)
NDAS adalah sebuah perangkat storage yang dapat diakses melalui
jaringan lokal (LAN). Perangkat ini serupa dengan removable disk biasa,
tapi sudah mengintegrasikan sebuah Ethernet Port sehingga bisa
di-attached pada infrastrukur jaringan lokal. NDAS tidak menggunakan
internet protocol (IP) sehingga tidak bisa diakses via internet secara
langsung. Beberapa fitur yang dimiliki oleh NDAS diantaranya adalah:
a. Menggunakan satu unit HDD Desktop atau Notebook. HDD dapat
diganti atau diupgrade.
b. Kapasitas HDD tidak terbatas, minimal 20 GB dan maksimal 1.000
GB (1 TB).
c. Koneksi langsung ke sistem jaringan via hub/switch menggunakan
ethernet port.
d. Tidak menggunakan IP (internet protocol) sehingga tidak dapat
diakses lewat internet.
e. Dapat dijadikan sebagai perangkat removable disk karena memiliki
f. Tidak memerlukan setting jaringan apapun, hanya diperlukan instalasi
software sederhana ke masing-masing PC Client di sistem lokal agar
dapat mengakses NDAS.
g. Dapat dikonfigurasi dengan mode RAID 0 (Stripping) dan RAID 1
(Mirroring) menggunakan dua unit NDAS.
Gambar 2.8 Network Direct Access Storage
2) NAS (Network Attached Storage)
NAS merupakan sebuah fungsi storage yang menyerupai server murni.
NAS memiliki berbagai fitur dan teknologi seperti Processor, RAM dan
HDD terintegrasi. Sebuah NAS juga sudah dilengkapi dengan RAID
Controller (0, 1, 5, 10 atau lebih) sehingga memiliki kapabilitas yang
meyakinkan sebagai storage server. Saat ini juga sudah tersedia berbagai
storage server khusus produksi vendor, seperti Intel. Produk tersebut
antara lain : Intel Storage System SS4000-E, SSR212MC2, SSR212CC,
SSR212PP dan SR212MA. Keuntungan menggunakan NAS dengan
menggunakan NDAS antara adalah:
a. Performa tinggi karena tidak membebani server utama. Sebuah NAS
b. Kapasitas sangat besar dengan 4 buah HDD, kapasitas mulai 80 GB –
2.000 GB (2 TB).
c. Kapasitas HDD sangat fleksibel dengan berbagai konfigurasi HDD (2
unit ke 4 unit).
d. Dapat diakses melalui internet karena berbasis IP (internet protocol).
e. Transfer rate tinggi dengan akses Gigabit Ethernet (10/100/1000 LAN
Adapter).
f. Kapabilitas sistem storage tingkat tinggi dengan konfigurasi RAID 0,
1, 5 dan 10.
Gambar 2.9 Network Access Server
2.2 Apache Web Server
Web server adalah sebuah perangkat lunak yang menjadi tulang belakang
dari world wide web (WWW). Web server berfungsi menerima permintaan HTTP
atau HTTPS dari client yang dikenal dengan web browser dan mengirimkan
kembali hasilnya dalam bentuk halaman-halaman web yang umumnya berbentuk
Apache merupakan perangkat lunak open source yang menjadi alternatif
dari web server Netscape (saat ini dikenal sebagai Sun Java Web Server). Sejak
April 1996 Apache menjadi server web yang terpopuler di internet. Pada Mei
1999, Apache digunakan di 57% dari semua web server yang ada di dunia. Pada
November persentase ini naik menjadi 71% (sumber diambil daru Netcraft Web
Server Survey).
Gambaar 2.10 Logo Apache
Asal mula nama Apache berasal ketika sebuah server web populer yang
dikembangkan pada awal 1995 yang bernama NCSA HTTPd 1.3, yang memiliki
sejumlah perubahan besar terhadap kode sumbernya (patch). Karena banyaknya
patch pada perangkat lunak tersebut sehingga disebut sebuah server yang
memiliki banyak patch ("a patchy" server).
Dari segi penggunaan Apache memiliki beberapa fitur canggih, beberapa
fitur yang ditawarkan di Apache antara lain adalah:
1) Unix Threading
Pada Unix sistem dengan POSIX thread, apache dapat berjalan dengan
hybrid multiprocess, multi thread mode yang memungkinkan
2) Multi Protocol Support
Dukungan layanan multi protokol yang ada pada infrastuktur Apache.
3) Better Support for non-Unix Platform
Dukungan pada Apache 2.0 yang lebih stabil untuk platform-platform
non-Unix seperti BeOS, OS / 2, dan windows.
4) IPV6 support
Lybrary pada Apache telah mendukung untuk berjalan di atas IPv6.
5) Filtering
Modul Apache dapat digunakan sebagai filtering yang bertindak atas aliran
konten yang dikirim ke server ataupun yang keluar server.
6) Multilanguage Error Reporting
Pesan kesalahan respon ke browser kini telah disediakan dalam beberapa
bahasa dengan menggunakan dokumen SSI (Server Side Included).
7) Simplify Configuration
Konfigurasi yang awalnya membingungkan sekarang telah banyak
disederhanakan.
8) Native Windows NT Unicode Support
Pada Apache 2.0 pada windows NT sekarang telah menggunakan utf-8
untuk semua pengkodean nama file yang secara langsung dapat
diterjemahkan ke sistem yang mendasarinya serta memberikan dukungan
Multilanguage untuk semua installasi windows NT.
Apache 2.0 telah mendukung kompatibilitas Perl Compatible Regular
Expression Library (PCRE) yang lebih powerfull dari Perl 5.
Server side scripting (SSS) merupakan sebuah teknologi scripting atau
pemrograman web dimana script (program) dikompilasi atau diterjemahkan di
server. Dengan adanya teknologi SSS memungkinkan untuk menghasilkan
halaman web yang dinamis. Adapun beberapa contoh server side scripting
diantaranya adalah ASP, Coldfusion, Java Server Pages, Perl, Python, PHP.
2.3 Ajax
Asynchronous JavaScript and XMLHTTP, atau disingkat AJaX, adalah
suatu teknik pemrograman berbasis web untuk menciptakan aplikasi web
interaktif. Tujuannya adalah untuk memindahkan sebagian besar interaksi pada
komputer web surfer, melakukan pertukaran data dengan server di belakang layar,
sehingga halaman web tidak harus dibaca ulang secara keseluruhan setiap kali
seorang pengguna melakukan perubahan. Hal ini akan meningkatkan
interaktivitas, kecepatan dan usability. Ajax merupakan kombinasi dari:
1) DOM (Document Object Model) adalah object model standar untuk HTML
dan XML yang bersifat platform independent. Sebuah web browser tidak
harus menggunakan DOM untuk menampilkan dokumen HTML. Namun
DOM diperlukan oleh JavaScript yang akan mengubah tampilan sebuah
website secara dinamis. Dengan kata lain, DOM adalah cara JavaScript
2) XML (Extensible Markup Language) adalah bahasa markup untuk
keperluan umum yang disarankan oleh W3C. XML biasa digunakan untuk
keperluan pertukaran data antar sustem yang beranekan ragam. XML
sendiri merupakan kelanjutan daru HTML (Hyper Text Markup Language)
yang merupakan bahasa standar untuk melacar internet. XML didesain
untuk mampu menyimpan data secara ringkas dan mudah diatur. Kata
kunci utama XML adalah data yang jika diolah akan memberikan
informasi. XML menyediakan suatu cara terstandarisasi namun bisa
dimodifikasi untuk menggambarkan isi dari dokumen. XML juga dapat
digunakan untuk menggambarkan view database. Berikut contoh dokumen
XML sederhana:
<?xml version="1.0" encoding="UTF-8"?>
<Resep nama="roti" waktu_persiapan="5 menit" waktu_masak="3 jam">
<judul>Roti tawar</judul>
<bahan jumlah="3" satuan="cangkir">Tepung</bahan> <bahan jumlah="0,25" satuan="ons">Ragi</bahan>
<bahan jumlah="1,5" satuan="cangkir">Air hangat</bahan> <bahan jumlah="1" satuan="sendok teh">Garam</bahan> </Resep>
3) JavaScript adalah bahasa scripting yang popular di internet dan dapat
berkerja di sebagian besar browser populer seperti Internet Explorer (IE),
Mozilla Firefox, Netscape dan Opera. JavaScript bisa digunakan untuk
banyak tujuan, misalnya untuk membuat efek rollover baik gambar
maupun teks, dan yang penting adalah untuk membuat AJAX. Penulisan
JavaScript biasanya dituliskan dalam bentuk fungsi yang diletakkan pada
tag <head> dan dibuka dengan tag <script type=”teks/javascript”>.
<script type="teks/javascript"> alert("Halo Dunia!");
<script>
4) HTML (HyperText Markup Language) adalah sebuah bahasa markup yang
digunakan untuk membuat sebuah halaman web, menampilkan berbagai
informasi di dalam sebuah penjelajah web internet dan formating hypertext
sederhana yang ditulis kedalam berkas format ASCII agar dapat
menghasilkan tampilan wujud yang terintegerasi. Dengan kata lain, berkas
yang dibuat dalam perangkat lunak pengolah kata dan disimpan kedalam
format ASCII normal sehingga menjadi home page dengan
perintah-perintah HTML. Bermula dari sebuah bahasa yang sebelumnya banyak
digunakan di dunia penerbitan dan percetakan yang disebut dengan SGML
(Standard Generalized Markup Language), HTML adalah sebuah standar
yang digunakan secara luas untuk menampilkan halaman web. HTML saat
ini merupakan standar Internet yang didefinisikan dan dikendalikan
penggunaannya oleh World Wide Web Consortium (W3C). Contoh
penulisan HTML: <html>
<head>
<title>WeShare</title>
WeShare adalah layanan file sharing yang dapat dinikmati oleh semua kalangan.
</head> </html>
Ajax menggunakan JavaScript XMLHttpRequest object untuk melakukan
request ke server. Setiap browser mempunyai cara sendiri untuk membuat
XMLHttpRequest. Berikut penggunaan XMLHttpRequest:
if (window.XMLHttpRequest) {
return new XMLHttpRequest(); } else if(window.ActiveXObject) {
return new ActiveXObject("Microsoft.XMLHTTP"); } else {
alert('Status: Cound not create XmlHttpRequest Object. Consider upgrading your browser.');
} }
Potongan source code di atas akan membuat XMLHttpRequest.
Selanjutnya yang harus dilakukan adalah menyimpan objek XMLHttpRequest ke
dalam suatu variabel supaya lebih mudah diakses, seperti: Var request = getXMLHttpRequestObject();
XMLHttpRequest juga memiliki properti diantaranya onreadystate yaitu
menampung status data yang dikirim ke server, onreadystatechange yaitu
menampung perubahan nilai pada onreadystate, response XML yaitu membaca
struktur dari dokument XML agar dapat dibaca isinya, response Text yaitu
membaca nilai dari file text.
Contoh penggunaan onreadystatechange: function getNama() {
var phone = document.getElementById("box").value; var url = "data.php" ;
request.open("GET", url, true);
request.onreadystatechange = updatePage; //Callback request.send(null);
}
function updatePage() {
if (request.readyState == 4) alert("Proses Selesai!"); }
Pada contoh di atas akan muncul pesan “Proses selesai” setiap kondisi
readyState berubah. Pada fungsi updatePage ditambahkan request.readyState ==
Ajax merupakan JavaScript tingkat lanjut seperti yang dijabarkan di atas,
pemrograman client side yang bisa berinteraksi dengan server side di belakang
layar. Saat ini Ajax telah memiliki puluhan framework, salah satunya yang paling
populer adalah jQuery. Dengan menggunakan jQuery proses development Ajax
akan lebih mudah diterapkan salah satu contohnya adalah form validasi, treeview,
menu, ajax loader dan masih banyak lagi.
Uploadify merupakan jQuery plugin yang memudahkan mengintegrasikan
file upload baik itu single file upload maupun multiple file upload. Uploadify
membutuhkan flash plugin dan beberapa beberapa bahasa pengembangan sebagai
backendnya. Uploadify juga memungkinkan untuk dikustomisasi pada
penggunaan tingkat lanjut, tetapi pada pengimplementasian dasar telah cukup
mudah bahkan bagi pemula sekalipun.
2.4 PHP
PHP adalah bahasa scripting yang bersifat dinamis yang menyatu dengan
HTML dan dijalankan pada sisi server, jadi pada semua sintaks yang diberikan
akan sepenuhnya dijalankan pada sisi server sedangkan yang dikirim ke browser
hanya hasilnya saja.
Bahasa dari PHP berlatar belakang C/C++ karena sintaks yang dimiliki
oleh kedua bahasa pemrograman tersebut memiliki kesamaan. PHP merupakan
salah satu bahasa pemrograman yang berteknologi open source, bersifat gratis dan
bebas untuk mendapatkan scriptnya. Bahasa pemrograman PHP dijalan bersama
Kelebihan dari bahasa pemrograman PHP adalah sebagai berikut :
a) Sebuah script yang tidak melakukan kompilasi dalam penggunanya.
b) WebServer yang mendukung PHP dapat ditemukan dimana-mana dari mulai IIS sampai dengan dengan Apache, dengan konfigurasi yang sangat mudah.
c) Dalam sisi pengembangan lebih mudah, karena banyaknya developer yang membantu dalam pengembangannya.
d) Pada sisi pemahaman, PHP adalah bahasa scripting yang paling mudah dikuasai karena referensi yang mudah ditemukan.
PHP adalah bahasa pemrograman Open Source yang dapat digunakan diberbagai Sistem Operasi (Unix, Linux, Windows) dan dapat dijalankan secara runtime melalui console ataupun terminal serta dapat dijalankan dengan perintah-perintah system.
1) Tipe Data
Tipe data didalam bahasa PHP ini dibagi menjadi 5 jenis tipe data, yaitu
Integer, Floating Point, String, Array dan Object. Tipe data digunakan oleh
pemrograman PHP, otomatis akan ditentukan oleh PHP tanpa harus
dideklarasikan terlebih dahulu.
a) Tipe Data Integer
Tipe data ini berisikan data semua bilangan bulat yang besar yang
range-nya sama dengan data pada bahasa C, yaitu antara -2,147,483,648
sampai dengan +2,147,483,647 pada platform 32 bit. Apabila data diluar
kisaran tersebut, maka PHP akan secara otomatis menkonversi data
b) Tipe Data Floating Point
Tipe data ini berisikan bilangan pecahan atau bilangan desimal.
Kisaran data floating adalah antara 1.7E-308 sampai dengan 1.7E+308.
Bentuk dari data ini adalah desimal ataupun bentuk pangkat. Perhatikan
contoh berikut ini:
$nilai_desimal = 0.298; $nilai_pangkat = 298. 0E-5;
c) Tipe Data String
Tipe data string dinyatakan dengan menggunakan tanda kutip
tunggal ( ‘ ’ ) atau menggunakan tanda kutip ganda ( “ ” ). Berikut contoh
penggunaan tipe data string:
$string_tipe = ‘Selamat datang di PHP’; $string_tipe = “Selamat datang di PHP”;
Perbedaan penggunaan antara dua tanda kutip tersebut adalah,
jika menggunakan tanda kutip tunggal apabila sebuah variabel yang
memiliki data string tersebut terdapat variabel yang lain, maka nilai dari
variabel tersebut akan dideklarasikan atau dicetak nama variabel itu
sendiri.
d) Tipe Data Array
Data array disebut juga data bertingkat, artinya data yang
mengandung beberapa data di dalamnya dan di-index berdasarkan data
numeric atau string. Bahkan dalam data array ini dapat mengandung data
jenis array juga. Data array yang ada di dalam array ini membolehkan tipe
$nama_hari = array (‘Minggu’, ‘Senin’,’Selasa’, ’Rabu’, ’kamis’, ’Jumat’, ’Sabtu’);
$data = 40; $data = “80”;
Array di atas dideklarasikan secara langsung dengan memasukkan
nilainya. Nilai tersebut akan diisi dengan nilai angka index. PHP adalah
bahasa pemrograman yang juga mengenal adanya penggunaan istilah
array multidemensi, yaitu array bertingkat. Berikut contoh penulisan
array bertingkat:
$hewan = array (“kaki” => array (“empat” => ”kuda”, “dua” => “ayam”));
e) Tipe Data Object
Tipe data object adalah tipe data yang dapat berupa bilangan,
variabel ataupun fungsi. Tipe data object akan sangat membantu dalam
pembuatan program oleh seorang programmer. Penggunaan tipe data
object dapat digunakan untuk meringkas fungsi dan dapat memperkecil
3.1 Analisa Sistem
Server layanan penyedia penyimpanan file online ini dikembangkan
dengan teknologi open source guna melayani layanan file sharing melalui media
internet. Layanan file sharing ini berjalan diatas protokol HTTP dimana Apache
bertindak sebagai web server serta sebagai pengatur bandwidth dengan
menggunakan module apace_mod_cband untuk limitasi bandwidth. Dengan
menggunakan apache_mod_cband setiap user yang mengakses server layanan
file sharing ini dapat di-limitasi antara user yang terdaftar sebagai premium user
atau sebagai user biasa. Guna mempermudah implementasi upload pada layanan
file sharing ini digunakan juga plugin uploadify. Uploadify merupakan Ajax
plugin untuk keperluan single upload ataupun multiple upload yang bersifat open
source.
Server layanan file sharing ini nantinya juga mempunya fitur dimana
setiap user yang melakukan upload file ke server akan mendapatkan komisi untuk
file yang diuploadnya setiap seribu kali download oleh user yang lain selama 15
hari terhitung dari tanggal user tersebut melakukan upload.
3.2 Perancangan Sistem
Dalam sub bab ini akan menjelaskan tentang proses perancangan sistem
yang nantinya akan dibuat. Mulai dari deskripsi umum sistem, konsep
perancangan dalam bentuk perancangan proses, perancangan data, perancangan
tabel, dan perancangan antar muka.
3.2.1 Deskripsi Umum Sistem
Secara umum deskripsi dari sistem ini dapat dilihat dalam bantuk gambar
seperti yang tertera di bawah ini:
INTERNET
Gambar 3.1 Deskripsi Umum Sistem
Dari gambar di atas secara garis besar dapat sistem akan melakukan
pengecekan terhadap user yang mengakses file server. Jika user tidak terdaftar
sebagai premium user, maka sistem akan memberikan beberapa limitasi
diantaranya adalah download yang diberikan sistem kepada user akan memiliki
batas. Batas limitasi user berupa waktu tunggu, quota bandwidth, dan besar
hanya diperbolehkan melakukan proses upload dan download file selama user
tersebut memiliki link file yang masih valid. Anonymous user tidak dapat
mengecek file yang telah disimpan kedalam server kecuali user tersebut telah
mendaftar sebagai free user. Pada free user sama seperti anonymous user tetapi
memiliki hak untuk mengakses file yang telah diupload ke mesin server. Untuk
mendapatkan hak sebagai premium user, user yang telah terdaftar sebagai free
user dapat melakukan upgrade menjadi premium user. User yang telah terdaftar
sebagai premium account, tidak akan memiliki batasan seperti yang diberikan
sistem pada free account.
3.2.2 Kebutuhan Sistem
Berdasarkan deskripsi yang telah dibahas di atas untuk memenuhi
kebutuh
3.2.2.1CDM (Conceptual Data Model)
memodelkan struktur logis dari
kes
an sistem dan dapat berinteraksi serta dapat memenuhi
kebutuhan-kebutuhan pada sistem nantinya, maka diperlukan penjabaran basis data untuk
mengatur data-data layanan baik itu data user maupun data file yang didownload
oleh user. Kebutuhan basis data ini dapat digambarkan dalam diagram Entity
Relationship Diagram (ER) atau yang disebut dengan Conceptual Data Model
(CDM).
Conceptual Data Model (CDM)
eluruhan aplikasi data, tidak tergantung pada software atau
PDM. Berikut ini adalah gambar dari Conceptual Data Model Sistem
Layanan Online File Sharing :
Gambar 3.2 CDM Sistem Layanan Onlie File Sharing
Dari hasil CDM di atas akan menghasilkan 5 tabel berikut
penjelasan dari masing-masing tabel:
a) tb_user ini berisikan data user yang mendaftar pada layanan
online file sharing. tb_user memiliki 5 attribut diantaranya
id_user, nama_user, email_user, password dan level_account.
tb_user bersifat dominan terhadap tb_premium, yang artinya
b) tb_premium berisikan data user yang telah mendaftar dan
melakukan upgrade dari user biasa menjadi user premium.
tb_premium berisi 3 entitas diantaranya id_premium,
tgl_aktivasi dan tgl_berakhir. tb_premium juga berelasikan
dengan tb_user one-to-one dengan tb_premium yang
mempunyai mandatory pada tb_premium.
c) tb_voucher berisi data voucher pada layanan online file sharing
yang nantinya digunakan untuk menyimpan data harga voucher,
masa berlaku voucher, serta masa berlaku voucher. tb_voucher
memiliki 4 attribute diantaranya id_voucher, nama_voucher,
masa_berlaku dan harga voucher. tb_voucher berlesasikan
dengan tb_premium one-to-many dimana nantinya id_premium
akan menjadi foreign key pada tb_voucher.
d) tb_file berisi data file dari user yang melakukan upload ke
server serta sebagai pencatat data link, ukuran file, tanggal
upload dan hot_link dari user. tb_file memiliki 6 attribut
diantaranya id_file, nama_file, size, hit_link, file_link dan
tgl_upload. tbl_file berelasikan dengan tbl_user many-to-one
dimana id_user akan menjadi foregn key pada tbl_file.
e) tb_download berisi data download file, memiliki 2 attribut
diantaranya id_download dan tgl_download. Berelasikan
dengan tb_file many-to-one dimana id_file akan menjadi
f) tb_request berisi atribut berupa id_request, status_request, dan
tgl_request. tb_request ini berelasikan dengan tb_user dan
tb_premium.
g) tb_file_id merupakan tabel temporary yang digunakan untuk
menampung data sementara id_download terakhir yang
dilakukan user dan tidak memiliki relasi.
3.2.2.2PDM (Physycal Data Model)
Dari hasil pembuatan CDM akan digenerate menjadi sebuah
Phisical Data Model (PDM). PDM ini akan merepresentasikan tabel pada
database yang sebenarnya Physical Data Model (PDM) merupakan
permodelan dari struktur fisik dari basis data (data base) yang digunakan.
Sebuah PDM yang valide dapat dikonversi kembali kedalam bentuk CDM.
Berikut adalah PDM dari sistem Layanan Online File Sharing. Entitas di
mana entitas lemah bergantung dinamakan identifying owner. Entitas
lemah tidak memiliki identifier sendiri. Secara umum, dalam diagram ER
entitas lemah memiliki atribut yang berperan sebagai partial
identifier (identifier yang berfungsi secara sebagian). Hasil dari CDM ke
Gambar 3.3 PDM Database
Penjelasan attribut pada tiap tabel adalah sebagai berikut :
1)tb_user :
a) id_user : id user akan diisi otomatis secara auto increment ketika user
melakukan pendaftaran pada website. ID user berstatus primary key
pada tb_user.
b) nama_user : data akan diisi dengan nama user oleh useri pada saat
user mendaftar pada website.
c) email_user : data akan disi dengan email dari user.
e) level_account : data akan diisi oleh angka yang menyatakan tingkatan
dari level akses dari user. Angka tersebut diantaranya adalah 0 untuk
level account anonymous, 1 untuk level account free user dan 2 untuk
level account premium user.
2)tb_premium:
a) id_premium : data akan diisi otomatis secara auto increment pada
saat user melakukan upgrade dari free user menjadi premium user.
ID premium ini bersifat primary key.
b) id_user : data akan diisi dengan data pada id_user pada tabel tb_user.
id_user merupakan foreign key dari tb_user.
c) id_voucher : merupakan data yang diambil dari tabel voucher
d) tgl_aktivasi : data akan diisi dengan tanggal pada saat user
melakukan aktivasi account oleh siste.
e) tgl_berakhir : data akan diisi dengan tanggal saat berakhirnya user
sebagai user premium.
3)tb_voucher:
a) id_voucher: data akan diisi secara otomatis secara auto increment
pada saat user melakukan pembelian voucher.
b) id_premium: data akan diisi dengan data pada tabel id_premium,
id_premium merupakan foreign key dari tabel tb_premium.
d) masa_berlaku: data akan diisi dengan tanggal berlaku voucher.
4)tb_file:
a) id_file : data akan diisi dengan dengan id dari setiap file yang
diupload oleh user. id_file ini bersifat primary key.
b) id_user : data akan diisi dengan id dari user. id_user bersifat foreign
key pada tb_file.
c) nama_file : data akan diisi dengan nama dari tiap file yang diupload
oleh user.
d) size_file : data akan diisi dengan ukuran file yang telah diupload
oleh user.
e) hit_file : data akan diisi dengan berapa kali file yang akan diupload
oleh user telah didownload oleh user lain.
f) file_link : data akan diisi dengan link dari file yang telah diupload
oleh user, file link digenerate dengan menggunakan MD5 guna
melindungi keabsahan file tersebut.
g) tgl_upload : data akan diisi dengan tanggal pada saat user upload.
h) file_sum : merupakan data catatan total saat ini file yang tersimpan
di database.
i) file_kill : data akan berisi dengan alamat link dari file untuk proses
5)tb_download :
a) id_download : berisikan data yang berupa auto increment untuk
mencatat download yang dilakukan oleh user.
b) id_file : berisikan data dari id_file yang diambil dari tabel file.
c) tgl_download : merupakan data tanggal yang tercatat dari proses
download yang dilakukan.
d) jam_download : merupakan data waktu yang tercatat dari proses
download yang dilakukan.
e) ip_download : berisikan data alamat ip user yang melakukan
download.
6)tb_request :
a) id_request : adalah data id dari request yang diminta user untuk
mengaktifkan menjadi premium member.
b) tgl_request : data tanggal dari proses user melakukan request.
c) id_user : merupakan data id dari user yang melakukan request, data
diambil dari tabel user.
d) id_voucher : data akan diisi secara otomatis secara auto increment
pada saat user melakukan pembelian voucher
e) status_request : merupakan status dari request user apakah telah
7)tb_file_id :
a) merupakan tabel temporary yang digunakan untuk menampung data
sementara id_download terakhir yang dilakukan user dan tidak
memiliki relasi.
3.2.3 Sistem Flow
Pada sistem flow ini akan menjelaskan aliran data dari sistem yang
digunakan, mulai anonymous user, free user dan premium yang akan
mengakses file yang telah diuploadnya ke online file sharing ini. Berikut
adalah sistem flow pembangunan server layanan penyedia penyimpanan
file online:
1) Anonynous User
Sistem flow pada layanan online file sharing dibawah ini ditujukan
pada anonymous user, yaitu user yang ingin meletakkan filenya
pada layanan onlie file sharing tetapi user tersebut tidak ingin
terdaftar sebagai user. Sistem flow di dibawah ini dimulai dari
START kemudian user akan mencari file yang akan di upload ke
server layanan online file sharing. Setelah menentukan file mana
yang akan diupload user hanya melakukan klik pada button upload.
Setelah file sukses di upload web server akan membuat alamat link
download dari file tersebut dan ditampilkan ke user. Jika user ingin
melakukan proses upload lagi maka akan dikembalikan pada proses
Upload/Download Anonymous User
2) Free user
Sistem flow pada layanan online file sharing di bawah
berikut ditujukan pada free user, yaitu user yang terdaftar sebagai
member.
Web Server User
Sistem flow ini dimulai dari START, kemudian pada sistem
akan terjadi pengecekan apakah user memang terdaftar sebagai
free user atau anonymous. Jika user tidak terdaftar maka user akan
diminta untuk mendaftarkan diri terlebih dahulu dengan
memasukkan data user. Setelah data user disimpan sistem akan
mengirimkan notification bahwasannya account telah aktif. Ketika
account telah aktif user diminta unutk login terlebih dahulu, jika
user memang terdaftar sebagai user yang valid artinya user yang
belum expired masa keanggotaannya, maka sistem akan
menampilkan home directory dari user. Dalam home directory
user, user dapat melakukan upload file dan download file. Jika
user melakukan upload, user diminta untuk memilih file yang akan
akan diupload. Jika ukuran file lebih besar dari 200M, maka sistem
akan memberikan notification bahwasannya file yang akan
diupload terlalu besar dan sistem tidak akan mengijinkan file
tersebut untuk diupload. Jika ukuran file kurang dari 200 MB maka
file akan disimpan oleh sistem. Setelah file tersimpan sistem akan
membuat link file dengan menggunakan metode MD5. Link file
dari hasil generate tersebut akan ditampilkan ke user. Pada proses
download user diminta untuk memasukkan link file. Jika link file
tersebut valid, maka sistem akan melakukan pengecekan apakah
terdapat paralel download atau tidak. Yang dimaksud dengan
satu file yang di download pada saat bersamaan. Jika tidak ada
paralel download, sistem akan mengijinkan file tersebut untuk
didownload serta sistem akan melakukan limitasi bandwidth.
3) Premium User
Sistem flow pada layanan online file sharing berikut ini
ditujukan pada user yang teregister sebagai premium user.
Premium user adalah user yang telah teregistrasi sebagai free
member dan melakukan update account menjadi premium user
dengan cara melakukan pembelian voucher. Sistem flow di atas
dimulai dari START dan pada sistem akan melakukan pengecekan
apakah user sudah terdaftar sebagai free user atau belum. Jika user
telah terdaftar sistem akan melakukan pengecekan lagi apakah user
telah terdaftar sebagai premium user atau belum, jika ternyata user
belum terdaftar maka user melakukan upgrade menjadi premium
member untuk mendapatkan hak akses sebagai premium user.
Setelah user melakukan upgrade menjadi premium member maka
secara otomatis account level dari user tersebut akan naik menjadi
premium user setelah melakukan relogin. Status tersebut akan
ditampilkan pada tampilan status user di halaman awal pertama
login. Pada saat user upload file akan dibatasi sebesar 200MB per
delay waktu tunggu dan dapat melakukan paralel download tanpa
harus menunggu proses download yang sebelumnya selesai.
3.2.4 Interface (Perancangan Antar Muka)
Interface pada pembangunan server layanan penyedia penyimpanan
online ini adalah sebagai berikut:
1) Interface Pendaftaran User:
Gambar 3.7 Interface Pendaftaran User
Pada interface pendaftaran user terdapat beberapa inputan
yang harus diisi, diantaranya adalah username untuk inputan
username, email untuk inputan yang alamat email dari user,
password untuk inputan password dari user. Hasil inputan user
tersebut nantinya akan digunakan sebagai login untuk
mendapatkan hak akses sebagai pengguna sesuai kebutuhan user.
2) Interface Upload
Pada interface upload hanya terdapat inputan berupa file
Browse Nama file yang akan di upload
Select file to upload Maximum file size 200Mb
Saya telah menjetujui semua peraturan yang terdapat pada site ini
Welcome to WeShare.com Upload
Gambar 3.8 InterfaceUpload
3) Interface Link File
Pada interface link file hanya menampilkan web link dari
file yang telah di upload ke server. Pada link file terdapat inputan
text box untuk mengirimkan weblink yang telah digenerate.
Sedangkan untuk tampilan interface link file pada free user tidak
disertakan inputan untuk mengirim alamat link file pada alamat
email.
URL :
HTML LINK :
DELETE LINK :
Kirim ke email alamat link Send Upload file lainnya>>>>>
4) Interface File Checker
Gambar 3.10 Interface File Checker
Pada Interface File Checker terdapat satu inputan berupa
textbox untuk memasukkan alamat url yang telah digenerate oleh
sistem. Fungsinya adalah guna memastikan bahwa link dari file
tersebut masih valid atau tidak atau dengan kata lain file telah
dihapus atau belum dihapus oleh pemilik file.
5) Interface List File
Pada interface list file ini akan ditampilkan nama-nama file
yang telah diupload oleh free user dan premium user. Pada
halaman ini, user dapat melihat nama-nama file yang telah
diupload dan tersimpan di dalam server. Untuk mengetahui link
dari file tersebut, maka user dapat memilih file yang ditampilkan
dengan mencentang checkbox yang terdapat disebelah kiri dari
Gambar 3.11 interface List File
6) Interface Halaman Admin
Pada halaman admin ini hanya dapat diakses oleh
administrator yang bekerja sebagai konfirmasi upgrade dari free
member menjadi premium member. Di halaman ini nanti akan
ditampilkan nama user, alamat email user, dan status apakah user
tersebut telah diterima menjadi premium member atau belum.
Untuk menerima user tersebut menjadi premium member,
administrator yang bertugas hanya tinggal memilih tombol terima
yang berada pada sebelah kanan dari nama user yang bersangkutan.
Dan apabila user tersebut telah diterima menjadi premium member,
maka status requestnya akan berubah di dalam tabel tersebut.
Untuk interface dari halaman admin adalah seperti gambar 3.12
nama email status action
Dalam pembahasan bab ini akan menjelaskan tentang implementasi dari
program yang akan dibuat. Pada tahap pembangunan layanan penyedia
penyimpanan file online memiliki beberapa tahap, diantaranya adalah:
1) Instalasi dan Konfigurasi.
Proses installasi server layanan penyedia penyimpanan file online ini
akan menjelaskan installasi paket-paket yang dibutuhkan antara lain,
installasi paket web server Apache2 beserta modul
apache_mod_cban, MySQL dan PHP5.
2) Desain Interface.
Proses pembuatan antar muka layanan penyedia penyimpanan file
online. Pada proses ini akan menjelaskan pembuatan antar muka yang
nantinya akan digunakan oleh client untuk proses upload dan
download file pada web browser.
3) Implementasi.
Dalam implementasi aplikasi desain antarmuka ini akan menjelaskan
fungsi dan hubungan antara form apa saja yang terlibat di dalam
aplikasi sistem layanan online file sharing ini dan menghasilkan
beberapa form yang terdapat pada aplikasi system ini.
4.1 Installasi Apache2 MySQL dan PHP
Dalam perancangan aplikasi penyedia penyimpanan file online ini
dibutuhkan aplikasi web server Apache dengan modul libapache2-mod-cband
yang digunakan untuk pengaturan bandwidth. Untuk media penyimpanan data
pada database penulis menggunakan MySQL sebagai server databasenya dan
PHP5 sebagai bahasa pemrograman webnya, sedangkan untuk operating
sistemnya penulis menggunakan Linux Ubuntu 10.4 LTS.
Setelah Linux ubuntu terinstall dengan benar pada mesin server yang
akan kita gunakan, maka hal pertama yang harus dipersiapkan adalah melakukan
installasi paket-paket yang nantinya dibutuhkan dalam pembuatan aplikasi
penyedia penyimpanan file online. Untuk menginstall paket pada Linux
dibutuhkan koneksi ke mirror, kita dapat menggunakan repository online ataupun
menggunakan DVD repo dari Ubuntu. Dalam penulisan ini penulis menggunakan
mirror dari id.archive.ubuntu.com untuk penginstallan applikasi. Ketikkan
perintah berikut pada console untuk men-singkronkan source list dengan server. #apt-get update
Setelah melakukan update install paket-paket yang disebutkan di atas
dengan mengetikkan perintah berikut pada console.
#apt-get install phpmyadmin php5 php5-cli php5-dev re2c
build-essential php-pear mysql-server-5.1
libapache2-mod-suphp apache2-prefork-dev
Secara otomatis linux akan mendownload paket-paket tersebut dan
installasi PHP5, apache2 dan MySQl beserta tools untuk keperluan kompilasi
paket. Agar apache dapat melakukan tugas sebagai pengatur bandwidth yang
nantinya digunakan pada aplikasi file sharing online diperlukan kompilasi paket
apache2-mod-cband yang dapat di download di
http://www.montanalinux.org/files/mod-cband-0.9.7.5.tgz. Tuliskan perintah
berikut pada console untuk melakukan download paket apache2-mod-cband #wget
http://www.montanalinux.org/files/mod-cband-0.9.7.5.tgz
Ekstrak file tersebut kedalam direkrori /usr/local/src.
#tar zxvf mod-cband-0.9.7.5.tgz –C /usr/local/src
Pindah ke direktori dimana mod-cband-0.9.7.5 di ekstrak #cd /usr/local/src/mod-cband-0.9.7.5
Tulisakan perintah berikut untuk konfigurasi dan cek pada
mod-cband-0.9.7.5
#./configure
Jika tidak terdapat error berarti paket mod-cband telah siap untuk
dikompilasi dan diinstall pada sistem linux. #make
#make install
Setelah proses kompilasi dan installasi sukses aktifkan install juga paket
libapache2-mod-bw.
Aktifkan apache mod-bw dengan mengetikkan perintah berikut pada
console.
#a2enmod bw
Restart apache agar modul yang telah diaktifkan dijalankan oleh apache2
dengan mengetikkan perintah berikut pada console. #/etc/init.d/apache2 restart
4.2 Implementasi Antar Muka
Dalam implementasi desain antar muka ini akan menjelaskan hubungan
antar form yang nantinya terlibat dalam aplikasi penyedia penyimpanan file online
ini dan menghasilkan beberapa form diantaranya adalah:
4.2.1 Form Utama Aplikasi
Form utama aplikasi ini didesain sedemikian rupa sehingga menarik
pengguna dan tidak menggunakan tampilan yang monoton. Tampilan form utama
dapat dilihat pada form gambar 4.1:
4.2.2 Antar Muka Pendaftaran
Pada tampilan antar muka pendaftaran digunakan untuk user yang ingin
mendaftar pada layanan penyedia penyimpanan file online. Berikut tampilan antar
muka pendaftaran user pada gambar 4.2:
Gambar 4.2 Form Pendaftaran User
Agar tidak terjadi kesalahan pada pendaftaran user seperti mendaftarkan
dengan email yang tidak diisi, password yang tidak cocok maka, perlu adanya
validasi saat memasukkan pengisian data pada. Berikut potongan kode untuk
validasi dari Form pendaftaran:
<script type="text/javascript"> function checkform(){
var s1 = document.getElementById('username').value; var s2 = document.getElementById('email').value; var s3 = document.getElementById('password').value;
var s4 = document.getElementById('password_repeat').value; if(s1=='' || s2=='' || s3=='' || s4==''){
alert("You still have blank field.");
return false;
}
else if(s3!=s4){
alert("You have miss matched password.");
return false;
else return agreeterms(); }
function agreeterms(){
if (!document.getElementById('rules').checked) {
alert("You have to agree with our sign up terms in order to proceed.");
return false;
} }
</script>
4.2.3 Antar Muka Upload
Pada form antar muka upload ini digunakan untuk proses upload file dari
client ke server. Berikut tampilan antar muka untuk upload pada gambar 4.3:
Gambar 4.3 Tampilan Antar Muka Upload
Interface upload menggunakan ajax plugin jQuery dan uploadify-v2.10.
Berikut potongan kode implementasinya pada halaman upload: <input id="fileInput" name="fileInput" type="file" /> <script type="text/javascript">// <![CDATA[
$(document).ready(function() { $('#fileInput').uploadify({ 'uploader' : 'uploadify.swf', 'script' : 'uploadify.php', 'cancelImg' : 'cancel.png', 'auto' : true,
}); });
// ]]></script>
4.2.4 Antar Muka Link File
Pada tampilan antar muka link file ini digunakan untuk menampilkan
hasil dari pembuatan link yang dihasilkan dengan menggunakan metode MD5
oleh applikasi yang nantinya digunakan oleh user untuk mendownload file yang
telah di upload oleh user tersebut. Berikut adalah gambar dari antar muka link file:
Gambar 4.4 Tampilan Antar Muka Link File
4.2.5 Antar Muka File Checker
Antar muka file checker digunakan untuk melakukan pengecekan
terhadap link file yang telah ada, bahwasannya file yang berada di server layanan
penyedia layanan file masih valid atau tidak. Berikut tampilan antar muka file
Gambar 4.5 Antar Muka File Checker
4.2.6 Form Antar Muka List File
Antar muka list file ini digunakan untuk menampilkan file apa saja yang
telah diupload oleh user ke dalam aplikasi file online.
Fasilitas list file ini hanya disediakan untuk freeuser dan premium user.
Untuk tampilan antarmuka list file akan tampak seperti pada gambar 4.6 diatas.
4.2.7 Form Antar Muka Halaman Admin
Pada halaman admin ini hanya dapat diakses oleh administrator yang
bertugas untuk mengkonfirmasi request dari user yang ingin melakukan upgrade
dari free member menjadi premium member. Untuk tampilan antarmuka dari
halaman admin adalah seperti gambar 4.7 berikut ini.
Gambar 4.7 Antar Muka Halaman Admin
4.3 Implementasi Data
Pada implementasi ini dibuat untuk mengetahui database apa saja yang