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;
}
-----------------------------
#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