Anda di halaman 1dari 10

listing menu ap3

#include stdio.h~
#include conio.h~

void exit();
void menu();
void bintang();
void tanya();
void ganjilgenap();
void urut();

double a,b,c;

void main()

menu();
}
void menu()

int pil;
clrscr();
printI("MENU");
printI("\n 1. ganjilgenap");
printI("\n 2. Bintang");
printI("\n 3. urut");
printI("\n 4. exit");
printI("\n Pilih 1-4 : ");
scanI("i",&pil);
switch(pil)

case 1 : clrscr();
ganjilgenap();
break;
case 2 : clrscr();
bintang();
break;
case 3 : clrscr();
urut();
break;
case 4 : clrscr();
exit();
break;
deIault: gotoxy(18,9);
printI("MaaI Input Yang Anda Masukkan Salah!");
}
getch();
}

void ganjilgenap()

int nilai;
printI("bil ganjil&genap\n");
printI("input nilai :"); scanI("d",&nilai);
iI(nilai20)
printI("d adalah bilangan genap");
else
printI("d adalah bilangan ganjil");
getch();

}
void bintang()

int i, j, h;
int x40;
int y5;
clrscr();
printI("\nMasukkan Tinggi Baris : ");
scanI("i",&h);
printI("\n");
Ior (i1; ih; i, y, x--)

gotoxy(x,y);
Ior (j1; ji; j)

printI("* ");
}
printI("\n");
}
tanya();
getch();
}

void urut()

int i;
clrscr();
Ior(i10;i~1;i--)

printI("d",i);
printI("\n");
getch();
}
}

void tanya()


char jwb;
printI("\nApakah Anda Ingin Kembali Ke Menu (Y/T)?");
jwbgetche();
iI (jwb'Y',,jwb'y')
menu();
else
exit();
}
void exit()

clrscr();
gotoxy(15,10);
printI("Terima Kasih Telah Menggunakan Program Ini!");
gotoxy(25,12);
printI("Gud Byeeee.....");
getch();
}

LP AP3 pert 7
1. Apa yang dimaksud dengan fungsi dan bagaimana cara mendeklarasikan fungsi?

2.]elaskan apa yang dimaksud variabel lokal, variabel global dan variabel statik.

3. Apa yang dimaksud dengan fungsi rekursif ?
PRR P 3 pertemuan 6
#include stdio.h~
#include conio.h~
void exit();
void menu();
void bintang();
void tanya();
void ganjilgenap();
void urut();
double a,b,c;
Listing diatas Perintah untuk mengawali sebuah program yang dibuat dan digunakan untuk
membuat library di dalam program serta kelas dari program tersebut.
void main()
menu();}
void menu()
int pil;
clrscr();
printI("MENU");
printI("\n 1. ganjilgenap");
printI("\n 2. Bintang");
printI("\n 3. urut");
printI("\n 4. exit");
printI("\n Pilih 1-4 : ");
scanI("i",&pil);
switch(pil)
Listing diatas menjelaskan tentang kelas dari program tersebut. PrinI berIungsi untuk
menampilkan suatu isi dalam program tersebut.scanI berIungsi yang membaca data dengan
Iormat tertentu dari aliran sumber string yang diberikan, berasal dari bahasa pemrograman C ,
dan hadir dalam berbagai bahasa pemrograman lain serta membaca bilangan bulat dan
memberikan ke karakter dipilih . Switch digunakan untuk melakukan pemilihan terhadap
ekspresi atau kondisi yang memiliki nilai konstan. Oleh karena itu ekspresi yang
dideIinisikan harus menghasilkan nilai yang bertipe bilangan bulat atau karakter.
case 1 : clrscr();
ganjilgenap();
break;
case 2 : clrscr();
bintang();
break;
case 3 : clrscr();
urut();
break;
case 4 : clrscr();
exit();
break;
deIault: gotoxy(18,9);
printI("MaaI Input Yang Anda Masukkan Salah!");}
getch();}
Listing diatas menjelaskan tentang kondisi. Dimana jika kita memilih 1 maka akan masuk ke
program ganjilgenap. Jika memilih 2 akan ke program menampilkan bintang. Jika memilih 3
maka akan menapilkan program urut. Apabila memilih 4 maka akan keluar dari program
tersebut. Dan jika memilih lebih dari pilihan yang ada maka akan mencetak 'maaI inputan
anda salah.
void ganjilgenap()
int nilai;
printI("bil ganjil&genap\n");
printI("input nilai :"); scanI("d",&nilai);
iI(nilai20)
printI("d adalah bilangan genap");
else
printI("d adalah bilangan ganjil");
getch();}
Listing diatas menjelaskan tentang kelas ganjilgenap. Dimana jika nilai dari yang kita input
hasil dari baginya adalah 0(nol) maka akan mencetak bilangan genap apabila hasil baginya
tidak sama dengan 0(nol) maka akan mencetak bilangan ganjil.
void bintang()
int i, j, h;
int x40;
int y5;
clrscr();
printI("\nMasukkan Tinggi Baris : ");
scanI("i",&h);
printI("\n");
Ior (i1; ih; i, y, x--)
gotoxy(x,y);
Ior (j1; ji; j)
printI("* ");}
printI("\n");}
tanya();
getch();}
Listing diatas menjelaskan tentang kelas bintang. Dimana jika kita masukkan inputan akan
menampilkan segitiga dengan bintang. Untuk perulangan Ior maksudnya i bernilai 1 dan i
akan melooping dari 1 sampai i kurang dari sama dengan inputan dan i terus bertambah naik
karena menggunakan i. Y dan Xadalah titik koordinat dari program yang akan
ditampilkan. Dan untuk perulangan Ior j bernilai 1 dan j akan melooping dari 1 sampai j
kurang dari sama dengan inputan dan j terus bertambah naik karena menggunakan j.
Kemudian akan mencetak dengan tanda (*).
void urut()
int i;
clrscr();
Ior(i10;i~1;i--)
printI("d",i);
printI("\n");
getch();}}
Listing diatas menjelaskan tentang kelas urut. Dimana untuk perulangan Iormaksudnya i
bernilai 10 dan i akan melooping dari 10 sampai i lebih dari sama dengan 1 dan i terus
berkurang karena menggunakan i--.
void tanya()
char jwb;
printI("\nApakah Anda Ingin Kembali Ke Menu (Y/T)?");
jwbgetche();
iI (jwb'Y',,jwb'y')
menu();
else
exit();}
Listing diatas menjelaskan tentang kelas tanya. Dimana dalam program tersebut ada
pernyataan apakah mau kembali ke menu dan jika ingin kembali ke menu bila jawab Y atau y
maka akan kembali ke menu jika tidak jawab maka akan keluar dari program tersebut.
void exit()
clrscr();
gotoxy(15,10);
printI("Terima Kasih Telah Menggunakan Program Ini!");
gotoxy(25,12);
printI("Gud Byeeee.....");
getch();}
Listing diatas menjelaskan tentang kelas exit. Dimana dalam program tersebut untuk
memberhentikan program. Disini akan menampilkan ' terima kasih telah menggunakan
program ini dan 'gud byeee...


PRR STRUT pert 6
/*Insertion ,Deletion and Traversal pada Binary Search Tree*/
# include stdio.h~
# include conio.h~ // (1)
# include stdlib.h~
Listing diatas digunakan untuk mengawali program yang dibuat. Include digunakan untuk
membuat library di dalam program.
struct node
int inIo;
struct node *lchild;
struct node *rchild; // (2)
}*root;
main()
int choice,num;
rootNULL;
clrscr();
Listing diatas digunakan untuk mendeIinisikan struktur node ke dalam program.untuk
mendeIinisikan Iungsi-Iungsi yang digunakan di dalam program yang akan dipanggil saat
program dijalankan.dan merupakan Iungsi utama dari program yang dimana Iungsi ini yang
akan dijalankan oleh program. root yang akan digunakan adalah nilai root sama dengan null
atau kosong.
while(1)
printI("\n");
printI("1.Insert\n");
printI("2.Delete\n");
printI("3.Inorder Traversal \n");
printI("4.Preorder Traversal\n");
printI("5.Postorder Traversal \n");
printI("6.Display\n");
printI("7.Quit\n");
printI("\nPilih : ");
scanI("d",&choice);
switch(choice)
Listing diatas digunakan untuk memilih menu yang ada dalam program yaitu insert,
delete,preorder, inorder, postorder, display,dan exit. Untuk menginputkan pilihan digunakan
perintah scanI.
case 1:
printI("\n masukkan item yag ingin disisipkan : ");
scanI("d",&num);
insert(num); // (3)
break;
case 2:
printI("\n masukkan item yang ingin dihapus : ");
scanI("d",&num);
del(num);
break;
case 3:
inorder(root); // (4)
break;
case 4:
preorder(root);
break;
case 5:
postorder(root); // (5)
break;
case 6:
display(root,1);
break;
case 7:
exit(1); // (6)
deIault:
printI("\nWeii... salah pilih tuh !\n");
}/*End oI switch */
}/*End oI while */
}/*End oI main()*/
Listing diatas digunakan untuk kondisi. Dimana jika memilih 1 akan memasukan inputan
(insert). Jika memili 2 maka akan menghapus inputan. Jika memilih 3 untuk mencetak nilai
atau elemen dengan posisi inorder. Jika memilih 4 untuk mencetak nilai atau elemen dengan
posisi preorder. Jika memilih 5 untuk mencetak nilai atau elemen dengan posisi postorder.
Jika memilih 6 maka akan menampilkan hasil dari nilai atau elemen tersebut.jika memilih 7
maka akan keluar dari program.
Iind(int item,struct node **par,struct node **loc)
struct node *ptr,*ptrsave;
iI(rootNULL) /*kondisi pada tree*/
*locNULL;
*parNULL;
return; }
iI(itemroot-~inIo) /*item terdapat pada root*/
*locroot;
*parNULL;
return;}
Listing diatas menjelaskan tentang struct node dimana jika dalam konisi pada tree root sama
dengan NULL. NULL adalah 0 disini untuk menguji bilangan tersebut. Dan didalam item
terdapat root artinya menguji apakah item telah menemukan lokasinya.
/*Inisialisasi ptr dan ptrsave*/
iI( item)
ptrroot-~lchild;
else
ptrroot-~rchild;
ptrsaveroot;
while(ptr!NULL)
iI(itemptr-~inIo)
*locptr;
*parptrsave;
return; }
ptrsaveptr;
iI(item)
ptrptr-~lchild;
else
ptrptr-~rchild;
}/*End oI while */
*locNULL; /*item tidak ditemukan*/
*parptrsave;
}/*End oI Iind()*/
insert(int item)
struct node *tmp,*parent,*location;
Iind(item,&parent,&location);
iI(location!NULL)
printI("\n item tersebut ada lho !");
return;}
Listing diatas menjelaskan tentang inisialisasi pointer dan pointer save. Jika pointer sama
dengan root maka dimulai dari kiri jika tidak maka dimulai dari kanan. Untuk perulangan
while pointer tidak sama dengan NULL digunakan untuk mencari item yang ingin dicari. Jika
item tersebut tidak ditemukan maka pointer sama dengan pointer. Jika item tersebut
ditemukan maka letak lokasi tersebut tidak sama dengan NULL(0).
tmp(struct node *)malloc(sizeoI(struct node));
tmp-~inIoitem; // (7)
tmp-~lchildNULL;
tmp-~rchildNULL;
iI(parentNULL)
roottmp;
else
iI(item)
parent-~lchildtmp;
else
parent-~rchildtmp;
}/*End oI insert()*/
Listing diatas digunakan untuk memesan tempat dengan perintah malloc yang digunakan
untuk mendapatkan memori aktual yang menginisialisasikan Iield data. parent sama dengan
NULL jika root sama dengan temporary dan jika parent maka temporary di mulai dari
sebelah kiri maka juga bisa dimulai dari kanan.
del(int item)
struct node *parent,*location;
iI(rootNULL)
printI("\n Tree kosong lho! ");
return;}
Iind(item,&parent,&location);
iI(locationNULL)
printI("\n Item tidak ada pada tree lho !");
return;}
iI(location-~lchildNULL && location-~rchildNULL)
casea(parent,location); // (8)
iI(location-~lchild!NULL && location-~rchildNULL)
caseb(parent,location);
iI(location-~lchildNULL && location-~rchild!NULL)
caseb(parent,location);
iI(location-~lchild!NULL && location-~rchild!NULL)
casec(parent,location);
Iree(location);
}/*End oI del()*/
Listing diatas menjelaskan tentang penghapusan. Jika root sma dengan NULL maka
mencetak tree kosong. Jika lokasi sama dengan NULL maka mencetak item tidak ada tree.
casea(struct node *par,struct node *loc )
iI(parNULL) /*item yg akan di hapus adalah root simpul*/
rootNULL;
else
iI(locpar-~lchild)
par-~lchildNULL;
else
par-~rchildNULL;
}/*End oI casea()*/
caseb(struct node *par,struct node *loc)
struct node *child; // (9)
/*Inisialisasi child*/
iI(loc-~lchild!NULL) /*item yg akan dihapus ialah lchild */
childloc-~lchild;
else /*item yg akan dihapus ialah rchild */
childloc-~rchild;
iI(parNULL ) /*Item yang akan dihapus ialah root simpul*/
rootchild;
else
iI( locpar-~lchild) /*item yg menjadi parent lchild*/
par-~lchildchild;
else /*item yg menjadi parrent rchild*/
par-~rchildchild;
}/*End oI caseb()*/
casec(struct node *par,struct node *loc)
struct node *ptr,*ptrsave,*suc,*parsuc;
/*menemukan notasi inorder dan parent*/
ptrsaveloc;
ptrloc-~rchild;
while(ptr-~lchild!NULL)
ptrsaveptr;
ptrptr-~lchild;}
sucptr;
parsucptrsave;
iI(suc-~lchildNULL && suc-~rchildNULL)
casea(parsuc,suc);
else
caseb(parsuc,suc);
iI(parNULL)
rootsuc;
else
iI(locpar-~lchild)
par-~lchildsuc;
else
par-~rchildsuc;
suc-~lchildloc-~lchild;
suc-~rchildloc-~rchild;
}/*End oI casec()*/
Listing diatas menjelaskan tentang penghapusan data.jika parent sama dengan NULL maka
yang dihapus adalah simpul dari root tersebut. Jika root maka lchild tidak sama dengan
NULL maka yang dihapus dimulai dari kiri. Jika root sama dengan parent maka item tersebut
akan menjadi parent dari lchild tersebut. Untuk menemukan notasi inorder dan parent
digunakan ptr sama dengan loc maka lchild.untuk perulangan ptr maka lchild tidak sama
dengan NULL. Jika suc maka lchild sama dengan NULL dan suc maka rchild sama dengan
NULL adalah casea. Caseb jika parent sama dengan NULL dan jika loc sama dengan
parent maka lchild.
preorder(struct node *ptr)
iI(rootNULL)
printI("\n Tree kosong lho !");
return;}
iI(ptr!NULL)
printI("d ",ptr-~inIo);
preorder(ptr-~lchild);
preorder(ptr-~rchild);}
}/*End oI preorder()*/
Listing diatas merupakan Iungsi preorder dengan kondisi jika root sama dengan NULL maka
akan mencetak 'tree kosong dan jika ptr tidak sama dengan null maka akan mencetak
element yang ada di dalam tree yang telah diinputkan. Element yang tercetak pun sesuai
dengan posisi preorder. Dimana yang akan tercetak dari element yang berada disebelah kiri
dari root baru ke elemen yang berada di sebelah kanan dari root.
inorder(struct node *ptr)
iI(rootNULL)
printI("\n Tree kosong lho !");
return;}
iI(ptr!NULL)
inorder(ptr-~lchild);
printI("d ",ptr-~inIo);
inorder(ptr-~rchild);}
}/*End oI inorder()*/
Listing diatas merupakan Iungsi inorder dengan kondisi jika root sama dengan NULL maka
akan mencetak 'tree kosong dan jika temp tidak sama dengan null maka akan mencetak
element yang ada di dalam tree yang telah diinputkan. Element yang tercetak pun sesuai
dengan posisi inorder. Dimana yang akan tercetak dari element yang berada disebelah kiri
dari root dengan posisi elemnt yang berurutan.
postorder(struct node *ptr)
iI(rootNULL)
printI("\n Tree kosong lho");
return;}
iI(ptr!NULL)
postorder(ptr-~lchild);
postorder(ptr-~rchild);
printI(" d ",ptr-~inIo);}
}/*End oI postorder()*/
Listing diatas merupakan Iungsi postorder dengan kondisi jika root sama dengan NULL maka
akan mencetak 'tree kosong dan jika temp tidak sama dengan null maka akan mencetak
element yang ada di dalam tree yang telah diinputkan. Element yang tercetak pun sesuai
dengan posisi postorder. Dimana yang akan tercetak dari element yang berada disebelah
kanan dari root baru ke elemen yang berada di sebelah kiri dari root.
display(struct node *ptr,int level)
int i; // (10)
iI ( ptr!NULL )
display(ptr-~rchild, level1);
printI("\n");
Ior (i 0; i level; i)
printI(" ");
printI(" d", ptr-~inIo);
display(ptr-~lchild, level1);
}/*End oI iI*/
}/*End oI display()*/
Listing diatas merupakan Iungsi untuk menampilkan data yang telah di input. Jika ptr tidak
sama dengan NULL maka akan menampilkan data sesuai inputan. Jika sama dengan NULL
maka akan melakukan perulangan sebanyak 1 x kemudian mencetak data tersebut dengan
mencetak secara kebawah miring ke kanan.

LP STRUKDAT pert 7
1.]elaskan pengertian Search dan Sorting, beserta jenisjenis dari Search dan Sorting.
2.]elaskan bagaimana proses pencarian data menggunakan metode Bubble/Exchange Sort, Selection Sort, Shell Sort,
Quick Sort.
3.Apa yang dimaksud dengan Binary Search serta bagaimana algoritmanya?

Anda mungkin juga menyukai