• Tidak ada hasil yang ditemukan

BAB IV IMPLEMENTASI

4.2 Implementasi Basis Data

Pada sistem ini terdapat dua database, yaitu database text RDBMS untuk menyimpan hasil seluruh proses operasi teks logical view dokumen makalah yang

berbasis RDBMS dan database index ready ORDBMS untuk menyimpan inverted

index yang digunakan untuk pencarian dokumen dengan berbasis ORDBMS.

Database sistem ini dibuat menggunakan Oracle 11g. Aplikasi pendukung untuk melakukan pengolahan perintah SQL adalah SQL Developer.

Langkah – langkah dalam pembuatan database adalah seperti berikut :

1. Membuat database baru dengan login sebagai SYSTEM menggunakan SQL

Developer.

2. Membuat tabel-tabel dalam database yang telah dibuat dengan menuliskan

perintah create tabel diikuti nama tabel dan kolom-kolom dalam tabel. Untuk

database berbasis ORDBMS dibuat terlebih dahulu type dengan menuliskan perintah create type. Pada RDBMS terdapat 9 tabel, sedangkan ORDBMS terdapat 2 tabel, 1 nested table, dan 4 type yang dibuat berdasarkan desain sistem.

Database text RDBMS untuk sistem pemerolehan informasi makalah ilmiah berbahasa Indoensia dapat dilihat pada Gambar 4.1.

Gambar 4.1. Database text RDBMS pada sistem pemerolehan informasi makalah ilmiah berbahasa Indonesia

Database index ready ORDBMS untuk sistem pemerolehan informasi

makalah ilmiah berbahasa Indonesia dapat dilihat pada gambar 4.2.

Gambar 4.2. Database index ready ORDBMS pada sistem pemerolehan informasi makalah berbahasa Indonesia

Berikut proses pembuatan tabel untuk database text RDBMS : 1. Tabel Status

Tabel 4.1. Tabel Status

Nama Field Tipe Data Ukuran Keterangan

id_status NUMBER - Primary key untuk tabel status description VARCHAR2 20 Deskripsi status

Berikut perintah SQL untuk membuat tabel status yang ditunjukkan pada Listing 4.1:

Listing 4.1. Create tabel status

2. Tabel Documents

Tabel 4.2. Tabel Documents

Nama Field Tipe Data Ukuran Keterangan

id_document NUMBER - Primary key untuk tabel documents

title VARCHAR2 256 Judul dari dokumen

path VARCHAR2 256 Nama file dari dokumen

max_term NUMBER - Frekuensi terbesar dari sebuah dokumen

authors VARCHAR2 100 Penulis dari dokumen

year NUMBER - Tahun dari dokumen

id_status_ready NUMBER - Status untuk dokumen

id_status2 NUMBER - Status untuk subsistem pencarian id_status3 NUMBER - Status untuk subsistem pencarian

CREATE TABLE STATUS (

ID_STATUS NUMBER NOT NULL , DESCRIPTION VARCHAR2 (20) ); ALTER TABLE STATUS

Berikut perintah SQL untuk membuat tabel documents yang ditunjukkan pada Listing 4.2:

Listing 4.2. Create tabel documents

3. Tabel Posting

Tabel 4.3. Tabel Posting

Nama Field Tipe Data Ukuran Keterangan

id_document NUMBER - Foreign key dari tabel documents id_term NUMBER - Foreign key dari tabel terms

CREATE TABLE DOCUMENTS (

ID_DOCUMENT NUMBER NOT NULL , MAX_TERM NUMBER,

ID_STATUS_READY NUMBER NOT NULL , ID_STATUS2 NUMBER NOT NULL , ID_STATUS3 NUMBER NOT NULL , AUTHORS VARCHAR2 (100) , YEAR NUMBER

) ;

ALTER TABLE DOCUMENTS

ADD CONSTRAINT documents_PK PRIMARY KEY ( ID_DOCUMENT ) ; ALTER TABLE DOCUMENTS

ADD CONSTRAINT DOCUMENTS_STATUS1_FK FOREIGN KEY ( ID_STATUS_READY ) REFERENCES STATUS ( ID_STATUS ) ;

ALTER TABLE DOCUMENTS

ADD CONSTRAINT DOCUMENTS_STATUS2_FK FOREIGN KEY ( ID_STATUS2 ) REFERENCES STATUS ( ID_STATUS ) ;

ALTER TABLE DOCUMENTS

ADD CONSTRAINT DOCUMENTS_STATUS_FK FOREIGN KEY ( ID_STATUS3 ) REFERENCES STATUS ( ID_STATUS ) ;

Nama Field Tipe Data Ukuran Keterangan frequency NUMBER - Frekuensi kata pada dokumen

ntfik NUMBER - Hasil perhitungan

frequency/frequency terbesar pada

sebuah dokumen

w NUMBER - Bobot dari sebuah term dengan rumus

perhitungannya ndfik*ntfik

Berikut perintah SQL untuk membuat tabel posting ditunjukkan pada Listing 4.3:

Listing 4.3. Create tabel posting

4. Tabel Terms

Tabel 4.4. Tabel Terms

Nama Field Tipe Data Ukuran Keterangan

id_term NUMBER - Primary key untuk tabel terms stemmed_word VARCHAR2 50 Kata setelah proses stemming

CREATE TABLE POSTING (

ID_DOCUMENT NUMBER NOT NULL , ID_TERM NUMBER NOT NULL , FREQUENCY NUMBER ,

NTFIK NUMBER , W NUMBER )

;

ALTER TABLE POSTING

ADD CONSTRAINT POSTING_DOCUMENTS_FK FOREIGN KEY ( ID_DOCUMENT ) REFERENCES DOCUMENTS ( ID_DOCUMENT ) ;

ALTER TABLE POSTING

ADD CONSTRAINT POSTING_TERMS_FK FOREIGN KEY ( ID_TERM ) REFERENCES TERMS ( ID_TERM ) ;

Nama Field Tipe Data Ukuran Keterangan

dfk NUMBER - Jumlah dokumen yang mengandung

term

nidfk NUMBER - Hasil perhitungan dari (log(n/dfk))/log n

Berikut perintah SQL untuk membuat tabel terms ditunjukkan pada Listing 4.4:

Listing 4.4. Create tabel terms

5. Tabel Posting_Stopword

Tabel 4.5. Tabel Posting_stopword

Nama Field Tipe Data Ukuran Keterangan

id_document NUMBER - Foreign key dari tabel documents id_stopword NUMBER - Foreign key dari tabel stopwords

frequency NUMBER - Frekuensi stopword pada dokumen

Berikut perintah SQL untuk membuat tabel posting_stopword ditunjukkan pada Listing 4.5:

Listing 4.5. Create tabel posting_stopword

CREATE TABLE TERMS

( ID_TERM NUMBER NOT NULL, TERMS VARCHAR2 (50) ,

STEMMED_WORDS VARCHAR2 (50) , DFK NUMBER ,

NIDFK NUMBER ) ;

ALTER TABLE TERMS

ADD CONSTRAINT TERMS_PK PRIMARY KEY ( ID_TERM ) ;

CREATE TABLE POSTING_STOPWORD (

FREQUENCY NUMBER,

ID_STOPWORD NUMBER NOT NULL , ID_DOCUMENT NUMBER NOT NULL )

6. Tabel Stopwords

Tabel 4.6. Tabel Stopwords

Nama Field Tipe Data Ukuran Keterangan

id_stopword NUMBER - Primary key untuk tabel stopwords

stopword VARCHAR2 20 Daftar kata buang

Berikut perintah SQL untuk tabel stopwords ditunjukkan pada Listing 4.6:

Listing 4.6. Create tabel stopwords

ALTER TABLE POSTING_STOPWORD

ADD CONSTRAINT POSTING_STOPWORD_DOCUMENTS_FK FOREIGN KEY ( ID_DOCUMENT ) REFERENCES DOCUMENTS ( ID_DOCUMENT ) ;

ALTER TABLE POSTING_STOPWORD

ADD CONSTRAINT POSTING_STOPWORD_STOPWORDS_FK FOREIGN KEY ( ID_STOPWORD ) REFERENCES STOPWORDS ( ID_STOPWORD ) ;

CREATE TABLE STOPWORDS (

ID_STOPWORD NUMBER NOT NULL , STOPWORD VARCHAR2 (20) } ;

CREATE INDEX STOPWORDS__IDX ON STOPWORDS (

ID_STOPWORD ASC , STOPWORD ASC )

;

ALTER TABLE STOPWORDS

7. Tabel Dictionary

Tabel 4.7. Tabel Dictionary

Nama Field Tipe Data Ukuran Keterangan

id_dictionary NUMBER - Primary key untuk tabel dictionary

root_word VARCHAR2 20 Daftar kata dasar Bahasa Indonesia

Berikut perintah SQL untuk membuat tabel dictionary ditunjukkan pada Listing 4.7:

Listing 4.7. Create tabel dictionary

8. Tabel Administrator

Tabel 4.8. Tabel Administrator

Nama Field Tipe Data Ukuran Keterangan

id_administrator NUMBER - Primary key untuk tabel administrator

username VARCHAR2 10 Username

pasword VARCHAR2 20 Password

CREATE TABLE DICTIONARY (

ID_DICTIONARY NUMBER NOT NULL , ROOT_WORD VARCHAR2 (20)

) ;

CREATE UNIQUE INDEX DICTIONARY__IDX ON DICTIONARY (

ID_DICTIONARY ASC , ROOT_WORD ASC )

;

ALTER TABLE DICTIONARY

Berikut perintah SQL yang digunakan untuk membuat tabel administrator ditunjukkan pada Listing 4.8:

Listing 4.8. Create tabel administrator

9. Tabel Sourceterm

Tabel 4.9. Tabel Sourceterm

Nama Field Tipe Data Ukuran Keterangan

id_sourceterm NUMBER - Primary key untuk tabel sourceterm

id_term NUMBER - Foreign key dari tabel terms word VARCHAR2 50 Kata tanpa proses stemming is_root_word CHAR 1 Keterangan apakah terms

ada di kamus

Berikut perintah SQL yang digunakan untuk membuat tabel sourceterm ditunjukkan pada Listing 4.9:

Listing 4.9. Create tabel sourceterm

CREATE TABLE ADMINISTRATOR (

ID_ADMINISTRATOR NUMBER NOT NULL , USERNAME VARCHAR2 (10) ,

PASWORD VARCHAR2 (20) )

;

ALTER TABLE ADMINISTRATOR

ADD CONSTRAINT ADMINISTRATOR_PK PRIMARY KEY ( ID_ADMINISTRATOR ) ;

CREATE TABLE SOURCETERM (

ID_SOURCETERM INTEGER NOT NULL , WORD VARCHAR2 (50) ,

IS_ROOT_WORD CHAR (1) , ID_TERM INTEGER NOT NULL )

;

ALTER TABLE SOURCETERM

Berikut proses pembuatan type dan tabel pada database index ready ORDBMS :

1. Tabel Jurnal

Tabel 4.10. Tabel Jurnal

Nama Field Tipe Data Ukuran Keterangan

jurnal_id NUMBER - Primary key untuk tabel jurnal judul VARCHAR2 256 Judul dari dokumen jurnal

tahun NUMBER - Tahun dari dokumen jurnal

nama_penulis VARCHAR2 100 Nama penulis dari dokumen jurnal

path VARCHAR2 256 Nama file dari dokumen jurnal

MAXJTFIJ NUMBER - Frekuensi terbesar dari sebuah dokumen

Pada tabel jurnal dibuat terlebih dahulu type dengan nama jurnalType. Berikut perintah SQL untuk membuat jurnalType ditunjukkan pada Listing 4.10:

Listing 4.10. Type untuk object type JurnalType create or replace TYPE JurnalType AS OBJECT (jurnal_id NUMBER, judul VARCHAR2(256), tahun NUMBER, nama_penulis VARCHAR2(100), Maxjtfij NUMBER, path VARCHAR2(256)); /

ALTER TABLE SOURCETERM

ADD CONSTRAINT SOURCETERM_TERMS_FK FOREIGN KEY ( ID_TERM ) REFERENCES TERMS ( ID_TERM ) ;

Kemudian, dibuatlah tabel jurnal. Berikut perintah SQL untuk membuat tabel jurnal yang ditunjukkan pada Listing 4.11:

Listing 4.11. Create tabel jurnal

2. Tabel Term dan Nested Tabel Posting_Term_Table

Tabel 4.11. Tabel Term

Nama Field Tipe Data Ukuran Keterangan

term_id NUMBER - Primary key untuk tabel

term

term VARCHAR2 50 Term

dfk NUMBER - Jumlah dokumen yang

mengandung term

nidfk NUMBER - Hasil perhitungan dari

(log(n/dfk))/log n posting_term PostingListN

estedType

- Posting list dari nested table

tfk NUMBER - Frekuensi dari term dalam

dokumen

ntfik NUMBER - Hasil perhitungan

tfik/Maxjtfij

w NUMBER - Bobot dari sebuah term

dengan rumus

perhitungannya ndfik*ntfik

jurnal_posting REF - Field untuk merujuk ke

obyek tabel jurnal CREATE TABLE Jurnal of JurnalType

(jurnal_id not null, primary key (jurnal_id));

Pada tabel term terdapat nested table dengan nama tabel posting_term_table. Sebelum membuat tabel dibuat dahulu type dengan nama termType untuk tabel term dan postingListType, postingListNestedType untuk nested table.

Berikut perintah SQL untuk membuat termType ditunjukkan pada Listing 4.12:

Listing 4.12. Type untuk object type termType

Berikut perintah SQL untuk membuat postingListType dan postingListNestedType ditunjukkan pada Listing 4.13:

Listing 4.13. Type untuk object type PostingListType

Kemudian, dibuatlah tabel term dan nested table posting_term_table. Berikut perintah SQL untuk membuat tabel term dan nested table posting_term_table ditunjukkan pada Listing 4.14:

Listing 4.14. Create tabel term

CREATE OR REPLACE TYPE termType AS OBJECT (term_id NUMBER, term VARCHAR2(50), dfk NUMBER, nidfk NUMBER, posting_term PostingListNestedType); /

create or replace TYPE PostingListType AS OBJECT (tfik NUMBER,

ntfik DECIMAL(10,5), w NUMBER,

jurnal_posting REF JurnalType); /

CREATE TYPE PostingListNestedType AS TABLE OF PostingListType; /

CREATE TABLE term OF termType (term_id NOT NULL,

PRIMARY KEY (term_id))

Dokumen terkait