Saturday, June 30, 2007

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();
}