Saturday, July 7, 2007

SD: Tugas Queue 6 Juli 2007

Download

/*karena format HTML, maka semua karakter lebih besar (>) dan lebih kecil (<) diganti dengan karakter ((>)) dan ((<)) sorry (^-^)*/

#include (<)stdio.h(>)
#include (<)stdlib.h(>)
#include (<)conio.h(>)
#include (<)string.h(>)
#define maxel 10

typedef char str[20];

typedef struct{
int nopesanan;
char namaobat[15];
int jumlahobat;
float hargaobat;
float totalobat;
}medi;

typedef struct{
medi elmn[maxel];
int head;
int tail;
}obat;

void init(obat *a);
void add(obat *a, obat *all);
void tampil(obat a);
void hapus(obat *a, obat *all);
void cari(obat a, int numb);
float totalharga(obat a);
void input(obat *a, obat *all,int x);
void show(obat a, int i);
void copi(obat a,obat *o,int i,int j);
int isempty(obat a);
int isfull(obat a);
int isoneelmn(obat a);
float totalpendapatan(obat a);
void cariobatterbanyak(obat all);
void edit(obat *a,obat *all, int no);
float diskon(obat a);
void pesan3kali(obat all);
void rekap(obat *y, str x, int jml);
void hapusrekap(obat *y, str x, int jml);


void init(obat *a)
{
(*a).head=(*a).tail=-1;
}

float totalharga(obat a)
{
return (a.elmn[a.tail].hargaobat * a.elmn[a.tail].jumlahobat);
}

int isempty(obat a)
{
return(a.head==-1&&a.tail==-1);
}

int isfull(obat a)
{
return((a.head(<)a.tail && a.tail-a.head==maxel-1) || (a.head(>)a.tail && a.head-a.tail==1));
}

int isoneelmn(obat a)
{
return(a.head==a.tail && a.head!=-1);
}

void input(obat *a, obat *all,int x)
{
do
{
printf("Masukkan no pesanan : ");scanf("%d",&(*a).elmn[(*a).tail].nopesanan);
if((*a).elmn[(*a).tail].nopesanan(<)=x)
printf("\nMaaf No Pesanan yang dimasukkan harus lebih besar daripada yang sebelumnya (%d)\n",x);
}while((*a).elmn[(*a).tail].nopesanan(<)=x);

printf("Masukkan nama obat : ");scanf("%s",&(*a).elmn[(*a).tail].namaobat);

do
{
printf("Masukkan jumlah obat : ");scanf("%d",&(*a).elmn[(*a).tail].jumlahobat);
if((*a).elmn[(*a).tail].jumlahobat(<)5)
printf("\nMaaf, Jumlah yang harus dibeli harus >= 5\n");
}while((*a).elmn[(*a).tail].jumlahobat(<)5);

rekap(&(*all),(*a).elmn[(*a).tail].namaobat,(*a).elmn[(*a).tail].jumlahobat);

printf("Masukkan harga obat : ");scanf("%f",&(*a).elmn[(*a).tail].hargaobat);
(*a).elmn[(*a).tail].totalobat=totalharga((*a));
(*a).elmn[(*a).tail].totalobat-=diskon((*a));
printf("total biaya obat : %f",(*a).elmn[(*a).tail].totalobat);
}

void show(obat a, int i)
{
printf("\n\nDaftar ke %d",i+1);
printf("\nno pesanan : %d",a.elmn[i].nopesanan);
printf("\nnama obat : %s",a.elmn[i].namaobat);
printf("\njumlah obat : %d",a.elmn[i].jumlahobat);
printf("\nharga obat : %f",a.elmn[i].hargaobat);
printf("\ntotal biaya obat : %f",a.elmn[i].totalobat);
}

void add(obat *a, obat *all)
{
int x;
if(isfull((*a)))
printf("Antrian Penuh");
else
{
if(isempty((*a)))
{
x=0;
(*a).head=(*a).tail=0;
input(&(*a),&(*all),x);
}
else
{
if((*a).tail==maxel-1)
{
x=(*a).elmn[(*a).tail].nopesanan;
(*a).tail=0;
}
else
{
x=(*a).elmn[(*a).tail].nopesanan;
(*a).tail++;
}
input(&(*a),&(*all),x);
}
}
}

void tampil(obat a)
{
int i;
if(a.head<=a.tail)
{
for(i=a.head;i<=a.tail;i++)
show(a,i);
}
else
{
for(i=a.head;i(<)maxel;i++)
show(a,i);
for(i=0;i<=a.tail;i++)
show(a,i);
}
}

void copi(obat a,obat *o,int i,int j)
{
(*o).elmn[j].nopesanan=a.elmn[i].nopesanan;
strcpy((*o).elmn[j].namaobat,a.elmn[i].namaobat);
(*o).elmn[j].jumlahobat=a.elmn[i].jumlahobat;
(*o).elmn[j].hargaobat=a.elmn[i].hargaobat;
(*o).elmn[j].totalobat=a.elmn[i].totalobat;
}


void hapus(obat *a, obat *all)
{
obat o;
int j;
j=(*a).head;
copi((*a),&o,(*a).head,j);

if(!isempty(*a))
{
if(isoneelmn((*a)))
{
init(&(*a));
init(&(*all));
}
else
{
if((*a).head==maxel-1)
(*a).head=0;
else
(*a).head++;

}
show(o,j);
hapusrekap(&(*all),o.elmn[j].namaobat,o.elmn[j].jumlahobat);
}
else
printf("Antrian Kosong");
}


void cari(obat a, int numb)
{
int i,temp=-1;
if(a.head<=a.tail)
{
for(i=a.head;i<=a.tail;i++)
{
if(numb==a.elmn[i].nopesanan)
temp=i;
}
}
else
{
for(i=a.head;i(<)maxel;i++)
{
if(numb==a.elmn[i].nopesanan)
temp=i;
}
for(i=0;i<=a.tail;i++)
{
if(numb==a.elmn[i].nopesanan)
temp=i;
}
}
if(temp==-1)
printf("Tidak ditemukan");
else
show(a,temp);

}


float totalpendapatan(obat a)
{
float tot=0;
int i;
if(a.head<=a.tail)
{
for(i=a.head;i<=a.tail;i++)
tot+=a.elmn[i].totalobat;
}
else
{
for(i=a.head;i(<)maxel;i++)
tot+=a.elmn[i].totalobat;
for(i=0;i<=a.tail;i++)
tot+=a.elmn[i].totalobat;
}
return tot;
}

void cariobatterbanyak(obat all)
{
int i,temp;
if(all.head<=all.tail)
{
temp=all.head;
for(i=all.head+1;i<=all.tail;i++)
{
if(all.elmn[i].jumlahobat(>)all.elmn[temp].jumlahobat)
temp=i;
}
}
else
{
for(i=all.head;i(<)maxel;i++)
{
if(all.elmn[i].jumlahobat(>)all.elmn[temp].jumlahobat)
temp=i;
}
for(i=0;i<=all.tail;i++)
{
if(all.elmn[i].jumlahobat(>)all.elmn[temp].jumlahobat)
temp=i;
}
}
printf("Jumlah Obat dengan Pemesanan Terbanyak adalah : %s sebanyak %d",all.elmn[temp].namaobat,all.elmn[temp].jumlahobat);
}

void edit(obat *a, obat *all, int no)
{
int i,temp=-1;
if((*a).head<=(*a).tail)
{
for(i=(*a).head;i<=(*a).tail;i++)
{
if(no==(*a).elmn[i].nopesanan)
temp=i;
}
}
else
{
for(i=(*a).head;i(<)maxel;i++)
{
if(no==(*a).elmn[i].nopesanan)
temp=i;
}
for(i=0;i<=(*a).tail;i++)
{
if(no==(*a).elmn[i].nopesanan)
temp=i;
}
}
if(temp==-1)
printf("Tidak ditemukan");
else
{
hapusrekap(&(*all),(*a).elmn[temp].namaobat,(*a).elmn[temp].jumlahobat);
printf("Masukkan Nama Obat : ");scanf("%s",&(*a).elmn[temp].namaobat);
do
{
printf("Masukkan Jumlah Obat : ");scanf("%s",&(*a).elmn[temp].jumlahobat);
}while((*a).elmn[temp].jumlahobat(<)5);
printf("Masukkan harga Obat : ");scanf("%s",&(*a).elmn[temp].hargaobat);

(*a).elmn[temp].totalobat=(*a).elmn[temp].jumlahobat*(*a).elmn[temp].hargaobat;
if((*a).elmn[(*a).tail].jumlahobat(>)20&&(*a).elmn[(*a).tail].jumlahobat(<)31)
(*a).elmn[temp].totalobat-=((*a).elmn[temp].totalobat*0.05);
else if((*a).elmn[temp].jumlahobat(>)30&&(*a).elmn[temp].jumlahobat(<)51)
(*a).elmn[temp].totalobat-=((*a).elmn[temp].totalobat*0.07);
else if((*a).elmn[temp].jumlahobat(>)50)
(*a).elmn[temp].totalobat-=((*a).elmn[temp].totalobat*0.1);;
printf("Total harga Obat : %f",(*a).elmn[temp].totalobat);
rekap(&(*all),(*a).elmn[temp].namaobat,(*a).elmn[temp].jumlahobat);
}
}

float diskon(obat a)
{
if(a.elmn[a.tail].jumlahobat(>)20&&a.elmn[a.tail].jumlahobat(<)31)
return a.elmn[a.tail].totalobat*0.05;
else if(a.elmn[a.tail].jumlahobat(>)30&&a.elmn[a.tail].jumlahobat(<)51)
return a.elmn[a.tail].totalobat*0.07;
else if(a.elmn[a.tail].jumlahobat(>)50)
return a.elmn[a.tail].totalobat*0.1;
else
return 0;
}

void pesan3kali(obat all)
{
int i;
printf("Obat yang dipesan lebih dari 3 kali adalah : ");
if(all.head<=all.tail)
{
for(i=all.head;i<=all.tail;i++)
{
if(all.elmn[i].nopesanan>=3)
printf("\n- %s dipesan %d kali",all.elmn[i].namaobat,all.elmn[i].nopesanan);
}
}
else
{
for(i=all.head;i(<)maxel;i++)
{
if(all.elmn[i].nopesanan>=3)
printf("\n- %s dipesan %d kali",all.elmn[i].namaobat,all.elmn[i].nopesanan);
}
for(i=0;i<=all.tail;i++)
{
if(all.elmn[i].nopesanan>=3)
printf("\n- %s dipesan %d kali",all.elmn[i].namaobat,all.elmn[i].nopesanan);
}
}
}

void rekap(obat *y, str x, int jml)
{
int ix=-1,i;
if(isempty(*y))
{
(*y).head=(*y).tail=0;
strcpy((*y).elmn[(*y).tail].namaobat,x);
(*y).elmn[(*y).tail].jumlahobat=jml;
(*y).elmn[(*y).tail].nopesanan=1;
}
else
{
for(i=(*y).head;i<=(*y).tail;i++)
{
if(strcmp((*y).elmn[i].namaobat,x)==0)
ix=i;
}
if(ix==-1)
{
(*y).tail++;
strcpy((*y).elmn[(*y).tail].namaobat,x);
(*y).elmn[(*y).tail].jumlahobat=jml;
(*y).elmn[(*y).tail].nopesanan=1;
}
else
{
(*y).elmn[ix].jumlahobat+=jml;
(*y).elmn[ix].nopesanan++;
}
}
}

void hapusrekap(obat *y, str x, int jml)
{
int ix,i;
if(isoneelmn((*y)))
{
(*y).elmn[(*y).tail].jumlahobat-=jml;
}
else
{
for(i=(*y).head;i<=(*y).tail;i++)
{
if(strcmp((*y).elmn[i].namaobat,x))
{
ix=i;
}
}
(*y).elmn[ix].jumlahobat-=jml;
if((*y).elmn[ix].jumlahobat==0)
{
if(ix==(*y).tail)
(*y).tail--;
else
for(i=ix;i<=(*y).tail;i++)
{
(*y).elmn[i].nopesanan=(*y).elmn[i+1].nopesanan;
(*y).elmn[i].jumlahobat=(*y).elmn[i+1].jumlahobat;
strcpy((*y).elmn[i].namaobat,(*y).elmn[i+1].namaobat);
(*y).tail--;
}
}
}
}


void main()
{
obat q,l;
int pil,number;
init(&q);
init(&l);
do
{
system("cls");
printf("head = %d , tail = %d\n",q.head,q.tail);
puts("\nMENU\n");
puts("1.Pesan Obat\n");
puts("2.Tampilkan Daftar obat\n");
puts("3.Hapus Pesanan\n");
puts("4.Cari Dengan no Pesanan\n");
puts("5.Total Pendapatan\n");
puts("6.Cari Jumlah Obat Terbanyak\n");
puts("7.Edit\n");
puts("8.Obat yang dipesan lebih dari 3 kali\n");
puts("0.Keluar\n");
puts("Pilihan : ");scanf("%d",&pil);
system("cls");
switch(pil)
{
case 1:
//printf("Masukkan data : ");scanf("%s",&val);
add(&q,&l);
getch();
break;
case 2:
tampil(q);
getch();
break;
case 3:
hapus(&q,&l);
getch();
break;
case 4:
printf("Masukkan Nomor Pesanan : ");scanf("%d",&number);
cari(q,number);
getch();
break;
case 5:
printf("Total Pendapatan Apotik Adalah : %f",totalpendapatan(q));
getch();
break;
case 6:
cariobatterbanyak(l);
getch();
break;
case 7:
printf("Masukkan Nomor Pesanan : ");scanf("%d",&number);
edit(&q,&l,number);
getch();
break;
case 8:
pesan3kali(l);
getch();
break;
case 0:
printf("Bye");
break;
default:
printf("Nomor yang anda masukkan salah");
getch();
break;
}
}while(pil!=0);
}

SD: Unguided Queue 6 Juli 2007

Download

/*karena format HTML, maka semua karakter lebih besar (>) dan lebih kecil (<) diganti dengan karakter ((>)) dan ((<)) sorry (^-^)*/

#include (<)stdio.h(>)
#include (<)stdlib.h(>)
#include (<)conio.h(>)
#include (<)string.h(>)
#define maxel 10

typedef char str[20];

typedef struct{
int nopesanan;
char namaobat[15];
int jumlahobat;
float hargaobat;
float totalobat;
}medi;

typedef struct{
medi elmn[maxel];
int head;
int tail;
}obat;

void init(obat *a);
void add(obat *a);
void tampil(obat a);
void hapus(obat *a);
void cari(obat a, int numb);
float totalharga(obat a);
void input(obat *a,int x);
void show(obat a, int i);
void copi(obat a,obat *o,int i);
int isempty(obat a);
int isfull(obat a);
int isoneelmn(obat a);
int isnook(obat a, int idx);


void init(obat *a)
{
(*a).head=(*a).tail=-1;
}

float totalharga(obat a)
{
return (a.elmn[a.tail].hargaobat * a.elmn[a.tail].jumlahobat);
}

void input(obat *a,int x)
{
do
{
printf("Masukkan no pesanan : ");scanf("%d",&(*a).elmn[(*a).tail].nopesanan);
if(!isnook((*a),x))
printf("\nMaaf No Pesanan yang dimasukkan harus lebih besar daripada yang sebelumnya (%d)\n",x);
}while(!isnook((*a),x));

printf("Masukkan nama obat : ");scanf("%s",&(*a).elmn[(*a).tail].namaobat);

do
{
printf("Masukkan jumlah obat : ");scanf("%d",&(*a).elmn[(*a).tail].jumlahobat);
if((*a).elmn[(*a).tail].jumlahobat(<)5)
printf("\nMaaf, Jumlah yang harus dibeli harus (>)= 5\n");
}while((*a).elmn[(*a).tail].jumlahobat(<)5);

printf("Masukkan harga obat : ");scanf("%f",&(*a).elmn[(*a).tail].hargaobat);
(*a).elmn[(*a).tail].totalobat=totalharga((*a));
printf("total biaya obat : %f",(*a).elmn[(*a).tail].totalobat);
}

void show(obat a, int i)
{
printf("\n\nDaftar ke %d",i+1);
printf("\nno pesanan : %d",a.elmn[i].nopesanan);
printf("\nnama obat : %s",a.elmn[i].namaobat);
printf("\njumlah obat : %d",a.elmn[i].jumlahobat);
printf("\nharga obat : %f",a.elmn[i].hargaobat);
a.elmn[i].totalobat=a.elmn[i].jumlahobat*a.elmn[i].hargaobat;
printf("\ntotal biaya obat : %f",a.elmn[i].totalobat);
}

void add(obat *a)
{
int x;
if(isfull((*a)))
printf("Antrian Penuh");
else
{
if(isempty((*a)))
{
x=0;
(*a).head=(*a).tail=0;
input(&(*a),x);
}
else
{
if((*a).tail==maxel-1)
{
x=(*a).elmn[(*a).tail].nopesanan;
(*a).tail=0;
}
else
{
x=(*a).elmn[(*a).tail].nopesanan;
(*a).tail++;
}
input(&(*a),x);
}
}
}

void tampil(obat a)
{
int i;
if(a.head<=a.tail)
{
for(i=a.head;i<=a.tail;i++)
show(a,i);
}
else
{
for(i=a.head;i(<)maxel;i++)
show(a,i);
for(i=0;i<=a.tail;i++)
show(a,i);
}
}

void copi(obat a,obat *o,int i)
{
(*o).elmn[i].nopesanan=a.elmn[i].nopesanan;
strcpy((*o).elmn[i].namaobat,a.elmn[i].namaobat);
(*o).elmn[i].jumlahobat=a.elmn[i].jumlahobat;
(*o).elmn[i].hargaobat=a.elmn[i].hargaobat;
(*o).elmn[i].nopesanan=a.elmn[i].nopesanan;
}


void hapus(obat *a)
{
obat o;
int j;
j=(*a).head;
copi((*a),&o,(*a).head);

if(!isempty(*a))
{
if(isoneelmn((*a)))
init(&(*a));
else
{
if((*a).head==maxel-1)
(*a).head=0;
else
(*a).head++;
}
show(o,j);
}
else
printf("Antrian Kosong");
}


void cari(obat a, int numb)
{
int i,temp=-1;
if(a.head(<)=a.tail)
{
for(i=a.head;i<=a.tail;i++)
{
if(numb==a.elmn[i].nopesanan)
temp=i;
}
}
else
{
for(i=a.head;i(<)maxel;i++)
{
if(numb==a.elmn[i].nopesanan)
temp=i;
}
for(i=0;i<=a.tail;i++)
{
if(numb==a.elmn[i].nopesanan)
temp=i;
}
}
if(temp==-1)
printf("Tidak ditemukan");
else
show(a,temp);

}

int isempty(obat a)
{
return(a.head==-1&&a.tail==-1);
}

int isfull(obat a)
{
return((a.head(<)a.tail && a.tail-a.head==maxel-1) || (a.head(>)a.tail && a.head-a.tail==1));
}

int isoneelmn(obat a)
{
return(a.head==a.tail && a.head!=-1);
}

int isnook(obat a, int idx)
{
return(a.elmn[a.tail].nopesanan(>)idx);
}


void main()
{
obat q;
int pil,number;
init(&q);
do
{
system("cls");
printf("head = %d , tail = %d\n",q.head,q.tail);
puts("\nMENU\n");
puts("1.Pesan Obat\n");
puts("2.Tampilkan Daftar obat\n");
puts("3.Hapus Pesanan\n");
puts("4.Cari Dengan no Pesanan\n");
puts("0.Keluar\n");
puts("Pilihan : ");scanf("%d",&pil);
switch(pil)
{
case 1:
//printf("Masukkan data : ");scanf("%s",&val);
add(&q);
getch();
break;
case 2:
tampil(q);
getch();
break;
case 3:
hapus(&q);
getch();
break;
case 4:
printf("Masukkan Nomor Pesanan : ");scanf("%d",&number);
cari(q,number);
getch();
break;
case 0:
printf("Bye");
break;
default:
printf("Nomor yang anda masukkan salah");
getch();
break;
}
}while(pil!=0);
}

Thursday, July 5, 2007

SD: Guided Queue 6 Juli 2007

//File header.h

#include (<)stdio.h(>)
#include (<)stdlib.h(>)
#include (<)conio.h(>)
#define maxel 5

typedef int address;
typedef char infotype;
typedef struct{
infotype T[maxel];
address head;
address tail;
}queue;

void createempty(queue *q);
int isempty(queue q);
int isfull(queue q);
int isoneelmn(queue q);
void add(queue *q, infotype val);
void del(queue *q);
void printqueue(queue q);


//File definition.c

#include "antrian.h"

void createempty(queue *q)
{
(*q).head=(*q).tail=-1;
}

int isempty(queue q)
{
return(q.head==-1&&q.tail==-1);
}

int isfull(queue q)
{
return((q.head(<)q.tail && q.tail-q.head==maxel-1) || (q.head(>)q.tail && q.head-q.tail==1));
}

int isoneelmn(queue q)
{
return(q.head==q.tail && q.head!=-1);
}

void add(queue *q, infotype val)
{
if(!isfull((*q)))
{
if(isempty((*q)))
{
(*q).head=(*q).tail=0;
(*q).T[(*q).head]=val;
}
else
{
if((*q).tail==maxel-1)
(*q).tail=0;
else
(*q).tail++;
(*q).T[(*q).tail]=val;
}
}
else
printf("Antrian Penuh");
}

void del(queue *q)
{
infotype temp=(*q).T[(*q).head];
if(!isempty(*q))
{
if(isoneelmn((*q)))
createempty(&(*q));
else
{
if((*q).head==maxel-1)
(*q).head=0;
else
(*q).head++;
}
printf("Elemen yang dihapus: %c",temp);
}
else
printf("Antrian Kosong");
}

void printqueue(queue q)
{
address i;
if(q.head<=q.tail)
{
for(i=q.head;i<=q.tail;i++)
printf("%c",q.T[i]);
}
else
{
for(i=q.head;i(<)maxel;i++)
printf("%c",q.T[i]);
for(i=0;i<=q.tail;i++)
printf("%c",q.T[i]);
}
}


//File main.c

#include "antrian.h"

void main()
{
queue q;
char val;
int pil;
createempty(&q);
do
{
system("cls");
printf("head = %d , tail = %d\n",q.head,q.tail);
puts("\nMENU\n");
puts("1.Add Queue\n");
puts("2.Del Queue\n");
puts("3.Print All Queue\n");
puts("0.Keluar\n");
puts("Pilihan : ");scanf("%d",&pil);
switch(pil)
{
case 1:
//printf("Masukkan data : ");scanf("%s",&val);
printf("Masukkan data : ");scanf(" %c",&val);
add(&q,val);
getch();
break;
case 2:
del(&q);
getch();
break;
case 3:
printf("Isi dari antrian : ");
printqueue(q);
getch();
break;
case 0:
printf("Bye");
break;
default:
printf("Nomor yang anda masukkan salah");
getch();
break;
}
}while(pil!=0);
}

SD: Queue berputar 5 Juli 2005

Download

Tuesday, July 3, 2007

SD: Stack Tugas 3 Juli 2007

/*karena format HTML, maka semua karakter lebih besar (>) dan lebih kecil (<) diganti dengan karakter ((>)) dan ((<)) sorry (^-^)*/

//file header.h

#include (<)stdio.h(>)
#include (<)conio.h(>)
#include (<)stdlib.h(>)
#include (<)string.h(>)
#define max 69

typedef struct{
int top;
char kata[max];
}kalimat;

void palindrom(kalimat a);


//file definition.c

#include "header.h"

void palindrom(kalimat a)
{
char j;
int i,cek=1,pjg=0;
kalimat b;
a.top=strlen(a.kata);
for(i=0;i(<)a.top;i++)
{
for(j='A';j(<)='Z';j++)
{
if(toupper(a.kata[i])==j)
{
b.kata[pjg]=toupper(a.kata[i]);
pjg++;
}
}
}
a.top=pjg;
strcpy(a.kata,b.kata);
for(i=0;i(<)a.top;i++)
{
b.kata[i]=a.kata[(a.top)-i-1];
}

for(i=0;i(<)a.top;i++)
{
if(toupper(b.kata[i])!=toupper(a.kata[i]))
cek=0;
}
if(cek==1)
printf("Palindrom");
else
printf("Bukan Palindrom");
}


//file main.c

#include "header.h"

void main()
{
char pil,y[max];
kalimat r;
do
{
printf("Masukkan Kata/Kalimat : ");gets(y);
strcpy(r.kata,y);
palindrom(r);
printf("\nApakah Ingin Diulangi(y/n)?");
pil=getche();
printf("\n\n");
}while(pil!='n');
}

SD: Stack Unguided 3 Juli 2007

/*karena format HTML, maka semua karakter lebih besar (>) dan lebih kecil (<) diganti dengan karakter ((>)) dan ((<)) sorry (^-^)*/

//file header.h

#include (<)conio.h(>)
#include (<)stdio.h(>)
#include (<)stdlib.h(>)
#define max 10

typedef char str[20];
typedef struct{
str namacd;
float harga;
}cd;

typedef struct{
int top;
cd content[max];
}allcd;

void init(allcd *disk);
void pushcd(allcd *disk);
void popcd(allcd *disk);
void popallstack(allcd *disk);
int cekharga(allcd disk,float price);


//file definition.c

#include "header.h"

void init(allcd *disk)
{
(*disk).top=-1;
}

void pushcd(allcd *disk)
{
float price;
str name;

if((*disk).top(<)max-1)
{
(*disk).top++;
printf("\nMasukkan Nama CD : ");scanf("%s",&name);
strcpy((*disk).content[(*disk).top].namacd,name);
do
{
printf("Masukkan Harga CD : ");scanf("%f",&price);
if(cekharga((*disk),price))
(*disk).content[(*disk).top].harga = price;
else
printf("Maaf harga CD yang baru harus 5000 lebih mahal\ndibandingkan harga cd sebelumnya (%f)\n",(*disk).content[(*disk).top-1].harga);
}while(cekharga((*disk),price)==0);
}
else
printf("Maaf Rak Sudah Penuh");
}

void popcd(allcd *disk)
{
if((*disk).top(>)(-1))
{
printf("\nCD ke %d",(*disk).top+1);
printf("\nNama CD : %s",(*disk).content[(*disk).top].namacd);
printf("\nHarga CD : %f",(*disk).content[(*disk).top].harga);
(*disk).top--;
}
else
printf("\nMaaf, Rak Kosong");
}

void popallstack(allcd *disk)
{
int i;
if((*disk).top(>)-1)
{
for(i=0;i<=(*disk).top;i++)
{
printf("\nCD ke %d",i+1);
printf("\nNama CD : %s",(*disk).content[i].namacd);
printf("\nHarga CD : %f",(*disk).content[i].harga);
}
}
else
printf("Tidak Ada CD");
}

int cekharga(allcd disk, float price)
{
if(disk.top==0)
return 1;
else
{
if(price (>)= disk.content[disk.top-1].harga+5000)
return 1;
else
return 0;
}
}


//file main.c

#include "header.h"

void main()
{
char pil;
allcd disc;
init(&disc);
do
{
system("cls");
printf("MENU");
printf("\n1. Tambah CD");
printf("\n2. Keluarkan CD");
printf("\n3. Tampilkan Semua CD");
printf("\nesc untuk keluar\n");
pil=getch();
switch(pil)
{
case '1':
pushcd(&disc);
getch();
break;
case '2':
popcd(&disc);
getch();
break;
case '3':
popallstack(&disc);
getch();
break;
}
}while(pil != 27);
}

SD: Stack Guided 3 Juli 2007

/*karena format HTML, maka semua karakter lebih besar (>) dan lebih kecil (<) diganti dengan karakter ((>)) dan ((<)) sorry (^-^)*/

//file header.h

#include (<)conio.h(>)
#include (<)stdio.h(>)
#include (<)stdlib.h(>)
#include (<)time.h(>)
#define max_stack 5

typedef int infotype;
typedef struct{
infotype top;
int content[max_stack];
}stack;

void init(stack *s);
void push(stack *s, int value);
infotype pop(stack *s);
void show(stack s);
void random(stack *s, int n);


//file definition.c

#include "header.h"

void init(stack *s)
{
(*s).top = -1;
}

void push(stack *s, int value)
{
if((*s).top (<) (max_stack - 1 ))
{
(*s).top++;
(*s).content[(*s).top]=value;
}
else
{
printf("\nStack Penuh...");
getch();
}
}

infotype pop(stack *s)
{
infotype a;
if(((*s).top) (>) (-1))
{
a=(*s).content[(*s).top];
(*s).top--;
return(a);
}
else
{
printf("\nStack Kosong...");
return 0;
}
}

void show(stack s)
{
if(s.top (>) -1)
{
while(s.top != -1)
{
printf("\n %d",s.content[s.top]);
s.top--;
}
}
else
printf("\nStack Kosong...");
}

void random(stack *s, int n)
{
int x,i,temp;
srand((unsigned)time(NULL));
x=rand();
temp=(*s).top+n;
for(i=(*s).top;i(<)temp;i++)
{
if((*s).top (<) (max_stack - 1 ))
{
(*s).top++;
x=rand()%100;
(*s).content[(*s).top]=x;
}
else
printf("Maaf Stack Sudah Penuh");
}
}


//file main.c

#include "header.h"

void main()
{
stack mystack;
char pilih;
infotype newval,a;
int el;
init(&mystack);
do
{
system("cls");
printf("\nMENU");
printf("\n1.PUSH");
printf("\n2.POP");
printf("\n3.Show All");
printf("\n4.Masukkan Bilangan Random");
printf("\n\npilihan : ");
pilih=getch();
switch(pilih)
{
case '1':
printf("\nMasukkan nilai yang akan di push : ");scanf("%d",&newval);
push(&mystack,newval);
break;
case '2':
a=pop(&mystack);
printf("\nIsi stack yang di-POP : %d",a);
getch();
break;
case '3':
printf("\n\n");
show(mystack);
getch();
break;
case '4':
printf("Masukkan banyaknya elemen yang ingin dimasukkan : ");scanf("%d",&el);
random(&mystack,el);
getch();
break;
}
}while(pilih != 27);
}

Saturday, June 30, 2007

SD: Tugas 29 Juni 2007

/*karena format HTML, maka semua karakter lebih besar (>) dan lebih kecil (<) diganti dengan karakter ((>)) dan ((<)) sorry (^-^)*/

//file header.h

#include (<)conio.h(>)
#include (<)stdio.h(>)
#include (<)stdlib.h(>)
#include (<)string.h(>)

typedef char str[20];
typedef int harga[4][5];

void tampil(harga *r);
void carimurah(harga r, str kota);


//file definition.c

#include "header.h"


void tampil(harga *r)
{
int i;
(*r)[0][0]=275000;
(*r)[0][1]=250000;
(*r)[0][2]=400000;
(*r)[0][3]=900000;
(*r)[0][4]=600000;

(*r)[1][0]=160000;
(*r)[1][1]=225000;
(*r)[1][2]=375000;
(*r)[1][3]=875000;
(*r)[1][4]=575000;

(*r)[2][0]=150000;
(*r)[2][1]=200000;
(*r)[2][2]=375000;
(*r)[2][3]=875000;
(*r)[2][4]=600000;

(*r)[3][0]=175000;
(*r)[3][1]=250000;
(*r)[3][2]=350000;
(*r)[3][3]=900000;
(*r)[3][4]=550000;
printf("\t Jakarta Surabaya Banjarmasin Manado Denpasar\n\n");
printf(" Garuda");
for(i=0;i(<)5;i++)
printf(" %7d",(*r)[0][i]);
printf("\n\n Mandala");
for(i=0;i(<)5;i++)
printf(" %7d",(*r)[1][i]);
printf("\n\nAdam Air");
for(i=0;i(<)5;i++)
printf(" %7d",(*r)[2][i]);
printf("\n\nLion Air");
for(i=0;i(<)5;i++)
printf(" %7d",(*r)[3][i]);
}

void carimurah(harga r, str kota)
{

int i,j,x;
str maskapai;
printf("\n");
if(strcmp(kota,"jakarta")==0)
j=0;
else if(strcmp(kota,"surabaya")==0)
j=1;
else if(strcmp(kota,"banjarmasin")==0)
j=2;
else if(strcmp(kota,"manado")==0)
j=3;
else if(strcmp(kota,"denpasar")==0)
j=4;
else
j=5;
if(j(<)5)
{
x=r[0][j];
for(i=1;i(<)4;i++)
{
if(r[i][j](<)x)
{
x=r[i][j];
}
}
printf("Maskapai dengan tiket termurah : ");
for(i=0;i(<)4;i++)
{
if(x==r[i][j])
{
switch(i)
{
case 0:
strcpy(maskapai,"Garuda");
break;
case 1:
strcpy(maskapai,"Mandala");
break;
case 2:
strcpy(maskapai,"Adam Air");
break;
case 3:
strcpy(maskapai,"Lion Air");
break;
}
printf("\n- %s",maskapai);
}
}
printf("\n\tdengan harga tiket Rp.%d",x);
}
else
printf("Maaf Kota yang dicari tidak ada\n(Masukkan kota yang dicari dengan huruf kecil)");
}


//file main.c

#include "header.h"
void main()
{
harga a;
str Tujuan;

tampil(&a);
printf("\n\nMencari maskapai dengan tiket termurah\n");
printf("\nTujuan : ");scanf("%s",&Tujuan);
carimurah(a,Tujuan);
getch();
}

SD: Unguided 29 Juni 2007

/*karena format HTML, maka semua karakter lebih besar (>) dan lebih kecil (<) diganti dengan karakter ((>)) dan ((<)) sorry (^-^)*/
//File header.h

//file header.h

#include (<)stdio.h(>)
#include (<)conio.h(>)
#include (<)stdlib.h(>)
#include (<)time.h(>)
#define max 11

typedef struct{
int element[max][max];
int row;
int column;
}allmat;

void input(allmat *a);
void tampilgenap(allmat a);
void tampilganjil(allmat a);
float totalelement(allmat a);
void jumlah(allmat a);


//file definition.c

#include "header.h"

void input(allmat *a)
{
int i,j,k,x;
srand((unsigned)time(NULL));
printf("Jumlah baris matriks : ");scanf("%d",&(*a).row);
printf("Jumlah kolom matriks : ");scanf("%d",&(*a).column);
for(i=0;i(<)(*a).row;i++)
{
for(j=0;j(<)(*a).column;j++)
{
x=rand()%10;
(*a).element[i][j]=x;
}
printf("\n");
}
for(k=0;k(<)(*a).row;k++)
{
for(j=0;j(<)(*a).column;j++)
{
printf("%5d ",(*a).element[k][j]);
}
printf("\n");
}
printf("\n\n");
}

void tampilgenap(allmat a)
{
int j,k,sub=0;
for(k=0;k(<)a.row;k++)
{
for(j=0;j(<)a.column;j++)
{
if(a.element[k][j]%2==0)
printf("%5d ",a.element[k][j]);
else
printf("%5d ",sub);
}
printf("\n");
}
printf("\n\n");
}

void tampilganjil(allmat a)
{
int j,k,sub=1;
for(k=0;k(<)a.row;k++)
{
for(j=0;j(<)a.column;j++)
{
if(a.element[k][j]%2!=0)
printf("%5d ",a.element[k][j]);
else
printf("%5d ",sub);
}
printf("\n");
}
printf("\n\n");
}

float totalelement(allmat a)
{
int j,k;
float tot=0;
for(k=0;k(<)a.row;k++)
{
for(j=0;j(<)a.column;j++)
{
tot=tot+a.element[k][j];
}
}
return tot/(float)(k*j);
}

void jumlah(allmat a)
{
int j,k,genap=0,ganjil=0;
float tot=0;
for(k=0;k(<)a.row;k++)
{
for(j=0;j(<)a.column;j++)
{
if(a.element[k][j]%2==0)
genap=genap+1;
else
ganjil=ganjil+1;
}
}
printf("Jumlah Element Genap adalah : %d ",genap);
printf("\nJumlah Element Ganjil adalah : %d ",ganjil);

}


//file main.c

#include "header.h"

void main()
{
int opt;
allmat b;
do
{
system("cls");
printf("MENU\n");
printf("1. Menginputkan elemen matriks\n");
printf("2. Menampilkan elemen matriks yang ganjil\n");
printf("3. Menampilkan elemen matriks yang genap\n");
printf("4. Menghitung rata-rata total elemen matriks\n");
printf("5. Menghitung total elemen matriks\n");
printf("0. Keluar\n");
printf("Masukkan pilihan anda : ");scanf("%d",&opt);
printf("\n");
switch(opt)
{
case 1:
input(&b);
break;
case 2:
tampilganjil(b);
break;
case 3:
tampilgenap(b);
break;
case 4:
printf("Rata-ratanya adalah : %f",totalelement(b));
break;
case 5:
jumlah(b);
break;
case 0:
printf("BYE");
break;
default:
printf("Nomor yang anda masukkan salah");
break;
}
getch();
}while(opt!=0);
}

SD: Guided 29 Juni 2007

/*karena format HTML, maka semua karakter lebih besar (>) dan lebih kecil (<) diganti dengan karakter ((>)) dan ((<)) sorry (^-^)*/

//file header.h

#include (<)stdio.h(>)
#include (<)conio.h(>)
#include (<)stdlib.h(>)
#define max 20

typedef struct{
int elmt[max] [max];
int row;
int column;
}matrix;

void createempty(matrix *m);
void masukkanmatrix(matrix *m, char nama);
void tampilkanmatrix(matrix m, char nama);
void transpose(matrix *m);


//file definition.c

#include "header.h"

void createempty(matrix *m)
{
(*m).row=0;
(*m).column=0;
}

void masukkanmatrix(matrix *m, char nama)
{
int i,j;
printf("\nMasukkan matrix %c\n",nama);
for(i=0;i(<)(*m).row;i++)
{
for(j=0;j(<)(*m).column;j++)
{
printf("baris %d, kolom %d = ",i+1,j+1);
scanf("%d",&((*m).elmt[i][j]));
}
printf("\n");
}
}

void tampilkanmatrix(matrix m, char nama)
{
int i,j;
printf("\nMatrix %c :\n",nama);
for(i=0;i(<)m.row;i++)
{
for(j=0;j(<)m.column;j++)
{
printf("%5d ",m.elmt[i][j]);
}
printf("\n");
}
}

void transpose(matrix *m)
{
int i,j;
matrix c;
c.column=(*m).column;
c.row=(*m).row;
for(i=0;i(<)(*m).row;i++)
{
for(j=0;j(<)(*m).column;j++)
{
c.elmt[i][j]=(*m).elmt[i][j];
}
}
for(i=0;i(<)(*m).column;i++)
{
for(j=0;j(<)(*m).row;j++)
{
(*m).elmt[i][j]=c.elmt[j][i];
}
}
(*m).row=c.column;
(*m).column=c.row;
}


//file main.c

#include "header.h"

void main()
{
int opt;
matrix a,b,c;

createempty(&a);
createempty(&b);

do
{
system("cls");
printf("MENU\n");
printf("1. Menginisialisasikan matriks A dan matriks B\n");
printf("2. Menginputkan elemen matriks A dan matriks B\n");
printf("3. Menampilkan matriks A dan matriks B\n");
printf("4. Transpose matriks A dan matriks B\n");
printf("0. Keluar\n");
printf("Masukkan pilihan anda : ");scanf("%d",&opt);
printf("\n");
switch(opt)
{
case 1:
createempty(&a);
createempty(&b);
printf("Matrix A dan matrix B sudah dikosongkan\n");
break;
case 2:
printf("Jumlah baris matriks A : ");scanf("%d",&a.row);
printf("Jumlah kolom matriks A : ");scanf("%d",&a.column);
masukkanmatrix(&a,'A');
printf("Jumlah baris matriks B : ");scanf("%d",&b.row);
printf("Jumlah kolom matriks B : ");scanf("%d",&b.column);
masukkanmatrix(&b, 'B');
break;
case 3:
tampilkanmatrix(a, 'A');
printf("\n");
tampilkanmatrix(b,'B');
break;
case 4:
printf("Sebelum Transpose");
tampilkanmatrix(a, 'A');
printf("\n");
tampilkanmatrix(b,'B');
transpose(&a);
transpose(&b);
printf("\n\nOperasi Selesai\n\n");
printf("Sesudah Transpose");
tampilkanmatrix(a, 'A');
printf("\n");
tampilkanmatrix(b,'B');
break;
case 0:
printf("BYE");
break;
default:
printf("Nomor yang anda masukkan salah");
break;
}
getch();
}while(opt!=0);
}

Tuesday, June 26, 2007

SD: Tugas Array 26 Juni 2007

/*karena format HTML, maka semua karakter lebih besar (>) dan lebih kecil (<) diganti dengan karakter ((>)) dan ((<)) sorry (^-^)*/
//File header.h

#include (<)conio.h(>)
#include (<)stdio.h(>)
#include (<)stdlib.h(>)
#include (<)string.h(>)

#define max 69
typedef char str[20];
typedef struct{
int nomor;
str nama;
float saldo;
}Rekening;

typedef Rekening ArrayRek[max];


int IsAda(ArrayRek fd, int no);
int IsSame(ArrayRek fd,int numb);
int CariBerdasarkanNomor(ArrayRek fd,int nomor);
int SaldoTerbesar(ArrayRek fd);
float TotalSaldo(ArrayRek fd);
void init(ArrayRek *fd);
void BukaRekening(ArrayRek *fd, int k);
void TampilkanSemua(ArrayRek fd, int j);
void Penyetoran(ArrayRek *fd, int numb, float uang);
void Penarikan(ArrayRek *fd, int numb, float uang);
void Transfer(ArrayRek *fd, int asal, int tujuan, float uang);
void Ubah(ArrayRek *fd, int no);
void Tutup(ArrayRek *fd, int no);


//File definition.c

#include "header.h"

int IsAda(ArrayRek fd, int no)
{
int indeks,i;
indeks=0;
for(i=1;i(<)max;i++)
{
if(no == fd[i].nomor)
indeks=i;
}
return indeks;
}

int IsSame(ArrayRek fd,int numb)
{
int i,c;
c=1;
for(i=1;i(<)max;i++)
{
if(numb==fd[i].nomor)
c=0;
}
if(c==0)
return 0;
else
return 1;
}

int CariBerdasarkanNomor(ArrayRek fd,int nomor)
{
int i,k;
for(i=1;i(<)max;i++)
{
if(nomor==fd[i].nomor)
k=nomor;
}
return nomor;
}

int SaldoTerbesar(ArrayRek fd)
{
int i,temp;
temp=1;
for(i=2;i(<)max;i++)
{
if(fd[i].saldo(>)fd[temp].saldo)
temp=i;
}
return temp;
}

float TotalSaldo(ArrayRek fd)
{
int i;
float tot;
tot=0;
for(i=1;i(<)max;i++)
{
tot=tot+fd[i].saldo;
}
return tot;
}

void init(ArrayRek *fd)
{
int i;
for(i=1;i(<)max;i++)
{
(*fd)[i].nomor=0;
strcpy((*fd)[i].nama," ");
(*fd)[i].saldo=0;
}
}

void BukaRekening(ArrayRek *fd, int k)
{
int i,j;
ArrayRek c;
for(i=1;i(<)k+1;i++)
{
do
{
printf("Nasabah Ke-%d\n",i);
for(j=1;j(<)max;j++)
{
c[j].nomor=(*fd)[j].nomor;
strcpy(c[j].nama,(*fd)[j].nama);
c[j].saldo=(*fd)[j].saldo;
}
printf("Nomor Rekening : ");scanf("%d",&(*fd)[i].nomor);
if(IsSame(c,(*fd)[i].nomor))
{
printf("Nama : ");scanf("%s",&(*fd)[i].nama);
printf("Saldo : ");scanf("%f",&(*fd)[i].saldo);
if((*fd)[i].saldo(<)500000)
{
printf("\nSaldo Harus Diatas 500000\n");
for(j=1;j(<)max;j++)
{
(*fd)[j].nomor=c[j].nomor;
strcpy((*fd)[j].nama,c[j].nama);
(*fd)[j].saldo=c[j].saldo;
}
}
}
else
printf("\nNomor Rekening Sudah dipakai\n");

}while((*fd)[i].saldo(<)500000||(IsSame(c,(*fd)[i].nomor)==0));
}
}

void TampilkanSemua(ArrayRek fd, int j)
{
int i;
for(i=1;i(<)j+1;i++)
{
printf("Nasabah ke-%d\n",i);
printf("Nomor Rekening : %d\n",fd[i].nomor);
printf("Nama : %s\n",fd[i].nama);
printf("Saldo : %f\n\n",fd[i].saldo);
}
}


void Penyetoran(ArrayRek *fd, int numb, float uang)
{
if(IsAda(*fd,numb)==0)
printf("Rekening Tidak Ditemukan");
else if(uang(<)10000)
printf("Jumlah minimal yang dapat disetor adalah 10000");
else
{
(*fd)[IsAda(*fd,numb)].saldo = (*fd)[IsAda(*fd,numb)].saldo + uang;
printf("Nomor rekening : %d\n",(*fd)[IsAda(*fd,numb)].nomor);
printf("Nama : %s\n",(*fd)[IsAda(*fd,numb)].nama);
printf("Saldo : %f\n",(*fd)[IsAda(*fd,numb)].saldo);
}
}

void Penarikan(ArrayRek *fd, int numb, float uang)
{
if(IsAda(*fd,numb)==0)
printf("Rekening Tidak Ditemukan");
else if((*fd)[IsAda(*fd,numb)].saldo - uang(<)10000)
printf("Uang tidak mencukupi (harus ada sisa 10000");
else
{
(*fd)[IsAda(*fd,numb)].saldo = (*fd)[IsAda(*fd,numb)].saldo - uang;
printf("Nomor rekening : %d\n",(*fd)[IsAda(*fd,numb)].nomor);
printf("Nama : %s\n",(*fd)[IsAda(*fd,numb)].nama);
printf("Saldo : %f\n",(*fd)[IsAda(*fd,numb)].saldo);
}
}

void Transfer(ArrayRek *fd, int asal, int tujuan, float uang)
{
if(IsAda(*fd,asal)==0||IsAda(*fd,tujuan)==0)
printf("Nomor rekening yang anda masukkan tidak valid");
else
{
(*fd)[IsAda(*fd,asal)].saldo = (*fd)[IsAda(*fd,asal)].saldo - uang;
(*fd)[IsAda(*fd,tujuan)].saldo = (*fd)[IsAda(*fd,tujuan)].saldo + uang;
printf("Transaksi Selesai");
}
}

void Ubah(ArrayRek *fd, int no)
{
if(IsAda(*fd,no)==0)
printf("Rekening Tidak Ditemukan");
else
{
printf("nomor rekening : %d\n",(*fd)[IsAda(*fd,no)].nomor);
printf("Saldo : %f\n",(*fd)[IsAda(*fd,no)].saldo);
printf("Nama : ");scanf("%s",(*fd)[IsAda(*fd,no)].nama);
}
}

void Tutup(ArrayRek *fd, int no)
{
if(IsAda(*fd,no)==0)
printf("Rekening Tidak Ditemukan");
else
{
(*fd)[IsAda(*fd,no)].saldo=0;
strcpy((*fd)[IsAda(*fd,no)].nama,"(REKENING DITUTUP)");
(*fd)[IsAda(*fd,no)].nomor=0;
}
}


//File main.c

#include "header.h"

void main()
{
ArrayRek rt;
int b,a,f,o,ah;
float wang;
init(&rt);
do
{
system("cls");
printf("MENU\n");
printf(" 1. Buka Rekening\n");
printf(" 2. Tampilkan Semua Daftar Nasabah\n");
printf(" 3. Mencari Data Nasabah Berdasarkan No Rekening\n");
printf(" 4. Nasabah dengan saldo terbesar\n");
printf(" 5. Saldo Total Seluruh Nasabah\n");
printf(" 6. Penyetoran Uang\n");
printf(" 7. Penarikan Uang\n");
printf(" 8. Transfer Uang\n");
printf(" 9. Ubah Data Nasabah\n");
printf("10. Tutup Rekening\n");
printf(" 0. Keluar\n");
printf("Masukkan pilihan anda : ");scanf("%d",&b);
system("cls");
switch(b)
{
case 1:
init(&rt);
printf("Banyaknya Rekening Yang Ingin Dibuka : ");
scanf("%d",&a);
BukaRekening(&rt,a);
getch();
break;
case 2:
TampilkanSemua(rt,a);
getch();
break;
case 3:
printf("Nomor Rekening : ");
scanf("%d",&f);
ah=CariBerdasarkanNomor(rt,f);
printf("Nomor Rekening : %d\n",rt[ah].nomor);
printf("Nama : %s\n",rt[ah].nama);
printf("Saldo : %f\n\n",rt[ah].saldo);
getch();
break;
case 4:
printf("Nasabah Dengan Saldo Terbesar : \n");
ah=SaldoTerbesar(rt);
printf("Nomor Rekening : %d\n",rt[ah].nomor);
printf("Nama : %s\n",rt[ah].nama);
printf("Saldo : %f\n\n",rt[ah].saldo);
getch();
break;
case 5:
printf("Saldo Total Seluruh Nasabah Adalah : %f",TotalSaldo(rt));
getch();
break;
case 6:
printf("Nomor rekening: ");
scanf("%d",&f);
printf("Jumlah uang yang ingin disetor: ");
scanf("%f",&wang);
Penyetoran(&rt,f,wang);
getch();
break;
case 7:
printf("Nomor rekening: ");
scanf("%d",&f);
printf("Jumlah uang yang ingin diambil: ");
scanf("%f",&wang);
Penarikan(&rt,f,wang);
getch();
break;
case 8:
printf("Nomor rekening asal: ");scanf("%d",&f);
printf("Nomor rekening asal: ");scanf("%d",&o);
printf("Jumlah uang yang ingin disetor: ");scanf("%f",&wang);
Transfer(&rt,f,o,wang);
getch();
break;
case 9:
printf("Nomor rekening: ");scanf("%d",&f);
Ubah(&rt,f);
getch();
break;
case 10:
printf("Nomor rekening: ");scanf("%d",&f);
Tutup(&rt,f);
getch();
break;
case 0:
printf("Terima Kasih Telah Menggunakan program ini");
break;
default:
printf("\nNomor yang anda masukkan salah\n");
getch();
break;
}
}while(b!=0);
getch();
}

SD: Unguided Array 26 Juni 2007

/*karena format HTML, maka semua karakter lebih besar (>) dan lebih kecil (<) diganti dengan karakter ((>)) dan ((<)) sorry (^-^)*/

//File header.h

#include (<)conio.h(>)
#include (<)stdio.h(>)
#include (<)stdlib.h(>)
#include (<)string.h(>)

#define max 69
typedef char str[20];
typedef struct{
int nomor;
str nama;
float saldo;
}Rekening;

typedef Rekening ArrayRek[max];

int IsSame(ArrayRek fd,int numb);
int CariBerdasarkanNomor(ArrayRek fd,int nomor);
int SaldoTerbesar(ArrayRek fd);
float TotalSaldo(ArrayRek fd);
void init(ArrayRek *fd);
void BukaRekening(ArrayRek *fd, int k);
void TampilkanSemua(ArrayRek fd, int j);

//File definition.c

#include "header.h"

int IsSame(ArrayRek fd,int numb)
{
int i,c;
c=1;
for(i=1;i(<)max;i++)
{
if(numb==fd[i].nomor)
c=0;
}
if(c==0)
return 0;
else
return 1;
}

int CariBerdasarkanNomor(ArrayRek fd,int nomor)
{
int i,k;
for(i=1;i(<)max;i++)
{
if(nomor==fd[i].nomor)
k=nomor;
}
return nomor;
}

int SaldoTerbesar(ArrayRek fd)
{
int i,temp;
temp=1;
for(i=2;i(<)max;i++)
{
if(fd[i].saldo(>)fd[temp].saldo)
temp=i;
}
return temp;
}

float TotalSaldo(ArrayRek fd)
{
int i;
float tot;
tot=0;
for(i=1;i(<)max;i++)
{
tot=tot+fd[i].saldo;
}
return tot;
}

void init(ArrayRek *fd)
{
int i;
for(i=1;i(<)max;i++)
{
(*fd)[i].nomor=0;
strcpy((*fd)[i].nama," ");
(*fd)[i].saldo=0;
}
}

void BukaRekening(ArrayRek *fd, int k)
{
int i,j;
ArrayRek c;
for(i=1;i(<)k+1;i++)
{
do
{
printf("Nasabah Ke-%d\n",i);
for(j=1;j(<)max;j++)
{
c[j].nomor=(*fd)[j].nomor;
strcpy(c[j].nama,(*fd)[j].nama);
c[j].saldo=(*fd)[j].saldo;
}
printf("Nomor Rekening : ");scanf("%d",&(*fd)[i].nomor);
if(IsSame(c,(*fd)[i].nomor))
{
printf("Nama : ");scanf("%s",&(*fd)[i].nama);
printf("Saldo : ");scanf("%f",&(*fd)[i].saldo);
if((*fd)[i].saldo(<)500000)
{
printf("\nSaldo Harus Diatas 500000\n");
for(j=1;j(<)max;j++)
{
(*fd)[j].nomor=c[j].nomor;
strcpy((*fd)[j].nama,c[j].nama);
(*fd)[j].saldo=c[j].saldo;
}
}
}
else
printf("\nNomor Rekening Sudah dipakai\n");

}while((*fd)[i].saldo(<)500000||(IsSame(c,(*fd)[i].nomor)==0));
}
}

void TampilkanSemua(ArrayRek fd, int j)
{
int i;
for(i=1;i(<)j+1;i++)
{
printf("Nasabah ke-%d\n",i);
printf("Nomor Rekening : %d\n",fd[i].nomor);
printf("Nama : %s\n",fd[i].nama);
printf("Saldo : %f\n\n",fd[i].saldo);
}
}


//File main.c

#include "header.h"

void main()
{
ArrayRek rt;
int b,a,f,o;
init(&rt);
do
{
system("cls");
printf("MENU\n");
printf(" 1. Buka Rekening\n");
printf(" 2. Tampilkan Semua Daftar Nasabo\n");
printf(" 3. Mencari Data Nasabo Berdasarkan No Rekening\n");
printf(" 4. Nasabo dengan saldo terbesar\n");
printf(" 5. Saldo Total Seluruh Nasabo\n");
printf(" 0. Keluar\n");
printf("Masukkan pilihan anda : ");scanf("%d",&b);
system("cls");
switch(b)
{
case 1:
init(&rt);
printf("Banyaknya Rekening Yang Ingin Dibuka : ");
scanf("%d",&a);
BukaRekening(&rt,a);
getch();
break;
case 2:
TampilkanSemua(rt,a);
getch();
break;
case 3:
printf("Nomor Rekening : ");
scanf("%d",&f);
o=CariBerdasarkanNomor(rt,f);
printf("Nomor Rekening : %d\n",rt[o].nomor);
printf("Nama : %s\n",rt[o].nama);
printf("Saldo : %f\n\n",rt[o].saldo);
getch();
break;
case 4:
printf("Nasabo Dengan Saldo Terbesar : \n");
o=SaldoTerbesar(rt);
printf("Nomor Rekening : %d\n",rt[o].nomor);
printf("Nama : %s\n",rt[o].nama);
printf("Saldo : %f\n\n",rt[o].saldo);
getch();
break;
case 5:
printf("Saldo Total Seluruh Nasabo Adalo : %f",TotalSaldo(rt));
getch();
break;
case 0:
printf("Terima Kasih Telo Menggunakan program ini");
break;
default:
printf("\nNomor yang anda masukkan salo\n");
getch();
break;
}
}while(b!=0);
getch();
}