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