Thursday, December 25, 2008

TunJuKan ApA YAng KAMu Bisa


setiap orang patut untuk berbicara, kenapa tidak berbicara kalo hati kita dibuat tidak senang. kita memang harus bersabar menghadapi orang, tapi kalo udah nggak sejalan sama kita kenapa harus dipaksakan untuk tidak berbicara. tunjukin dong kalo kita bisa. Ayo trus Semangat, jangan mau kalah kalo kita bisa menang.

urutan

#include
#include

//seperti procedure dalam pascal
void tampilkan_larik(int data[],int n)
{
int i;
//perulangan mencetak array
for (i=0;i cout< cout<<"\n";
}

//procedure pengurutan dng bubble sort
void bubble ( int data[],int n)
{
int tahap , j, tmp;
int ada_pertukaran;

//dianggap 'tahap=1'
tahap = 1;
//dianggap 'ada_pertukaran=1'
ada_pertukaran = 1;
//perulangan selama tahap < n-1 & ada_pertukaran mka jalankan
while(tahap < n-1 && ada_pertukaran)
{
//ada_pertukarandianggap 0
ada_pertukaran = 0;
//perulangan dng var j dianggap = 0, j for (j=0;j //jiak dat j > data j+1
if (data[j] > data[j+1])
{
//dianggap ada_pertukaran =1
ada_pertukaran=1;
//terjadi pertukaran tmp dng data[j]
//tmp hanya digumakan untuk tempat pertukaran
tmp=data[j];
//data[j] yg tadi ditukar akan kembali ditukar dgn data setelah data [j]
data[j] = data[j+1];
//data setelah data[j] akan kembali ditukarkan dgn tmp
data[j+1] = tmp;
}
//mencetak tahapan sorting
cout<<"hasil tahap"< //memanggil tahapan sorting
tampilkan_larik(data, n);

//var tahap akan trus bertambah 1
tahap++;
}
}
//peocedure selection sort
void selection_sort (int data[],int n)
{
int posmin,posawal,j,tmp;
//perulangan dng posawal = 0 sampai posawal //otomatis bertambah 1
for(posawal=0;posawal < n-1;posawal++)
{
//menganggap posmin = posawal
posmin=posawal;
//perulangan dari j= posawal+1 sampai j for (j = posawal+1; j if (data[posmin]>data[j])
//posmin dianggap j
posmin = j;
//terjadi pertukaran seperti bubble sort
tmp = data[posawal];
data[posawal] = data[posmin];
data[posmin] = tmp;
//mencetak tahapan sorting
cout<<"Hasil pos awal : "< //memanggil proses sorting
tampilkan_larik(data, n);
}
}
//procedure insertion sort
//pengurutan dengan menyisipkan data
void insertion_sort(int data[], int n)
{
int i,k;
int x ;
int ketemu;
// perulangan dari k=1 sampai k for (k=1; k {
//menganggap x=data[k]
x=data[k];
//sisipkan x ke dalam data[0..k-1]
i=k-1;
ketemu=0;

while((i>=0)&&(!ketemu))
{
if (x {
data[i+1] = data[i];
i=i-1;
}
else
ketemu = 1;

data[i+1] = x;
cout<<"Hasil Tahap : ";
tampilkan_larik(data, n);
}
}
}
int partisi (int data[], int p,int r)
{
int i,x,j,tmp;
//digunakan untuk membagi larik data[p..r] menjadi 2 bagian
x = data[p];
//i merupakan partisi yg bergerak naik
i = p;
//j merupakan partisi yg bergerak mundur
j = r;

while (1)
{ //lakukan perulsngsn selama data[j] > x
while(data[j] >x)
//j akan digeser turun
j = j-1;

//lakukan perulangan selama data[i] < x
while(data[i] < x)
//i akan digeser naik
i = i+1;

//jka i if (i { //lakukan pertukaran
tmp = data[i];
data[i] = data[j];
data[j] = tmp;
cout<<"Hasil Tahap : ";
tampilkan_larik(data, r);
}
else
//titik balik partisi berupa j
return j;

}
}

//procedure quick sort
void quick_sort (int data[],int p,int r)
{
int q;

if (p { //manganggap q memanggil procedure partisi
q = partisi(data,p,r);
//kemudian memanggil procedure quick_sort
quick_sort(data,p,q);
//memanggil procedure quick_sort dgn var p ditukar dng q+1
quick_sort(data,q+1,r);
}
}


void main()
{
const jum_data = 8;

int i;
int data[] = {5,8,1,4,3,6,7,2,};
char pil;
do
{
clrscr();
cout<< "1.Bubble sort\n"<<"2.Selection sort\n"<<"3.Insertion Sort\n";
cout<<"4.Quick Sort\n"<<"5.exit\n";
cout<<"Silahkan Masukkan Pilihan Anda--> ";
pil = getche();

//menjalankan bubble_sort
if (pil=='1')
{
clrscr();
cout<<"PENGURUTAN DENGAN BUBBLE SORT\n\n";
bubble(data,jum_data);
cout<<"Hasil Pengurutan:\n";
tampilkan_larik(data,jum_data); getch();
}
//menjalankan selection_sort
if (pil=='2')
{ clrscr();
cout<<"PENGURUTAN DENGAN SELECTION SORT\n\n";
selection_sort(data,jum_data);
cout<<"Hasil pegurutan : \n";
tampilkan_larik(data,jum_data);getch();
}
//menjalankan insertion_sort
if (pil=='3')
{
clrscr();
cout<<"PENGURUTAN DENGAN INSERTION SORT\n\n";
insertion_sort(data, jum_data);
cout<<"Hasil Pengurutan : \n";
tampilkan_larik(data,jum_data);getch();
}
//menjalankan quick_sort
if (pil=='4')
{
clrscr();
cout<<"PENGURUTAN DENGAN QUICK SORT\n\n";
quick_sort(data, 0, jum_data);
cout<<"Hasil Pengurutan : \n";
tampilkan_larik(data, jum_data);getch();
}
//bila pilihan 5 maka hentikan program
}while(pil!='5');
getch();
}



data

#include
#include

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 pil,c;
Node *pohon,*t;
pohon = NULL;
do{
clrscr();
int data;
printf("MENU\n");
printf("1. Tambah\n");
printf("2. Lihat pre-order\n");
printf("3. Lihat in-order\n");
printf("4. Lihat post-order\n");
printf("5. Exit\n");
printf("Pilihan : "); scanf("%d",&pil);
switch(pil){
case 1: printf("Data baru : ");scanf("%d",
&data);
tambah(&pohon,data);
break;
case 2: if(pohon!=NULL) preOrder(pohon);
else printf("Masih kosong!");
break;
case 3: if(pohon!=NULL) inOrder(pohon);
else printf("Masih kosong!");
break;

case 4: if(pohon!=NULL) postOrder(pohon);
else printf("Masih kosong!");
break;
}
getch();
}while(pil!=5);
}

array

#include
#include //digunakan untuk memanggil getche(),clrscr(),getch()

typedef struct mahasiswa { //pembuatan array dengan nama Mahasiswa
char NIM[8]; //dengan field nim mex 8 karakter
char nama [20]; //field nama max 20 karakter
char prodi [15]; //field program studi max 15 karakter
};


void main()
{
mahasiswa saya[5];
int cek=0,i,n,hapus,x;
char data[20];
char pil;
do {
clrscr();
cout<<" DATA MAHASIsWA DI KAMPUS KITA\n"; cout<<"\n1.Tambah Data\n"<<"2.Hapus Data\n"<<"3.Lihat Data\n"; cout<<"4.Keluar\n"; cout<<"Silahkan Masukkan Pilihan Anda..."; pil = getche(); //getche() digumakan untuk membaca karakter yang kita masukkan if (pil!='1' && pil!='2' && pil!='3' && pil!='4') //jika anda memasukkan angka selain 1,2,3,4 cout<<"\n\nAnda Salah Mengetikan Inputan...\n"; //akan tampil komentar seperti disamping else { if (pil=='1') //jika pil anda 1 maka akan dijalankan { clrscr(); //membersikan layar if (cek==20) //jika anda mengetikan karakter lebih dari 20 cout<<"\n Data Penuh\n\n"; //maka akan tampil komentar seperti disamping else //jika tidak { cout<<"berapa data yang ingin anda masukkan? "; //akan ada tampilan seperti disamping,yang meminta anda cin>>n; //memasukkan jumlah data yang anda ingin masukkan dan disimpan dalan karakter 'n'
for (i=0;i<=n-1;i++) //perulangan dari 0 sampai n-1 { cout<<"data ke-"<<<"\nMasukkan NIM--> "; //anda diminta memasukkan NIM
cin>>saya[i].NIM; //disimpan dalam saya[i].NIM
cout<<"\nmasukkan Nama--> "; //anda diminta memasukkan data nama
cin>>saya[i].nama; //disimpan dalam saya[i].nama
cout<<"\nMasukkan Program Studi--> "; //anda diminta memasukkan data Program studi
cin>>saya[i].prodi; //disimpan dalam saya[i].prodi
data[cek]=i; //digunakan untuk penyimpan data dengan nilai awal cek yang disamakan dengan i
cek++; //nilai cek akan terus bertambah 1 secara otomatis

}
}
}
else
{
if(pil=='2') //jika anda mengetiakan '2'
{
if(cek==0) //dilakukan pengecekan bila cek=0 maka
cout<<"\nData Kosong\n\n"; //akan muncul komentar seperti disamping else { hapus = data[0]; //hapus akan menjadikan data=0 for (int i=0;i<<"\nData dengan NIM: "; //anda diminta memasukkan data yang akan dihapus menurut NIM yang anda ketikan cin>>x; //yang akan dipanggil denga variabel x
if (x==data[i]) //jika x ada pada data [i]
{
clrscr();
cout<<"Data Dengan NIM : "<<<" terhapus"<
}
}
getch(); //digunakan untuk memanggil data yang baru maupun yang sudah dimasukkan
}
else
{
if (pil=='3') //jika anda mengetikan '3'
{
if(cek==0) //dilakukkan pengcekan jika cek=0 maka
cout<<"\nData Kosong\n\n"; //muncul komentat seperti disamping
else
{
clrscr();
cout<<"\n";
cout<<" DATA YANG ADA!!\n";
for (int i=0;i
{
cout<<"\nNIM: "<
cout<<"\nNama Mahasiswa : "<
cout<<"\nProgram Studi : "<
}
}
}
getch();
}
}
}
}
while(pil!='4'); getch();
}