Tampilkan postingan dengan label Struktur Data. Tampilkan semua postingan
Tampilkan postingan dengan label Struktur Data. Tampilkan semua postingan

Selasa, 05 Juli 2011

Program Sequensial Search dalam C++

Program sequensial search dengan C++ dengan compiler borland.

#include <iostream.h>
#include <conio.h>

int main(){
    int data[]={8,2,3,8,1,59,22,59,59};
   int cari;
   int ketemu=0, jum=0;
   cout<<"data yang dicari:";cin>>cari;
   for(int i=0;i<9;i++){
       if(data[i]==cari){
            ketemu=1;
            cout<<"data ditemukan di index ke"<<i;
            cout<<endl;
            jum++;
       }
   }
   if(ketemu==1){
         cout<<"jumlah:"<<jum;
   }
   else{
       cout<<"data tidak ditemukan";
   }
   getch();
}
»»  Baca Selengkapnya...

Program Insertion Sort dalam C++

Program Insertion dalam c++ dengan compiler borland dimana data sudah terssedia di dalam array.


#include <iostream.h>
#include <conio.h>

#define ELEMENTS 6
void insertion_sort(int x[], int length){
    int key, i;
   for(int j=0; j<length;j++){
            key=x[j];
            i=j-1;
            while(x[i]>key&&i>=0){
                x[i+1]=x[i];
                i--;
            }
            x[i+1]=key;
   }


}

int main(){
    int A[ELEMENTS]={5,2,4,6,1,3};
   int x;
   cout<<"array yang belum di sort:";
   for(x=0;x<ELEMENTS;x++){
           cout<<A[x];
   }
   cout<<endl;
   insertion_sort(A,ELEMENTS);
   cout<<"Array yang sudah di sort:";
   for(x=0;x<ELEMENTS;x++){
           cout<<A[x];
   }
   getch();
   return 0;
}

»»  Baca Selengkapnya...

Minggu, 03 Juli 2011

Program Implementasi Queue dengan Linked List

Program kali ini cukup istimewa karena menggunakan class sebagai dasar dari OOP(Object Oriented Programing) berikut source code dari program queue menggunakan linked list.

 #include <iostream.h>
#include <conio.h>

class linked_list_queue{
        private:
        struct node{
                int data;
            node *next;
        };
        node *rear;
        node *entry;
        node *print;
        node *front;

        public:
        linked_list_queue();
        void enqueue();
        void dequeue();
        void print_list();

};

linked_list_queue::linked_list_queue(){
    rear=NULL;
   front=NULL;
}

void linked_list_queue::enqueue(){
    int angka;
   cout<<"masukkan angka kedalam queue:";cin>>angka;
   entry=new node;
   if(rear==NULL){
          entry->data=angka;
          entry->next=NULL;
          rear=entry;
          front=rear;
   }
   else{
       entry->data=angka;
      entry->next=NULL;
      rear->next=entry;
      rear=entry;
   }
   cout<<endl;
   cout<<"data "<<angka<<" telah masuk";
   getch();
}

void linked_list_queue::dequeue(){
    if(front==NULL){
       cout<<"queue kosong";cout<<endl;
   }
   else{
       int deleted_element=front->data;
      node *temp;
      temp=front;
      front=front->next;
      delete temp;
      cout<<deleted_element<<" telah dihapus";
      cout<<endl;
    }
    getch();
}

void linked_list_queue::print_list(){
    print=front;
    if(print!=NULL){
         cout<<"angka dalam queue:";
    }
    else{
        cout<<"queue kosong";cout<<endl;
    }
    while(print!=NULL){
          cout<<print->data;
          print=print->next;
    }
   getch();
}

main(){
    int pilih;
   linked_list_queue queue;
   do{
   clrscr();
   cout<<"1.enqueue data"<<endl;
   cout<<"2.dequeue data"<<endl;
   cout<<"3.tampilkan data"<<endl;
   cout<<"masukkan pilihan:";cin>>pilih;cout<<endl;
   if(pilih==1){
            queue.enqueue();
   }
   if(pilih==2){
            queue.dequeue();
   }
   if(pilih==3){
            queue.print_list();
   }
    }
    while(pilih!=0||pilih>3);
  getch();

}
»»  Baca Selengkapnya...

Program Binary Search dalam C++

Proses binary search dapat dilakukan jika data sudah terurut lalu membagi data tersebut menjadi dua bagian
berikut source codenya

 #include <iostream.h>
#include <conio.h>

int data[10]={1,3,4,7,12,25,40,65,78,90};
int binary_search(int cari)


{
int l,r,m;
int n=10;
l=0;
r=n-1;
int ketemu=0;
while (l<=r && ketemu==0)
{
m=(l+r)/2;
if (data[m]==cari)
ketemu=1;
else
if(cari<data[m])
r=m-1;
else l=m+1;
}
if(ketemu==1) return 1; else return 0;
}

void main()
{
clrscr();
int cari, hasil;
cout<<"masukan data yang ingin di cari= ";
cin>>cari;
hasil = binary_search(cari);
if(hasil==1)
{
cout<<"data ada!"<<endl;
}
else
if(hasil==0)
cout<<"data tidak ada!"<<endl;
getch();
}
»»  Baca Selengkapnya...

Sabtu, 04 Juni 2011

Program Pembalik Kata Dalam Array

Program pembalik kata dalam array dengan compiler borland c++

#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
void main()
{
char a[10];
printf(“Masukkan kata: “);
gets(a);
strrev(a);
printf(“Jika dibalik menjadi : %s”,a);
getch();
}
»»  Baca Selengkapnya...

Program Menampilkan Huruf F Besar Dengan Array 2 Dimensi

Program menampilkan huruf f dengan compiler borland c++

#include <iostream.h>
#include <conio.h>

void main()
{
int huruf_A[8][8]=
{
{1,1,1,1,1,1,0,0},
{1,1,0,0,0,0,0,0},
{1,1,0,0,0,0,0,0},
{1,1,1,1,1,1,0,0},
{1,1,0,0,0,0,0,0},
{1,1,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0},
};
int i,j;
clrscr();
for(i=0;i<8;i++)
{
for(j=0;j<8;j++)
if(huruf_A[i][j]==1)
cout<<'\xDB';
else
cout<<'\x20';
cout<<endl;
}
getch();
}
»»  Baca Selengkapnya...

Jumat, 03 Juni 2011

Program bublesort

Program ini saya buat untuk tugas struktur data untuk materi sorting dimana untuk identitas saya menggunakan animasi berikut source codenya

file .exe dari program dibawah dapat di download disini 

#include <iostream.h>
#include <conio.h>
int data['n'];
int n;
int temp;
void delay(int a)
{
for(int x=0;x<a*100;x++)
{
for(int y=0;y<a*100;y++)
{}
}
}

void identitas(){
gotoxy(1,1);cout<<"NAMA :";
gotoxy(1,2);cout<<"NIM :";
gotoxy(1,3);cout<<"KELAS :";
gotoxy(1,4);cout<<"MATA KULIAH:";
for(int i=20;i>=1;i--){
delay(80);
gotoxy(15,i);cout<<"MADE DODDY ADI PRANATHA";
gotoxy(15,i+1);cout<<" ";
}

for(int j=22;j>=2;j--){
delay(80);
gotoxy(15,j);cout<<"100030034";
gotoxy(15,j+1);cout<<" ";
}

for(int k=22;k>=3;k--){
delay(80);
gotoxy(15,k);cout<<"F103";
gotoxy(15,k+1);cout<<" ";
}

for(int l=22;l>=4;l--){
delay(80);
gotoxy(15,l);cout<<"PRAKTIKUM STRUKTUR DATA";
gotoxy(15,l+1);cout<<" ";
}
}


void bublesort(){
for(int k=0;k<n;k++){
for(int l=0;l<n;l++){
if(data[l]>data[l+1]){
temp=data[l];
data[l]=data[l+1];
data[l+1]=temp;
}
}
}
}

void main(){
identitas();
gotoxy(1,6);cout<<"masukkan jumlah data:";cin>>n;
gotoxy(1,9+n);cout<<"data setelah diurut:";
for(int i=0;i<n;i++){
gotoxy(1,8+i);cout<<"masukkan data ke "<<i<<" : ";
}
for(int m=0;m<n;m++){
gotoxy(22,8+m);cin>>data[m];
}
bublesort();
for(int j=1;j<=n;j++){
gotoxy(20+(4*j),9+n);cout<<data[j];
gotoxy(19+(4*j),9+n);cout<<" ";
}

getch();
}


»»  Baca Selengkapnya...

Kamis, 19 Mei 2011

PROGRAM ANIMASI STACK DENGAN 2 INPUTAN

Ini sebenarnya tugas untuk teman saya tapi pada akhirnya sayalah yang akhirnya mengerjakannya :D tampilan output pertamanya sebagai berikut


dan diubah tampilannya seperti dibawah



jadi dengan begitu kode sintaxnya seperti dibawah

#include <iostream.h>
#include <conio.h>
#include <stdlib.h>

int top,i;
char key,temp[2],e;
char stack[10];
void delay();

void pushanim()
{
for(i=0;i<=17; i++)
{
gotoxy(22+i,7);cout<<" ";
gotoxy(23+i,7); cout<<temp; delay();

}
for(i=1;i<=(14-top);i++)
{
delay();
gotoxy(40,6+i); cout<<" ";
gotoxy(40,7+i); cout<<temp;
}
}

void popanim()
{
for(i=1;i<=(14-top);i++)
{
delay();
gotoxy(40,22-i-top); cout<<" ";
gotoxy(40,21-i-top); cout<<temp;
}
for(i=1;i<=19;i++)
{
delay();
gotoxy(38+i,7); cout<<" ";
gotoxy(39+i,7); cout<<temp; delay();
}
gotoxy(58,7);cout<<" ";
}

void push()
{
top=top+1;
stack[top]=e;
pushanim();
}
void pop()
{
if(top !=0)
{
e=stack[top]; popanim();
top=top-1;
}
else
{
gotoxy(1,7); cout<<"stack telah kosong"<<endl;
gotoxy(1,7);
}
}

void main()
{
clrscr();
cout<<"MENU UTAMA"<<endl;
cout<<"1.Memasukkan huruf(2):"<<endl;
cout<<"2.Mengeluarkan huruf(2):"<<endl;
cout<<"3.Keluar"<<endl;
gotoxy(59,6); cout<<"==";
gotoxy(59,8); cout<<"==";
gotoxy(37,9); cout<<"|| ||";
for(i=1;i<=11;i++)
{
gotoxy(38,10+i);
if(i==11)
cout<<"|_____|";
else
cout<<"| |";
}
top=0;
do
{
input:
gotoxy(1,5);
cout<<"Pilih[1/2/3] : ";
key=getche();
if(int(key)==27 || key=='3')
break;
else if(key=='1')
{
if(top != 10)
{
gotoxy(1,7); cout<<"masukkan suatu huruf : ";
cin>>temp;
push();
gotoxy(1,7); cout<<" ";
}
else
{
gotoxy(1,7); cout<<"stack penuh";
getch();
gotoxy(1,7); cout<<" ";
}
}
else if(key=='2')
pop();
else
goto input;
}while(1);

getch();
}

void delay()
{
for(int y=1;y<100;y++)
for(int x=1;x<100;x++)
for(int p=1;p<100;p++)
cout<<"";
}

untuk melihat program stack tanpa animasi silahkan lihat disini
»»  Baca Selengkapnya...

Program Stack

Program Stack dalam C++ dengan compiler borland
#include <stdio.h>
#include <conio.h>
#include <iostream.h>

struct STACK
{
int data[5];
int atas;
};

STACK tumpuk;
void main()
{
clrscr();
int pilihan,baru,i;

tumpuk.atas=-1;
do
{
clrscr();
cout<<"1.Push Data"<<endl;

cout<<"2.Pop Data"<<endl;
cout<<"3.Print Data"<<endl;
cout<<endl;
cout<<"Pilihan = ";
cin>>pilihan;
switch(pilihan)
{
case 1:
{
if(tumpuk.atas==5-1)
{
cout<<"Tumpukan penuh";
getch();
}
else
{
cout<<"Data yang akan di-push = ";
cin>>baru;
tumpuk.atas++;
tumpuk.data[tumpuk.atas]=baru;
}
break;
}
case 2:
{
if(tumpuk.atas==-1)
{
cout<<"Tumpukan kosong";
getch();
}
else
{
cout<<"Data yang akan di-pop = "<<tumpuk.data[tumpuk.atas]<<endl;

tumpuk.atas--;
getch();
}
break;
}
case 3:
{
if(tumpuk.atas==-1)
{
cout<<"Tumpukan kosong"<<endl;
getch();
}
else
{
cout<<"Data = "<<endl;
for(i=0; i<=tumpuk.atas; i++)
{
cout<<tumpuk.data[i]<<" "<<23;

}
getch();
}
break;
}
default:
{
cout<<" Tidak ada dalam pilihan "<<endl;
}
}
}
while( pilihan >=1 && pilihan <= 3 );
getch();}
»»  Baca Selengkapnya...

Program Penjualan Barang

Program penjualan barang dalam C++ dengan compiler borland sebagai berikut
#include <iostream>
#include <conio>
main(){
char barang[5]['a'];
int harga['a'];
int a, sisa, bayar;
int jum=0;
char pilih;
do{
clrscr();
cout<<"MASUKKAN JUMLAH BARANG:";cin>>a;
gotoxy(1,8+a);cout<<"TOTAL HARGA :";
gotoxy(1,10+a);cout<<"YANG DIBAYARKAN :";
gotoxy(1,12+a);cout<<"KEMBALIAN :";
gotoxy(1,14+a);cout<<"ADA TAMBAHAN(Y/T):";
for(int i=0;i<=39;i++){
gotoxy(1+i,3);textcolor(10);cprintf("=");
gotoxy(1+i,6+a);textcolor(10);cprintf("=");
}
gotoxy(1,4);cout<<"NO";
gotoxy(4,4);textcolor(10);cprintf("|");
gotoxy(7,4);cout<<"NAMA BARANG";
gotoxy(22,4);textcolor(10);cprintf("|");
gotoxy(26,4);cout<<"HARGA BARANG";
gotoxy(40,4);textcolor(10);cprintf("|");
for(int j=0;j<=39;j++){
gotoxy(1+j,5);textcolor(10);cprintf("=");
}
for(int k=0; k<a;k++){
gotoxy(4,6+k);textcolor(10);cprintf("|");
gotoxy(22,6+k);textcolor(10);cprintf("|");
gotoxy(40,6+k);textcolor(10);cprintf("|");

}
for(int m=0;m<a;m++){
gotoxy(2,6+m);cout<<m+1;
}
for(int l=0;l<a;l++){

gotoxy(7,6+l);cin>>barang[l];
gotoxy(26,6+l);cin>>harga[l];
jum=jum+harga[l];
}
gotoxy(26,8+a);cout<<"Rp "<<jum;
gotoxy(26,10+a);cout<<"Rp ";cin>>bayar;
sisa=bayar-jum;
gotoxy(26,12+a);cout<<"Rp "<<sisa;
gotoxy(26,14+a);cin>>pilih;
}
while(pilih=='y'||pilih=='Y');

getch();
}
»»  Baca Selengkapnya...