.

20130719

ALGORTIMA DAN PEMROGRAMAN
-----------------------------

#include "tabInt.h"
#include "tabInt.c"

int main ()
{
/* Kamus */
#define true 1
#define false 0
int panjang, sum, imax, x, ix, imin;
float avg;
tabInt T;
int quit;

/* Algoritma */
    panjang=sum=imax=x=ix=0;
avg=0;
do
{
 system ("cls");
 printf ("             ====================\n");
 printf ("             : MENU MAX DAN MIN :\n\n");
 printf ("          +.+.+.+.+.+.+.+.+.+.+.+.+.+\n");
 printf ("        + +. Pilih menu :\t   .+ +\n");
 printf ("        + +. (1) Create Tabel\t   .+ +\n");
 printf ("    + + + +. (2) Insert Tabel\t   .+ + + +\n");
 printf ("    + + + +. (3) Print Tabel\t   .+ + + +\n");
 printf ("  + + + + +. (4) Sum Tabel\t   .+ + + + +\n");
 printf ("  + + + + +. (5) Average Tabel\t   .+ + + + +\n");
 printf ("    + + + +. (6) iMax Tabel\t   .+ + + +\n");
 printf ("    + + + +. (7) iMin Tabel\t   .+ + + +\n");
 printf ("        + +. (8) Sequential Search .+ +\n");
 printf ("        + +. (0) Keluar Program\t   .+ +\n");
 printf ("          +.+++++++++++++++++++++++.+\n");
 printf ("\nPilihan anda : ");
 switch (getchar())
 {
case '1' :
 system ("cls");
 printf ("\n\t|||CREATE TABEL|||\n");
     CreateTabel(&T);
     printf("\n Masukkan panjang tabel yang akan diinisiasi = ");
     scanf ("%d", &panjang);
     break;
     return 0;
case '2' :
     system ("cls");
     printf ("\n\t|||INSERT DATA|||\n\n");
 InsertTabel (&T, panjang);
     printf ("\nPilih menu selanjutnya .. ");
     getch ();
     break;
case '3' :
 system ("cls");
 printf ("\n\t|||PENCETAKKAN TABEL|||\n\n");
     PrintTabel (T, panjang);
     printf ("\n\nPilih menu selanjutnya .. ");
     getch ();
     break;
case '4' :
 system ("cls");
 printf ("\n\t|||JUMLAH NILAI DATA\n");
     SumTabel (T, panjang, &sum);
     printf ("\n\nPilih menu selanjutnya .. ");
     getch ();
     break;
case '5' :
 system ("cls");
 printf ("\n\t|||RATA-RATA|||\n");
     AvgTabel (T, panjang, &avg);
     printf ("\n\nPilih menu selanjutnya .. ");
     getch ();
 break;
case '6' :
 system ("cls");
 printf ("\n\t|||MAXIMUM|||\n");
     iMaxTabel (T, panjang, &imax);
     printf ("\nPilih menu selanjutnya .. ");
     getch ();
     break;
case '7' :
 system ("cls");
 printf ("\n\t|||MINIMUM|||\n");
     iMinTabel (T, panjang, &imin);
     printf ("\n\nPilih menu selanjutnya .. ");
     getch ();
     break;
case '8' :
 system ("cls");
 printf ("\n\t|||PENCARIAN DATA|||\n");
 printf ("\nMasukkan data yang akan dicari = ");
 scanf ("%d", &x);
     SeqSearch (T, panjang, x, &ix);
 if (ix!=x)
 printf ("Nilai %d yang dicari tidak ketemu\n", x);
     printf ("\n\nPilih menu selanjutnya .. ");
     getch ();
     break;
case '0' :
 system ("cls");
 printf ("\n\n\n\n\n                                 BLACK SCREEN");
 quit=true;
 break;
default:
printf ("Maaf, tidak ada pilihan yang anda maksud.\n");
break;
getchar ();
 }
}
while (quit != true);
getch ();
return 0;
}

SEBELUM DI-COMPILE, HARUS MEMBUAT SCRIPT YANG DIBUTUHKAN:
Di bawah ini terdapat 3 script yang dibutuhkan untuk menjalankan Program di atas yaitu: mtabint.c, tabint.c dan tabint.h

MTABINT.C - file ini dibuat untuk membentuk porgram utama yang dapat langsung dieksekusi, meskipun kita buat dengan gaya yang berbeda seperti model menu di atas

#include "tabInt.h"
#include "tabInt.c"

/*MAIN*/
int main ()
{
/* KAMUS */
int panjang, sum, imax, x, ix, imin;
float avg;
tabInt T;
/* ALGORITMA */
panjang=sum=imax=x=ix=0;
avg=0;
CreateTabel(&T);
printf("Masukkan panjang tabel yang akan diinisiasi = ");
scanf ("%d", &panjang);
InsertTabel (&T, panjang);
PrintTabel (T, panjang);
SumTabel (T, panjang, &sum);
AvgTabel (T, panjang, &avg);
iMaxTabel (T, panjang, &imax);
iMinTabel (T, panjang, &imin);
printf ("\nUntuk pencarian, masukkan nilai yang dicari = ");
scanf ("%d",&x);
SeqSearch (T, panjang, x, &ix);
if (ix==0)
printf ("Nilai %d yang dicari tidak ketemu\n", x);
getch ();
return 0;
}

==========================================

TABINT.C - file kedua yang kita buat untuk membentuk konstruksi di atas


#include "tabInt.h"

/* REASLISASI */
void CreateTabel (tabInt *T)
/*I.S : T dalam keadaan terinisialisasi */
/*F.S : Semua elemen T bernilai 0*/
/*Proses : T[i]=0*/
{
/* KAMUS LOKAL */
int i;
/* ALGORTIMA */
for (i=1; i<=100; i++)
{
(*T)[i]=0;
}
}

void InsertTabel (tabInt *T, int N)
/*I.S : T sudah terinisialisasi dengan nilai 0*/
/*F.S : Elemen T terisi dengan*/
/*Proses : T[i] diisi nilai dengan pengulanagan N kali*/
{
/* KAMUS LOKAL */
int i, input;
/* ALGORITMA */
for (i=1; i<=N; i++)
{
printf ("\tMasukkan nilai untuk elemen ke-%d = ", i);
scanf ("%d", &input);
(*T)[i]=input;
}
printf ("\n");
}

void PrintTabel (tabInt T, int N)
/*I.S : T sudah terisi dengan panjang N*/
/*F.S : tabel T tercetak di monitor*/
/*Proses : cetak per elemen T ke monitor*/
{
/* KAMUS LOKAL */
int i;
/* ALGORITMA */
for (i=1 ;i<=N; i++)
{
printf ("\tT[%d]=%d\n", i, T[i]);
}
printf ("\n Pencetakan selesai\n");
}

void SumTabel (tabInt T, int N, int *sum)
/*I.S : T sudah terisi dengan panjang N, dan sum diinisialisasi dengan 0*/
/*F.S : jumlah data semua elemen dimasukkan ke sum*/
/*Proses : sum=T[i] selama N*/
{
/* KAMUS LOKAL */
int i;
/* ALGORTIMA */
for (i=1; i<=N; i++)
{
(*sum)+=T[i];
}
printf ("\n\tJumlahnya = %d\n", (*sum));
}

void AvgTabel(tabInt T, int N, float *avg)
/*I.S : T sudah terisi dengan panjang N, dan avg diinisialisasi dengan 0*/
/*F.S : Nilai rata-rata semua elemen dalam tabel dimasukkan ke avg*/
/*Proses : jumlahkan semua elementerlebih dahulu, lalu bagikan dengan N*/
{
/* KAMUS LOKAL */
int i;
/* ALGORITMA */
for (i=1; i<=N; i++)
{
(*avg)+=T[i];
}
(*avg)/=N;
printf ("\n\tRata-ratanya = %.2f\n", (*avg));
}

void iMaxTabel(tabInt T, int N, int *imax)
/*I.S : T sudah terisi dengan panjang N, dan imax sudah diinisialisasikan dengan 0*/
/*F.S : Indeks elemen yang mempunyai nilai maksimum dimasukkan ke dalam imax lalu cetak ke monitor*/
/*Proses : pengulangan selama N, cari nilai maksimum, lalu imax=indeks nilia maksimum*/
{
/* Kamus */
int i;
/* Algoritma */
int x=T[1];
for (i=1; i<=N; i++)
{
if (T[i]>x)
{
x=T[i];
}
}
printf ("\n\tNilai maksimum terdapat pada indeks ke");
for (i=1; i<=N; i++)
{
if (x==T[i])
{
(*imax)=i;
printf (" %d,", (*imax));
}
}
printf ("\n");
}

void iMinTabel(tabInt T, int N, int *imin)
/*I.S : T sudah terisi dengan panjang N, dan imin sudah diinisialisasikan dengan 0*/
/*F.S : Indeks elemen yang mempunyai nilai maksimum dimasukkan ke imin, lalu cetak ke monitor*/
/*Proses : pengulangan selama N, cari nilai minimum, lalu imin=indeks nilia minimum*/
{
/* Kamus */
int i;
/* Algoritma */
int min=T[1];
for (i=1; i<=N; i++)
{
if (T[i]<=min)
{
min=T[i];
}
}
printf ("\n\tNilai minimum terdapat pada indeks ke ");
for (i=1; i<=N; i++)
{
if (min==T[i])
{
(*imin)=i;
printf (" %d,", (*imin));
}
}
printf ("\n");
}

void SeqSearch (tabInt T, int N, int x, int *ix)
/*I.S : T sudah terisi deangn panjang N, x terisi nilai yang akan dicari*/
/*F.S : Apabila x ketemu, maka ix terisi indeks elemen, apabila tidak ketemu, maka ix=1*/
/*Proses : ix=-1. Pengulangan selama N, dicek apakah T[i]=x, apabila ketemu ix=i */
{
/* Kamus */
int i;
/* Algoritma */
for(i=1;i<=N;i++)
{
    if (T[i] == x)
{
((*ix) = i) && printf("\tElemen %d ditemukan di indeks ke-%d\n", x, (*ix));
}
    }
}

==========================================

TABINT.H - file ini yang harus kita buat terlebih dahulu

#ifndef tabint_H
#define tabint_H

#include
typedef int tabInt[101];

void CreateTabel (tabInt *T);
/*I.S : T dalam keadaan belum terinisialisasi */
/*F.S : Semua elemen T bernilai 0*/
/*Proses : T[i]=0*/

void InsertTabel (tabInt *T, int N);
/*I.S : T sudah terinisialisasi dengan nilai 0*/
/*F.S : Elemen T terisi dengan*/
/*Proses : T[i] diisi nilai dengan pengulanagan N kali*/

void PrintTabel (tabInt T, int N);
/*I.S : T sudah terisi dengan panjang N*/
/*F.S : tabel T tercetak di monitor*/
/*Proses : cetak per ekemen T ke monitor*/

void SumTabel (tabInt T, int N, int *sum);
/*I.S : T sudah terisi dengan panjang N, dan sum diinisialisasi dengan 0*/
/*F.S : jumlah data semua elemen dimasukkan ke sum*/
/*Proses : sum=T[i] selama N*/

void AvgTabel (tabInt T, int N, float *avg);
/*I.S : T sudah terisi dengan panjang N, dan avg diinisialisasi dengan 0*/
/*F.S : Nilai rata-rata semua elemen dalam tabel dimasukkan ke avg*/
/*Proses : jumlahkan semua elementerlebih dahulu, lalu bagikan dengan N*/

void iMaxTabel (tabInt T, int N, int *imax);
/*I.S : T sudah terisi dengan panjang N, dan imax sudah diinisialisasikan dengan 0*/
/*F.S : Indeks elemen yang mempunyai nilai maksimum dimasukkan ke dalam imax lalu cetak ke monitor*/
/*Proses : pengulangan selama N, cari nilai maksimum, lalu imax=indeks nilia maksimum*/

void iMinTabel (tabInt T, int N, int *imin);
/*I.S : T sudah terisi dengan panjang N, dan imin sudah diinisialisasikan dengan 0*/
/*F.S : Indeks elemen yang mempunyai nilai maksimum dimasukkan ke imin, lalu cetak ke monitor*/
/*Proses : pengulangan selama N, cari nilai minimum, lalu imin=indeks nilia minimum*/

void SeqSearch (tabInt T, int N, int x, int *ix);
/*I.S : T sudah terisi dengan panjang N, x terisi nilai yang akan dicari*/
/*F.S : Apabila x ketemu, maka ix terisi indeks elemen, apabila tidak ketemu, maka ix=1*/
/*Proses : ix=-1. Pengulangan selama N, dicek apakah T[i]=x, apabila ketemu ix=i */

#endif /* pengakhir program pada */

Tidak ada komentar:

Posting Komentar