Saya sudah membuat beberapa posting tentang operasi yang bisa dilakukan pada array, misalnya menambah (add), mengurangi(delete), mengganti (edit), dan melihat (view) satu index data saja. Setelah membuat post tentang fungsi, sekarang saya akan menggabungkan semua operasi array tersebut.
Dalam aplikasi array ini, saya menggunakan variable array dan variable biasa secara global. Hal ini untuk memudahkan dalam pemanggilan fungsi. berikut adalah kode programnya:
#include <stdio.h>
#include <conio.h>
void SemuaData();
void TambahAwal();
void TambahAkhir();
void SisipData();
void HapusData();
void HapusAkhir();
void HapusTengah();
void EditData();
void LihatData();
void InputData();
void opsi();
int data[100]={0};
int BanyakData,IndexAkses,BanyakAkses=0,index;
void main()
{
int pilihan,LetakAkses;
do
{
clrscr();
printf("Pilihan operasi: ");
printf("\n1. Input data");
printf("\n2. Tambah data");
printf("\n3. Ubah data");
printf("\n4. Hapus data");
printf("\n5. Lihat data");
printf("\n6. keluar program");
printf("\n\nPilihan anda: ");
scanf("%d",&pilihan);
switch(pilihan)
{
case 1:
clrscr();
InputData();
SemuaData();
getch();
break;
case 2:
do
{
clrscr();
printf("Letak penambahan data:");
printf("\n1. awal");
printf("\n2. sisipkan");
printf("\n3. akhir\n\n");
printf("pilihan anda: ");
scanf("%d",&LetakAkses);
switch(LetakAkses)
{
case 1:
do
{
clrscr();
TambahAwal();
SemuaData();
opsi();
scanf("%d",&pilihan);
}while(pilihan==1);
break;
case 2:
do
{
clrscr();
SisipData();
SemuaData();
opsi();
scanf("%d",&pilihan);
}while(pilihan==1);
break;
case 3:
do
{
clrscr();
TambahAkhir();
SemuaData();
opsi();
scanf("%d",&pilihan);
}while(pilihan==1);
break;
}
}while(pilihan==1);
break;
case 3:
do
{
clrscr();
EditData();
SemuaData();
opsi();
scanf("%d",&pilihan);
}while(pilihan==1);
break;
case 4:
do
{
clrscr();
HapusData();
SemuaData();
opsi();
scanf("%d",&pilihan);
}while(pilihan==1);
break;
case 5:
do
{
clrscr();
LihatData();
opsi();
scanf("%d",&pilihan);
}while(pilihan==1);
break;
}
printf("\n\nKeluar?\n");
printf("1. YA\n");
printf("2. TIDAK\n");
scanf("%d",&pilihan);
}while(pilihan==2);
}
void InputData()
{
printf("Jumlah input data: ");
scanf("%d",&BanyakData);
printf("Masukan data:\n");
for(index=0;index<BanyakData;index++)
{
printf("Data ke-%d: ",index+1);
scanf("%d",&data[index]);
}
}
void SemuaData()
{
printf("Data anda:");
for(index=0;index<BanyakData;index++)
printf("\nData ke-%d adalah: %d",index+1,data[index]);
}
void TambahAwal()
{
printf("Jumlah penambahan data:");
scanf("%d",&BanyakAkses);
for(index=0;index<BanyakData;index++)
{
data[BanyakData+BanyakAkses-index-1]=data[BanyakData-1-index];
}
printf("Masukan data tambahan:\n");
for(index=0;index<BanyakAkses;index++)
{
printf("Data ke-%d: ",index+1);
scanf("%d",&data[index]);
}
BanyakData=BanyakData+BanyakAkses;
}
void SisipData()
{
printf("Jumlah penambahan data: ");
scanf("%d",&BanyakAkses);
printf("Sisipkan pada urutan: ");
scanf("%d",&IndexAkses);
for(index=0;index<BanyakData-IndexAkses+1;index++)
{
data[BanyakData+BanyakAkses-index-1]=data[BanyakData-index-1];
}
printf("Masukan data:\n");
for(index=0;index<BanyakAkses;index++)
{
printf("Data ke-%d : ",index+1);
scanf("%d",&data[index+IndexAkses-1]);
}
BanyakData=BanyakData+BanyakAkses;
}
void TambahAkhir()
{
printf("Jumlah data: ");
scanf("%d",&BanyakAkses);
printf("Masukan data: \n");
for(index=0;index<BanyakAkses;index++)
{
printf("Data ke-%d: ",index+1);
scanf("%d",&data[BanyakData+index]);
}
BanyakData=BanyakData+BanyakAkses;
}
void EditData()
{
clrscr();
printf("Edit pada urutan: ");
scanf("%d",&IndexAkses);
printf("Data baru: ");
scanf("%d",&data[IndexAkses-1]);
}
void HapusData()
{
printf("Hapus pada urutan: ");
scanf("%d",&IndexAkses);
for(index=0;index<BanyakData-IndexAkses;index++)
{
data[IndexAkses-1-index]=data[IndexAkses-index];
}
BanyakData=BanyakData-1;
}
void LihatData()
{
clrscr();
printf("Lihat pada urutan: ");
scanf("%d",&IndexAkses);
printf("Data yang anda minta: %d",data[IndexAkses-1]);
}
void opsi()
{
printf("\n\nPilihan berikutnya:\n");
printf("1. Ulangi operasi\n");
printf("2. Kembali\n");
}
Read more...