Algoritma Knuth-Morris-Pratt (KMP) digunakan untuk mencari sebuah substring (pola) dalam sebuah string (teks) secara efisien. Algoritma ini mempercepat pencarian dengan memanfaatkan informasi dari pola itu sendiri untuk menghindari pemeriksaan ulang karakter yang sudah diperiksa. Pertama, dilakukan preprocessing dengan pembuatan array LPS. Buat array Longest Prefix Suffix (LPS) untuk pola yang menunjukkan panjang prefix terpanjang dari pola yang juga merupakan suffix. Setelah itu, lakukan pencarian. Mulai mencocokkan pola dengan teks. Jika karakter cocok, lanjutkan ke karakter berikutnya. Jika terjadi mismatch, gunakan nilai dari LPS array untuk menggeser pola tanpa harus mencocokkan ulang karakter yang sudah sesuai sebelumnya. Kompleksitas waktu O(n + m), di mana n adalah panjang teks dan m adalah panjang pola.
Algoritma Boyer-Moore (BM) juga digunakan untuk mencari substring dalam string, tetapi lebih efisien dibandingkan KMP pada teks yang besar. Algoritma ini bekerja dengan memulai pencocokan dari akhir pola ke awal, dan menggunakan dua heuristik untuk mempercepat pencarian: Bad Character Heuristic dan Good Suffix Heuristic. Pertama, dilakukan preprocessing buat tabel yang mencatat posisi terakhir dari setiap karakter dalam pola. Setelah itu, lakukan pencarian. Mulai mencocokkan pola dengan teks dari kanan ke kiri. Jika terjadi mismatch, gunakan Bad Character atau Good Suffix untuk menggeser pola ke kanan. Kompleksitas waktu rata-rata mendekati O(n/m), di mana n adalah panjang teks dan m adalah panjang pola, karena pergeseran yang lebih besar dibandingkan KMP.
- Dotnet
- Linux / Windows
- MySQL
- Buka MySQL dengan user root lalu buat database bernama "tubes3_stima".
CREATE DATABASE tubes3_stima;
- Buat user dengan username "college" dan password "12345" di local database.
CREATE USER 'college'@'localhost' IDENTIFIED BY '12345';
- Berikan semua privilege pada user tersebut pada database tubes3_stima
GRANT ALL PRIVILEGES ON tubes3_stima.* TO 'college'@'localhost';
- Load hasil seeding encrypted (dump pada src/db/seeded.sql)
make load-dump
Jalankan script shell gui.sh
make run
- Migrate / import schema database dengan encryption
make migrate
- Generate seeding baru dengan encryption AES
make seed
- Migrate / import schema database raw (tanpa encryption)
make raw-migrate
- Generate seed baru tanpa encryption sama sekali
make raw-seed
- Convert hasil dump test case asisten ke schema enkripsi serta menenkripsi data-datanya juga. (Pastikan data sudah diload terlebih dahulu, bagian ini hanya mengkonversikan saja.)
make convert-dump
- Run real stress test
make stress-real
- Run altered easy stress test
make stress-easy
- Run altered medium stress test
make stress-medium
- Run altered hard stress test
make stress-hard
NIM | Nama |
---|---|
13522011 | Dewantoro Triatmojo |
13522066 | Nyoman Ganadipa Narayana |
13522067 | Randy Verdian |