Implementasi Basis Data 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 ADD CONSTRAINT STATUS_DOCUMENTS_PK PRIMARY KEY ID_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 ndfikntfik 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 logndfklog 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 ADD CONSTRAINT STOPWORDS_PK PRIMARY KEY ID_STOPWORD ; 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 ADD CONSTRAINT DICTIONARY_PK PRIMARY KEY ID_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 ADD CONSTRAINT SOURCETERM_PK PRIMARY KEY ID_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 VARCHAR2256, tahun NUMBER, nama_penulis VARCHAR2100, Maxjtfij NUMBER, path VARCHAR2256; 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 logndfklog n posting_term PostingListN estedType - Posting list dari nested table tfk NUMBER - Frekuensi dari term dalam dokumen ntfik NUMBER - Hasil perhitungan tfikMaxjtfij w NUMBER - Bobot dari sebuah term dengan rumus perhitungannya ndfikntfik 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 VARCHAR250, dfk NUMBER, nidfk NUMBER, posting_term PostingListNestedType; create or replace TYPE PostingListType AS OBJECT tfik NUMBER, ntfik DECIMAL10,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 NESTED TABLE posting_term STORE AS posting_term_table;

4.3 Koneksi dari Java ke Oracle