Code Monkey home page Code Monkey logo

tubes3_goyangsinggalang's Introduction

GoyangSinggalang

Penjelasan Algoritma KMP & BM

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.

Requirement program dan instalasi tertentu bila ada

  • Dotnet
  • Linux / Windows
  • MySQL

How To Run

Setup Database

  1. Buka MySQL dengan user root lalu buat database bernama "tubes3_stima".
CREATE DATABASE tubes3_stima;
  1. Buat user dengan username "college" dan password "12345" di local database.
CREATE USER 'college'@'localhost' IDENTIFIED BY '12345';
  1. Berikan semua privilege pada user tersebut pada database tubes3_stima
GRANT ALL PRIVILEGES ON tubes3_stima.* TO 'college'@'localhost';
  1. Load hasil seeding encrypted (dump pada src/db/seeded.sql)
make load-dump

Jalankan Program

Jalankan script shell gui.sh

make run

Beberapa command tambahan

  1. Migrate / import schema database dengan encryption
make migrate
  1. Generate seeding baru dengan encryption AES
make seed
  1. Migrate / import schema database raw (tanpa encryption)
make raw-migrate
  1. Generate seed baru tanpa encryption sama sekali
make raw-seed
  1. 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
  1. Run real stress test
make stress-real
  1. Run altered easy stress test
make stress-easy
  1. Run altered medium stress test
make stress-medium
  1. Run altered hard stress test
make stress-hard

Author (Identitas Pembuat)

NIM Nama
13522011 Dewantoro Triatmojo
13522066 Nyoman Ganadipa Narayana
13522067 Randy Verdian

tubes3_goyangsinggalang's People

Contributors

dewodt avatar ganadipa avatar randyver avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.