Tuesday, June 26, 2007

SD: Guided 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(>)
#define Max 21

typedef struct
{
int TI[Max-1];
int Neff;
}tabint;

void makeempty(tabint *t);
void bacaisi(tabint *t);
void tulisisi(tabint t);
int lastidx(tabint t);
int countx(tabint a, int x);
int min(tabint a);


definition.c

#include "header.h"

void makeempty(tabint *t)
{
(*t).Neff=0;
}

void bacaisi(tabint *t)
{
int i,n;
printf("Banyaknya elemen yang akan dientri : ");scanf("%d",&n);
printf("\n");
printf("Masukkan isi : \n");
for(i=1;i<=n;i++)
{
printf("--%d-- ",i);
scanf("%d", &((*t).TI[i]));
}
(*t).Neff=n;
}

void tulisisi(tabint t)
{
int i;
printf("\n");
if(lastidx(t)==0)
printf("Label Kosong");
else
{
for(i=1;i<=lastidx(t);i++)
{
printf("%d\t",(t).TI[i]);
}
}
printf("\n");
}

int lastidx(tabint t)
{
return (t.Neff);
}

int countx(tabint a, int x)
{
int tot,i;
tot=0;
for(i=1;i<=x;i++)
{
tot=tot+a.TI[i];
}
return tot;
}

int min(tabint a)
{
int temp,i;
temp=1;
for(i=2;i<=a.Neff;i++)
{
if(a.TI[i](<)a.TI[temp])
temp=i;
}
return a.TI[temp];
}


main.c

#include "header.h"

void main()
{
tabint t;
int y;
char pil;
makeempty(&t);
do
{
system("cls");
printf("Menu\n");
printf("1. Make Empty\n");
printf("2. Input Elemen Tabel\n");
printf("3. Lihat Tabel\n");
printf("4. Count X\n");
printf("5. Minimum\n");
printf("esc untuk keluar\n");
printf("Masukkan pilihan anda\n");
pil=getch();
switch(pil)
{
case '1':
makeempty(&t);
printf("Tabel sudah dikosongkan");
getch();
break;
case '2':
bacaisi(&t);
getch();
break;
case '3':
printf("\nIsi Tabel : ");
tulisisi(t);
getch();
break;
case '4':
printf("\nMasukan jumlah elemen yang ingin dijumlahkan : ");scanf("%d",&y);
printf("Jumlah dari %d elemen pertama adalah : %d",y,countx(t,y));
getch();
break;
case '5':
printf("\nNilai Minimum : %d",min(t));
getch();
break;
}
}while(pil!=27);
}

Friday, June 22, 2007

SD: ADT Tugas 22 Juni 2007

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

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

typedef struct{
int hari;
int bulan;
int tahun;
}tanggal;

void tanggalpinjam(tanggal *t);
tanggal tanggalbatasmaks(tanggal t);
void tanggalkembali(tanggal tawal,tanggal takhir);
int denda(tanggal tawal, tanggal takhir);

//file main.c

#include "header.h"

void main()
{
tanggal pinjam,kembali;
tanggalpinjam(&pinjam);
kembali=tanggalbatasmaks(pinjam);
printf("\nTanggal Kembali : %d-%d-%d",kembali.hari,kembali.bulan,kembali.tahun);
tanggalkembali(pinjam,kembali);
getch();
}

//file definition.c

#include "header.h"

void tanggalpinjam(tanggal *t)
{
printf("Input Tanggal Peminjaman : ");
scanf("%d",&(*t).hari);
printf("Input Bulan Peminjaman : ");
scanf("%d",&(*t).bulan);
printf("Input Tahun Peminjaman : ");
scanf("%d",&(*t).tahun);
}

tanggal tanggalbatasmaks(tanggal t)
{
tanggal batas;
batas.tahun=t.tahun;
batas.bulan=t.bulan;
batas.hari=t.hari+3;
if (batas.hari(>)30)
{
batas.bulan=batas.bulan+1;
batas.hari=batas.hari-30;
}
if (batas.bulan(>)12)
{
batas.tahun=batas.tahun+1;
batas.bulan=batas.bulan-12;
}
return batas;
}

void tanggalkembali(tanggal tawal,tanggal takhir)
{
printf("\n\nInput Tanggal Pengembalian : ");
scanf("%d",&takhir.hari);
printf("Input Bulan Pengembalian : ");
scanf("%d",&takhir.bulan);
printf("Input Tahun Pengembalian : ");
scanf("%d",&takhir.tahun);
printf("\nDenda sebesar:Rp. %d",denda(tawal,takhir));
}

int denda(tanggal tawal, tanggal takhir)
{
tanggal sem;
if (takhir.hari(<)tawal.hari)
{
takhir.bulan=takhir.bulan-1;
takhir.hari=takhir.hari+30;
}
sem.hari=takhir.hari-tawal.hari;
if (takhir.bulan(<)tawal.bulan)
{
takhir.tahun=tawal.tahun-1;
takhir.bulan=takhir.bulan+12;
}
sem.bulan=takhir.bulan-tawal.bulan;
sem.tahun=takhir.tahun-tawal.tahun;
sem.hari=sem.hari-3;
if ((sem.hari+(sem.bulan*30)+(sem.tahun*360))*500 (< )0)
return 0;
else
return (sem.hari+(sem.bulan*30)+(sem.tahun*360))*500;
}

SD: ADT Unguided 22 Juni 2007

//file header.h
/*karena format HTML, maka semua karakter lebih besar (>) dan lebih kecil (<) diganti dengan karakter ((>)) dan ((<))*/ ]

#include (<)conio.h(>)

#include (<)stdio.h(>)

typedef struct{
int jam;
int menit;
int detik;
}waktu;

waktu inputdetik(int f);
int selisihdalamdetik(waktu w1, waktu w2);
waktu tambah(waktu w1,waktu w2);
waktu kurang(waktu w1,waktu w2);

//file main.c

#include "header.h"

void main()
{
waktu b1,b2,time;
int pil,det;
do
{
system("cls");
printf("Menu\n");
printf("\n1. Detik Ke Waktu");
printf("\n2. Selisih dalam detik");
printf("\n3. Selisih waktu");
printf("\n4. Jumlah waktu");
printf("\n0. Keluar");
printf("\n\nMasukkan pilihan anda : ");scanf("%d",&pil);
system("cls");
switch(pil)
{
case 1:
printf("Input Detik ");scanf("%d",&det);
time=inputdetik(det);
printf("\nJam : %d ",time.jam);
printf("\nMenit : %d ",time.menit);
printf("\nDetik : %d ",time.detik);
getch();
break;
case 2:
printf("Masukkan Waktu Pertama : ");
printf("\nJam : ");scanf("%d",&b1.jam);
printf("\nMenit : ");scanf("%d",&b1.menit);
printf("\nDetik : ");scanf("%d",&b1.detik);
printf("Masukkan Waktu Kedua : ");
printf("\nJam : ");scanf("%d",&b2.jam);
printf("\nMenit : ");scanf("%d",&b2.menit);
printf("\nDetik : ");scanf("%d",&b2.detik);
printf("\nselisih waktu dalam detik adalah : %d ",selisihdalamdetik(b2,b1));
getch();
break;
case 3:
printf("Masukkan Waktu Pertama : ");
printf("\nJam : ");scanf("%d",&b1.jam);
printf("\nMenit : ");scanf("%d",&b1.menit);
printf("\nDetik : ");scanf("%d",&b1.detik);
printf("Masukkan Waktu Kedua : ");
printf("\nJam : ");scanf("%d",&b2.jam);
printf("\nMenit : ");scanf("%d",&b2.menit);
printf("\nDetik : ");scanf("%d",&b2.detik);
printf("\n\nselisih waktu adalah : ");
time=kurang(b1,b2);
printf("\nJam : %d ",time.jam);
printf("\nMenit : %d ",time.menit);
printf("\nDetik : %d ",time.detik);
getch();
break;
case 4:
printf("Masukkan Waktu Pertama : ");
printf("\nJam : ");scanf("%d",&b1.jam);
printf("\nMenit : ");scanf("%d",&b1.menit);
printf("\nDetik : ");scanf("%d",&b1.detik);
printf("Masukkan Waktu Kedua : ");
printf("\nJam : ");scanf("%d",&b2.jam);
printf("\nMenit : ");scanf("%d",&b2.menit);
printf("\nDetik : ");scanf("%d",&b2.detik);
printf("\n\njumlah waktu adalah : ");
time=tambah(b2,b1);
printf("\nJam : %d ",time.jam);
printf("\nMenit : %d ",time.menit);
printf("\nDetik : %d ",time.detik);
getch();
break;
case 0:
printf("BYE");
break;
default:
printf("Nomor yang anda masukkan salah");
getch();
break;
}
}while (pil!=0);
getch();
}

//file definition.c

#include "header.h"

waktu inputdetik(int time)
{
waktu conv;
conv.jam=time/3600;
conv.menit=(time%3600)/60;
conv.detik=(time%3600)%60;
return conv;
}

int selisihdalamdetik(waktu w1, waktu w2)
{
waktu t;
if (w1.detik(<)w2.detik) { w1.menit=w1.menit-1; w1.detik=w1.detik+60; } t.detik=w1.detik-w2.detik; if (w1.menit(<)w2.menit) { w1.jam=w1.jam-1; w1.menit=w1.menit+60; } t.menit=w1.menit-w2.menit; t.jam=w1.jam-w2.jam; t.detik=t.detik+(t.menit*60)+(t.jam*3600); return t.detik; } waktu kurang(waktu w1,waktu w2) { waktu t; if (w1.detik(<)w2.detik) { w1.menit=w1.menit-1; w1.detik=w1.detik+60; } t.detik=w1.detik-w2.detik; if (w1.menit(<)w2.menit) { w1.jam=w1.jam-1; w1.menit=w1.menit+60; } t.menit=w1.menit-w2.menit; t.jam=w1.jam-w2.jam; return t; } waktu tambah(waktu w1,waktu w2) { waktu t; t.detik=w1.detik+w2.detik; if (t.detik>=60)
{
w1.menit=w1.menit+1;
t.detik=t.detik-60;
}
t.menit=w1.menit+w2.menit;
if (t.menit>=60)
{
w1.jam=w1.jam+1;
t.menit=t.menit-60;
}
t.jam=w1.jam+w2.jam;
return t;
}