Program Array dengan fungsi dan Prosedur
09.07
By
kamalluddin ramdani
Informatika
Salam K.Readers, Kali ini saya akan membagikan source code program dengan inputan beberapa bilangan integer, jika memasukan angka 9999 maka proses input akan berhenti dan hasil inputan yang disimpan di array akan tampil. Jika terjadi error di boolean.h coba K.Reader menambahkan "//" didepannya. Hal itu karena pre processor boolean tidak terdapat pada forder anda. Disarankan untuk membuat pre Processor boolean terlebih dahulu. Semoga bermanfaat.
//Pre Processor
#include<stdio.h>
#include<conio.h>
#include<boolean.h>
#define nMax 10
//type Bentukan
typedef struct{
int Tab[nMax+1];
int nEff;
}TabInt;
//Prototype
void CreateTabel(TabInt *T);
void AddTabel(TabInt *T, int X);
void CetakTabel(TabInt T);
void InversTabel(TabInt *T);
int getJumelm(TabInt T);
int getSUMTabel(TabInt T);
//Main Driver
int main(){
//Kamus global
TabInt MyTab;
int N;
//algoritma
CreateTabel(&MyTab);
printf("Masukan Bilangan :");scanf("%d",&N);
while(N!=9999){
AddTabel(&MyTab,N);
printf("Masukan Bilangan :");scanf("%d",&N);
}
CetakTabel(MyTab);
printf("\nJumlah Elemen :%d",getJumelm(MyTab));
printf("\nSum Elemen :%d",getSUMTabel(MyTab));
InversTabel(&MyTab);
printf("\nInvers Tabel\n");
CetakTabel(MyTab);
return 0;
}
//Realisasi prototype
void CreateTabel(TabInt *T){
/* I.S: T terdefinisi, belum ada nilainya
T.S: T menjadi tabel kosong
*/
//kamus
//algoritma
(*T).nEff=0;
}
void AddTabel(TabInt *T, int x){
/* I.S: T terdefinisi, sembarang mungkin kosong
T.S: T bertambah 1 elemen, jika ada tempat
*/
//kamus
//algoritma
if((*T).nEff<nMax){
(*T).nEff++;
(*T).Tab[(*T).nEff]=x;
}
}
void CetakTabel(TabInt T){
/* I.S: T terdefinisi, sembarang tidak kosong
T.S: T semua elemen T dicetak
*/
//kamus
int i;
//algoritma
for(i=1;i<=T.nEff;i++){
printf("<%d>",T.Tab[i]);
}
}
int getJumelm(TabInt T){
/*mengirim jumlah elemen pada T */
//Kamus
int Jumelm;
//algoritma
Jumelm=T.nEff;
return(Jumelm);
}
int getSUMTabel(TabInt T){
/* Menjumlahkan isi elemen */
//kamus
int SUMTabel;
int i;
//Algoritma;
SUMTabel=0;
for(i=1;i<=T.nEff;i++){
SUMTabel=SUMTabel+T.Tab[i];
}
return(SUMTabel);
}
void InversTabel(TabInt *T){
/* I.S: T terdefinisi, sembarang tidak kosong
T.S: T isi elemen T diinvers
*/
//Kamus
int awal,akhir;
int i;
int tmp;
//algoritma
awal=1;
akhir=(*T).nEff;
for(i=1;i<=(*T).nEff/2;i++){
tmp=(*T).Tab[awal];
(*T).Tab[awal]=(*T).Tab[akhir];
(*T).Tab[akhir]=tmp;
awal++;
akhir--;
}
}
//Pre Processor
#include<stdio.h>
#include<conio.h>
#include<boolean.h>
#define nMax 10
//type Bentukan
typedef struct{
int Tab[nMax+1];
int nEff;
}TabInt;
//Prototype
void CreateTabel(TabInt *T);
void AddTabel(TabInt *T, int X);
void CetakTabel(TabInt T);
void InversTabel(TabInt *T);
int getJumelm(TabInt T);
int getSUMTabel(TabInt T);
//Main Driver
int main(){
//Kamus global
TabInt MyTab;
int N;
//algoritma
CreateTabel(&MyTab);
printf("Masukan Bilangan :");scanf("%d",&N);
while(N!=9999){
AddTabel(&MyTab,N);
printf("Masukan Bilangan :");scanf("%d",&N);
}
CetakTabel(MyTab);
printf("\nJumlah Elemen :%d",getJumelm(MyTab));
printf("\nSum Elemen :%d",getSUMTabel(MyTab));
InversTabel(&MyTab);
printf("\nInvers Tabel\n");
CetakTabel(MyTab);
return 0;
}
//Realisasi prototype
void CreateTabel(TabInt *T){
/* I.S: T terdefinisi, belum ada nilainya
T.S: T menjadi tabel kosong
*/
//kamus
//algoritma
(*T).nEff=0;
}
void AddTabel(TabInt *T, int x){
/* I.S: T terdefinisi, sembarang mungkin kosong
T.S: T bertambah 1 elemen, jika ada tempat
*/
//kamus
//algoritma
if((*T).nEff<nMax){
(*T).nEff++;
(*T).Tab[(*T).nEff]=x;
}
}
void CetakTabel(TabInt T){
/* I.S: T terdefinisi, sembarang tidak kosong
T.S: T semua elemen T dicetak
*/
//kamus
int i;
//algoritma
for(i=1;i<=T.nEff;i++){
printf("<%d>",T.Tab[i]);
}
}
int getJumelm(TabInt T){
/*mengirim jumlah elemen pada T */
//Kamus
int Jumelm;
//algoritma
Jumelm=T.nEff;
return(Jumelm);
}
int getSUMTabel(TabInt T){
/* Menjumlahkan isi elemen */
//kamus
int SUMTabel;
int i;
//Algoritma;
SUMTabel=0;
for(i=1;i<=T.nEff;i++){
SUMTabel=SUMTabel+T.Tab[i];
}
return(SUMTabel);
}
void InversTabel(TabInt *T){
/* I.S: T terdefinisi, sembarang tidak kosong
T.S: T isi elemen T diinvers
*/
//Kamus
int awal,akhir;
int i;
int tmp;
//algoritma
awal=1;
akhir=(*T).nEff;
for(i=1;i<=(*T).nEff/2;i++){
tmp=(*T).Tab[awal];
(*T).Tab[awal]=(*T).Tab[akhir];
(*T).Tab[akhir]=tmp;
awal++;
akhir--;
}
}