SlideShare a Scribd company logo
DI SUSUN OLEH 
NOVAL C. KESUMA (10512454) 
BENNY ABDULLAH (10512457) 
MUAZ MANOPPO (10512483) 
TAUFIK SULAEMAN (10512477) 
RADEN BAYU SUKARNA (105124
Stack 
Pengertian Stack atau Tumpukan adalah suatu stuktur data yang penting dalam 
pemrograman yang mempunyai sifat LIFO (Last In First Out), Benda yang terakhir 
masuk ke dalam stack akan menjadi benda pertama yang dikeluarkan dari 
stack. Stack (Tumpukan) adalah list linier yang dikenali elemen puncaknya (TOP) 
dan Aturan penyisipan dan penghapusan elemennya tertentu. Penyisipan selalu 
dilakukan “di atas“ TOP dan Penghapusan selalu dilakukan pada TOP. 
STACK ATAU TUMPUKAN PADA MATAKULIAH STRUKTUR DATA 
Stack karena aturan penyisipan dan penghapusan semacam itu, TOP adalah satu-satunya 
alamat tempat terjadi operasi. Elemen yang ditambahkan paling akhir 
akan menjadi elemen yang akan dihapus.Dikatakan bahwa elemen Stack akan 
tersusun secara LIFO (Last In First Out). 
karena kita menumpuk Compo di posisi terakhir, maka Compo akan menjadi 
elemen teratas dalam tumpukan. 
Sebaliknya, karena kita menumpuk Televisi pada saat pertama kali, maka elemen 
Televisi menjadi elemen terbawah dari tumpukan. Dan jika kita mengambil
elemen dari tumpukan, maka secara otomatis akan terambil elemen teratas, yaitu 
Compo juga. 
OPERASI-OPERASI/FUNGSI STACK 
1. Push : digunakan untuk menambah item pada stack pada tumpukan paling 
atas 
2. Pop : digunakan untuk mengambil item pada stack pada tumpukan paling 
atas 
3. Clear : digunakan untuk mengosongkan stack 
4. IsEmpty : fungsi yang digunakan untuk mengecek apakah stack sudah kosong 
5. IsFull : fungsi yang digunakan untuk mengecek apakah stack sudah penuh 
INISIALISASI STACK 
Pada mulanya isi top dengan -1, karena array dalam C dimulai dari 0, yang berarti 
stack adalah KOSONG.! 
Top adalah suatu variabel penanda dalam STACK yang menunjukkan elemen 
teratas Stack sekarang. Top Of Stack akan selalu bergerak hingga mencapai MAX 
of STACK sehingga menyebabkan stack PENUH! 
Ilustrasi stack pada saat inisialisasi
Fungsi IsFull 
Untuk memeriksa apakah stack sudah penuh? 
Dengan cara memeriksa top of stack, jika sudah sama dengan MAX_STACK-1 
maka full, jika belum (masih lebih kecil dari MAX_STACK-1) maka belum full 
Ilustrasi
Contoh program Stack 
//program STACK 
#include <iostream.h> 
#include <conio.h> 
#include <string.h> 
struct 
{ 
char data [15][100], max [15]; 
int i,j; 
} stack; 
void isi () // push untuk memasukan data 
{ 
stack.i++; 
cout<<"masukan data: "; 
cin>>stack.max; 
strcpy (stack.data[stack.i],stack.max); 
} 
void buang () // pop untuk mengambil data 
{ 
if (stack.i>0) 
{ 
cout<<"data yang terambil: "<<stack.data[stack.i]<<endl;
stack.i--; stack.j--; 
} 
else 
cout<<"tak ada data yang terambil"<<endl; 
} 
void muncul (int n)//print untuk menampilkan data 
{ 
if (stack.j>0) 
{ 
for (int e=n; e>=1; e--) 
{ 
cout<<stack.data[e]<<endl; 
} 
} 
else 
cout<<"tak ada data tersimpan"<<endl; 
} 
void hapus () // clear untuk menghapus data 
{ 
stack.j=0; stack.i=0; 
} 
void main () 
{
int n,plh; 
ayo: 
clrscr(); 
cout<<"contoh program stack (tumpukan)nn"; 
cout<<"maksimal tumpukan data: "; cin>>n; 
stack.data[n]; 
stack.i=0; 
stack.j=0; 
pusing: 
clrscr(); 
cout<<"n1. push n2. pop n3. print n4. clear n5. quit n"; 
cout<<"npilih :"; cin>>plh; 
cout<<"n"; 
if (plh==1) 
{ 
if (stack.j<n) 
{ 
stack.j++; isi(); 
} 
else 
{ 
cout<<"tumpukan penuh"<<endl; getch();
} 
goto pusing; 
} 
else if (plh==2) 
{ 
buang(); getch(); goto pusing; 
} 
else if (plh==3) 
{ 
muncul (stack.i); getch(); goto pusing; 
} 
else if (plh==4) 
{ 
hapus(); getch(); goto pusing; 
} 
else if (plh==5) 
{ 
getch(); goto ayo; 
} 
else 
{ 
cout<<"input yang anda masukan salah !!!"; 
getch(); goto ayo;
} 
}
Tree 
Treemerupakan salah satu bentuk struktur data tidak linear yang 
menggambarkan hubungan yang bersifat hierarkis (hubungan one to many) 
antara elemen-elemen. Tree bisa didefinisikan sebagai kumpulan simpul/node 
dengan elemen khusus yang disebut root atau akar.Cara penggunaan Tree : 
1. notasi kurung 
2. diagram venn 
3. notasi tingkat 
4. notasi garis 
Jenis-jenis Tree : 
1. Binnary tree 
Binary Tree adalah tree dengan syarat bahwa tiap node hanya boleh memiliki 
maksimal dua subtree dan kedua subtree tersebut harus terpisah. Sesuai dengan 
definisi tersebut, maka tiap node dalam binary tree hanya boleh memiliki paling 
banyak dua child. 
Jenis jenis Binnary Tree
1. Full binnary tree 
binnary tree ini tiap nodenya (kecuali leaf) memiliki 2 child dan tiap subtree harus 
mempunyai panjang path yang sama. 
1. complete binnary tree 
mirip dengan full binnary tree, tetapi tiap subtree boleh memiliki panjang path 
yang berbeda. 
1. skewed binnary tree 
binnary tree yang semua nodenya (kecuali leaf) hanya memiliki 1 child.
1. Implementasi Binary Tree 
Binary Tree dapat diimplemntasikan dalam Pascal dengan menggunakan double 
Linked List. Untuk nodenya, bisa dideklarasikan sbb : 
Type Tree = ^node; 
Node = record 
Isi : TipeData; 
Left,Right : Tree; 
end; 
Contoh ilustrasi Tree yang disusun dengan double linked list : 
(Ket: LC=Left Child; RC=Right Child) 
Operasi-operasi pada Binary Tree : 
1. Create : Membentuk binary tree baru yang masih kosong. 
2. Clear : Mengosongkan binary tree yang sudah ada. 
3. Empty : Function untuk memeriksa apakah binary tree masih kosong. 
4. Insert : Memasukkan sebuah node ke dalam tree. Ada tiga pilihan insert: 
sebagai root, left child, atau right child. Khusus insert sebagai root, 
tree harus dalam keadaan kosong. 
5. Find : Mencari root, parent, left child, atau right child dari suatu node. 
(Tree tak boleh kosong) 
6. Update : Mengubah isi dari node yang ditunjuk oleh pointer current. (Tree 
tidak boleh kosong)
7. Retrieve : Mengetahui isi dari node yang ditunjuk pointer current. (Tree 
tidak boleh kosong) 
8. DeleteSub : Menghapus sebuah subtree (node beserta seluruh 
descendantnya) yang ditunjuk current. Tree tak boleh kosong. Setelah 
itu pointer current akan berpindah ke parent dari node yang dihapus. 
9. Characteristic : Mengetahui karakteristik dari suatu tree, yakni : size, 
height, serta average lengthnya. Tree tidak boleh kosong. (Average 
Length = [jumlahNodeLvl1*1+jmlNodeLvl2*2+…+jmlNodeLvln*n]/Size) 
10. Traverse : Mengunjungi seluruh node-node pada tree, masing-masing 
sekali. Hasilnya adalah urutan informasi secara linier yang tersimpan 
dalam tree. Adatiga cara traverse : Pre Order, In Order, dan Post Order. 
Langkah-Langkahnya Traverse : 
1. PreOrder : Cetak isi node yang dikunjungi, kunjungi Left Child, kunjungi 
Right Child. 
2. InOrder : Kunjungi Left Child, Cetak isi node yang dikunjungi, kunjungi Right 
Child. 
3. PostOrder : Kunjungi Left Child, Kunjungi Right Child, cetak isi node yang 
dikunjungi. 
2. Binary search Tree 
Adalah Binary Tree dengan sifat bahwa semua left child harus lebih kecil daripada 
right child dan parentnya. Juga semua right child harus lebih besar dari left child 
serta parentnya. Binary seach tree dibuat untuk mengatasi kelemahan pada
binary tree biasa, yaitu kesulitan dalam searching / pencarian node tertentu 
dalam binary tree. Contoh binary search tree umum : 
Pada dasarnya operasi dalam binary search tree sama dengan Binary tree biasa, 
kecuali pada operasi insert, update, dan delete. 
1. Insert : Pada Binary Search Tree, insert dilakukan setelah ditemukan lokasi yang 
tepat. (Lokasi tidak ditentukan oleh user sendiri).
2. Update : Seperti pada Binary Tree biasa, namun disini uapte akan berpengaruh 
pada posisi node tersebut selanjutnya. Bila setelah diupdate mengakibatkan tree 
tersebut bukan Binary Search Tree lagi, maka harus dilakukan perubahan pada 
tree dengan melakukan perubahan pada tree dengan melakukan rotasi supaya 
tetap menjadi Binary Search Tree. 
3. Delete : Seperti halnya update, delete dalam Binary Search Tree juga turut 
mempengaruhi struktur dari tree tersebut. 
(Keadaan awal merupakan lanjutan gambar sebelumnya)
Contoh program Tree 
//Program tree 
#include "iostream.h" 
#include "string.h" 
#include "conio.h" 
struct simpulpohon 
{ 
simpulpohon *induk; 
simpulpohon *kiri; 
simpulpohon *kanan; 
char data; 
}; 
class pohonbiner 
{ 
private: 
simpulpohon *akar; 
int tambah(simpulpohon *orangtua, simpulpohon *baru); 
void tampil(simpulpohon *simpul); 
public: 
pohonbiner(); 
int tambah(char data); 
void tampil();
}; 
void main() 
{ 
clrscr(); 
char data[] = "CARKDUPBENXZS"; 
pohonbiner pohon; 
for (int i = 0; i < strlen(data); i++) 
pohon.tambah(data[i]); 
cout<<"Data ke Pohon Biner : "<<endl; 
for (int x = 0; x < strlen(data); x++) 
cout<<data[x]; 
cout<<endl; 
cout<<endl; 
cout<<"Hasil Pohon Biner :"<<endl; 
pohon.tampil(); 
getch(); 
} 
pohonbiner::pohonbiner() 
{
akar = NULL; 
} 
int pohonbiner::tambah(char data) 
{ 
simpulpohon *simpul; 
simpul= new simpulpohon; 
simpul->kiri = NULL; 
simpul->kanan = NULL; 
simpul->induk = NULL; 
simpul->data = data; 
if (akar == NULL) 
{ 
akar = simpul; 
return(1); 
} 
else 
return(tambah(akar,simpul)) ; 
} 
int pohonbiner::tambah(simpulpohon *orangtua, simpulpohon *baru) 
{ 
if (baru->data ==orangtua->data) 
{ 
delete baru;
return(0); 
} 
else if (baru->data < orangtua->data) 
{ 
if (!orangtua->kiri) 
{ 
orangtua->kiri = baru; 
baru->induk = orangtua; 
} 
else 
return(tambah(orangtua->kiri,baru)) ; 
} 
else 
{ 
if (!orangtua->kanan) 
{ 
orangtua->kanan = baru; 
baru->induk = orangtua; 
} 
else 
return(tambah(orangtua->kanan,baru)); 
} 
return(1);
} 
void pohonbiner::tampil() 
{ 
tampil(akar); 
cout<<endl; 
} 
void pohonbiner::tampil(simpulpohon *simpul) 
{ 
if (simpul) 
{ 
if (simpul->kiri) tampil(simpul->kiri); 
cout<<simpul->data; 
if (simpul->kanan) tampil(simpul->kanan); 
} 
}
Graph 
1. Pengertian Graf dan Tree serta Perbedaannya 
Graf adalah kumpulan noktah (simpul) di dalam bidang dua dimensi yang 
dihubungkan dengan sekumpulan garis (sisi). Graph dapat digunakan untuk 
merepresentasikan objek-objek diskrit dan hubungan antara objek-objek 
tersebut. Representasi visual dari graph adalah dengan menyatakan objek sebagai 
noktah, bulatan atau titik (Vertex), sedangkan hubungan antara objek dinyatakan 
dengan garis (Edge). 
G = (V, E) 
Dimana 
G = Graph 
V = Simpul atau Vertex, atau Node, atau Titik 
E = Busur atau Edge, atau arc 
Graf merupakan suatu cabang ilmu yang memiliki banyak terapan. Banyak sekali 
struktur yang bisa direpresentasikan dengan graf, dan banyak masalah yang bisa 
diselesaikan dengan bantuan graf. Seringkali graf digunakan untuk 
merepresentasikan suaru jaringan. Misalkan jaringan jalan raya dimodelkan graf 
dengan kota sebagai simpul (vertex/node) dan jalan yang menghubungkan setiap 
kotanya sebagai sisi (edge) yang bobotnya (weight) adalah panjang dari jalan 
tersebut.
Ada beberapa cara untuk menyimpan graph di dalam sitem komputer. Struktur 
data bergantung pada struktur graph dan algoritma yang digunakan untuk 
memmanipulasi graph. Secara teori salah satu dari keduanya dapat dibedakan 
antara struktur list dan matriks, tetapi dalam penggunaannya struktur terbaik 
yang sering digunakan adalah kombinasi keduanya. 
• Graph tak berarah (undirected graph atau non-directed graph) : 
• Urutan simpul dalam sebuah busur tidak dipentingkan. Misal busur e1 dapat 
disebut busur AB atau BA 
• Graph berarah (directed graph) : 
• Urutan simpul mempunyai arti. Misal busur AB adalah e1 sedangkan busur BA 
adalah e8. 
• Graph Berbobot (Weighted Graph) 
• Jika setiap busur mempunyai nilai yang menyatakan hubungan antara 2 buah 
simpul, maka busur tersebut dinyatakan memiliki bobot. 
• Bobot sebuah busur dapat menyatakan panjang sebuah jalan dari 2 buah titik, 
jumlah rata-rata kendaraan perhari yang melalui sebuah jalan, dll.
Tree dalam pemrograman merupakan struktur data yang tidak linear / non linear 
yang digunakan terutama untuk merepresentasikan hubungan data yang bersifat 
hierarkis antara elemen-elemennya. Kumpulan elemen yang salah satu 
elemennya disebut dengan root (akar) dan sisa elemen yang lain disebut sebagai 
simpul (node/vertex) yang terpecah menjadi sejumlah himpunan yang tidak saling 
berhubungan satu sama lain, yang disebut subtree / cabang. 
Adapun Perbedaan Graph dengan Tree sebagai berikut: 
a. Pada Tree tidak terdapat Cycle 
b. Pada Graph tidak memiliki root 
2. Istilah-istilah dalam graf 
Kemudian terdapat istilah-istilah yang berkaitan dengan graph yaitu: 
a. Vertex 
Adalah himpunan node / titik pada sebuah graph. 
b. Edge 
Adalah himpunan garis yang menghubungkan tiap node / vertex. 
c. Adjacent 
Adalah dua buah titik dikatakan berdekatan (adjacent) jika dua buah titik tersebut 
terhubung dengan sebuah sisi. Adalah Sisi e3 = v2v3 insident dengan titik v2 dan 
titik v3, tetapi sisi e3 = v2v3 tidak insident dengan titik v1 dan titik v4. 
Titik v1 adjacent dengan titik v2 dan titik v3, tetapi titik v1 tidak adjacent dengan
titik v4. 
d. Weight 
Adalah Sebuah graf G = (V, E) disebut sebuah graf berbobot (weight graph), 
apabila terdapat sebuah fungsi bobot bernilai real W pada himpunan E, 
W : E ® R, 
nilai W(e) disebut bobot untuk sisi e, " e ÃŽ E. Graf berbobot tersebut dinyatakan 
pula sebagai G = (V, E, W). 
Graf berbobot G = (V, E, W) dapat menyatakan 
* suatu sistem perhubungan udara, di mana 
· V = himpunan kota-kota 
· E = himpunan penerbangan langsung dari satu kota ke kota lain 
· W = fungsi bernilai real pada E yang menyatakan jarak atau ongkos atau waktu 
* suatu sistem jaringan komputer, di mana 
· V = himpunan komputer 
· E = himpunan jalur komunikasi langsung antar dua komputer 
· W = fungsi bernilai real pada E yang menyatakan jarak atau ongkos atau waktu 
e. Path 
Adalah Walk dengan setiap vertex berbeda. Contoh, P = D5B4C2A Sebuah walk 
(W) didefinisikan sebagai urutan (tdk nol) vertex & edge. Diawali origin vertex dan
diakhiri terminus vertex. Dan setiap 2 edge berurutan adalah series. Contoh, W = 
A1B3C4B1A2. 
f. Cycle 
Adalah Siklus ( Cycle ) atau Sirkuit ( Circuit ) Lintasan yang berawal dan berakhir 
pada simpul yang sama 
3. Representasi Graf 
Dalam pemrograman, agar data yang ada dalam graph dapat diolah, maka graph 
harus dinyatakan dalam suatu struktur data yang dapat mewakili graph tersebut. 
Dalam hal ini graph perlu direpresentasikan kedalam bentuk array dan dimensi 
yang sering disebut matrix atau direpresentasikan dalam bentuk linked list. 
Bentuk mana yang dipilih biasanya tergantung kepada efisiensi dan kemudahan 
dalam membuat program. Berikut ini beberapa bentuk representasi graph: 
1. Representasi Graph dalam bentuk Matrix: 
a. Adjacency Matrik Graf Tak Berarah 
Matrik yang digambarkan pada gambar 1b merupakan representasi dalam bentuk 
Adjacency Matrik dari graf yang digambarkan pada gambar 1a. Beberapa hal yang
dapat dilihat atau dapat diterangkan pada Adjacency Matrik tersebut adalah 
sebagai berikut : 
1. Matrik yang terbentuk adalah matrik bujur sangkar n x n, dimana n = jumlah 
simpul yang ada dalam graf tersebut. Matrik ini menyatakan hubungan antara 
simpul satu dengan simpul lainnya. 
2. Matrik yang terbentuk adalah matrik simetris dengan sumbu simetris adalah 
diagonal dari titik kiri atas ke titik kanan bawah. 
3. Data yang tedapat baik dalam baris maupun kolom, dapat menyatakan degree 
sebuah simpul. Contoh : baik pada baris D maupun kolom D jumlah angka 1 nya 
adalah 3 buah, dimana jumlah ini menyatakan degree simpul D. 
b. Adjacency Matrik Graf Berarah 
Matrik yang digambarkan pada gambar 2b merupakan representasi dalam bentuk 
Adjacency Matrik dari graf yang digambarkan pada gambar 2a. Beberapa hal yang 
dapat dilihat atau dapat diterangkan pada Adjacency Matrik tersebut adalah 
sebagai berikut : 
1. Matrik yang terbentuk adalah matrik bujur sangkar n x n, dimana n = jumlah 
simpul yang ada dalam graf tersebut. Matrik ini menyatakan hubungan antara 
simpul satu dengan simpul lainnya. 
2. Matrik yang terbentuk mungkin simetris mungkin juga tidak simetris. Menjadi
Simetris bila hubungan antara dua buah simpul (v1 dan v2) terdapat busur dari 
v1 ke v2 dan juga sebaliknya. 
3. Hal pokok yang dinyatakan oleh matrik ini adalah : busur yang ’keluar’ dari 
suatu simpul. Dengan demikian, data yang terdapat dalam suatu baris, dapat 
menyatakan outdegree simpul yang bersangkutan. 
Contoh : Jumlah elemen yang nilainya = 1 pada baris B ada 3 elemen,ini 
menyatakan jumlah outdegree simpul B adalah 3 buah. 
4. Data yang terdapat dalam suatu kolom, dapat menyatakan indegree simpul 
bersangkutan. 
Contoh : Jumlah elemen yang nilainya 1 pada kolom B ada 2 elemen, ini 
menyatakan indegree simpul B adalah 2 buah. 
c. Adjacency Matrik Graf Berbobot Tak Berarah 
Nilai yang ada dalam tiap elemen matrik, menyatakan bobot busur yang 
menghubungkan dua buah simpul yang bersangkutan. Untuk dua buah simpul
yang tidak berhubungan langsung oleh sebuah busur, maka dianggap 
dihubungkan oleh sebuah busur yang nilai bobotnya tidak terhingga. Dalam 
pemograman, karena keperluan algoritma, maka dari total bobot seluruh busur 
yang ada atau yang mungkin ada. 
Contoh: pada gambar 3a simpul A dan C tidak berhubungan langsung melalui 
sebuah busur, maka untuk elemen matrik yang bersangkutan diisi dengan nilai 
999 karena nilai 999 dalam kasus ini cukup mewakili nilai tidak terhingga. 
2. Representasi graf dalam bentuk Linked List 
4. Adjacency List 
Bila ingin direpresentasikan dalambentuk linked list, dapat diilustrasikan secara 
sederhana seperti gamabar 4b. Dari ilustrasi sederhana tersebut terlihat ada 5 
buah simpul A,B,C,D,dan E yang dibariskan dari atas kebawah seperti pada 
gambar 4a. Kemudian dari masing-masing simpul ’keluar’ pointer kearah kanan 
yang menunjuk simpul-simpul lain. Salah satu contoh, yang dapat dilihat pada 
gambar 4b dimana A menunjuk simpul B dan simpul D.
Dalam Adjacency List, kita perlu membedakan antara simpul-vertex dan simpul-edge. 
Simpul-vertex untuk menyatakan simpul atau vertex, dan simpul-edge 
untuk menyatakan hubungan antar simpul yang biasa disebut busur. Struktur 
keduanya bisa sama, bisa juga tidak sama,tergantung kebutuhan.Untuk 
memudahkan pembuatan program, struktur kedua macam simpul dibuat sama 
seperti yang digambarkan pada gambar 5c. Yang membedakan antara simpul - 
vertex dan simpul-edge, adalah anggapan terhadap simpul tersebut. Dalam 
contoh ini, terlihat struktur simpul dibuat terdiri dari 3 elemen. Satu elemen 
untuk INFO, dua elemen untuk pointer.pointer kiri (left) dan pointer kanan (right). 
Struct tipes{ 
Struct tipes *Left; 
int INFO; 
Struct tipes *Right; 
}; 
Struct tipes *First,*Pvertex,*Pedge; 
- Bila simpul dianggap sebagai simpul-vertex, maka : 
Pointer left digunakan untuk menunjuk simpul berikutnya dalam untaian simpul - 
simpul yang ada,atau diisi NULL bila sudah tidak ada simpul yang pelu 
ditunjuk.Sedangkan pointer Right digunakan untuk menunjuk simpul edge yang 
pertama. 
- Bila Simpul dianggap sebagai simpul-edge, maka : 
Pointer left digunakan untuk menunjuk simpul-vertex ‘tujuan’ yang berhubungan 
dengan simpul-vertex ‘asal’ dan pointer right digunakan untuk menunjuk simpul-
edge berkiutnya bila masih ada, atau diisi NULL bila tak ada lagi simpul -busur yang 
ditunjuk. 
Contoh program graph 
#include "stdio.h" 
#include "conio.h" 
typedef struct Node 
{int data; 
Node *kiri; 
Node *kanan; 
}; 
void tambah(Node **root,int databaru) 
{ 
if((*root) == NULL) 
{ 
Node *baru; 
baru = new Node; 
baru->data = databaru; 
baru->kiri = NULL; 
baru->kanan = NULL; 
(*root) = baru; 
(*root)->kiri = NULL; 
(*root)->kanan = NULL;
printf("Data bertambah!"); 
} 
else if(databaru < (*root)->data) 
tambah(&(*root)->kiri,databaru); 
else if(databaru > (*root)->data) 
tambah(&(*root)->kanan,databaru); 
else if(databaru == (*root)->data) 
printf("Data sudah ada!"); 
} 
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); 
}} 
void main() 
{ 
int c, data; 
Node *pohon,*t; 
pohon = NULL; 
char pil; 
do { 
clrscr(); 
printf("1. Tambahn"); 
printf("2. Lihat Pre-ordern"); 
printf("3. Lihat In-ordern"); 
printf("4. Lihat Post-ordern"); 
printf("5. Keluarn"); 
printf("Silahkan masukkan pilihan anda (1-5)... "); 
pil=getche(); 
if(pil!='1' && pil !='2' && pil !='3' && pil!='4' && pil!='5' ) 
printf("nnAnda 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'); 
}
 Algorithms and Data Structures

More Related Content

What's hot

Slide minggu 3 pertemuan 1 (struktur data1) [repariert]
Slide minggu 3 pertemuan 1 (struktur data1) [repariert]Slide minggu 3 pertemuan 1 (struktur data1) [repariert]
Slide minggu 3 pertemuan 1 (struktur data1) [repariert]
Setia Juli Irzal Ismail
 
Stack tumpukan
Stack tumpukan Stack tumpukan
Stack tumpukan muissyahril
 
Pertemuan 5 Stack atau Tumpukan
Pertemuan 5 Stack atau TumpukanPertemuan 5 Stack atau Tumpukan
Pertemuan 5 Stack atau Tumpukan
Endang Retnoningsih
 
Linked list
Linked listLinked list
Linked list
Tenia Wahyuningrum
 
Laporan Praktikum Pertemuan 1, PBO
Laporan Praktikum Pertemuan 1, PBOLaporan Praktikum Pertemuan 1, PBO
Laporan Praktikum Pertemuan 1, PBO
setyadi_s
 
Implementasi queue
Implementasi queueImplementasi queue
Implementasi queue
Rhe Dwi Yuni
 
Algoritma dan Struktur Data - tumpukan
Algoritma dan Struktur Data - tumpukanAlgoritma dan Struktur Data - tumpukan
Algoritma dan Struktur Data - tumpukan
Georgius Rinaldo
 
Stack
StackStack
Stack
guest5f56452
 
struct & stack
struct & stackstruct & stack
struct & stack
M Satrio
 
Algoritma dan Struktur Data - Stack
Algoritma dan Struktur Data - StackAlgoritma dan Struktur Data - Stack
Algoritma dan Struktur Data - Stack
KuliahKita
 
Ifc modul 6 (stack)
Ifc   modul 6 (stack)Ifc   modul 6 (stack)
Ifc modul 6 (stack)
James Montolalu
 
Resume praktikum 7__queue
Resume praktikum 7__queueResume praktikum 7__queue
Resume praktikum 7__queue
Deprilana Ego Prakasa
 
Laporan Resmi BAB 1 (Tree)
Laporan Resmi BAB 1 (Tree)Laporan Resmi BAB 1 (Tree)
Laporan Resmi BAB 1 (Tree)
Citra Kapindo
 
Modul 3 strukdat
Modul 3 strukdatModul 3 strukdat
Modul 3 strukdat
Vincentius Kristanto
 
Tugas kelompok mi d3_sore
Tugas kelompok mi d3_soreTugas kelompok mi d3_sore
Tugas kelompok mi d3_soretio_arkarna
 
Stack
StackStack
Stack
wulan_maulida
 
Binary search
Binary searchBinary search
Binary searchsayamiliader
 

What's hot (20)

Slide minggu 3 pertemuan 1 (struktur data1) [repariert]
Slide minggu 3 pertemuan 1 (struktur data1) [repariert]Slide minggu 3 pertemuan 1 (struktur data1) [repariert]
Slide minggu 3 pertemuan 1 (struktur data1) [repariert]
 
Stack tumpukan
Stack tumpukan Stack tumpukan
Stack tumpukan
 
Pertemuan 5 Stack atau Tumpukan
Pertemuan 5 Stack atau TumpukanPertemuan 5 Stack atau Tumpukan
Pertemuan 5 Stack atau Tumpukan
 
Linked list
Linked listLinked list
Linked list
 
Laporan Praktikum Pertemuan 1, PBO
Laporan Praktikum Pertemuan 1, PBOLaporan Praktikum Pertemuan 1, PBO
Laporan Praktikum Pertemuan 1, PBO
 
Implementasi queue
Implementasi queueImplementasi queue
Implementasi queue
 
Algoritma dan Struktur Data - tumpukan
Algoritma dan Struktur Data - tumpukanAlgoritma dan Struktur Data - tumpukan
Algoritma dan Struktur Data - tumpukan
 
Latihan
LatihanLatihan
Latihan
 
Stack
StackStack
Stack
 
struct & stack
struct & stackstruct & stack
struct & stack
 
Algoritma dan Struktur Data - Stack
Algoritma dan Struktur Data - StackAlgoritma dan Struktur Data - Stack
Algoritma dan Struktur Data - Stack
 
Pertemuan 1 revisijan2013-mhs
Pertemuan 1 revisijan2013-mhsPertemuan 1 revisijan2013-mhs
Pertemuan 1 revisijan2013-mhs
 
Ifc modul 6 (stack)
Ifc   modul 6 (stack)Ifc   modul 6 (stack)
Ifc modul 6 (stack)
 
Resume praktikum 7__queue
Resume praktikum 7__queueResume praktikum 7__queue
Resume praktikum 7__queue
 
Laporan Resmi BAB 1 (Tree)
Laporan Resmi BAB 1 (Tree)Laporan Resmi BAB 1 (Tree)
Laporan Resmi BAB 1 (Tree)
 
Modul 3 strukdat
Modul 3 strukdatModul 3 strukdat
Modul 3 strukdat
 
Tugas kelompok mi d3_sore
Tugas kelompok mi d3_soreTugas kelompok mi d3_sore
Tugas kelompok mi d3_sore
 
Stack
StackStack
Stack
 
WEB II PHP 05
WEB II PHP 05WEB II PHP 05
WEB II PHP 05
 
Binary search
Binary searchBinary search
Binary search
 

Similar to Algorithms and Data Structures

STACK .pdf
STACK .pdfSTACK .pdf
STACK .pdf
Script MLBB
 
teori Struktur data full
teori Struktur data fullteori Struktur data full
teori Struktur data fullHidayatullah Aldy
 
Struktur data
Struktur dataStruktur data
Struktur data
yusriren20
 
Algoritma dan Struktur Data (Python) - Struktur Data
Algoritma dan Struktur Data (Python) - Struktur DataAlgoritma dan Struktur Data (Python) - Struktur Data
Algoritma dan Struktur Data (Python) - Struktur Data
AndiNurkholis1
 
Ketoprak_PPT ADT Stack dan Queue.pptx
Ketoprak_PPT ADT Stack dan Queue.pptxKetoprak_PPT ADT Stack dan Queue.pptx
Ketoprak_PPT ADT Stack dan Queue.pptx
putii1
 
Stack with linked list(algodat)
Stack with linked list(algodat)Stack with linked list(algodat)
Stack with linked list(algodat)Marlintika Marlintika
 
5 6 single-linked_list
5 6 single-linked_list5 6 single-linked_list
5 6 single-linked_listWandi Parlente
 
ppt_stack_kelompok_5_ppt.ppt
ppt_stack_kelompok_5_ppt.pptppt_stack_kelompok_5_ppt.ppt
ppt_stack_kelompok_5_ppt.ppt
JiaJunWang17
 
ppt_stack_kelompok_5_ppt.ppt
ppt_stack_kelompok_5_ppt.pptppt_stack_kelompok_5_ppt.ppt
ppt_stack_kelompok_5_ppt.ppt
dayani23
 
Fungsi rekursif, queue, stack
Fungsi rekursif, queue, stackFungsi rekursif, queue, stack
Fungsi rekursif, queue, stack
Icha Dicaprio
 
Belajar mudah microsoft office excel 2007
Belajar mudah microsoft office excel 2007Belajar mudah microsoft office excel 2007
Belajar mudah microsoft office excel 2007rina_nurjanah96
 
9.double linked list circular
9.double linked list circular9.double linked list circular
9.double linked list circularHitesh Wagle
 
Struktur data
Struktur dataStruktur data
Struktur data
yusriren20
 
Laporan praktikum modul viii
Laporan praktikum modul viiiLaporan praktikum modul viii
Laporan praktikum modul viii
Devi Apriansyah
 

Similar to Algorithms and Data Structures (20)

STACK .pdf
STACK .pdfSTACK .pdf
STACK .pdf
 
teori Struktur data full
teori Struktur data fullteori Struktur data full
teori Struktur data full
 
Struktur data
Struktur dataStruktur data
Struktur data
 
Tistrukdat10
Tistrukdat10Tistrukdat10
Tistrukdat10
 
3 stack2
3 stack23 stack2
3 stack2
 
Queue
QueueQueue
Queue
 
Algoritma dan Struktur Data (Python) - Struktur Data
Algoritma dan Struktur Data (Python) - Struktur DataAlgoritma dan Struktur Data (Python) - Struktur Data
Algoritma dan Struktur Data (Python) - Struktur Data
 
Ketoprak_PPT ADT Stack dan Queue.pptx
Ketoprak_PPT ADT Stack dan Queue.pptxKetoprak_PPT ADT Stack dan Queue.pptx
Ketoprak_PPT ADT Stack dan Queue.pptx
 
Stack with linked list(algodat)
Stack with linked list(algodat)Stack with linked list(algodat)
Stack with linked list(algodat)
 
5 6 single-linked_list
5 6 single-linked_list5 6 single-linked_list
5 6 single-linked_list
 
Bab viii stack
Bab viii   stackBab viii   stack
Bab viii stack
 
ppt_stack_kelompok_5_ppt.ppt
ppt_stack_kelompok_5_ppt.pptppt_stack_kelompok_5_ppt.ppt
ppt_stack_kelompok_5_ppt.ppt
 
ppt_stack_kelompok_5_ppt.ppt
ppt_stack_kelompok_5_ppt.pptppt_stack_kelompok_5_ppt.ppt
ppt_stack_kelompok_5_ppt.ppt
 
Linkedlist
LinkedlistLinkedlist
Linkedlist
 
Fungsi rekursif, queue, stack
Fungsi rekursif, queue, stackFungsi rekursif, queue, stack
Fungsi rekursif, queue, stack
 
Belajar mudah microsoft office excel 2007
Belajar mudah microsoft office excel 2007Belajar mudah microsoft office excel 2007
Belajar mudah microsoft office excel 2007
 
Presentasi lifo
Presentasi lifoPresentasi lifo
Presentasi lifo
 
9.double linked list circular
9.double linked list circular9.double linked list circular
9.double linked list circular
 
Struktur data
Struktur dataStruktur data
Struktur data
 
Laporan praktikum modul viii
Laporan praktikum modul viiiLaporan praktikum modul viii
Laporan praktikum modul viii
 

Recently uploaded

RUBRIK OBSERVASI KINERJA KEPALA SEKOLAH.docx
RUBRIK OBSERVASI KINERJA KEPALA SEKOLAH.docxRUBRIK OBSERVASI KINERJA KEPALA SEKOLAH.docx
RUBRIK OBSERVASI KINERJA KEPALA SEKOLAH.docx
lastri261
 
Bahan Sosialisasi PPDB_1 2024/2025 Bandung
Bahan Sosialisasi PPDB_1 2024/2025 BandungBahan Sosialisasi PPDB_1 2024/2025 Bandung
Bahan Sosialisasi PPDB_1 2024/2025 Bandung
Galang Adi Kuncoro
 
Dokumen Rangkuman Kehadiran Guru ini dipergunakan sebagai bukti dukung yang w...
Dokumen Rangkuman Kehadiran Guru ini dipergunakan sebagai bukti dukung yang w...Dokumen Rangkuman Kehadiran Guru ini dipergunakan sebagai bukti dukung yang w...
Dokumen Rangkuman Kehadiran Guru ini dipergunakan sebagai bukti dukung yang w...
haryonospdsd011
 
RHK Jabatan Kep Sekolah dan Bukti Dukung.pdf
RHK Jabatan Kep Sekolah dan Bukti Dukung.pdfRHK Jabatan Kep Sekolah dan Bukti Dukung.pdf
RHK Jabatan Kep Sekolah dan Bukti Dukung.pdf
asyi1
 
RUBRIK OBSERVASI KINERJA KEPALA SEKOLAH.docx
RUBRIK OBSERVASI KINERJA KEPALA SEKOLAH.docxRUBRIK OBSERVASI KINERJA KEPALA SEKOLAH.docx
RUBRIK OBSERVASI KINERJA KEPALA SEKOLAH.docx
kinayaptr30
 
SOSIALISASI PPDB TAHUN AJARAN 2024-2025.pptx
SOSIALISASI PPDB TAHUN AJARAN 2024-2025.pptxSOSIALISASI PPDB TAHUN AJARAN 2024-2025.pptx
SOSIALISASI PPDB TAHUN AJARAN 2024-2025.pptx
astridamalia20
 
Modul Projek - Modul P5 Kearifan Lokal _Menampilkan Tarian Daerah Nusantara_...
Modul Projek  - Modul P5 Kearifan Lokal _Menampilkan Tarian Daerah Nusantara_...Modul Projek  - Modul P5 Kearifan Lokal _Menampilkan Tarian Daerah Nusantara_...
Modul Projek - Modul P5 Kearifan Lokal _Menampilkan Tarian Daerah Nusantara_...
MirnasariMutmainna1
 
ppt landasan pendidikan Alat alat pendidikan PAI 9_
ppt landasan pendidikan Alat alat pendidikan PAI 9_ppt landasan pendidikan Alat alat pendidikan PAI 9_
ppt landasan pendidikan Alat alat pendidikan PAI 9_
setiatinambunan
 
PPT Observasi Praktik Kinerja PMM SD pdf
PPT Observasi Praktik Kinerja PMM SD pdfPPT Observasi Praktik Kinerja PMM SD pdf
PPT Observasi Praktik Kinerja PMM SD pdf
safitriana935
 
tugas modul 1.4 Koneksi Antar Materi (1).pptx
tugas  modul 1.4 Koneksi Antar Materi (1).pptxtugas  modul 1.4 Koneksi Antar Materi (1).pptx
tugas modul 1.4 Koneksi Antar Materi (1).pptx
d2spdpnd9185
 
Pi-2 AGUS MULYADI. S.Pd (3).pptx visi giru penggerak dan prakrsa perubahan bagja
Pi-2 AGUS MULYADI. S.Pd (3).pptx visi giru penggerak dan prakrsa perubahan bagjaPi-2 AGUS MULYADI. S.Pd (3).pptx visi giru penggerak dan prakrsa perubahan bagja
Pi-2 AGUS MULYADI. S.Pd (3).pptx visi giru penggerak dan prakrsa perubahan bagja
agusmulyadi08
 
Laporan wakil kepala sekolah bagian Kurikulum.pdf
Laporan wakil kepala sekolah bagian Kurikulum.pdfLaporan wakil kepala sekolah bagian Kurikulum.pdf
Laporan wakil kepala sekolah bagian Kurikulum.pdf
yuniarmadyawati361
 
Juknis Pengisian Blanko Ijazah 2024 29 04 2024 Top.pptx
Juknis Pengisian Blanko Ijazah 2024 29 04 2024 Top.pptxJuknis Pengisian Blanko Ijazah 2024 29 04 2024 Top.pptx
Juknis Pengisian Blanko Ijazah 2024 29 04 2024 Top.pptx
mattaja008
 
Form B8 Rubrik Refleksi Program Pengembangan Kompetensi Guru -1.docx
Form B8 Rubrik Refleksi Program Pengembangan Kompetensi Guru -1.docxForm B8 Rubrik Refleksi Program Pengembangan Kompetensi Guru -1.docx
Form B8 Rubrik Refleksi Program Pengembangan Kompetensi Guru -1.docx
EkoPutuKromo
 
Tugas Mandiri 1.4.a.4.3 Keyakinan Kelas.pdf
Tugas Mandiri 1.4.a.4.3 Keyakinan Kelas.pdfTugas Mandiri 1.4.a.4.3 Keyakinan Kelas.pdf
Tugas Mandiri 1.4.a.4.3 Keyakinan Kelas.pdf
muhammadRifai732845
 
PI 2 - Ratna Haryanti, S. Pd..pptx Visi misi dan prakarsa perubahan pendidika...
PI 2 - Ratna Haryanti, S. Pd..pptx Visi misi dan prakarsa perubahan pendidika...PI 2 - Ratna Haryanti, S. Pd..pptx Visi misi dan prakarsa perubahan pendidika...
PI 2 - Ratna Haryanti, S. Pd..pptx Visi misi dan prakarsa perubahan pendidika...
agusmulyadi08
 
LAPORAN TUGAS TAMBAHAN PEMBINA PRAMUKA..
LAPORAN TUGAS TAMBAHAN PEMBINA PRAMUKA..LAPORAN TUGAS TAMBAHAN PEMBINA PRAMUKA..
LAPORAN TUGAS TAMBAHAN PEMBINA PRAMUKA..
widyakusuma99
 
Koneksi Antar Materi Modul 1.4.ppt x
Koneksi Antar Materi Modul 1.4.ppt           xKoneksi Antar Materi Modul 1.4.ppt           x
Koneksi Antar Materi Modul 1.4.ppt x
johan199969
 
VISI MISI KOMUNITAS BELAJAR SDN 93 KOTA JAMBI
VISI MISI KOMUNITAS BELAJAR SDN 93 KOTA JAMBIVISI MISI KOMUNITAS BELAJAR SDN 93 KOTA JAMBI
VISI MISI KOMUNITAS BELAJAR SDN 93 KOTA JAMBI
gloriosaesy
 
Modul Ajar Bahasa Inggris Kelas 5 Fase C Kurikulum Merdeka
Modul Ajar Bahasa Inggris Kelas 5 Fase C Kurikulum MerdekaModul Ajar Bahasa Inggris Kelas 5 Fase C Kurikulum Merdeka
Modul Ajar Bahasa Inggris Kelas 5 Fase C Kurikulum Merdeka
Fathan Emran
 

Recently uploaded (20)

RUBRIK OBSERVASI KINERJA KEPALA SEKOLAH.docx
RUBRIK OBSERVASI KINERJA KEPALA SEKOLAH.docxRUBRIK OBSERVASI KINERJA KEPALA SEKOLAH.docx
RUBRIK OBSERVASI KINERJA KEPALA SEKOLAH.docx
 
Bahan Sosialisasi PPDB_1 2024/2025 Bandung
Bahan Sosialisasi PPDB_1 2024/2025 BandungBahan Sosialisasi PPDB_1 2024/2025 Bandung
Bahan Sosialisasi PPDB_1 2024/2025 Bandung
 
Dokumen Rangkuman Kehadiran Guru ini dipergunakan sebagai bukti dukung yang w...
Dokumen Rangkuman Kehadiran Guru ini dipergunakan sebagai bukti dukung yang w...Dokumen Rangkuman Kehadiran Guru ini dipergunakan sebagai bukti dukung yang w...
Dokumen Rangkuman Kehadiran Guru ini dipergunakan sebagai bukti dukung yang w...
 
RHK Jabatan Kep Sekolah dan Bukti Dukung.pdf
RHK Jabatan Kep Sekolah dan Bukti Dukung.pdfRHK Jabatan Kep Sekolah dan Bukti Dukung.pdf
RHK Jabatan Kep Sekolah dan Bukti Dukung.pdf
 
RUBRIK OBSERVASI KINERJA KEPALA SEKOLAH.docx
RUBRIK OBSERVASI KINERJA KEPALA SEKOLAH.docxRUBRIK OBSERVASI KINERJA KEPALA SEKOLAH.docx
RUBRIK OBSERVASI KINERJA KEPALA SEKOLAH.docx
 
SOSIALISASI PPDB TAHUN AJARAN 2024-2025.pptx
SOSIALISASI PPDB TAHUN AJARAN 2024-2025.pptxSOSIALISASI PPDB TAHUN AJARAN 2024-2025.pptx
SOSIALISASI PPDB TAHUN AJARAN 2024-2025.pptx
 
Modul Projek - Modul P5 Kearifan Lokal _Menampilkan Tarian Daerah Nusantara_...
Modul Projek  - Modul P5 Kearifan Lokal _Menampilkan Tarian Daerah Nusantara_...Modul Projek  - Modul P5 Kearifan Lokal _Menampilkan Tarian Daerah Nusantara_...
Modul Projek - Modul P5 Kearifan Lokal _Menampilkan Tarian Daerah Nusantara_...
 
ppt landasan pendidikan Alat alat pendidikan PAI 9_
ppt landasan pendidikan Alat alat pendidikan PAI 9_ppt landasan pendidikan Alat alat pendidikan PAI 9_
ppt landasan pendidikan Alat alat pendidikan PAI 9_
 
PPT Observasi Praktik Kinerja PMM SD pdf
PPT Observasi Praktik Kinerja PMM SD pdfPPT Observasi Praktik Kinerja PMM SD pdf
PPT Observasi Praktik Kinerja PMM SD pdf
 
tugas modul 1.4 Koneksi Antar Materi (1).pptx
tugas  modul 1.4 Koneksi Antar Materi (1).pptxtugas  modul 1.4 Koneksi Antar Materi (1).pptx
tugas modul 1.4 Koneksi Antar Materi (1).pptx
 
Pi-2 AGUS MULYADI. S.Pd (3).pptx visi giru penggerak dan prakrsa perubahan bagja
Pi-2 AGUS MULYADI. S.Pd (3).pptx visi giru penggerak dan prakrsa perubahan bagjaPi-2 AGUS MULYADI. S.Pd (3).pptx visi giru penggerak dan prakrsa perubahan bagja
Pi-2 AGUS MULYADI. S.Pd (3).pptx visi giru penggerak dan prakrsa perubahan bagja
 
Laporan wakil kepala sekolah bagian Kurikulum.pdf
Laporan wakil kepala sekolah bagian Kurikulum.pdfLaporan wakil kepala sekolah bagian Kurikulum.pdf
Laporan wakil kepala sekolah bagian Kurikulum.pdf
 
Juknis Pengisian Blanko Ijazah 2024 29 04 2024 Top.pptx
Juknis Pengisian Blanko Ijazah 2024 29 04 2024 Top.pptxJuknis Pengisian Blanko Ijazah 2024 29 04 2024 Top.pptx
Juknis Pengisian Blanko Ijazah 2024 29 04 2024 Top.pptx
 
Form B8 Rubrik Refleksi Program Pengembangan Kompetensi Guru -1.docx
Form B8 Rubrik Refleksi Program Pengembangan Kompetensi Guru -1.docxForm B8 Rubrik Refleksi Program Pengembangan Kompetensi Guru -1.docx
Form B8 Rubrik Refleksi Program Pengembangan Kompetensi Guru -1.docx
 
Tugas Mandiri 1.4.a.4.3 Keyakinan Kelas.pdf
Tugas Mandiri 1.4.a.4.3 Keyakinan Kelas.pdfTugas Mandiri 1.4.a.4.3 Keyakinan Kelas.pdf
Tugas Mandiri 1.4.a.4.3 Keyakinan Kelas.pdf
 
PI 2 - Ratna Haryanti, S. Pd..pptx Visi misi dan prakarsa perubahan pendidika...
PI 2 - Ratna Haryanti, S. Pd..pptx Visi misi dan prakarsa perubahan pendidika...PI 2 - Ratna Haryanti, S. Pd..pptx Visi misi dan prakarsa perubahan pendidika...
PI 2 - Ratna Haryanti, S. Pd..pptx Visi misi dan prakarsa perubahan pendidika...
 
LAPORAN TUGAS TAMBAHAN PEMBINA PRAMUKA..
LAPORAN TUGAS TAMBAHAN PEMBINA PRAMUKA..LAPORAN TUGAS TAMBAHAN PEMBINA PRAMUKA..
LAPORAN TUGAS TAMBAHAN PEMBINA PRAMUKA..
 
Koneksi Antar Materi Modul 1.4.ppt x
Koneksi Antar Materi Modul 1.4.ppt           xKoneksi Antar Materi Modul 1.4.ppt           x
Koneksi Antar Materi Modul 1.4.ppt x
 
VISI MISI KOMUNITAS BELAJAR SDN 93 KOTA JAMBI
VISI MISI KOMUNITAS BELAJAR SDN 93 KOTA JAMBIVISI MISI KOMUNITAS BELAJAR SDN 93 KOTA JAMBI
VISI MISI KOMUNITAS BELAJAR SDN 93 KOTA JAMBI
 
Modul Ajar Bahasa Inggris Kelas 5 Fase C Kurikulum Merdeka
Modul Ajar Bahasa Inggris Kelas 5 Fase C Kurikulum MerdekaModul Ajar Bahasa Inggris Kelas 5 Fase C Kurikulum Merdeka
Modul Ajar Bahasa Inggris Kelas 5 Fase C Kurikulum Merdeka
 

Algorithms and Data Structures

  • 1. DI SUSUN OLEH NOVAL C. KESUMA (10512454) BENNY ABDULLAH (10512457) MUAZ MANOPPO (10512483) TAUFIK SULAEMAN (10512477) RADEN BAYU SUKARNA (105124
  • 2. Stack Pengertian Stack atau Tumpukan adalah suatu stuktur data yang penting dalam pemrograman yang mempunyai sifat LIFO (Last In First Out), Benda yang terakhir masuk ke dalam stack akan menjadi benda pertama yang dikeluarkan dari stack. Stack (Tumpukan) adalah list linier yang dikenali elemen puncaknya (TOP) dan Aturan penyisipan dan penghapusan elemennya tertentu. Penyisipan selalu dilakukan “di atas“ TOP dan Penghapusan selalu dilakukan pada TOP. STACK ATAU TUMPUKAN PADA MATAKULIAH STRUKTUR DATA Stack karena aturan penyisipan dan penghapusan semacam itu, TOP adalah satu-satunya alamat tempat terjadi operasi. Elemen yang ditambahkan paling akhir akan menjadi elemen yang akan dihapus.Dikatakan bahwa elemen Stack akan tersusun secara LIFO (Last In First Out). karena kita menumpuk Compo di posisi terakhir, maka Compo akan menjadi elemen teratas dalam tumpukan. Sebaliknya, karena kita menumpuk Televisi pada saat pertama kali, maka elemen Televisi menjadi elemen terbawah dari tumpukan. Dan jika kita mengambil
  • 3. elemen dari tumpukan, maka secara otomatis akan terambil elemen teratas, yaitu Compo juga. OPERASI-OPERASI/FUNGSI STACK 1. Push : digunakan untuk menambah item pada stack pada tumpukan paling atas 2. Pop : digunakan untuk mengambil item pada stack pada tumpukan paling atas 3. Clear : digunakan untuk mengosongkan stack 4. IsEmpty : fungsi yang digunakan untuk mengecek apakah stack sudah kosong 5. IsFull : fungsi yang digunakan untuk mengecek apakah stack sudah penuh INISIALISASI STACK Pada mulanya isi top dengan -1, karena array dalam C dimulai dari 0, yang berarti stack adalah KOSONG.! Top adalah suatu variabel penanda dalam STACK yang menunjukkan elemen teratas Stack sekarang. Top Of Stack akan selalu bergerak hingga mencapai MAX of STACK sehingga menyebabkan stack PENUH! Ilustrasi stack pada saat inisialisasi
  • 4. Fungsi IsFull Untuk memeriksa apakah stack sudah penuh? Dengan cara memeriksa top of stack, jika sudah sama dengan MAX_STACK-1 maka full, jika belum (masih lebih kecil dari MAX_STACK-1) maka belum full Ilustrasi
  • 5. Contoh program Stack //program STACK #include <iostream.h> #include <conio.h> #include <string.h> struct { char data [15][100], max [15]; int i,j; } stack; void isi () // push untuk memasukan data { stack.i++; cout<<"masukan data: "; cin>>stack.max; strcpy (stack.data[stack.i],stack.max); } void buang () // pop untuk mengambil data { if (stack.i>0) { cout<<"data yang terambil: "<<stack.data[stack.i]<<endl;
  • 6. stack.i--; stack.j--; } else cout<<"tak ada data yang terambil"<<endl; } void muncul (int n)//print untuk menampilkan data { if (stack.j>0) { for (int e=n; e>=1; e--) { cout<<stack.data[e]<<endl; } } else cout<<"tak ada data tersimpan"<<endl; } void hapus () // clear untuk menghapus data { stack.j=0; stack.i=0; } void main () {
  • 7. int n,plh; ayo: clrscr(); cout<<"contoh program stack (tumpukan)nn"; cout<<"maksimal tumpukan data: "; cin>>n; stack.data[n]; stack.i=0; stack.j=0; pusing: clrscr(); cout<<"n1. push n2. pop n3. print n4. clear n5. quit n"; cout<<"npilih :"; cin>>plh; cout<<"n"; if (plh==1) { if (stack.j<n) { stack.j++; isi(); } else { cout<<"tumpukan penuh"<<endl; getch();
  • 8. } goto pusing; } else if (plh==2) { buang(); getch(); goto pusing; } else if (plh==3) { muncul (stack.i); getch(); goto pusing; } else if (plh==4) { hapus(); getch(); goto pusing; } else if (plh==5) { getch(); goto ayo; } else { cout<<"input yang anda masukan salah !!!"; getch(); goto ayo;
  • 9. } }
  • 10. Tree Treemerupakan salah satu bentuk struktur data tidak linear yang menggambarkan hubungan yang bersifat hierarkis (hubungan one to many) antara elemen-elemen. Tree bisa didefinisikan sebagai kumpulan simpul/node dengan elemen khusus yang disebut root atau akar.Cara penggunaan Tree : 1. notasi kurung 2. diagram venn 3. notasi tingkat 4. notasi garis Jenis-jenis Tree : 1. Binnary tree Binary Tree adalah tree dengan syarat bahwa tiap node hanya boleh memiliki maksimal dua subtree dan kedua subtree tersebut harus terpisah. Sesuai dengan definisi tersebut, maka tiap node dalam binary tree hanya boleh memiliki paling banyak dua child. Jenis jenis Binnary Tree
  • 11. 1. Full binnary tree binnary tree ini tiap nodenya (kecuali leaf) memiliki 2 child dan tiap subtree harus mempunyai panjang path yang sama. 1. complete binnary tree mirip dengan full binnary tree, tetapi tiap subtree boleh memiliki panjang path yang berbeda. 1. skewed binnary tree binnary tree yang semua nodenya (kecuali leaf) hanya memiliki 1 child.
  • 12. 1. Implementasi Binary Tree Binary Tree dapat diimplemntasikan dalam Pascal dengan menggunakan double Linked List. Untuk nodenya, bisa dideklarasikan sbb : Type Tree = ^node; Node = record Isi : TipeData; Left,Right : Tree; end; Contoh ilustrasi Tree yang disusun dengan double linked list : (Ket: LC=Left Child; RC=Right Child) Operasi-operasi pada Binary Tree : 1. Create : Membentuk binary tree baru yang masih kosong. 2. Clear : Mengosongkan binary tree yang sudah ada. 3. Empty : Function untuk memeriksa apakah binary tree masih kosong. 4. Insert : Memasukkan sebuah node ke dalam tree. Ada tiga pilihan insert: sebagai root, left child, atau right child. Khusus insert sebagai root, tree harus dalam keadaan kosong. 5. Find : Mencari root, parent, left child, atau right child dari suatu node. (Tree tak boleh kosong) 6. Update : Mengubah isi dari node yang ditunjuk oleh pointer current. (Tree tidak boleh kosong)
  • 13. 7. Retrieve : Mengetahui isi dari node yang ditunjuk pointer current. (Tree tidak boleh kosong) 8. DeleteSub : Menghapus sebuah subtree (node beserta seluruh descendantnya) yang ditunjuk current. Tree tak boleh kosong. Setelah itu pointer current akan berpindah ke parent dari node yang dihapus. 9. Characteristic : Mengetahui karakteristik dari suatu tree, yakni : size, height, serta average lengthnya. Tree tidak boleh kosong. (Average Length = [jumlahNodeLvl1*1+jmlNodeLvl2*2+…+jmlNodeLvln*n]/Size) 10. Traverse : Mengunjungi seluruh node-node pada tree, masing-masing sekali. Hasilnya adalah urutan informasi secara linier yang tersimpan dalam tree. Adatiga cara traverse : Pre Order, In Order, dan Post Order. Langkah-Langkahnya Traverse : 1. PreOrder : Cetak isi node yang dikunjungi, kunjungi Left Child, kunjungi Right Child. 2. InOrder : Kunjungi Left Child, Cetak isi node yang dikunjungi, kunjungi Right Child. 3. PostOrder : Kunjungi Left Child, Kunjungi Right Child, cetak isi node yang dikunjungi. 2. Binary search Tree Adalah Binary Tree dengan sifat bahwa semua left child harus lebih kecil daripada right child dan parentnya. Juga semua right child harus lebih besar dari left child serta parentnya. Binary seach tree dibuat untuk mengatasi kelemahan pada
  • 14. binary tree biasa, yaitu kesulitan dalam searching / pencarian node tertentu dalam binary tree. Contoh binary search tree umum : Pada dasarnya operasi dalam binary search tree sama dengan Binary tree biasa, kecuali pada operasi insert, update, dan delete. 1. Insert : Pada Binary Search Tree, insert dilakukan setelah ditemukan lokasi yang tepat. (Lokasi tidak ditentukan oleh user sendiri).
  • 15. 2. Update : Seperti pada Binary Tree biasa, namun disini uapte akan berpengaruh pada posisi node tersebut selanjutnya. Bila setelah diupdate mengakibatkan tree tersebut bukan Binary Search Tree lagi, maka harus dilakukan perubahan pada tree dengan melakukan perubahan pada tree dengan melakukan rotasi supaya tetap menjadi Binary Search Tree. 3. Delete : Seperti halnya update, delete dalam Binary Search Tree juga turut mempengaruhi struktur dari tree tersebut. (Keadaan awal merupakan lanjutan gambar sebelumnya)
  • 16. Contoh program Tree //Program tree #include "iostream.h" #include "string.h" #include "conio.h" struct simpulpohon { simpulpohon *induk; simpulpohon *kiri; simpulpohon *kanan; char data; }; class pohonbiner { private: simpulpohon *akar; int tambah(simpulpohon *orangtua, simpulpohon *baru); void tampil(simpulpohon *simpul); public: pohonbiner(); int tambah(char data); void tampil();
  • 17. }; void main() { clrscr(); char data[] = "CARKDUPBENXZS"; pohonbiner pohon; for (int i = 0; i < strlen(data); i++) pohon.tambah(data[i]); cout<<"Data ke Pohon Biner : "<<endl; for (int x = 0; x < strlen(data); x++) cout<<data[x]; cout<<endl; cout<<endl; cout<<"Hasil Pohon Biner :"<<endl; pohon.tampil(); getch(); } pohonbiner::pohonbiner() {
  • 18. akar = NULL; } int pohonbiner::tambah(char data) { simpulpohon *simpul; simpul= new simpulpohon; simpul->kiri = NULL; simpul->kanan = NULL; simpul->induk = NULL; simpul->data = data; if (akar == NULL) { akar = simpul; return(1); } else return(tambah(akar,simpul)) ; } int pohonbiner::tambah(simpulpohon *orangtua, simpulpohon *baru) { if (baru->data ==orangtua->data) { delete baru;
  • 19. return(0); } else if (baru->data < orangtua->data) { if (!orangtua->kiri) { orangtua->kiri = baru; baru->induk = orangtua; } else return(tambah(orangtua->kiri,baru)) ; } else { if (!orangtua->kanan) { orangtua->kanan = baru; baru->induk = orangtua; } else return(tambah(orangtua->kanan,baru)); } return(1);
  • 20. } void pohonbiner::tampil() { tampil(akar); cout<<endl; } void pohonbiner::tampil(simpulpohon *simpul) { if (simpul) { if (simpul->kiri) tampil(simpul->kiri); cout<<simpul->data; if (simpul->kanan) tampil(simpul->kanan); } }
  • 21. Graph 1. Pengertian Graf dan Tree serta Perbedaannya Graf adalah kumpulan noktah (simpul) di dalam bidang dua dimensi yang dihubungkan dengan sekumpulan garis (sisi). Graph dapat digunakan untuk merepresentasikan objek-objek diskrit dan hubungan antara objek-objek tersebut. Representasi visual dari graph adalah dengan menyatakan objek sebagai noktah, bulatan atau titik (Vertex), sedangkan hubungan antara objek dinyatakan dengan garis (Edge). G = (V, E) Dimana G = Graph V = Simpul atau Vertex, atau Node, atau Titik E = Busur atau Edge, atau arc Graf merupakan suatu cabang ilmu yang memiliki banyak terapan. Banyak sekali struktur yang bisa direpresentasikan dengan graf, dan banyak masalah yang bisa diselesaikan dengan bantuan graf. Seringkali graf digunakan untuk merepresentasikan suaru jaringan. Misalkan jaringan jalan raya dimodelkan graf dengan kota sebagai simpul (vertex/node) dan jalan yang menghubungkan setiap kotanya sebagai sisi (edge) yang bobotnya (weight) adalah panjang dari jalan tersebut.
  • 22. Ada beberapa cara untuk menyimpan graph di dalam sitem komputer. Struktur data bergantung pada struktur graph dan algoritma yang digunakan untuk memmanipulasi graph. Secara teori salah satu dari keduanya dapat dibedakan antara struktur list dan matriks, tetapi dalam penggunaannya struktur terbaik yang sering digunakan adalah kombinasi keduanya. • Graph tak berarah (undirected graph atau non-directed graph) : • Urutan simpul dalam sebuah busur tidak dipentingkan. Misal busur e1 dapat disebut busur AB atau BA • Graph berarah (directed graph) : • Urutan simpul mempunyai arti. Misal busur AB adalah e1 sedangkan busur BA adalah e8. • Graph Berbobot (Weighted Graph) • Jika setiap busur mempunyai nilai yang menyatakan hubungan antara 2 buah simpul, maka busur tersebut dinyatakan memiliki bobot. • Bobot sebuah busur dapat menyatakan panjang sebuah jalan dari 2 buah titik, jumlah rata-rata kendaraan perhari yang melalui sebuah jalan, dll.
  • 23. Tree dalam pemrograman merupakan struktur data yang tidak linear / non linear yang digunakan terutama untuk merepresentasikan hubungan data yang bersifat hierarkis antara elemen-elemennya. Kumpulan elemen yang salah satu elemennya disebut dengan root (akar) dan sisa elemen yang lain disebut sebagai simpul (node/vertex) yang terpecah menjadi sejumlah himpunan yang tidak saling berhubungan satu sama lain, yang disebut subtree / cabang. Adapun Perbedaan Graph dengan Tree sebagai berikut: a. Pada Tree tidak terdapat Cycle b. Pada Graph tidak memiliki root 2. Istilah-istilah dalam graf Kemudian terdapat istilah-istilah yang berkaitan dengan graph yaitu: a. Vertex Adalah himpunan node / titik pada sebuah graph. b. Edge Adalah himpunan garis yang menghubungkan tiap node / vertex. c. Adjacent Adalah dua buah titik dikatakan berdekatan (adjacent) jika dua buah titik tersebut terhubung dengan sebuah sisi. Adalah Sisi e3 = v2v3 insident dengan titik v2 dan titik v3, tetapi sisi e3 = v2v3 tidak insident dengan titik v1 dan titik v4. Titik v1 adjacent dengan titik v2 dan titik v3, tetapi titik v1 tidak adjacent dengan
  • 24. titik v4. d. Weight Adalah Sebuah graf G = (V, E) disebut sebuah graf berbobot (weight graph), apabila terdapat sebuah fungsi bobot bernilai real W pada himpunan E, W : E ® R, nilai W(e) disebut bobot untuk sisi e, " e ÃŽ E. Graf berbobot tersebut dinyatakan pula sebagai G = (V, E, W). Graf berbobot G = (V, E, W) dapat menyatakan * suatu sistem perhubungan udara, di mana · V = himpunan kota-kota · E = himpunan penerbangan langsung dari satu kota ke kota lain · W = fungsi bernilai real pada E yang menyatakan jarak atau ongkos atau waktu * suatu sistem jaringan komputer, di mana · V = himpunan komputer · E = himpunan jalur komunikasi langsung antar dua komputer · W = fungsi bernilai real pada E yang menyatakan jarak atau ongkos atau waktu e. Path Adalah Walk dengan setiap vertex berbeda. Contoh, P = D5B4C2A Sebuah walk (W) didefinisikan sebagai urutan (tdk nol) vertex & edge. Diawali origin vertex dan
  • 25. diakhiri terminus vertex. Dan setiap 2 edge berurutan adalah series. Contoh, W = A1B3C4B1A2. f. Cycle Adalah Siklus ( Cycle ) atau Sirkuit ( Circuit ) Lintasan yang berawal dan berakhir pada simpul yang sama 3. Representasi Graf Dalam pemrograman, agar data yang ada dalam graph dapat diolah, maka graph harus dinyatakan dalam suatu struktur data yang dapat mewakili graph tersebut. Dalam hal ini graph perlu direpresentasikan kedalam bentuk array dan dimensi yang sering disebut matrix atau direpresentasikan dalam bentuk linked list. Bentuk mana yang dipilih biasanya tergantung kepada efisiensi dan kemudahan dalam membuat program. Berikut ini beberapa bentuk representasi graph: 1. Representasi Graph dalam bentuk Matrix: a. Adjacency Matrik Graf Tak Berarah Matrik yang digambarkan pada gambar 1b merupakan representasi dalam bentuk Adjacency Matrik dari graf yang digambarkan pada gambar 1a. Beberapa hal yang
  • 26. dapat dilihat atau dapat diterangkan pada Adjacency Matrik tersebut adalah sebagai berikut : 1. Matrik yang terbentuk adalah matrik bujur sangkar n x n, dimana n = jumlah simpul yang ada dalam graf tersebut. Matrik ini menyatakan hubungan antara simpul satu dengan simpul lainnya. 2. Matrik yang terbentuk adalah matrik simetris dengan sumbu simetris adalah diagonal dari titik kiri atas ke titik kanan bawah. 3. Data yang tedapat baik dalam baris maupun kolom, dapat menyatakan degree sebuah simpul. Contoh : baik pada baris D maupun kolom D jumlah angka 1 nya adalah 3 buah, dimana jumlah ini menyatakan degree simpul D. b. Adjacency Matrik Graf Berarah Matrik yang digambarkan pada gambar 2b merupakan representasi dalam bentuk Adjacency Matrik dari graf yang digambarkan pada gambar 2a. Beberapa hal yang dapat dilihat atau dapat diterangkan pada Adjacency Matrik tersebut adalah sebagai berikut : 1. Matrik yang terbentuk adalah matrik bujur sangkar n x n, dimana n = jumlah simpul yang ada dalam graf tersebut. Matrik ini menyatakan hubungan antara simpul satu dengan simpul lainnya. 2. Matrik yang terbentuk mungkin simetris mungkin juga tidak simetris. Menjadi
  • 27. Simetris bila hubungan antara dua buah simpul (v1 dan v2) terdapat busur dari v1 ke v2 dan juga sebaliknya. 3. Hal pokok yang dinyatakan oleh matrik ini adalah : busur yang ’keluar’ dari suatu simpul. Dengan demikian, data yang terdapat dalam suatu baris, dapat menyatakan outdegree simpul yang bersangkutan. Contoh : Jumlah elemen yang nilainya = 1 pada baris B ada 3 elemen,ini menyatakan jumlah outdegree simpul B adalah 3 buah. 4. Data yang terdapat dalam suatu kolom, dapat menyatakan indegree simpul bersangkutan. Contoh : Jumlah elemen yang nilainya 1 pada kolom B ada 2 elemen, ini menyatakan indegree simpul B adalah 2 buah. c. Adjacency Matrik Graf Berbobot Tak Berarah Nilai yang ada dalam tiap elemen matrik, menyatakan bobot busur yang menghubungkan dua buah simpul yang bersangkutan. Untuk dua buah simpul
  • 28. yang tidak berhubungan langsung oleh sebuah busur, maka dianggap dihubungkan oleh sebuah busur yang nilai bobotnya tidak terhingga. Dalam pemograman, karena keperluan algoritma, maka dari total bobot seluruh busur yang ada atau yang mungkin ada. Contoh: pada gambar 3a simpul A dan C tidak berhubungan langsung melalui sebuah busur, maka untuk elemen matrik yang bersangkutan diisi dengan nilai 999 karena nilai 999 dalam kasus ini cukup mewakili nilai tidak terhingga. 2. Representasi graf dalam bentuk Linked List 4. Adjacency List Bila ingin direpresentasikan dalambentuk linked list, dapat diilustrasikan secara sederhana seperti gamabar 4b. Dari ilustrasi sederhana tersebut terlihat ada 5 buah simpul A,B,C,D,dan E yang dibariskan dari atas kebawah seperti pada gambar 4a. Kemudian dari masing-masing simpul ’keluar’ pointer kearah kanan yang menunjuk simpul-simpul lain. Salah satu contoh, yang dapat dilihat pada gambar 4b dimana A menunjuk simpul B dan simpul D.
  • 29. Dalam Adjacency List, kita perlu membedakan antara simpul-vertex dan simpul-edge. Simpul-vertex untuk menyatakan simpul atau vertex, dan simpul-edge untuk menyatakan hubungan antar simpul yang biasa disebut busur. Struktur keduanya bisa sama, bisa juga tidak sama,tergantung kebutuhan.Untuk memudahkan pembuatan program, struktur kedua macam simpul dibuat sama seperti yang digambarkan pada gambar 5c. Yang membedakan antara simpul - vertex dan simpul-edge, adalah anggapan terhadap simpul tersebut. Dalam contoh ini, terlihat struktur simpul dibuat terdiri dari 3 elemen. Satu elemen untuk INFO, dua elemen untuk pointer.pointer kiri (left) dan pointer kanan (right). Struct tipes{ Struct tipes *Left; int INFO; Struct tipes *Right; }; Struct tipes *First,*Pvertex,*Pedge; - Bila simpul dianggap sebagai simpul-vertex, maka : Pointer left digunakan untuk menunjuk simpul berikutnya dalam untaian simpul - simpul yang ada,atau diisi NULL bila sudah tidak ada simpul yang pelu ditunjuk.Sedangkan pointer Right digunakan untuk menunjuk simpul edge yang pertama. - Bila Simpul dianggap sebagai simpul-edge, maka : Pointer left digunakan untuk menunjuk simpul-vertex ‘tujuan’ yang berhubungan dengan simpul-vertex ‘asal’ dan pointer right digunakan untuk menunjuk simpul-
  • 30. edge berkiutnya bila masih ada, atau diisi NULL bila tak ada lagi simpul -busur yang ditunjuk. Contoh program graph #include "stdio.h" #include "conio.h" typedef struct Node {int data; Node *kiri; Node *kanan; }; void tambah(Node **root,int databaru) { if((*root) == NULL) { Node *baru; baru = new Node; baru->data = databaru; baru->kiri = NULL; baru->kanan = NULL; (*root) = baru; (*root)->kiri = NULL; (*root)->kanan = NULL;
  • 31. printf("Data bertambah!"); } else if(databaru < (*root)->data) tambah(&(*root)->kiri,databaru); else if(databaru > (*root)->data) tambah(&(*root)->kanan,databaru); else if(databaru == (*root)->data) printf("Data sudah ada!"); } 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) {
  • 32. if(root != NULL){ postOrder(root->kiri); postOrder(root->kanan); printf("%d ",root->data); }} void main() { int c, data; Node *pohon,*t; pohon = NULL; char pil; do { clrscr(); printf("1. Tambahn"); printf("2. Lihat Pre-ordern"); printf("3. Lihat In-ordern"); printf("4. Lihat Post-ordern"); printf("5. Keluarn"); printf("Silahkan masukkan pilihan anda (1-5)... "); pil=getche(); if(pil!='1' && pil !='2' && pil !='3' && pil!='4' && pil!='5' ) printf("nnAnda salah mengetikkan inputan...n"); else {
  • 33. 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();
  • 34. } else { if(pil=='4') { printf("n"); if(pohon!=NULL) postOrder(pohon); else printf("Masih kosong!"); getch(); }}} }}} while(pil!='5'); }