Jumat, 30 November 2012
MEMBUAT RUMAH PADA BAHASA C
#include <stdio.h>
#include <conio.h>
int main()
{
int z,m,e,u,j,i,k,l,n,p;
clrscr();
printf("\nMasukkan Tinggi Rumah : ");
scanf("%d",&z);
e=1;
for(u=1;u<=z;u++)
{
for (j=z-1;j>=u-1; j--)
{
printf(" ");
}
for (i=1;i<=e;i++)
{
printf ("*");
}
e=e+2;
for(p=1;p<=z*2+1;p++){
printf("_\\");
}
printf ("\n");
}
for(l=1;l<=z;l++)
{
for(k=1;k<=e;k++)
{
if (k==1){
printf("|");
}else if (k==e-1){
printf(" |");
for(n=1;n<=e*2;n++){
if (n==e*2){
printf("|");}
else{
printf(" ");}}
}else{
printf(" ");}
}
printf ("\n");
}
for (m=1;m<=e+e*2;m++){
printf("=");
}
getch();
}
jika ingin melihat output programnya klik di sini.
MEMBUAT FAKTORIAL PADA BAHASA C
#include <stdio.h>
#include <conio.h>
int main()
{
int b,i;
int total=1;
clrscr();
printf("\nMasukkan Sebuah Angka : ");
scanf("%d",&i);
printf("\n%d ! = ",i);
for (b=i;b>=1;b--)
{
if (b==1){
printf("%d ",b);
}else{
printf("%d * ",b);
}
total=total*b;
}
printf("= %d",total);
getch();
}
Jika mau output programnya klik di sini.
Senin, 26 November 2012
TREE PADA BAHASA C
1.Pengertian tree
Tree adalah
Kumpulan node yang saling terhubung satu sama lain dalam suatu kesatuan yang
membentuk layakya struktur sebuah pohon. Struktur pohon adalah suatu cara
merepresentasikan suatu struktur hirarki (one-to-many) secara grafis yang mirip
sebuah pohon, walaupun pohon tersebut hanya tampak sebagai kumpulan node-node
dari atas ke bawah. Suatu struktur data yang tidak linier yang menggambarkan
hubungan yang hirarkis (one-to-many) dan tidak linier antara elemen-elemennya.
2. Istilah-Istilah dalam Tree
Dalam mempelajari struktur data non linier ini, akan
ditemui banyak istilah-istilah yang dipergunakan untuk menyajikan sebuah tree.
Berikut ini akan dibahas istilah-istilah yang sering digunakan dalam tree.
2.1 Level (Tingkat)
Level
sebuah node adalah satu ditambah panjang path dari root ke node tersebut,
sehingga level root selalu satu. Jika suatu node terletak pada level N, maka
node-node yang merupakan child-nya terletak pada level N +1. Selain
definisi di atas, ada juga beberapa buku yang menyatakan bahwa root dinyatakan
sebagai level 0, dan node-node lainnya dinyatakan sebagai level 1 lebih tinggi
dari parent-nya. Buku ini menggunakan definisi yang pertama, yaitu
bahwa
root dikatakan berlevel 1.
2.2 Degree (Derajat)
Dikenal
dua macam degree/derajat dari sebuah node yaitu:
1. Out-degree
(atau sering disebut degree) yaitu jumlah subtree dalam node tersebut.
Degree dari leaf atau terminal node selalu nol.
2. In-degree
yaitu jumlah path yang masuk ke dalam node tersebut. In-degree dari
root selalu nol dan untuk node-node lainnya selalu satu.
2.3 Height (Tinggi)
atau Depth (Kedalaman)
Tinggi
atau kedalaman dari suatu tree adalah level maksimum dari node dalam tree
tersebut dikurangi satu. Untuk contoh tree di atas, tinggi tree tersebut adalah
4 - 1 = 3, karena level maksimumnya adalah 4.
2.4 Ancestor dan Descendant
Ancestor
suatu node yaitu semua node yang terletak dalam satu jalur dengan node tersebut
dari root sampai node yang ditinjau. Sebagai contoh, ancestor dari node N6
adalah N0, N1, dan N4. Descendant suatu node yaitu semua
node yang dapat dicapai dari node tersebut. Sebagai contoh, descendant dari node
N1 adalah N2, N3, N4, N5, dan N6.
2.5 Parent (Father) dan Child
(Son)
Parent
suatu node adalah sebuah node yang dapat mencapai node tersebut dengan path
tunggal. Sebagai contoh, parent dari N2 adalah N1, parent dari N5
adalah N4, parent dari N10 adalah N8, dan sebagainya. Child
suatu node adalah semua node yang dapat dicapai oleh node tersebut dengan sebuah
path saja. Sebagai contoh, child dari N1 adalah N2, N3,
dan N4; child dari N4 adalah N5 dan N6; dan
sebagainya.
2.6 Forest
Forest
adalah kumpulan tree yang tidak saling berhubungan (disjoint). Jika pada tree
di atas, node N0 dihapus menyebabkan terjadi sebuah forest dengan tiga tree.
2.7 Ordered Tree
Definisi
ordered tree yaitu Sebuah tree yang di dalamnya terdapat aturan untuk menyusun
node-node dalam level yang sama, atau sebuah tree dimana setiap subtree pada semua
node di dalamnya membentuk himpunan yang berurutan (ordered set).
2.8 m-ary
Tree
m-ary
tree adalah tree yang out-degree setiap node di dalamnya lebih kecil atau sama
dengan m. Apabila m = 2, maka disebut dengan binary tree. Untuk contoh
ordered tree di atas, juga dapat dikatakan sebagai 3-ary tree.
2.9 Balance
Tree
Balance
tree yaitu tree dimana leaf-leafnya terletak pada level h dan h-1,
sehingga jarak antara sebuah leaf dan leaf terbawah paling banyak 1.
2.10 Complete
m-ary Tree dan Full m-ary Tree
Complete
m-ary tree yaitu suatu m-ary tree yang out-degree setiap node di dalamnya
sama dengan nol (merupakan leaf) atau sama dengan m. Sedangkan full m-ary
tree adalah complete m-ary tree dimana leaf-leafnya terletak pada level yang
sama.
3.
Kunjungan Pada Pohon Biner
Sebuah pohon biner memiliki operasi traversal yaitu suatu
kunjungan pada suatu simpul tepat satu kali. Dengan melakukan kunjungan lengkap
kita akan memperoleh urutan informasi secara linier yang tersimpan di dalam
pohon biner. Terdapat tiga jenis kunjungan pada pohon biner, yaitu :
3.1
PREORDER
Kunjungan
jenis ini mempunyai urutan kunjungan sebagai berikut :
- Cetak
isi simpul yang dikunjungi.
- Kunjungi
cabang kiri.
- Kunjungi
cabang kanan.
Prosedur
untuk melakukan traversal secara PREORDER adalah sebagai berikut :
Procedure
PREORDER(Temp : Tree);
Begin
If Temp
<> NIL Then
Begin
Write(Temp^.Info,’
‘); {Cetak isi simpul}
PREORDER(Temp^.Kiri);
{Kunjungi cabang kiri}
PREORDER(Temp^.Kanan);
{Kunjungi cabang kanan}
End;
End;
3.2
INORDER
Kunjungan
jenis ini mempunyai urutan kunjungan sebagai berikut :
- Kunjungi
cabang kiri.
- Cetak
isi simpul yang dikunjungi.
- Kunjungi
cabang kanan.
Prosedur
untuk melakukan traversal secara INORDER adalah sebagai berikut:
Procedure
INORDER(Temp : Tree);
Begin
If Temp
<> NIL Then
Begin
INORDER(Temp^.Kiri);
{Kunjungi cabang kiri}
Write(Temp^.Info,’
‘); {Cetak isi simpul}
INORDER(Temp^.Kanan);
{Kunjungi cabang kanan}
End;
End;
3.3
POSTORDER
Kunjungan
jenis ini mempunyai urutan kunjungan sebagai berikut :
- Kunjungi
cabang kiri.
- Kunjungi
cabang kanan.
- Cetak
isi simpul yang dikunjungi.
Prosedur
untuk melakukan traversal secara POSTORDER adalah sebagai berikut:
Procedure POSTORDER(Temp
: Tree);
Begin
If Temp
<> NIL Then
Begin
POSTORDER(Temp^.Kiri);
{Kunjungi cabang kiri}
POSTORDER(Temp^.Kanan);
{Kunjungi cabang kanan}
Write(Temp^.Info,’
‘); {Cetak isi simpul}
End;
End;
Dalam pengembangan nantinya, tiga jenis kunjungan ini dapat
digunakan sebagai pencarian notasi infix, postfix dan prefix. Kunjungan
Preorder untuk mencari prefix, kunjungan Inorder untuk mencari postfix dan
kunjungan Postorder untuk mencari infix.
4. Contoh Soal
PREORDER, INORDER, DAN POSTORDER.
Jawaban
PREORDER : ABCDEFGHIJ
INORDER : DCEBFAIHJG
POSTORDER : DECFBIJHGA
Langganan:
Postingan (Atom)