• Tidak ada hasil yang ditemukan

Sistem Penyimpanan Data

Dalam dokumen SKRIPSI SISTEM TEMU KEMBALI INFORMASI DE (Halaman 70-83)

BAB IV IMPLEMENTASI DAN PEMBAHASAN

4.1 Sistem Penyimpanan Data

Untuk mendukung penelitian tentang sistem pencarian dengan metode temu-kembali informasi, maka dibuat sistem penyimpanan yang dapat menyimpan data berupa dokumen teks. Dokumen teks ini nantinya yang akan dicari oleh sistem pencarian. Dokumen teks ini akan disimpan di dalam sistem dan dikelompokan berdasarkan bagiannya. Penambahan bagian dan dokumen di dalam sistem penyimpanan data ini hanya dapat dilakukan oleh administrator sebagai pengguna yang memiliki otoritas tertinggi dan tentunya administrator ini memiliki nama user dan password untuk mengakses halaman admin di dalam sistem.

Gambar 4.1 Antarmuka Login Sistem Penyimpanan

Namun sebelum menambahkan bagian dan dokumen, administrator harus melakukan login ke dalam sistem dengan memasukan nama user dan password. Sistem selanjutnya akan melakukan verifikasi nama user dan password yang dimasukan oleh administrator tadi dengan cara mencari nama user dan password

tersebut pada tabel t_user di dalam basis data. Antarmuka dari halaman login sistem penyimpanan dapat dilihat pada Gambar 4.1.

Jika nama user dan password yang dimasukan oleh administrator terdapat di dalam basis data pengguna, maka administrator selanjutnya akan memasuki halaman administrasi. Pada halaman administrasi (Gambar 4.2), administrator dapat memilih halaman untuk memanipulasi bagian dan data serta halaman untuk melakukan pengindeksan dokumen yang terdapat di dalam sistem.

Gambar 4.2 Antarmuka Halaman Administrasi 4.1.2 Halaman Manipulasi Bagian

Halaman manipulasi bagian (Gambar 4.3) merupakan halaman yang berfungsi untuk menambah, mengubah dan menghapus bagian di dalam sistem. Seperti yang telah disebutkan sebelumnya, dokumen di dalam sistem penyimpanan akan disimpan menjadi kelompok-kelompok dokumen. Pada sistem ini minimal harus terdapat satu kelompok dokumen. Jika tidak, maka dokumen tidak dapat dimasukan ke dalam sistem.

Gambar 4.3 Antarmuka Halaman Manipulasi Bagian

Pada halaman manipulasi bagian yang dapat dilihat pada Gambar 4.3, administrator akan memasukan nama bagian ke dalam form tambah bagian.untuk menambah bagian. Nanti nama bagian ini akan dimasukan ke dalam basis data. Namun, sebelumnya akan dilakukan pemeriksaan ke dalam basis data. Jika nama bagian yang akan ditambahkan sudah ada di dalam basis data, maka sistem akan menolak nama tersebut, sebaliknya jika nama tersebut belum ada maka sistem akan memasuki proses penambahan bagian baru.

Setelah nama bagian berhasil ditambahkan maka sistem akan membuat folder dari bagian tersebut pada media penyimpanan harddisk dengan format [folder home]/data/[nama bagian]. Pada folder tersebut nantinya dokumen pada suatu bagian akan diletakan. Setelah itu informasi dari nama bagian dan nama folder tersebut akan di simpan ke dalam tabel t_bagian pada basis data.

Untuk pengubahan nama bagian, juga akan mengubah nama folder dari bagian tersebut. Dan untuk penghapusan bagian, akan menghapus seluruh dokumen yang ada di dalam bagian serta menghilangkan folder pada mendia penyimpanan harddisk. Potongan kode program dari penambahan, pengubahan dan penghapusan bagian dapat dilihat pada Gambar 4.4.

if ($action== "add"){

$bagian =$_POST['bagian']; if ($bagian==""){

$msg = "Error : Nama Bagian harus diisi !! <br>"; } else{

$sql = "select * from t_bagian where nama_bagian='$bagian'"; if (@mysql_num_rows(mysql_query($sql))){

$msg = "Error : Nama Bagian Sudah ada!! <br>"; }else {

$bag = preg_replace("/\W+/i","",$bagian); if (!$bag|| strlen($bag) <=1){

$msg = "Nama Bagian salah!!<br>"; } else{

$folder = preg_replace("/\W+/i","",$bagian); $folder = strtolower($folder);

$folder = ereg_replace(" ", "_",$folder); $dir= "data/";

$sql = "Insert into t_bagian

values('','$bagian','$folder')"; if (mysql_query($sql)){

mkdir($dir.$folder);

header('Location: admin_bagian.php?msg='.urlencode(":: Bagian Berhasil di tambahkan!!"));

}else{ $msg = "Query Error!! <br>"; $id_bagian=""; } } } } } elseif($action =="edit"){ $bagian_baru = $_GET['bagian_baru']; if ($bagian_baru==""){

$msg = "Error : Nama Bagian Baru harus diisi !! <br>"; } else{

$sql = "select * from t_bagian where nama_bagian='$bagian_baru'"; if (@mysql_num_rows(mysql_query($sql))){

$msg = "Error : Nama Bagian Sudah ada!! <br>"; }else {

$bag = preg_replace("/\W+/i","",$bagian_baru); if (!$bag|| strlen($bag) <=1){

$msg = "Nama Bagian Baru salah!!<br>"; } else{

$folder = preg_replace("/\W+/i","",$bagian_baru); $folder = strtolower($folder);

$folder = ereg_replace(" ", "_",$folder); $dir= "data/";

$sql = "Update t_bagian set nama_bagian='$bagian_baru', folder='$folder' where id_bagian='$id_bagian'"; if (mysql_query($sql)){

rename($dir.$folder_lama,$dir.$folder);

header('Location: admin_bagian.php?msg='.urlencode(":: Bagian Berhasil di Update!!"));

Gambar 4.4 Potongan Kode Program Manipulasi Bagian 4.1.3 Halaman Manipulasi Data

Setelah administrartor menambah sebuah bagian pada sistem, maka selanjutnya administrator dapat mulai menambahkan data yang berupa dokumen teks ke dalam sistem. Halaman manipulasi data (Gambar 4.5) pertama kali akan memberikan daftar dari dokumen yang disimpan di dalam sistem sesuai dengan nama bagian yang dipilih oleh administrator. Untuk menambah data baru pada bagian tersebut, maka administrator dapat menekan tombol “add” yang berada

}else{ $msg = "Query Error!! <br>"; $id_bagian=""; } } } } } elseif($action == "empty"){

$sql = "select letak,temp_file from t_data where id_bagian='$id_bagian'"; $rs = mysql_query($sql);

while ($row = mysql_fetch_array($rs)){ unlink($row[0]);

@unlink($row[1]); }

$sql = "DELETE from t_data where id_bagian='$id_bagian'"; if (mysql_query($sql)){

header('Location: admin_bagian.php?msg='.urlencode(":: Bagian Berhasil di Kosongkan!!")); }else{ $msg = "Query Error!! <br>"; $id_bagian=""; } } elseif($action == "delete"){ $dir = "data/";

$sql = "select letak,temp_file from t_data where id_bagian='$id_bagian'"; $rs = mysql_query($sql);

while ($row = mysql_fetch_array($rs)){ unlink($row[0]);

@unlink($row[1]); }

$sql = "select folder from t_bagian where id_bagian='$id_bagian'"; $folder = mysql_fetch_row(mysql_query($sql));

$sql = "DELETE from t_data where id_bagian='$id_bagian'"; mysql_query($sql);

$sql = "Delete from t_bagian where id_bagian='$id_bagian'"; if (mysql_query($sql)){

rmdir($dir.$folder[0]);

header('Location: admin_bagian.php?msg='.urlencode(":: Bagian Berhasil di Hapus!!")); }else{ $msg = "Query Error!! <br>"; $id_bagian=""; } }

pada kanan atas dari daftar dokumen. Selanjutnya, halaman input data (Gambar 4.6) akan ditampilkan kepada administrator. Pada halaman ini, sebelum administrator memasukan dokumen, maka administrator minimal harus memasukan informasi mengenai nama data, bagian serta file dari data yang akan dimasukan ke dalam sistem. Jika semua persyaratan untuk memasukan dokumen sudah terpenuhi maka sistem akan melakukan proses penambahan data ke dalam tabel t_data pada basis data..

Gambar 4.6 Antarmuka Halaman Input Data

Sebelum sistem melakukan penambahan data dokumen ke dalam basis data, file dari dokumen akan di-upload ke dalam sistem dan diletakan sesuai dengan folder bagian yang sudah dipilih, selanjutnya sistem akan mengubah nama file dokumen menjadi format tahun_bulan_tanggal_jam_menit_detik_[nama file yang sudah di hilangkan spasi dan diubah huruf kapitalnya]. Hal ini bertujuan agar file yang memiliki nama yang sama tetapi isinya berbeda dapat dimasukan oleh administrator ke dalam sistem. Namun nama asli dari file dokumen tersebut akan disimpan di dalam basis data untuk digunakan pada saat pengguna dari sistem ingin men-download file tersebut.

Tipe file dokumen yang dapat disimpan di dalam sistem dapat terdiri dari 3 jenis yaitu file Microsoft Word, Microsoft Excel dan PDF. Akan tetapi, dokumen yang dimasukan ke dalam sistem pada penelitian ini hanya

menggunakan file dokumen dengan format Microsoft Word (.doc). Untuk memudahkan sistem pada saat melakukan pengindeksan, maka pada saat memasukan file dokumen juga dibuat file ascii yang dihasilkan dari file Microsoft Word yang dimasukan oleh administrator. Pembuatan file temporary ini menggunakan bantuan beberapa aplikasi tambahan yaitu:

1. Catdoc, aplikasi untuk mengubah file Microsoft Word (.doc) menjadi file ascii. Aplikasi ini dapat di-download di http://www.45.free.net/~vitus/ice/ catdoc/

2. Xls2csv, aplikasi untuk mengubah file Microsoft Excel (.xls) menjadi file ascii. Aplikasi ini dapat di-download di http://www.45.free.net/~vitus/ ice/catdoc/

3. Xpdf, aplikasi untuk mengubah file pdf menjadi file ascii. Aplikasi ini dapat di-download di http://www.foolabs.com/xpdf/

File temporary ini disimpan pada folder [folder home]/tmp. File temporary ini isinya hanya teks utuh yang dimiliki oleh file dokumen yang dimasukan oleh administrator. Selain berfungsi untuk digunakan pada saat pengindeksan dokumen, file temporary ini juga dapat digunakan untuk melihat isi dari dokumen kepada pengguna, sebelum pengguna men-download file asli dari dokumen ini.

Sistem juga akan membuat deskripsi dari file yang dimasukan oleh administrator secara otomatis dengan cara mengambil 150 huruf pada awal dokumen. Modul untuk pengubahan file menjadi file temporary dan modul untuk mendapatkan deskripsi dari file dapat dilihat pada Gambar 4.7.

Gambar 4.7 Modul Pengubahan File dan Pengambilan Deskripsi File

Selanjutnya sistem akan menyimpan seluruh informasi yang telah dibuat oleh sistem dari sebuah file dokumen tersebut ke dalam basis data. Potongan kode program dari manipulasi data dapat dilihat pada Gambar 4.8.

function getDesc($file,$type_file){ if ($type_file == "application/pdf"){ $bin = "bin/pdftotext/pdftotext.exe"; $type = "pdf"; }elseif($type_file == "application/vnd.ms-excel"){ $bin = "bin/catdoc/xls2csv.exe"; $type = "xls"; }elseif($type_file == "application/msword"){ $bin = "bin/catdoc/catdoc.exe"; $type = "doc"; } else{ $bin = "";

$desc = "Tidak terdapat deskripsi untuk file ini"; }

if ($bin){

$ren = date("YmdHis_"); for ($i=1; $i<=8; $i++) { $temp_filename .= rand(1,9); } $temp_file = "tmp/".$temp_filename.".tmp"; $temp_file_save = "tmp/".$ren.$temp_filename.".tmp"; $dir = dirname($_SERVER['SCRIPT_FILENAME'])."/"; if (copy($file,$temp_file)){

$execute = $dir.$bin." ".$dir.$temp_file; if ($type == "doc" || $type == "xls"){ exec($execute,$output);

for($i=0;$i <= count($output)-1 ;$i++){ $arrdesc.=$output[$i]."\n";

}

if ($type =="xls"){

$arrdesc = ereg_replace(";"," ",$arrdesc); $arrdesc = ereg_replace("\""," ",$arrdesc);

} $berkas=fopen($temp_file_save,"w"); fputs($berkas,$arrdesc); fclose($berkas); } elseif ($type == "pdf"){ exec($execute); $temp_file2 = $temp_file.".txt"; if (file_exists($temp_file2)){ $arrdesc = getFile($temp_file2); copy($temp_file2,$temp_file_save); unlink($temp_file2); } else{

$desc = "Deskripsi file tidak ada."; }

}

if ($arrdesc){

$desc = preg_replace("/\n/"," ",$arrdesc); $desc = preg_replace("/\s+/"," ",$desc);

$desc = preg_replace("/\s+[\d+\W*]*\s+/"," ",$desc); $desc = substr($desc,0,150)."..."; } } unlink($temp_file); } return array($desc,$temp_file_save); }

if ($action== "add"){

if(!$nama_data || !$upload_file || !$id_bagian){

$msg = "Yang bertanda <strong>*</strong> tidak boleh kosong!!"; $state = "add";

} else{

$ren = date("YmdHis"); $date = date ("Y-m-d"); $dir = "data/";

$nama_file = $upload_file['name'];

$nama_file_baru =$ren.strtolower(ereg_replace(" ","_",$nama_file)); $folder = getData("folder","t_bagian","id_bagian='".$id_bagian."'"). "/"; $letak = $dir.$folder.$nama_file_baru; $type_file = $upload_file['type']; $ukuran_file = $upload_file['size']; if (@copy($upload_file['tmp_name'],$letak)){ $desc = getDesc($letak,$type_file);

$sql = "insert into t_data values('','$id_bagian', '$date', '$nama_data', '$letak', '$nama_file', '$type_file', '$ukuran_file', '$penulis', '".addslashes($desc[0])."', '".$desc[1]."')";

if(mysql_query($sql)){

$msg = ":: File berhasil di add!!";

header('Location: admin_data.php?id_bagian='.$id_bagian. '&msg='.urlencode($msg)); }else{ $msg = "Query Error!!"; $state= "add"; } }else{

$msg = "File gagal di Upload!!"; $state= "add";

} }

} elseif($action =="edit"){

if(!$nama_data || !$id_bagian){

$msg = "Yang bertanda <strong>*</strong> tidak boleh kosong!!"; $state = "edit";

} else{

$date = date ("Y-m-d"); if ($upload_file){

$filelama = getData("letak","t_data","id_data='$id_data'"); $temp_filelama = getData("temp_file", "t_data", "id_data=

'$id_data'"); unlink($filelama); @unlink($temp_filelama); $ren = date("YmdHis"); $dir = "data/"; $nama_file = $upload_file['name']; $nama_file_baru = $ren.strtolower(ereg_replace(" ", "_", $nama_file));

$folder = getData("folder", "t_bagian", "id_bagian= '".$id_bagian. "'")."/"; $letak = $dir.$folder.$nama_file_baru; $type_file = $upload_file['type']; $ukuran_file = $upload_file['size']; if (copy($upload_file['tmp_name'],$letak)){ $desc = getDesc($letak,$type_file);

$sqlplus = "letak='$letak', nama_file='$nama_file',

type_file='$type_file', ukuran_file='$ukuran_file', deskripsi='".$desc[0]."',

temp_file='".$desc[1]."',"; }

Gambar 4.8 Potongan Kode Program Manipulasi Data

4.1.4 Halaman Pengguna

Gambar 4.9 Antarmuka Halaman Pengguna

$sql = "Update t_data set id_bagian='$id_bagian’, nama_data= '$nama_data', tanggal='$date',$sqlplus penulis='$penulis' where id_data='$id_data'";

if(mysql_query($sql)){

$msg = ":: File berhasil di edit!";

header('Location: admin_data.php?id_bagian=' .$id_bagian. '&msg=' .urlencode($msg)); }else{ $msg = "Query Error!!"; $state= "edit"; } } } elseif($action == "delete"){ $filelama = getData("letak","t_data","id_data='$id_data'"); $temp_filelama = getData("temp_file","t_data","id_data='$id_data'"); unlink($filelama); @unlink($temp_filelama);

$sql = "delete from t_data where id_data='$id_data'"; if(mysql_query($sql)){

$msg ='Data berhasil di Hapus !!';

$sql = "delete from t_index where id_data='$id_data'";

header('Location: admin_data.php?id_bagian=' .$id_bagian. '&msg=' .urlencode($msg));

} }

Halaman pengguna pada sistem pencarian dapat dilihat pada Gambar 4.9. Pada palaman ini, pengguna pertama kali diharuskan untuk memilih bagian dari dokumen. Setelah pengguna memilih bagian, maka pengguna dapat melihat dokumen yang terdapat di dalam bagian tersebut beserta seluruh informasi yang dimiliki oleh dokumen. Pengguna dapat melihat tanggal dari pengubahan dokumen ini, nama file serta ukuran dari file. Di setiap dokumen yang ditampilkan terdapat dua link, yang pertama berfungsi untuk men-download file dari dokumen dan yang kedua berfungsi untuk melihat isi dari dokumen tersebut. Gambar dari halaman dokumen dapat dilihat pada Gambar 4.10.

Gambar 4.10 Antarmuka Halaman Dokumen

Di setiap halaman yang dapat diakses oleh pengguna, terdapat sebuah form yang berfungsi untuk mencari dokumen yang memiliki suatu informasi tertentu dengan memasukan kata kunci ke dalam form. Form ini terletak pada bagian

kanan atas pada setiap halaman yang dilihat oleh pengguna. Selain itu pengguna juga dapat mencari informasi dari dokumen dengan fasilitas pencarian canggih. Pada fasilitas pencarian canggih (Gambar 4.11), pengguna dapat mencari dokumen secara spesifik dengan memasukan kata kunci yang berupa kata dan kata tepat, penulis, serta bagian tertentu dari dokumen yang akan dicari.

Gambar 4.11 Antarmuka Halaman Pencarian Canggih

Dalam dokumen SKRIPSI SISTEM TEMU KEMBALI INFORMASI DE (Halaman 70-83)

Dokumen terkait