Laporan Jobsheet 3
Laporan Jobsheet 3
1. FLOWCHART
START
INISIALISASI
VARIABEL DATA
ROOT TREE NODE
MASUKAN MENU
DECISION MENU
1 -5
1. Fungsi Tambah
2. Fungsi preOrder 3. Fungsi inOrder 4. Fungsi postOrder 5. EXIT
data
DATA BARU
MASUK
VARIABEL STOP
ROOT TREE
NODE
2. KODE PROGRAM
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
struct Node
{
int data;
Node *kiri;
Node *kanan;
};
int main()
{
int c, data;
Node *pohon,*t;
pohon = NULL;
char pil;
do {
system("cls");
printf("1. Tambah\n");
printf("2. Lihat Pre-order\n");
printf("3. Lihat In-order\n");
printf("4. Lihat Post-order\n");
printf("5. Keluar\n");
printf("Silahkan masukkan pilihan anda (1-5)... ");
pil=getche();
if(pil!='1' && pil !='2' && pil !='3' && pil!='4' && pil!='5' )
printf("\n\nAnda salah mengetikkan inputan...\n");
else
{
if(pil=='1')
{
printf("\n");
printf("\nData baru : ");scanf("%d", &data);
tambah(&pohon,data);
}
else
{
if(pil=='2')
{
printf("\n");
if(pohon!=NULL) preOrder(pohon);
else printf("Masih kosong!");
getch();
}
else
{
if(pil=='3')
{
printf("\n");
if(pohon!=NULL) inOrder(pohon);
else printf("Masih kosong!");
getch();
}
else
{
if(pil=='4')
{
printf("\n");
if(pohon!=NULL) postOrder(pohon);
else printf("Masih kosong!");
getch();
}}}
}}}
while(pil!='5');
}
3. HASIL PROGRAM
ANALISA
Pada program latihan 1 ini terdapat 5 menu utama yaitu Tambah, Pre-order, In-
order, Post-order, dan Keluar. Yang pertama yaitu menu Tambah, void tambah(Node
**root, int databaru)-> fungsi ini digunakan untuk melakukan penambahan node
yang berisi data/nilai pada tree. Parameternya adalah variabel pointer bertipe data abstrak
yaitu node dan variabel bertipe data integer (untuk menyimpan data yang diinput). Jika
data yang akan dimasukkan lebih besar daripada elemen root, maka akan diletakkan di
node sebelah kanan, sebaliknya jika lebih kecil maka akan diletakkan di node sebelah
kiri. Untuk data pertama akan menjadi elemen root.
Selanjutnya yaitu cara kerja In-order, yakni kunjungi left, cetak node yang
dikunjungi, kunjungi right. void inOrder(Node *root)-> fungsi ini digunakan untuk
mengunjungi node secara in-Order sekaligus mencetak isi node yang telah dikunjungi
secara urut dimulai dari kunjungan yang pertama.
Cara kerja Post-order yaitu kunjungi left, kunjungi right, cetak node yang
dikunjungi. void postOrder(Node *root)-> fungsi ini digunakan untuk mengunjungi
node secara post-Order sekaligus mencetak isi node yang telah dikunjungi secara urut
dimulai dari kunjungan yang pertama.
INISIALISASI MATRIX
DAN NAMASIMPUL
MASUKAN MENU
DECISION MENU
1 -3
2. HUBUNGAN
1. SIMPUL TERKECIL 3. EXIT
ANTAR SIMPUL
PROSES CARI
MELALUI
FUNGSI BUSUR STOP
TERPENDEK
PROSES CARI
MELALUI
FUNGSI
HUBUNGAN
SIMPUL
HASIL FUNGSI
BUSUR TERPENDEK
HASIL FUNGSI
HUBUNGAN SIMPUL
2. KODE PROGRAM
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
using namespace std;
int matrix[8][8]=
{
{0,5,999,4,999,999,12,999},
{5,0,2,999,999,999,999,999},
{999,2,0,999,6,999,3,999},
{4,999,999,0,999,6,999,999},
{999,999,6,999,0,999,999,6},
{999,999,999,6,999,0,3,6},
{12,999,3,999,999,3,0,4},
{999,999,999,999,6,6,4,0}
};
char namaSimpul[9]="ABCDEFGH";
int min=100;
void HubunganSimpul()
{
int i, j;
// int min=100;
void BusurTerpendek()
{
int i, j;
int min=100;
int main(){
char pilih;
while (true)
{
system("cls");
printf("\n\t--PROGRAM OPERASI GRAPH--");
printf("\nMENU");
printf("\n----\n");
printf("1. Temukan simpul paling kecil\n");
printf("2. Temukan hubungan antar simpul \n");
printf("3. Keluar\n");
printf("Pilihan Anda : ");
scanf("%c",&pilih);
printf("\n-----------------------------------\n");
switch(pilih)
{
case '1':
printf("Menu: Simpul paling kecil");
printf("\n------------------------\n");
BusurTerpendek();
_getch();
break;
case '2':
printf("Menu: Temukan hubungan antar simpul");
printf("\n------------------------\n");
HubunganSimpul();
_getch();
break;
case '3':
exit(0);
break;
}
}
}
3. HASIL PROGRAM
4. ANALISA
Pada program ini terdapat 3 pilihan menu yakni untuk menemukan simpul paling
kecil, menemukan hubungan antar simpul, dan keluar. Pada pilihan menu untuk mencari
simpul terpendek dari matriks yang telah disediakan didapatkan hasil nilai terpendeknya
adalah 2 yang didapatkan dari program berikut:
void BusurTerpendek()
{
int i, j;
int min=100;
void HubunganSimpul()
{
int i, j;
// int min=100;
KESIMPULAN