Anda di halaman 1dari 20

EVALUASI MODUL 0 : C++

1. Dalam bahasa pemrograman C++, apakah A = a? Jelaskan alasannya!


2. Apa perbedaan perintah ‘printf’ dan ‘scanf’ dengan ‘cin’ dan ‘cout’?
3. Apa perbedaan tipe data ‘char’ dengan tipe data ‘string’?
4. Apa perbedaan perintah ‘clrscr()’ dengan perintah ‘system(“CLS”)’?
5. Apa perbedaan perintah ‘getch()’ dengan perintah ‘getche()’?
6. Apa perbedaan ‘void main()’ dengan ‘int main()’?
7. Apa kegunaan dari perintah ‘using namespace std’?
8. Buatlah tabel berisi macam-macam header yang ada dalam bahasa pemrograman C++
beserta perintah-perintah didalamnya!
9. Buatlah tabel berisi macam-macam tipe data yang ada dalam bahasa pemrograman
C++!
10. Buatlah tabel berisi macam-macam operator yang terdapat dalam bahasa pemrograman
C++!

Jawaban

1.

2. perbedaan nya yaitu printf () dengan cout () adalah printf() harus di masukan string
penandanya, sedangkan cout harus di pisahkan dengan tanda <<. Pustaka yang harus
dimasukan pada masing - masing perintah juga berbeda yakni printf() harus
#include<stdio.h> sedangkan pada cout () harus ada <iostream.h> lalu perbedaan scanf
dan cin adalah, pada scanf harus dimasukan format scanf() yang sudah di tentukan
contoh %s, sedangkan pada \

3. char adalah tipe data kerakter seperti huruf namun terbatas pada jumlah nilai yang kita
masukan. Sedangkan string adalah tipe variabel data yang akan di tampilkan seperti
yang kita tulis ketika compile.

4. clrscr() ini berfungsi seperti di bahasa pemograman lain seperti pascal dan hanya dapat
di gunakan di pemograman yang di compile dev-c yang sudah di masukan preprocessor
process.h sedangkan system(cls) adalah untuk membersihkan layar pada pemograman
yang akan dijalankan sehingga pemograman dapat menentukan saat untuk menghapus
data yang telah di jalankan tanpa harus menutup program tersebut dan membuka nya
kembali.

5. getch() biasanya di gunakan untuk mengakhiri program, tapi fungsi getch() ini di
gunakan untuk membaca input dari keybord. Karakter yang diambil oleh fungsi getch()
ini tidak di tampilkan pada console, karakter yang di ambil dari keybord hanya satu
karakter. Sedangkan getche() merupakan kebalikan dari getch() yang mana membaca
inputan dari keybord. Karakter yang diambil oleh fungsi getche() ini di tampilkan pada
console.

6. void main () adalah fungsi tidak bertipe data (kalau di pascal lebih di kenal procedure)
void main () itu sama saja tidak dianggap. Void main () digunakan apabila sebuah
fungsi tidak memerlukan argument. Void berarti kosong, sedangkan int main() adalah
fungsi utama dari sebuah kode bahasa c. Fungsi ini memberikan nilai balik menurut
type datanya, dan karena memiliki nilai balik maka di berikan perintah return nilai.

7. using namespace std itu perintah yang di gunakan untuk mendeklarasikan atau
memberitahukan kepada compiler kalo kita bakal menggunakan semua fungsi/class/file
yang terdapat dalam using namespace std.

8. macam-macam header :

stdio.h Merupakan singkatan dari standar input output header yang digunakan
sebagai standar input output operasi yang digunakan oleh bahasa C, akan
tetapi bisa juga digunakan dalam bahasa C++

iostream.h Merupakan singkatan dari input outout stream header yang digunakan
sebagai standar input output operasi yang digunakan oleh bahasa C++.

conio.h Merupakan File Header yang berfungsi untuk menampilkan hasil antarmuka
kepada pengguna.

math.h Merupakan file header yang berfungsi untuk operasi matematika.

stdlib.h Merupakan file header yang berfungsi untuk operasi pembanding dan
operasi konversi.

string.h Merupakan file header yang berfungsi untuk melakukan manipulasi string.

9. macam-macam tipe data C++

tipe Data Boolean (bool) Boolean adalah salah satu tipe data yang hanya memiliki dua
pilihan yaitu True (1) atau False (0).
tipe Data Character (char) Character adalah salah satu tipe data yang memungkinkan
kita untuk memesan memori berformat text (huruf, angka,
dan simbol) dengan karakter tunggal.
Tipe Data Integer (int) Integer adalah salah satu tipe data numerik yang
memungkinakan kita untuk menyimpan data dalam bentuk
bilangan bulat.
Tipe Data Floating Point Floating Point adalah salah satu tipe data numerik yang
(float) memungkinkan untuk menyimpan nilai dalam memori
bersifat bilangan pecahan atau real, maupun eksponensial.
Tipe Data Double Floating Double Floating Point sama seperti float yaiut salah satu tipe
Point (double) data yang bersifat menyatakan bilangan pecahan atau real,
maupun eksponensial.
String merupakan tipe data text (huruf, angka, dan simbol)
t ipe Data String (string) yang memungkinkan kita menyimpan nilai dengan bentuk
text, kumpulan dari character.
tipe Data Valueless (void) Valueless adalah salah satu tipe data yang berarti “tidak ada”
atau “tidak mempunyai tipe data”. Void masih di dalam
katagori tipe data tetapi kita tidak bisa menggunakanya pada
variabel biasa, void biasanya digunakan pada function yang
tidak mempunyai return value.

10. macam-macam operator c++

Assignment Operators Yang pertama kita akan


mengenal Assignment Operator. Sesuai
namanya, operator ini berfungsi untuk
memberikan nilai kepada variabel. Kita akan
menggunakan = ( tanda sama dengan )
untuk memberi nilai.
Arithmetic Operators Yang kedua adalah operator aritmetika.
Operator ini digunakan untuk melakukan
sebuah opearasi penghitungan atau
aritmatika dalam bahasa pemrograman.
Tugasnya untuk memecahkan masalah
matematika.
Compound Assignment Operator ini memodifikasi nilai variabel saat
ini dengan melakukan operasi di atasnya.

Increment and Decrement Operators Kedua operator ini sangatlah penting:


Operator Increment (++) dan operator
decrement (–) digunakan untuk
meningkatkan atau mengurangi satu nilai
yang tersimpan dalam sebuah variabel.
Relational and Comparison Operators Operator selanjutnya adalah operator relasi -
operator ini akan banyak kita gunakan dalam
suatu statement bersyarat yang selalu
menghasilkan nilai true atau false.
Logical Operators Operator Logika adalah operator yang
digunakan untuk membandingkan dua nilai
variabel atau lebih. Hasil dari operasi ini
adalah nilai boolean true atau false.
Conditional Ternary Operator Pada dasarnya, operator kondisi merupakan
penyederhanaan dari bentuk if..else yang
setiap blok dari if dan else hanya terdiri dari
satu statement/perintah.
Command Operator Operator koma (,) memiliki beberapa fungsi,
yaitu:

- Untuk memisahkan deretan deklarasi


variabel
- Untuk memisahkan argumen fungsi
- menyatukan dua ekspresi menjadi
sebuah pernyataan, dan
- memungkinkan pemberian lebih dari
satu ekspresi pada inisialisasi nilai awal.
EVALUASI MODUL 1 : QUEUE

1. Apa perbedaan dari ‘Queue’ dengan ‘Stack’?


2. Apa kegunaan dari ‘#define’, ‘MAXQUEUE’, dan ‘typedef’?
3. Apa yang dimaksud dengan ‘Array’?
4. Apa yang dimaksud dengan ‘Struct’?
5. Jelaskan maksud dari perintah pada baris koding berikut ini!

6. Jelaskan maksud dari perintah pada baris koding berikut ini!

7. Jelaskan maksud dari perintah pada baris koding berikut ini!

8. Jelaskan maksud dari perintah pada baris koding berikut ini!

Jawaban :

1. Stack :
a. Konsep utama dalam STACK adalah LIFO ( Last In First Out )
(Pertama masuk akan keluar terakhir, begitu pula yang terakhir masuk akan keluar
pertama kali) yang apabila kita mengahapus/ keluar data, maka data yang terakhir lah
yang akan terhapus/ keluar terlebih dahulu.
b. Tumpukan data yang seolah-olah ada data di atas data lain.
c. Suatu metode untuk Input dan hapus di dalam memori komputer.
Sedangkan :
a. Konsep utama dalam Queue adalah FIFO ( First In First Out ).
b. Antrian data yang seolah-olah ada data yang mengantri dari yang terawal sampai
yang terakhir.
c. Suatu metode untuk Input dan hapus di dalam memori komputer.

2. Typedef adalah keyword (kata kunci) yang digunakan untuk membuat nama alias untuk
tipe data lain. Sedangkan Define digunakan untuk mendefinisikan nama alias untuk
berbagai tipe data. Dan Maxqueue adalah variabel yang memberitahukan jumlah dari
queue yang akan di gunakan.

3. Array merupakan sebuah variabel yang menyimpan lebih dari 1 buah data yang memiliki
tipe data yang sama. Jadi dapat dikatakan bahwa array merupakan kumpulan dari data-
data tunggal yang dijadikan dalam 1 variabel array yang alamat memorinya berbeda yang
selanjutnya disebut elemen-elemen array yang bisa kita akses berdasarkan indeks.

4. Struct adalah tipe data bentukan yang berisi kumpulan variabel-variabel yang berada
dalam satu nama yang sama dan memiliki kaitan satu sama lain. Berbeda dengan array
hanya berupa kumpulan variabel yang bertipe data sama, struct bisa memiliki variabel-
variabel yang bertipe data sama atau berbeda, bahkan bisa menyimpan variabel yang
bertipe data array atau struct itu sendiri. Variabel-variabel yang menjadi anggota struct
disebut dengan elemen struct.

5. Pada perintah itu digunakan untuk pendeklarasian dari fungsi void initializequeue (queue
*Q) yang dimana akan memasukan jumlah dari variabel queue. Yaitu count, rear dan
front

6. Pada bagian ini merupakan pendeklarasian dari front dan rear yang dimana pada setiap
baris nya memiliki rumus nya yang nanti akan di jumlahkan seperti rear + 1, yang berarti
fungsi rear akan di tambah 1.

7. Merupakan pendeklarasian dari data ekor

8. Pada bagian ini merupakan pendeklarasian dari fungsi data ekor yang di mana akan di
buat rumus untuk menghitung jumlah data ekor queue.
EVALUASI MODUL 2 : SINGLE LINKED

1. Tuliskan dan jelaskan macam-macam linked list!


2. Apa yang dimaksud dengan ‘Node’?
3. Apa yang dimaksud dengan ‘Pointer’?
4. Proses apakah yang paling penting dalam linked list?
5. Jelaskan maksud dari perintah pada baris koding berikut ini!

6. Jelaskan maksud dari perintah pada baris koding berikut ini!

7. Jelaskan maksud dari perintah pada baris koding berikut ini!

8. Apa perbedaan ‘Hapus Depan’ dan ‘Hapus Belakang’ dalam linked list? Sertakan
baris kodingnya!

Jawaban :

1. - Single Linked List


Single Linked List merupakan suatu linked list yang hanya memiliki satu variabel
pointer saja. Dimana pointer tersebut menunjuk ke node selanjutnya. Biasanya field
pada tail menunjuk ke NULL.
- Double Linked List
Double Linked List merupakan suatu linked list yang memiliki dua variabel pointer
yaitu pointer yang menunjuk ke node selanjutnya dan pointer yang menunjuk ke node
sebelumnya. Setiap head dan tailnya juga menunjuk ke NULL
- Multiple Linked List
Multiple Linked List merupakan suatu linked list yang memiliki lebih dar 2 buat
variabel pointer. contoh
- Memory Allocation
Dalam C/C++, alokasi memory dapat dilakukan dengan menggunakan malloc ,
sedangkan untuk dealokasi dapat menggunakan free. Fungsi free hanya membebaskan
memory tetapi tidak menghapus isi dari memory tersebut.
2. Node adalah suatu sampul yang dikaitkan dengan sampul yang lain dalam suatu
urutan tertentu. Suatu sampul dapat berbentuk suatu struktur atau class.
3. Pointer merupakan pentunjuk atau lebih tepatnya adalah alamat kalau kita memahami
alamat berarti suatu lokasi, dalah pemahaman programing c++ ini berarti alamat
memory. Alamat memory ini merupakan alamat memory dari suatu variabel.
4. Pada saat proses melaksanakan penyisipan-penyisipan dan penghapusan-
penghapusan.
5. Pada baris ini merupakan pendeklarasian dari fungsi dari single linked list yang
dimana pada varibel nya terdapat kepala->==null, yang juga pendeklarasian dari
variabel kepala itu sendiri.
6. Pada baris ini merupakan pendeklarasian dari fungsi kepala yang telah di buat pada
baris koding sebelum nya. Yang membedakan nya pada barisi ini ditambah rumus dari
fungsi kepala pada node linked list.
7. Lalu pada baris ini merupakan bagian pendeklarasian dari bantu yang menjadi
kelanjutan dari fungsi kepala pada koding di atas
8. Hapus depan merupakan node yang akan di hapus pada pointer bantu depan,pointer
juga digunakan untuk menghapus node yang akan di hapus, sedangkan hapus
belakang membutuhkan pointer bantu dan hapus,pointer harus di gunakan untuk
menunjuk node yang akan di hapus, dan pointer bantu digunakan untuk menujuk node
sebelum node yang dihapus, pointer bantu akan di gunkan untuk menunjuk ke nilai
NULL.
Ilustrasi hapus depan
Void hapus depan()
Tnnode *hapus,*bantu;
If(isEmpty()==0){
Int d;
Hapus = head;
d= head->data;
if(head->next !=head){
bantu = head;
while(bantu->next ! = head){
bantu=bantu->next;
}
Head=head->next;
Delete hapus;
Bantu->next = head;
}else{
Head=NULL;
}
printf(“%d terhapus\n”,d);
}else printf (“masih kosong\n”);
}
Ilustrasi hapus belakang
Void hapusbelakang()
Tnode *hapus,*bantu;
If(isEmpty()==0){
Int d;
Hapus = head;
if(head->next !=head){
head=NULL;
}else{
bantu = head;
while(bantu->next ->next! = head){
bantu=bantu->next;
}
hapus=bantu->next;
D=bantu->next;
Bantu->next = head;
Delete=hapus;
}
printf(“%d terhapus\n”,d);
}else printf (“masih kosong\n”);
}
EVALUASI MODUL 3 : TREE

1. Apa perbedaan antara ‘Full Binary Tree’, ‘Perfect Binary Tree’, dan ‘Almost
Complete Binary Tree’?
2. Akan ditambahkan data-data bertipe integer pada pohon biner untuk pertama kali. Data
: 50, 23, 41, 90,86,99, 12, 7, 13.
Gambarkan hasil pohon binernya!
3. Diberikan data : 45, 39, 12, 50, 8, 88
Untuk ditempatkan pada daun-daun pohon biner dengan akar 37.
Gambarkan hasil pohon binernya!
4. Apa yang dimaksud dengan kunjungan ‘Pre-Order’?
5. Apa yang dimaksud dengan kunjungan ‘In-Order’?
6. Apa yang dimaksud dengan kunjungan ‘Post-Order’?
7. Gunakan kunjungan ‘Pre-Order’, ‘In-Order’,dan ‘Post-Order’untuk pohon biner
berikut dan tuliskan hasilnya!

8. Tuliskan baris koding program untuk kunjungan ‘Pre-Order’, ‘In-Order’,dan ‘Post-


Order’!
Jawaban :
1. Full binary tree adalah sebuah pohon dimana setiap simpul mempunyai nol atau dua
anak. Perfect binary tree adalah sebuah pohon biner penuh dimana semua daun
memiliki kedalaman yang sama. Dan almost complete binary tree adalah sebuah
pohon dimana setiap simpul yang mempunyai anak kanan juga memiliki anak kiri.
Memiliki anak kiri tidak memerlukan sebuah simpul untuk mempunyai anak kanan.
2.
50

23 90

41 86 99 12

7 13

3. 37

39 50 45

12 8

88

4. kunjung pre-order adalah kunjung yang dilakukan melalui akar pohon.


5. kunjung in-order secara resklutif mencetak seluruh data pada subpohon kiri, cetak
data pada root, dan resklutif mencetak seluruh data pada sub pohon kanan.
6. Kunjung post-order secara resklutif mencetak seluruh data dari sebelah kanan dan kiri
lalu mencetak root. Kiri.
7. Pre-order hasil nya = IALLGU. In-order hasilnya = IALGU. Post-order hasilnya =
ILALGU
8. void preOrder(Node *root)
{
if(root != NULL){
printf("%d ", root->data);
preOrder(root->kiri);
preOrder(root->kanan);
}
}
void inOrder(Node *root)
{
if(root != NULL){
inOrder(root->kiri);
printf("%d ", root->data);
inOrder(root->kanan);
}
}
void postOrder(Node *root)
{
if(root != NULL){
postOrder(root->kiri);
postOrder(root->kanan);
printf("%d ", root->data);
}
}
EVALUASI MODUL 4 : SORTING

1. Apa yang dimaksud dengan ‘Bubble Sort’? Jelaskan!


2. Tuliskan baris koding untuk ‘Bubble Sort’!
3. Apa yang dimaksud dengan ‘Selection Sort’? Jelaskan!
4. Tuliskan baris koding untuk ‘Selection Sort’!
5. Apa yang dimaksud dengan ‘Insertion Sort’? Jelaskan!
6. Tuliskan baris koding untuk ‘Insertion Sort’!
7. Apa yang dimaksud dengan ‘Shell Sort’? Jelaskan!
8. Tuliskan baris koding untuk ‘Shell Sort’!

Jawaban :

1. Bubble sort adalah salah satu metode sorting atau mengurutkan dari data terkecil ke
data terbesar ataupun dengan cara membandingkan elemen kesatu dengan elemen
yang selanjutnya.
2. Bagi yang ingin mencoba berikut kodingan:
#include<iostream>
using namespace std;

int main()
{ int a,k,c,d,g;
k=4;
int b[4];

cout<<"BUBBLE SORT BY ZEFTAADETYA.BLOGSPOT.COM"<<endl;


cout<<"mengurutkan nilai dari besar ke kecil"<<endl<<endl;
for(a=0;a<k;a++)
{
cout<<"Masukkan nilai "<<a+1<<" : ";cin>>b[a];
}
for(a=0;a<k-1;a++)
{

for(d=a+1;d<k;d++)
{
c=a;
if(b[c]<b[d])
{
c=d;
}
g=b[c];
b[c]=b[a];
b[a]=g;
}

}
cout<<"\n setelah diurutkan akan menjadi : \n";
for(a=0;a<k;a++)
{
cout<<b[a]<<" \n";
}
}

3. Selection sort Adalah metode sorting dimana elemen- elemen di perbandingkan satu-
persatu sampai pada elemen terakhir dan disusun berdasarkan ketentuan ketentuan
berlaku (terbesar atau terkecil).

4. Bagi yang ingin mencoba di rumah, berikut kodingannya:


#include<iostream>
using namespace std;

int main()
{ int a,k,c,d,g;
k=4;
int b[4];
cout<<"SELECTION SORT BY ZEFTAADETYA.BLOGSPOT.COM"<<endl;
cout<<"mengurutkan nilai dari besar ke kecil"<<endl<<endl;
for(a=0;a<k;a++)
{
cout<<"Masukkan nilai "<<a+1<<" : ";cin>>b[a];
}
for(a=0;a<k-1;a++)
{
c=a;
for(d=a+1;d<k;d++)
{
if(b[c]<b[d])
{
c=d;
}
}
g=b[c];
b[c]=b[a];
b[a]=g;
}
cout<<"\n setelah diurutkan akan menjadi : \n";
for(a=0;a<k;a++)
{
cout<<b[a]<<" \n";
}
}

5. Insertion sort adalah sebuah algoritma pengurutan yang membandingkan dua elemen
data pertama, mengurutkannya, kemudian mengecek elemen data berikutnya satu
persatu dan membandingkannya dengan elemen data yang telah diurutkan.

6. Contoh program insertion sorting :

#include <iostream.h>
#include <stdio.h>
#include <conio.h>

main (){
int i,j, b, k, m, n,x,z,ketemu=0;
int data[‘n’], temp[100];
cout<<“\n======================\n”<<endl;
cout<<“\n—-BELAJAR SORTING—\n”;
cout<<“\n======================\n”<<endl;
cout<<“Inputkan Banyak Data: “;
cin>>n;
for(i=0; i<n; i++){
cout<<“Data Ke-“<<i<<” : “;
cin>>data[i];
}

cout<<“\n\n”;
cout<<“Data Sebelum diurutkan”<<endl;
for(int i=0; i<n; i++){
cout<<i+1<<“.”;
cout<<data[i]<<” “;
cout<<endl;
}

for (i=0; i<n; i++){


for (j=0; j<=i; j++)
{
if(data[i]<data[j])
{
m=data[i];
data[i]=data[j];
data[j]=m;
}
}
cout<<“\n#”<<i<<“: “;
for(k=0; k<=i; k++)
{
cout<<” “<<data[k];
}
}

cout<<“\n\n”;
cout<<“\nData Setelah Diurutkan (Ascending):”<<endl;
for(i=0; i<n; i++){
cout<<i+1<<” “;
cout<<data[i]<<” “<<endl;}

for (i=0; i<n; i++){


for (j=0; j<=i; j++)
{
if(data[i]>data[j])
{
m=data[i];
data[i]=data[j];
data[j]=m;
}
}
cout<<“\n#”<<i<<“: “;
for(k=0; k<=i; k++)
{
cout<<” “<<data[k];
}
}

cout<<“\n\n”;
cout<<“\nData Setelah Diurutkan (Descending):”<<endl;
for(i=0; i<n; i++){
cout<<i+1<<“.”;
cout<<data[i]<<” “<<endl;
}

getch();
}

7. Pada algoritma shell sort c++ ini jarak antara dua elemen yang dibandingkan dan
ditukarkan. Secara singkat metode ini dijelaskan sebagai berikut. Pada langkah
pertama, kita ambil elemen pertama dan kita bandingkan dengan elemen jarak tertentu
dari elemen pertama tersebut.
8. Codingan shell sort
/*Shell sort*/
#include <iostream.h>
#include <conio.h>
int main (void)
{
int array[5];
int length=5;
int i,d;
int tmp, flag;
for (i=0;i<length;i++)
{
cout<<"Enter a number :";
cin>>array[i];
}
d=length;
flag=i;

while(flag||(d>1))
{
flag=0;
d=(d+1)/2;
for(i=0;i<(length-d);i++)
{
if(array [i+d]>array[i])
{
tmp=array[i+d];
array[i+d]=array[i];
array[i]=tmp;
flag=1;
}
}
}
for(i=0;i<5;i++)
{
cout<<array[i]<<endl;
}
EVALUASI MODUL 5 : SEARCHING

1. Apa perbedaan pencarian Sekuensial dengan pencarian Binary?


2. Jelaskan maksud dari perintah pada baris koding berikut ini!

3. Jelaskan maksud dari perintah pada baris koding berikut ini!

4. Bisakah menggunakan tipe data selain string dalam pencarian Knuth Morris Pratt
(KMP)? Jelaskan alasannya!
5. Adakah metode pencarian string selain metode pencarian KMP? Jelaskan!
6. Apa yang dimaksud dengan fungsi pinggiran dalam metode pencarian KMP?
7. Jelaskan pola algoritma pencarian KMP!
8. Jelaskan maksud dari perintah pada baris koding berikut ini!
Jawaban :

1. Sequential Search merupakan metode pencarian data dalam array dengan cara
membandingkan data yang dicari dengan data yang ada di dalam array secara
berurutan. Pencarian data dengan Metode Sequential Search efektif untuk mencari
data yang dalam posisi yang tidak terurut atau acak. Sedangkan Metode pencarian
Binary yaitu mencari data dengan melakukan mengelompokkan array menjadi bagian-
bagian. Binary Search ini hanya dapat diimplementasikan pada data yang telah terurut
baik ascending maupun descending dalam suatu array.

2. Pada baris ini mendeklarasikan untuk memasukan rumus yang merupakan fungsi dari
sequensial seacrh dengan metode pencarian data dalam array.

3. Lalu pada baris ini merupakan bagian pendeklarasian dari binary search yang dimana
pada baris ini di masukan rumus untuk membuat fungsi itu bisa jalan pada saat output
nanti.

4. Bisa karena kerakteristik utama dari algoritma KMP(knutt morris pratt) adalah di
butuhkan sebuah tabel (array) yang berisi nilai pinggiran dari masing-masing karakter
pada string tes.

5. Ada algoritma pencarian string dengan metode brute force yang diperkaya ini, adalah
algoritma brute force yang di lengkapi kemampuan untuk memanfaatkan hasil dari
pencarian sebelumnya dan baris elemen pertama pattern.

6. Nilai pinggiran suatu kerakter pada sebuah string merupakan jumlah pengulangan
susunan karakter dari awal string hingga kerakter tersebut.

7. Pola algoritma KMP adalah salah satu algoritma yang digunakan untuk mencari
dimana sebuah string(dalam kasus ini di namakan pola) apakah di temukan di dalam
kumpulan string lain dengan ukuran yang lebih besar

8. Lalu pada baris ini pendeklarasian dari fungsi dari kmpkata () yang juga nanti akan
memasukan rumus yang telah di tentukan untuk menentukan jumlah kata yang telah
dimasukan pada saat output program. Yang dimana pada baris akan di panggil dari
fungsi kmpkata itu sendiri.