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