Anda di halaman 1dari 7

LAPORAN AKHIR PRAKTIKUM

Mata Praktikum : Perencanaan Analisis dan Algoritma

Kelas : 3IA01

Praktikum ke- :3

Tanggal : 5 November 2022

Materi : Algoritma Brute Force

NPM : 50420816

Nama : Muhammad Fadhlan Aqila

Ketua Asisten : Natasya Rahma Fadilla

Paraf Asisten :

Nama Asisten :

Jumlah Lembar : 8 Lembar

LABORATORIUM TEKNIK INFORMATIKA


UNIVERSITAS GUNADARMA
2022
Listing Program
#include <stdio.h>

#include <conio.h>

#include <string.h>

int match(char[], char[]);

int main(){

char a[100], b[100];

int posisi;

printf("\n\t\tProgram Untuk Menentukan Substring Dari Sebuah String\n");

printf("\nMasukkan String : ");

gets(a);

printf("Masukkan Substring : ");

gets(b);

posisi = match(a,b);

if (posisi != -1){

printf("\n\n\t\t\tSubstring ADA di dalam string.\n\n");

}else {

printf("\n\n\t\t\tSubstring TIDAK ADA di dalam string.\n\n");

getch();

int match(char text[], char pattern[]){

int c,d,e,text_length, pattern_length, posisi = -1,x=0,y=0,z=0;

text_length = strlen(text);

pattern_length = strlen(pattern);

if (pattern_length > text_length){

return -1;
pattern_length = strlen(pattern);

if (pattern_length > text_length){

return -1;

for (c = 0;c < text_length - 1;c++){

posisi = e = c;

for(d = 0; d < pattern_length; d++){

if(pattern[d] == text[e]){

printf("\nDi %c Memenuhi", text[e]);

e++;

x=1;

y=1;

z++;

}else{

printf("\nDi %c Tidak Memenuhi", text[e]);

y=0;

break;

if (d==pattern_length){

return posisi;

if (x == 1 && y == 0){

return -1;

}
}
Logika Program
Pada pertemuan kali ini kita akan membahas tentang program memnetukan substring dari sebuah
string menggunakan algoritma bruteforce

Pertama, kita buka vscode kemudian buat file C

Setelah itu menambahkan library dan juga deklarasi variabel dan fungsi

#include <stdio.h> // library


#include <conio.h>
#include <string.h>

Method match adalah method untuk membandingkan atau menentukan substring dari sebuah string
dengan menggunakan algoritma brute force yang melakukan percobaan satu persatu untuk
mendapatkan sebuah hasil yang kita cari.

int match(char text[], char pattern[]){ // fungsi match


int c,d,e,text_length, pattern_length, posisi = -1,x=0,y=0,z=0; // deklarasi

text_length = strlen(text); // mengambil panjang dari sebuah string


pattern_length = strlen(pattern); // mengambil panjang dari sebuah string

if (pattern_length > text_length){


return -1; // mengembalikan return -1
}

for (c = 0;c < text_length - 1;c++){ // looping untuk array text atau string text
posisi = e = c; // memberi statement pada variabel posisi dan e yang berisi variabel c

for(d = 0; d < pattern_length; d++){ // looping untuk array pattern atau string patern
if(pattern[d] == text[e]){ // membandingkan kedua variabel
printf("\nDi %c Memenuhi", text[e]); // output
e++; // increment
x=1;
y=1;
z++; // increment
}else{
printf("\nDi %c Tidak Memenuhi", text[e]); // output
y=0;
break;
}
}
if (d==pattern_length){ // mengecek jika variabel d sama dengan panjang dari patern
return posisi; // mengembalikan posisi
}
}

if (x == 1 && y == 0){ // mengecek variabel x dan y


return -1; // mengembalikan -1 jika sesuai dengan kondisi
}

Int main ialah fungsi utama dari Bahasa pemrograman C untuk menjalankan suatu program

int main(){
char a[100], b[100]; // deklarasi variabel
int posisi; // deklarasi variabel

printf("\n\t\tProgram Untuk Menentukan Substring Dari Sebuah String\n");


// output layar
printf("\nMasukkan String : "); // meminta inputan string
gets(a);
printf("Masukkan Substring : "); // meminta inputan substring
gets(b);
posisi = match(a,b); // memanggil fungsi
if (posisi != -1){ // mengecek kondisi posisi
printf("\n\n\t\t\tSubstring ADA di dalam string.\n\n");
}else {
printf("\n\n\t\t\tSubstring TIDAK ADA di dalam string.\n\n");
}
getch(); //karakter yang dimasukkan tidak diakahri dengan penekananan
tombol enter
}
Output

Algoritma Breadth-first Search

Breadth-first search (BFS) atau Breadth-fist traversal adalah algoritma traversing yang digunakan
untuk melintasi atau mencari semua simpul atau node dari suatu struktur data tree atau graph.

Pada algoritma BFS, pencarian dimulai dari pemilihan node awal kemudian dilanjutkan dengan
pencarian bertahap level demi level, memeriksa seluruh node pada kedalaman tertentu sebelum
masuk ke level yang lebih dalam lagi hingga ditemukan tujuan atau goal state-nya.

Algoritma Depth First Search

Depth First Search merupakan salah satu algoritma yang paling umum digunakan untuk melintasi
atau melakukan pencarian pada struktur data graph atau tree dengan menggunakan teknik
backtracking.DFS juga dikenal sebagai Depth First Traversal jika kita menggunakannya dalam struktur
data tree. Tree sendiri didefinisikan sebagai graph terhubung yang tidak mengandung sirkuit.

Algoritma Depth First Search (DFS) adalah suatu metode pencarian pada sebuah tree/pohon dengan
menelusuri satu cabang sebuah tree sampai menemukan solusi. Pencarian dilakukan pada satu node
dalam setiap level dari yang paling kiri dan dilanjutkan pada node sebelah kanan. Jika solusi
ditemukan maka tidak diperlukan proses backtracking yaitu penelusuran balik untuk mendapatkan
jalur yang diinginkan.

Anda mungkin juga menyukai