#include <iostream>
#include <string>
using namespace std;
const int MAKSDATA =10;
class ArrayData
{
private:
string kota
[MAKSDATA];
int jumKota;
public:
//Konstruktor
ArrayData(void):jumKota(0)
{
}
//pilih
tindakan pada menu
int
pilihMenu()
{
char
pilihan ;
do
{
cout<<"menu:"<<endl;
cout<<"1.
Tambah Data"<<endl;
cout<<"2. Hapus data"<<endl;
cout<<"3. Tampilkan data"<<endl;
cout<<"4.selesai"<<endl;
cout<<"pilihan(1,2,3, atau 4 dan tenkan Enter):";
cin>>pilihan;
}
while
(pilihan<'1'||pilihan>'4');
return
pilihan;
}
//menampilkan
isi array
void
tampilkanData(void)
{
cout<<"isi array:";
for (int
j=0;j<jumKota;j++)
{
cout<<kota[j];
if (j
!=(jumKota-1))
cout<<"-";//beri pemisah antarkota
}
cout<<endl; //pindah baris
}
//menambah
data
bool
tambahData (string kotaBaru)
{
if(jumKota==MAKSDATA)
{
cout<<"Array sudah penuh"<<endl;
return
false; //gagal menambah kota
}
//cari
posisi penyisipan
int posisi
=-1;
for (int
j=0;j <jumKota;j++)
if(kotaBaru.compare(kota[j])<0)
{
posisi
=j;
break;
}
if (posisi
==-1)
{
//sisipkan di belakang
kota[jumKota]=kotaBaru;
jumKota = jumKota+1;
}
else
//kalau posisi tidak sama dengan -1
{
//sisispkan pada posisi
//a.Geser dulu
for(int j=jumKota-1;j >=posisi;j--)
kota[j+1]=kota[j];
//b.sisipkan
kota[posisi] =kotaBaru;
jumKota=jumKota+1;
}
return
true;
}
//menghapus
data
bool
hapusData(string kotaX)
{
//cari
posisi penghapusan
int posisi
=-1;
for(int
j=0;j<jumKota;j++)
{
if(kotaX.compare(kota[j])==0) //kalau sama
{
posisi=j;
break;
}
}
//kalau
tidak ditemukan
if
(posisi==-1)
{
return false; //gagal menghapus karena data
tdk ada
}
//penghapusan kota
if(posisi==(jumKota-1))
{
//hapus dibagian akhir
jumKota=jumKota-1;
}
else //kalau posisi tidak sama
//dengan
yang terakhir
{
//geser ke atas untuk menghapus
for
(int j = posisi+1;j <jumKota; j++)
kota[j-1]=kota[j];
jumKota =jumKota -1;
}
return
true;
}
};
int main ()
{
int pilihan;
//pilihan tindakan
string kotaX;
//kota yang akan dihapus atau ditambahka n
ArrayData
kota; //buat objek
//sisipkan 3
kota.Pastikan kota dalam keadaan urut
kota.tambahData("Medan");
kota.tambahData("Pontianak");
kota.tambahData("Surabaya");
kota.tampilkanData();
//proses interaksi
dengan pemakai
do
{
pilihan=kota.pilihMenu();
switch
(pilihan)
{
case'1':
cout<<"Penambahan data.kota:";
cin>>kotaX;
if(!kota.tambahData(kotaX))
cout<<"gagal menambah data.wadah penuh"
<<endl;
break;
case'2':
cout<<"penghapusan data.kota:";
cin>> kotaX;
if(!kota.hapusData(kotaX))
cout<<"Data yang akan dihapus tidak ditemukan"
<<endl;
break;
case'3':
kota.tampilkanData();
}
}
while (pilihan !='4');
return
0;
}
Hasil Program Dev C++ Array




Tidak ada komentar:
Posting Komentar