Anda di halaman 1dari 8

LAPORAN AKHIR PRAKTIKUM

Mata Praktikum : Perencanaan Analisis dan Algoritma

Kelas : 3IA01

Praktikum ke- :2

Tanggal : 31 Oktober 2022

Materi : Algoritma Divide and Conquer

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<stdlib.h>

#include <string.h>

int a[100];

int max, min, num;

void maxmin(int i,int j){

cetak:

int max1, min1, mid;

if (i==j){

max = min = a[i];

}else if (i == j-1){

if(a[i] > a[j]){

max = a[i];

min = a[j];

}else{

max = a[j];

min = a[i];

}else{

mid = (i+j) / 2;

maxmin(i,mid);

max1 = max;

min1 = min;

maxmin(mid+1, j);

if (max < max1){

max = max1;

if (min > min1){

min = min1;

}
}

if (min > min1){

min = min1;

void inputJumlah(){

printf("\nMasukkan Banyak Angka : \n\n");

scanf("%d",&num);

int main(){

int i;

char input[2];

while (true)

inputJumlah();

printf("\nMasukkan Angka-Angkanya : \n");

for ( i = 0; i < num; i++)

scanf("%d",&a[i]);

printf("\nAngka-angkanya adalah : \n");

for ( i = 0; i < num; i++)

printf("%d", a[i]);

max = 0;
printf("%d", a[i]);

max = 0;

min = 0;

maxmin(0,num-1);

printf("\n\nMaksimum Angka : %i",max);

printf("\nMinimum Angka : %i",min);

printf("\nApakah anda ingin mengulang program atau tidak (y/t)? ");

scanf("%s",&input);

if(strcmp(input,"t") == 0){

break;

}
Logika Program
Pada pertemuan kali ini kita akan membahas tentang nilai tukar uang algoritma greedy.

Pertama, kita buka vscode kemudian buat file C++

Setelah itu menambahkan library dan juga deklarasi variabel dan fungsi

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

int a[100];
int max, min, num;

Method minmax untuk mencari nilai minimun dan nilai maksimum dengan menggunakan algoritma
divide and conquer yang mengimplementasikan method recursive atau memanggil fungsinya di
dalam fungsi tersebut.

void maxmin(int i,int j){


cetak:
int max1, min1, mid;

if (i==j){
max = min = a[i];
}else if (i == j-1){
if(a[i] > a[j]){
max = a[i];
min = a[j];
}else{
max = a[j];
min = a[i];
}
}else{
mid = (i+j) / 2;
maxmin(i,mid);
max1 = max;
min1 = min;
maxmin(mid+1, j);
if (max < max1){
max = max1;
}
if (min > min1){
min = min1;
}
}
}

Method untuk memasukkan jumlah banyaknya angka

void inputJumlah(){
printf("\nMasukkan Banyak Angka : \n\n");
scanf("%d",&num);
}

Pada method utama ini berisikan suatu variabel setelah itu terdapat perulangan yang bernilai true
lalu memanggil method inputJumlah() untuk memasukkan jumlah banyaknya angka setelah itu
memasukkan angka – angkanya dan menampilkan angka – angka tersebut. Kemudian memberi
statement pada variabel max dan min dengan nilai 0 lalu memanggil method maxmin dengan
parameter 0 dan juga num-1 setelah itu menampilkan hasil dari maksimum angka dan minimum
angka. Terakhir meminta inputan untuk mengulangi program atau tidak. Jika y maka akan
mengulangi program jika t maka akan memberentikan program atau keluar dari program

int main(){

int i;
char input[2];

while (true)
{
inputJumlah();

printf("\nMasukkan Angka-Angkanya : \n");


for ( i = 0; i < num; i++)
{
scanf("%d",&a[i]);
}
printf("\nAngka-angkanya adalah : \n");
for ( i = 0; i < num; i++)
{
printf("%d", a[i]);
}

max = 0;
min = 0;
maxmin(0,num-1);
printf("\n\nMaksimum Angka : %i",max);
printf("\nMinimum Angka : %i",min);
printf("\nApakah anda ingin mengulang program atau tidak (y/t)? ");
scanf("%s",&input);
if(strcmp(input,"t") == 0){
break;
}

Output
Algoritma Brute Force

Algoritma Brute Force adalah algoritma yang melakukan pencocokan karakter dari sebelah kiri ke
kesebelah kanan dan jika antara pattern dan teks terdapat kecocokan (match) maka algoritma akan
menghasilkan nilai true. Algoritma brute force memecahkan masalah dengan sangat sederhana,
langsung dan dengan cara yang jelas (obvious way).

Contoh :

Anda mungkin juga menyukai