Skip to content
INOVATIF, PROFESIONAL, DAN BERKEPRIBADIAN
facebook
youtube
instagram
Pusat Pengelolaan Digitalisasi Penjaminan Mutu Universitas Medan Area
Call Support 0823-6994-9970
Email Support [email protected]
Location Jl. Kolam No. 1 Medan Estate
  • BERANDA
  • TENTANG
    • PROFIL
    • VISI DAN MISI
    • STRUKTUR ORGANISASI
  • BERITA KEGIATAN
  • KERJASAMA
  • LAYANAN & INFORMASI
    • APLIKASI
      • PERPUSTAKAAN UMA
      • ACADEMIC ONLINE CAMPUS (AOC)
      • REPOSITORI UMA
      • TRACER STUDY (ALUMNI)
      • JURNAL
      • E-LEARNING UMA
      • DIREKTORI MAHASISWA
    • ARSIP
      • PERUBAHAN DATA MAHASISWA DI PDDIKTI
      • Buku Pedoman Universitas Medan Area
      • KURIKULUM
        • Kurikulum Teknik
        • Kurikulum Pertanian
        • Kurikulum Ekonomi dan Bisnis
        • Kurikulum Hukum
        • Kurikulum Isipol
        • Kurikulum Psikologi
        • Kurikulum Saintek
        • Kurikulum Agama Islam
      • Kalender Akademik Universitas Medan Area
      • Artikel
    • Helpdesk P2DPM
  • id
    • en
    • id

Apa Itu Algoritma Knuth Morris Pratt

Home > Artikel > Apa Itu Algoritma Knuth Morris Pratt

Apa Itu Algoritma Knuth Morris Pratt

Posted on 16 Mei 202516 Mei 2025 by Anisa Rahma Nasution
0

Sejarah Algoritma KMP (Knuth-Morris-Pratt)

Algoritma Knuth-Morris-Pratt (KMP) diciptakan sebagai solusi terhadap permasalahan pencarian string yang efisien—terutama dalam kasus di mana pencocokan karakter yang berulang-ulang bisa menyebabkan pemborosan waktu.

Tokoh di Balik Algoritma KMP

Algoritma ini dinamai dari nama tiga ilmuwan komputer yang mengembangkannya:

  1. Donald E. Knuth

    • Salah satu tokoh paling berpengaruh dalam ilmu komputer teoritis.

    • Penulis buku legendaris The Art of Computer Programming.

  2. James H. Morris

    • Seorang peneliti dalam bidang sistem dan teori komputasi.

  3. Vaughan R. Pratt

    • Kontributor dalam banyak aspek teori komputasi, termasuk teori otomata dan logika formal.

Latar Belakang Pembuatan

Pada tahun 1970, James H. Morris sedang meneliti teknik pencocokan string sebagai bagian dari tesis Ph.D.-nya di Stanford University. Ia menemukan bahwa proses pencarian string dapat dioptimalkan dengan menghindari pencocokan ulang karakter yang sudah diperiksa sebelumnya.

Kemudian, Donald Knuth dan Vaughan Pratt ikut bekerja bersama Morris untuk merapikan, menyempurnakan, dan memformalkan ide tersebut. Hasil kerja mereka akhirnya diterbitkan pada tahun 1977 dalam makalah ilmiah berjudul:

“Fast Pattern Matching in Strings”, oleh D.E. Knuth, J.H. Morris Jr., dan V.R. Pratt.

Dampak dan Pengaruh

Algoritma ini merupakan salah satu algoritma pencocokan string pertama yang menawarkan kompleksitas waktu linear (O(n + m)), menjadikannya sangat efisien dibanding metode brute force yang memiliki kompleksitas O(n × m).

Sejak itu, KMP menjadi algoritma dasar dalam bidang:

  • Pemrosesan teks

  • Compiler (parsing token)

  • Bioinformatika (penyesuaian urutan DNA)

  • Pencarian dalam editor teks atau IDE

Inovasi Utama: LPS (Longest Prefix Suffix)

Intuisi inovatif utama dari KMP adalah penggunaan prefix table (LPS array), yang memungkinkan pattern “melompat” saat terjadi mismatch, tanpa perlu mencocokkan karakter yang sudah cocok sebelumnya. Ini menghemat waktu dan menghindari pemeriksaan ulang yang tidak perlu.

Pengertian Algoritma Knuth-Morris-Pratt (KMP)

Algoritma Knuth-Morris-Pratt (KMP) adalah algoritma pencocokan string (string matching) yang digunakan untuk mencari kemunculan suatu pola (pattern) di dalam sebuah teks (text). Algoritma ini dirancang untuk meningkatkan efisiensi pencarian dengan menghindari pemeriksaan ulang terhadap karakter-karakter dalam teks yang sebelumnya telah dibandingkan.

Saat membandingkan pattern dengan text, jika terjadi ketidakcocokan, KMP tidak langsung kembali ke awal pattern seperti metode brute-force. Sebaliknya, KMP menggunakan informasi dari bagian awal pola yang sudah cocok untuk menentukan sejauh mana pola dapat digeser tanpa kehilangan kecocokan yang mungkin. Informasi ini disimpan dalam sebuah array yang disebut LPS (Longest Prefix which is also Suffix).

Dua Tahap Utama Algoritma KMP:

1. Membangun Prefix Table (Failure Function / LPS – Longest Prefix Suffix)

Prefix table berisi panjang dari prefix terpanjang yang juga merupakan suffix untuk setiap posisi dalam pattern. Tabel ini digunakan untuk mengetahui berapa banyak pattern yang bisa digeser ketika terjadi ketidakcocokan.

Contoh:
Misalkan pattern = "ababaca"

Prefix table (LPS):

Index : 0 1 2 3 4 5 6
Pattern: a b a b a c a
LPS : 0 0 1 2 3 0 1

Penjelasan:

  • Untuk indeks ke-4 (karakter 'a'), substring "abab" memiliki prefix "ab" dan suffix "ab", maka LPS = 2.

2. Pencocokan Pola dengan Teks

Dengan menggunakan prefix table:

  • Jika terjadi kecocokan, lanjutkan ke karakter berikutnya.

  • Jika terjadi ketidakcocokan:

      • Pembuatan prefix table: O(m), di mana m = panjang pattern.

      • Pencocokan string: O(n), di mana n = panjang text.

Total waktu: O(n + m) → sangat efisien dibanding brute force O(nm).

Jangan kembali ke awal pattern, melainkan geser sesuai nilai pada prefix table.

Kompleksitas Waktu

Contoh Sederhana

1. Buat LPS:

Pattern : a b c a b y
Index : 0 1 2 3 4 5
LPS : 0 0 0 1 2 0

2. Cocokkan pola dalam teks:

  • Mencocokkan karakter demi karakter.

  • Jika cocok, teruskan.

  • Jika tidak cocok, gunakan LPS untuk mengetahui ke mana lompat, bukan ke awal lagi.

Hasilnya: "abcaby" cocok di posisi 6 dalam teks.

Kelebihan KMP

  • Tidak ada pemeriksaan ulang karakter.

  • Kompleksitas waktu linear.

  • Cocok untuk aplikasi seperti text editor, bioinformatika, dan search engine.

Tujuan Utama

  • Menemukan semua posisi dalam teks di mana pola muncul.

  • Melakukan pencocokan secara efisien dalam waktu linear.

Ciri Khas

  • Kompleksitas waktu: O(n + m)
    (n = panjang teks, m = panjang pola)

  • Tidak membandingkan ulang karakter yang sudah dicek.

  • Menggunakan tabel LPS untuk optimasi proses pencarian.

Contoh Kasus

Mencari pola "abc" dalam teks "abcabcabc":

  • KMP akan mencocokkan karakter satu per satu.

  • Saat terjadi ketidakcocokan, ia akan menggunakan tabel LPS untuk memutuskan seberapa jauh pattern bisa digeser — tanpa perlu memulai dari awal lagi.

Algoritma Knuth-Morris-Pratt (KMP) merupakan tonggak penting dalam bidang algoritma pencocokan string. Dengan mengusung pendekatan cerdas melalui prefix table (LPS), KMP menawarkan efisiensi tinggi dan kompleksitas waktu linear, menjadikannya solusi yang optimal dalam berbagai aplikasi dunia nyata — mulai dari editor teks hingga bioinformatika.

Diciptakan oleh tiga tokoh besar dalam ilmu komputer, KMP tidak hanya menyelesaikan masalah pencocokan string dengan cara yang elegan, tetapi juga membuka jalan bagi pengembangan algoritma string lainnya yang lebih kompleks dan efisien.

Memahami KMP berarti memahami prinsip dasar dari bagaimana komputasi efisien seharusnya bekerja: hindari pengulangan yang tidak perlu, dan manfaatkan informasi yang sudah tersedia secara optimal.

Post Views: 657

p2dpm_uma

Jalan Kolam Nomor 1 Medan Estate

#PRESTASIDOSENUMA Selamat & Sukses Kepada 23 Dosen #PRESTASIDOSENUMA
Selamat & Sukses Kepada 23 Dosen Universitas Medan Area atas Penandatanganan Kontrak Program Penelitian & Pengabdian Kepada Masyarakat DPPM KEMDIKTISAINTEK Tahun Anggaran 2026
.
Informasi dan Pendaftaran Mahasiswa Baru :
➖➖➖➖➖➖➖
https://pmb.uma.ac.id
➖➖➖➖➖➖➖

Call Center UMA :
☎️0811 6013 888

#ptssehat #ptsterbaik #UMAkampusJuara #KampusUnggul
Get @reshare_app • @umabestari #REKORMURI Rektor U Get @reshare_app • @umabestari #REKORMURI
Rektor Universitas Medan Area Menjadi Salah Satu Pemateri Dalam Pemecahan Rekor MURI dalam Seminar 10 Pohon Ilmu dan Peserta Terbanyak yang di selenggarakan oleh Kantor LLDIKTI Wilayah I Sumut
.
Informasi dan Pendaftaran Mahasiswa Baru :
➖➖➖➖➖➖➖
https://pmb.uma.ac.id
➖➖➖➖➖➖➖

Call Center UMA :
☎️0811 6013 888

#ptssehat #PTSterbaik
#UMAkampusJuara #KampusUnggul
Get @reshare_app • @umabestari #KUNJUNGAN Kunjunga Get @reshare_app • @umabestari #KUNJUNGAN
Kunjungan Dr. dr. Delyuzar, M.Ked.(PA), Sp.PA(K), Ketua Umum Pengurus Wilayah (PW) Asosiasi Masjid Kampus
Indonesia (AMKI) Sumatera Utara ke Universitas Medan Area Dalam rangka melihat Pelaksanaan Pemotongan Hewan Qurban.
.
Informasi dan Pendaftaran Mahasiswa Baru :
➖➖➖➖➖➖➖
https://pmb.uma.ac.id
➖➖➖➖➖➖➖

Call Center UMA :
☎️0811 6013 888

#ptssehat #PTSterbaik
#UMAkampusJuara #KampusUnggul
Selamat Hari Raya Idul Adha 1447 H Selamat Hari Raya Idul Adha 1447 H
Yuk, buruan daftar sekarang! Yuk, buruan daftar sekarang!
Get @reshare_app • @umabestari #SOSIALISASI Dinas Get @reshare_app • @umabestari #SOSIALISASI
Dinas Pariwisata Medan dan Universitas Medan Area  berkolaborasi melaksanakan Sosialisasi Kompetisi Desain Logo HUT Kota Medan ke-436 Tahun 2026.
#PMBUMA2026 Yuk.. Join di Kampus Unggul Universi #PMBUMA2026 

Yuk.. Join di Kampus Unggul Universitas Medan Area. Dapatkan Beragam Fasilitas Pendidikan dan Beasiswa Hingga 100%. . 

Informasi dan Pendaftaran Mahasiswa Baru : 

➖➖➖➖➖➖➖
 https://pmb.uma.ac.id 
➖➖➖➖➖➖➖ 

Call Center UMA : 
☎️0811 6013 888 

#ptssehat #ptsterbaik #UMAkampusJuara
Get @reshare_app • @umabestari #JADWALUTSUMA Selam Get @reshare_app • @umabestari #JADWALUTSUMA
Selamat Melaksanakan Ujian Tengah Semester (UTS) Semester Genap Tahun Akademik 2025/2026 yang dilaksanakan tanggal 11 Mei s.d. 25 Mei 2026
.
Informasi dan Pendaftaran Mahasiswa Baru :
➖➖➖➖➖➖➖
https://pmb.uma.ac.id
➖➖➖➖➖➖➖

Call Center UMA :
☎️0811 6013 888

#ptssehat #ptsterbaik #UMAkampusJuara #KampusUnggul
Follow on Instagram

Lokasi P2DPM

url url url url url url url url url url url url

Kategori

  • Berita Terbaru
  • Pengumuman
  • Berita Kegiatan
  • Artikel

POSTINGAN TERPOPULER

  • Memahami Perbedaan Waktu: AM/PM, Zona Waktu, dan Sistem Jam
  • Cara Melihat IP Address di Semua Jenis Perangkat dan Jenis-Jenisnya
  • Dasar-Dasar Desain Grafis: Prinsip yang Harus Diketahui Pemula
  • Manfaat Pengelolaan Sumber Daya Alam Berkelanjutan Untuk Kehidupan
  • Pengertian Gelombang Longitudinal dan Contohnya dalam Kehidupan Sehari-Hari
KAMPUS 1
Jalan Kolam Nomor 1 Medan Estate / Jalan Gedung PBSI, Medan 20223
(061) 7360168, Call Canter : 0811-6013-888
[email protected]
KAMPUS 2
Jalan Sei Serayu Nomor 70 A / Jalan Setia Budi Nomor 79 B, Medan 20122
(061) 42402994, HP : 0811 607 259
[email protected]
© 2026 P2A2I - Universitas Medan Area