} finally { try {
connection.setAutoCommittrue; if result = null {
result.close; }
if statement = null { statement.close;
} } catch SQLException exception {
throw exception; }
} }
List Code 4. 12 Stopword removal Query
basis data yang digunakan adalah variabel SQL_CEKKATA. Query tersebut berfungsi mengambil nilai indek
stopword. Berikut adalah pemaparan variabel SQL_CEKKATA.
private final String SQL_CEKKATA = SELECT id_stop FROM katastop WHERE lowerkata_stop LIKE ?;
Query 4. 6 Query SQL_CEKKATA
4.3.6. Penyimpanan pada Basis Data
Penyimpanan pada basis data merupakan proses dimana sistem akan menyimpan dokumen, menghitung nilai tf, serta membuat indek pada
basis data. Pada proses ini penyimpanan dokumen, sistem menggunakan stored procedure insert_dokumen_table.
Berikut adalah stored procedure insert_dokumen_table.
DELIMITER USE `skripsi095314051`
DROP PROCEDURE IF EXISTS `insert_dokumen_table` CREATE DEFINER=`skripsi``localhost` PROCEDURE `insert_dokumen_table`IN
p_judul VARCHAR255, IN p_isi TEXT, IN p_nama_file VARCHAR255 BEGIN
DECLARE v_judul VARCHAR255; DECLARE v_isi TEXT;
DECLARE v_id INT; SELECT judul, isi INTO v_judul, v_isi
FROM dokumen WHERE judul LIKE p_judul AND isi LIKE p_isi; IF v_judul IS NULL AND v_isi IS NULL THEN
INSERT INTO dokumen judul, isi, file_fisik VALUES p_judul, p_isi, p_nama_file;
ELSE SELECT id INTO v_id FROM dokumen WHERE judul LIKE p_judul;
UPDATE dokumen SET judul = p_judul, isi = p_isi WHERE id = v_id; END IF;
END DELIMITER ;
Query 4. 7 Stored procedure insert_dokumen_table Untuk menjalankan stored procedure insert_dokumen_table,
sistem akan memanggil metode insertDokumenDokumen. Berikut adalah pemaparan metode insertDokumen.
public void insertDokumenDokumen dokumen throws SQLException { CallableStatement statement = null;
ResultSet result = null; try {
connection.setAutoCommitfalse; statement = connection.prepareCallSQL_INSERTDOKUMEN;
statement.setString1, dokumen.getJudul; statement.setString2, dokumen.getIsi;
statement.setString3, dokumen.getNamaFile; statement.executeUpdate;
connection.commit; } catch SQLException exception {
connection.rollback; throw exception;
} finally { try {
connection.setAutoCommittrue; if result = null {result.close;}
if statement = null { statement.close;} } catch SQLException exception {
throw exception; }
} }
List Code 4. 13 List insertDokumen Perhitungan tf dilakukan pada saat proses penyimpanan kata dari
sebuah dokumen. Proses ini memanfaatkan stored procedure insertKata. Stored procedure
akan berfungsi untuk menyimpan kata pada basis data dan menghitung nilai tf. Tidak hanya itu, stored procedure ini juga
berfungsi membuat indek pada basis data. Indek tersebut akan tersimpan pada tabel dokumen_kata. Berikut adalah pemaparan stored procedure
insertKata.
DELIMITER USE `skripsi095314051`
DROP PROCEDURE IF EXISTS `insertKata` CREATE DEFINER=`skripsi``localhost` PROCEDURE `insertKata`IN p_judul
VARCHAR255, IN kata VARCHAR255 BEGIN
DECLARE v_idkata INT; DECLARE v_iddok INT;
DECLARE v_tf INT DEFAULT 0; DECLARE v_id INT;
DECLARE v_idstop INT DEFAULT 0; SELECT IFNULLid_stop,0 INTO v_idstop FROM katastop WHERE
kata_stop LIKE kata; IF v_idstop = 0 THEN
SELECT IFNULLid_kata,0 INTO v_idkata FROM katadasar WHERE kata_dasar LIKE kata;
SELECT IFNULLid,0 INTO v_iddok FROM dokumen WHERE LOWERjudul LIKE p_judul;
IF v_idkata = 0 THEN jika belum ada INSERT INTO katadasar kata_dasar VALUES kata;
END IF; SELECT IFNULLid_kata,0 INTO v_idkata FROM katadasar
WHERE kata_dasar LIKE kata; SELECT IFNULLtf,0 INTO v_tf FROM dokumen_kata WHERE
dokumen_id = v_iddok AND katadasar_id = v_idkata; IF v_tf = 0 THENjika belum ada
INSERT INTO dokumen_kata dokumen_id, katadasar_id, tf VALUESv_iddok, v_idkata, 1;
ELSEjika sudah ada kata UPDATE dokumen_kata SET tf = v_tf+1 WHERE
dokumen_id = v_iddok AND katadasar_id = v_idkata; END IF;
END IF; END
DELIMITER ;
Query 4. 8 Stored procedure insertKata
Sistem akan memanggil metode insertKataString untuk menjalankan stored procedure Query 4. 8.
4.3.7. Penambahan Dokumen