#Include : C++ Apakah Array?
#Include : C++ Apakah Array?
Apakah Array?
Contoh Kasus : Suatu universitas ingin mendata nilai mahasiswa di sutau kelas dengan banyak
mahasiswa 10 orang. Dari semua nilai yang telah dimasukan tersebut ingin ditampilkan kembali
dan dicari nilai rata-ratanya.
Untuk membuat program dengan ketentuan seperti diatas, ada beberapa cara untuk
memecahkannya :
Program 1 : Tanpa menggunakan array
#include <stdio.h>
#include <conio.h>
void main()
{
int n1,n2,n3,n4,n5,n6,n7,n8,n9,n10;
float total, ratarata;
// Pembacaan semua nilai dari keyboard
printf(“Pemasukan data nilai mahasiswa : \n”);
printf(“Nilai mahasiswa Ke-1 : “);scanf(“%d”,&n1);
printf(“Nilai mahasiswa Ke-2 : “);scanf(“%d”,&n2);
/* diulang dari nilai ke-3 sampai terakhir */
printf(“Nilai mahasiswa Ke-10: “);scanf(“%d”,&n10;
// perhitungan total dan rata-rata
total=n1+n2+n3+n4+n5+n6+n7+n8+n9+n10;
ratarata=total/10;
// Menampilkan data nilai yang telah dimasukan
printf(“Nilai mahasiswa Ke-1 : %3d\n”,n1);
printf(“Nilai mahasiswa Ke-2: %3d\n”,n2);
/* diulang dari nilai ke-3 sampai terakhir */
printf(“Nilai mahasiswa Ke-10 : %3d\n”,n10);
// Menampilkan nilai rata-rata
printf(“Rata-rata kelas : %6.2f\n”,ratarata);
getch();
}
Dengan menggunakan cara diatas, sebenarnya programnya telah mencukupi, tetapi kalau nilai
yang akan diolah menjadi lebih banyak, maka pendeklarasian variabel n harus dilakukan sebanyak
yang diperlukan. Jadi kalau data yang akan diolah sebanyak 100 buah, maka pendeklarasian dan
pembacaan datanya pun dilakukan sebanyak 100 kali. Dan perhitungannya juga. Rumus
perhitungan total pun menjadi berubah. Pemrograman di atas sebenarnya sederhana tetapi bisa
sangat merepotkan. Oleh karena
Array 1 dimensi
Solusi kedua dari kasus diatas adalah dengan menggunakan array. Array adalah suatu variabel yang
dapat menampung lebih dari satu data dengan tipe data yang sama dan dibedakan berdasarkan
nomor indexnya. Dalam bahasa C, array selalu dimulai dari index ke-0 (nol).
Contoh deklarasi array :
N N N N N N N N N
[ [ [ [ [ N [ [ [ [
0 1 2 3 4 5 6 7 8 9
] ] ] ] ] ] ] ] ] ]
Untuk memasukan suaut elemen data dalam array, perintah yang dilakukan ditulis seperti
pembacaan data variabel biasa hanya perbedaannya harus ditulis untuk index ke berapa.
Perintah diatas berarti pembacaan data dari keyboard untuk data bertipe integer (%d) dan
dimasukan ke variabel array index ke-2 (urutan ke-3).
Karena nomor elmeen dari array bisa diisi dengan variabel, berarti kita bisa melakukan perulangan
(loop) untuk melakukan pembacaan data dari elemen pertama sampai elemen terakhir.
getch();
Array 2 Dimensi
Array 2 dimensi biasanya digunakan untuk menyimpan data dalam bentuk matrik. Index Array 2
dimensi terdiri dari index baris dan kolom.
Pendeklarasian array 2 dimensi adalah :
Tipedata namaarray[b][k];
Dimana : b adalahbanyak baris dan k adalah banyak kolom.
Contoh
int matrik[5][5];
Perintah di atas akan membuat sebuah array 2 dimensi yang kalau digambarkan adalah sebagai
berikut :
inde
x 0 1 2 3 4
main()
{
TampilNama();
TampilNama();
TampilNama();
}
Dalam program di atas, ada sebuah fungsi yang bernama TampilNama(), yang berguna untuk
menampilkan data Nama, Alamat, dan Telepon. Dalam program utama (fungsi main() ), cara
pemanggilan fungsi tersebut adalah dengan menulis nama fungsinya (dalam hal ini
TampilNama() ). Jadi program di atas akan menampilkan isi fungsi TampilNama() sebanyak 3 kali.
Fungsi di atas merupakan fungsi yang dipanggil tanpa memakai parameter. Untuk melihat contoh
fungsi berparameter, perhatikan program di bawah ini.
void Kotak(int X1,int Y1, int X2,int Y2,int Bingkai,int Latar)
{
int i;
textcolor(Bingkai);
textbackground(Latar);
gotoxy(X1,Y1);cprintf(“é”); /* alt+218 */
gotoxy(X1,Y2);cprintf(“%c”,192);
gotoxy(X2,Y1);cprintf(“%c”,191);
gotoxy(X2,Y2);cprintf(“%c”,217);
for (i=X1+1;i<=X2-1;i++)
{
gotoxy(i,Y1);cprintf(“%c”,196);
gotoxy(i,Y2);cprintf(“%c”,196);
}
for(i=Y1+1;i<=Y2-1;i++)
{
gotoxy(X1,i);cprintf(“%c”,179);
gotoxy(X2,i);cprintf(“%c”,179);
}
}
main()
{
Kotak(1,1,80,24,WHITE,BLUE);// Memanggil Procedur Kotak
Kotak(2,2,15,23,WHITE,RED);
getch();
return 0;
}
Void Kotak merupakan sebuah fungsi yang akan membuat suatu kotak di layar sesuai dengan
koordinat yang diberikan di bagian parameter. Koordinat tersebut adalah koordinat kiri atas
(X1,Y1), dan koordinat titik kanan bawah (X2,Y2). Selain itu fungsi ini membutuhkan parameter
Bingkai yang berguna untuk menentukan warna bingkai kotak, dan juga parameter Latar yang
berguna untuk menentukan warna latar belakang kotak yang dibuat.
Pemanggilan Kotak(1,1,80,24,WHITE,BLUE) berguna untuk membuat kotak dengan posisi kiri atas
pada koordinat (1,1) dan posisi kanan bawah pada koordinat (80,24) dengan warna bingkai kotak
berwarna putih dengan latar belakang kotak berwarna biru.
Perulangan (LOOP)
Pendahuluan
Untuk memahami mengenai fungsi perulangan, coba lihatlah kasus sebagai berikut :
Buatlah suatu program untuk menampilkan angka dari 1 sampai dengan 5. Maka untuk kasus
tersebut program yang buat adalah sebagai berikut :
#include <stdio.h>
#include <conio.h>
main()
{
printf(“1\n”);
printf(“2\n”);
printf(“3\n”);
printf(“4\n”);
printf(“5\n”);
getch();
return 0;
}
Program di atas telah memenuhi yang diinginkan, tetapi jika bilangan yang akan ditampilkan
misalkan dari 1 sampai 1000, maka sangatlah merepotkan jika harus menulis angka 1 sampai
dengan 1000 secara manual. Oleh karena itu, di semua bahasa pemrograman terdapat suatu
mekanisme yang bernama loop (perulangan).
Ada beberapa jenis perulangan yang dapat dilakukan oleh bahasa pemrograman C, yaitu :
For
While
Do While
Label
> A>B Apakah Isi Variabel A lebih besar dari Isi Variabel B
< A<B Apakah Isi Variabel A lebih kecil dari Isi Variabel B
(A<=100)
&&(A>=80 Apakah A lebih kecil atau sama dengan dari 100 dan A lebih
&& ) besar atau sama dengan 80
(A>100)||
|| (A<0) Apakah A lebih besar dari 100 atau A lebih kecil dari 0
Contoh Kasus :
Di sebuah universitas penilaian yang dipakai adalah :
NilaiAkhir=20%*tugas+30%*uts+50%*uas
Nilai Akhir Index
>=80 A
>=68 B
>=56 C
>=45 D
>=0 E
Diluar nilai di atas, maka index adalah X (index tidak diketahui).
Data yang diinputkan adalah : tugas, uts, uas.
#include <stdio.h>
#include <conio.h>
main()
{
int tugas,uts,uas;
float nilaiakhir;
char index;
printf(“Nilai Tugas : “);scanf(“%i”,&tugas);
printf(“Nilai UTS : “);scanf(“%i”,&uts);
printf(“Nilai UAS : “);scanf(“%i”,&uas);
nilaiakhir=0.2*tugas+0.3*uts+0.5*uas;
printf(“Nilai Akhir : %f\n”,nilaiakhir);
if(nilaiakhir>=80)
index=’A';
else
if(nilaiakhir>=68)
index=’B';
else
if(nilaiakhir>=56)
index=’C';
else
if(nilaiakhir>=45)
index=’D';
else
if(nilaiakhir>=0)
index=’E';
else
index=’X';
printf(“Index : %c\n”,index);
getch();
return 0;
}
EKSEKUTIF(1
) BISNIS(2) EKONOMI(3)
scanf(“format”,&namavariabel);
Contoh :
int i,jam,menit,detik;
unsigned int j;
float f;
char nama[60];
scanf(“%i”,&i);
scanf(“%u”,&j);
scanf(“%f”,&f);
scanf(“%i %i %i”,&jam,&menit,&detik);
scanf(“%s”,nama);
Fungsi scanf() kurang begitu bagus jika dipakai untuk pembacaan string. Karena data yang
tersimpan adalah hanya sampai menemukan spasi, maksudnya jika kita mengisikan 2 buah kata
dengan pemisah spasi, maka data yang masuk ke variabel tersebut hanyalah kata yang pertama.
Oleh karena itu, pembacaan data bertipe string biasanya menggunakan perintah gets() yang
bentuk umumnya adalah :
gets(namavariabel);
Contoh :
gets(nama);
gets(alamat);
Untuk pembacaan data bertipe char, selain dengan menggunakan scanf() dengan format %c, bisa
juga dengan menggunakan fungsi getch() atau getche(). Perbedaan dari getch() dan getche()
adalah getch() digunakan untuk membaca data bertipe char tanpa menampilkannya di layar, dan
getche() digunakan untuk membaca data bertipe char dengan menampilkan data karakternya di
layar.
Contoh :
#include <stdio.h>
#include <conio.h>
main()
{
char a,b;
printf(“Masukan Huruf pertama : “);
a=getch();
printf(“Masukan Huruf kedua : “);
b=getche();
printf(“Data yang dimasukan adalah %c dan %d\n”,a,b);
getch();
return 0;
}
Contoh Program
Contoh Kasus :
Di suatu perusahaan, data penggajian dihitung dengan ketentuan sebagai berikut :
Gaji Pokok : Rp. 5000000
Gaji Lembur/jam : Rp. 5000
Total Gaji Lembur : Lama Lembur * Gaji Lembur/jam
Gaji Kotor : Gaji Pokok + Total Gaji Lembur
Pajak : 10%
Gaji Bersih : Gaji Kotor – Pajak
Data yang diinputkan adalah : Nama Pegawai, Lama Lembur.
Program ke-1 (tanpa memformat tampilan data).
#include <stdio.h>
#include <conio.h>
main()
{
int jamlembur;
long int gajipokok=500000,gajikotor,totalgajilembur;
float pajak,gajibersih;
char nama[50];
clrscr();
printf(“Nama Pegawai : “);gets(nama);
printf(“Lama Lembur : “);scanf(“%i”,&jamlembur);
totalgajilembur=(long int)5000*jamlembur;
gajikotor=gajipokok+totalgajilembur;
pajak=0.1*gajikotor;
gajibersih=gajikotor-pajak;
clrscr();
printf(“Hasil Perhitungan\n”);
printf(“Nama Pegawai : %s\n”,nama);
printf(“Gaji Pokok : Rp. %li\n”,gajipokok);
printf(“Lama Lembur : %i jam\n”,jamlembur);
printf(“Total Gaji Lembur : Rp. %li\n”,totalgajilembur);
printf(“Gaji Kotor : Rp. %li\n”,gajikotor);
printf(“Pajak (10%%) : Rp. %f\n”,pajak);
printf(“Gaji Bersih : Rp. %f\n”,gajibersih);
getch();
return 0;
}
Program di atas akan menghasilkan tampilan program seperti di bawah ini :
Hasil Perhitungan
Nama Pegawai : Shelly Septiani
Gaji Pokok : Rp. 500000
Lama Lembur : 50 jam
Total Gaji Lembur : Rp. 250000
Gaji Kotor : Rp. 750000
Pajak (10%) : Rp. 75000.000000
Gaji Bersih : Rp. 675000.000000
| Atau (OR)
^ XOR
~ NOT (Komplemen)
Seluruh operator manipulasi bit hanya dikenakan pada operand / variabel / angka yang bertipe
bilangan bulat (int, char, long).
Prioritas eksekusinya adalah
~<< >>
&
TertinggiTerenda ^
h |
Tabel Kebenaran dari tiap operator manipulasi bit adalah :
A B ~A A&B A|B A^B
0 0 1 0 0 0
0 1 1 0 1 1
1 0 0 0 1 1
1 1 0 1 1 0
Contoh :
#include <stdio.h>#include <conio.h>
main()
{
unsigned int x,y,and,or,not,xor;
x=78;// 41h
y=520;// 208h
#define PI 3.14
#define pembuat “Wahyu Setiawan”
main()
{
float radius=10,keliling,luas;
keliling=2*PI*radius;
luas=PI*radius*radius;
printf(“Perhitungan Lingkaran\nDibuat Oleh : %s\n”,pembuat);
printf(“======================\n”);
printf(“Radius : %6.2f\n”,radius);
printf(“Keliling : %6.2f\n”,keliling);
printf(“Luas : %6.2f\n”,luas);
getch();
return 0;
}
Jika dieksekusi, akan menghasilkan :
Perhitungan LingkaranDibuat Oleh : Wahyu Setiawan
======================
Radius : 10.00
Keliling : 62.80
Luas : 314.00
Ketika program dieksekusi, maka compiler akan mengganti semua PI dengan nilai 3.14 dan
pembuat dengan “Wahyu Setiawan”. Jadi ketika kita ingin menggunakan nilai PI yang lebih exact,
maka pada define PI, nilai 3.14 diganti dengan 22.0/7.
Tipe data ini mempunyai jangkauan dari 0 sampai 255 atau karakter ASCII ke 0 sampai karakter
ASCII 255. Tipe data karakter bisa ditampilkan sebagai suatu karakter atau sebagai suatu bilangan.
Hal ini tergantung dari bagaimana penulisannya apakah dianggap sebagai karakter atau sebagai
bilangan.
Untuk menuliskan isi dari data bertipe char adalah dengan menggunakan printf dengan format
penulisannya menggunakan tanda %c kalau ingin ditampilkan sebagai suatu karakter atau dengan
%i jika ingin ditampilkan sebagai suatu angka.
Pemberian nilai kepada suatu karakter digunakan perintah sebagai berikut :
karakter=’A’;
Atau
karakter=65;
Kedua cara tersebut menghasilkan suatu efek yang sama yaitu memberikan nilai 65 atau karakter
A ke variabel karakter. Kalau pengisian variable ingin menggunakan karakter maka karakter yang
akan dimasukan harus diapit dengan tanda apostrof.
Untuk melihat nilai yang ada dalam suatu variable yang bertipe char gunakan perintah berikut :
Contoh program
//Program Ke-2 Nama File : Lat2.CPP
#include <stdio.h>
#include <conio.h>
main()
{
char k1,k2;
k1=’A’;
k2=k1;
printf(“Nilai variable K1 adalah %c\n”,k1);
printf(“Nilai variable K2 dalam bentuk angka = %d\n”,k2);
getch();
return 0;
}
Hasil dari eksekusi program adalah :
int a;
unsigned int b;
char c;
long d;
Contoh Program :
#include <stdio.h>
#include <conio.h>
main()
{
int a=1000,b=64000;
unsigned int c=64000;
printf(“Nilai yang telah dimasukan\na: %i dan b: %i\n”,a,b);
printf(“Nilai yang telah dimasukan : %u\n”,c);
getch();
return 0;
}
Perintah di atas akan menampilkan hasil seperti di bawah ini :
a: 1000 dan b: -1536
Nilai yang telah dimasukan : 64000
char nama[50];
char *alamat;
Contoh program :
#include <stdio.h>
#include <conio.h>
main()
{
char nama[50]; //deklarasi dengan cara array
char *alamat; //deklarasi dengan cara pointer
printf(“Nama : “);scanf(“%s”,nama);
printf(“Alamat : “);gets(alamat);
printf(“Data yang telah dimasukan adalah : \n”);
printf(“Nama : %s\nAlamat : %s\n”,nama,alamat);
getch();
return 0;
}
Catatan Pemilihan tipe data harus hati-hati. Pertimbangkan jangkauan yang dimiliki
oleh tipe data yang dipilih. Kesalahan dalam memilih tipe data akan
menimbulkan suatu hasil yang tidak diperkirakan. Contoh :
int a=32000;
int b=769;
int c;
c=a+b;
printf(“%i + %i = %i\n”,a,b,c);
Operator-Operator Perhitungan
Untuk melakukan perhitungan-perhitungan data, maka diperlukan operator-operator
perhitungannya. Operator-operator yang paling umum dipakai dalam pemrograman dengan bahasa
C adalah :
Operator Contoh Arti
* c=a*b Variable c diisi dari isi variable a dikali dengan isi variable b
/ c=a/b Variable c diisi dari isi variable a dibagi oleh isi variable b
Contoh program :
#include <stdio.h>
#include <conio.h>
main()
{
int x=20, y=8, z;
clrscr();
printf(“X = %d dan Y = %d\n”,x,y);
printf(“X / Y = %d\n”,x/y);
printf(“X %% Y = %d\n”, x % y);
x+=2;
printf(“Nilai X sekarang : %i\n”,x);
x++;
printf(“Nilai X setelah X++ : %i\n”,x);
printf(“Nilai Y : %d\n”,y++);
printf(“Nilai Y setelahnya : %d\n”,y);
z=++x;
printf(“Nilai Z : %d\n”,z);
getch();
return 0;
}
#define maks 5
using namespace std;
typedef struct
{
//tugas yogi pratama
int nik;
char nama[31];
int ttl;
int alamat;
char sex;
char kerja[21];
int terhapus;
char agama[11];
char statka[11];
char warga[11];
}ktp_penduduk;
ktp_penduduk penduduk[maks];
typedef struct
{
char tempat[11];
int tgl;
int bulan;
int tahun;
}pend_ttl;
pend_ttl ttl[maks];
typedef struct
{
int rt_rw;
char desa_kel[21];
char kecamatan[21];
char kota[21];
int kodepos;
}pend_alamat;
pend_alamat alamat[maks];
int main (int argc,char*argv[])
{
int y,g, cari, ketemu,pilih;
char jawab;
awal:
system("cls");
cout<<"------ MENU ------"<<endl;
cout<<" 1 : memasukkan data "<<endl;
cout<<" 2 : melihat data yang sudah dimasukkan "<<endl;
cout<<" 3 : mencari data yang sudah dimasukkan "<<endl;
cout<<" 4 : menghapus data yang sudah dimasukkan "<<endl;
cout<<" 5 : memperbaiki data yang telah dimasukkan "<<endl;
cout<<"masukkan pilihan anda = ";cin>>pilih;
cout<<endl;
switch(pilih)
{
case 1 :
cout<<"berapa banyak data:";cin>>g;
cout<<endl;
//input data//
cout<<"Masukan Data Warga"<<endl;
cout<<"------------------"<<endl<<endl;
for(y=0;y<g;y++)
{
cout<<"NIK : ";cin>>penduduk[y].nik;
cout<<"Nama : ";fflush(stdin);cin.get(penduduk[y].nama,30);
cout<<"ttl "<<endl;
cout<<"tempat :";fflush(stdin);cin.get(ttl[y].tempat,10);
cout<<"tanggal :";cin>>ttl[y].tgl;
cout<<"bulan :";cin>>ttl[y].bulan;
cout<<"tahun :";cin>>ttl[y].tahun;
cout<<"Jenis Kelamin(p/w) : ";cin>>penduduk[y].sex;
cout<<"Alamat "<<endl;
cout<<"RT/RW :";cin>>alamat[y].rt_rw;
cout<<"Desa/kel :";fflush(stdin);cin.get(alamat[y].desa_kel,20);
cout<<"Kecamatan :";fflush(stdin);cin.get(alamat[y].kecamatan,20);
cout<<"kota :";fflush(stdin);cin.get(alamat[y].kota,20);
cout<<"Kode pos :";cin>>alamat[y].kodepos;
cout<<"agama :";fflush(stdin);cin.get(penduduk[y].agama,10);
cout<<"status kawin(menikah/belum) :";fflush(stdin);cin.get(penduduk[y].statka,10);
cout<<"Pekerjaan : ";fflush(stdin);cin.get(penduduk[y].kerja,21);
cout<<"kewarganegaraan :";fflush(stdin);cin.get(penduduk[y].warga,10);
cout<<"berlaku hingga : 15 - 01 - 2017"<<endl;
penduduk[y].terhapus = 0;
}
break;
/*----view data---*/
case 2:
cout<<endl;
cout<<"Data Warga"<<endl;
cout<<"----------"<<endl<<endl;
for(y=0;y<g;y++)
{
if (penduduk[y].terhapus == 0)
cout<<"----------------------------------------------------|"<<endl;
cout<<" nik nama ttl sex |"<<endl;
cout<<"----------------------------------------------------|"<<endl;
cout<<" tempat tgl bln thn |"<<endl;
cout<<"----------------------------------------------------|"<<endl;
cout<<setw(2)<<penduduk[y].nik<<setw(8)<<penduduk[y].nama<<setw(8)<<ttl[y].tempat<<
setw(5)<<
ttl[y].tgl<<setw(5)<<ttl[y].bulan<<setw(7)<<ttl[y].tahun<<setw(4)<<penduduk[y].sex<<endl;
cout<<"----------------------------------------------------|"<<endl<<endl;
cout<<"---------------------------------------------------------------------------------------------------------------
----------------|"<<endl;
cout<<" alamat pekerjaan agama
Status warga |"<<endl;
cout<<"---------------------------------------------------------------------------------------------------------------
----------------|"<<endl;
cout<<" Rt/rw Desa kecamatan kota kode pos
|"<<endl;
cout<<"---------------------------------------------------------------------------------------------------------------
----------------|"<<endl;
cout<<setw(6)<<alamat[y].rt_rw<<setw(11)<<
alamat[y].desa_kel<<setw(20)<<alamat[y].kecamatan<<setw(15)<<
alamat[y].kota<<setw(15)<<alamat[y].kodepos<<setw(18)<<penduduk[y].kerja<<setw(11)<
<penduduk[y].agama<<setw(13)
<<penduduk[y].statka<<setw(11)<<setw(15)<<penduduk[y].warga<<endl;
cout<<"---------------------------------------------------------------------------------------------------------------
----------------|"<<endl;
}
break;
/*----search data---*/
case 3: cout<<"Masukan NIK yang anda cari = ";cin>>cari; ketemu = 0;
for(y=0;y<g;y++)
{
if (cari == penduduk[y].nik)
ketemu = 1;
}
if (ketemu == 1)
cout<<"NIK warga ditemukan :"<<endl;
else
cout<<"NIK warga tidak ada "<<endl;
break;
/*---menghapus data--*/
case 4 : cout<<"Masukan NIK yang akan di hapus = "; cin>>cari;
for(y=0;y<g;y++)
{
if ((cari == penduduk[y].nik) && (penduduk[y].terhapus == 0))
{
penduduk[y].terhapus = 1;
}
}
cout<<"Data Warga yang Baru"<<endl;
for(y=0;y<g;y++)
{
if (penduduk[y].terhapus == 1)
cout<<"NIK : ";cin>>penduduk[y].nik;
cout<<"Nama : ";fflush(stdin);cin.get(penduduk[y].nama,30);
cout<<"ttl "<<endl;
cout<<"tempat :";fflush(stdin);cin.get(ttl[y].tempat,10);
cout<<"tanggal :";cin>>ttl[y].tgl;
cout<<"bulan :";cin>>ttl[y].bulan;
cout<<"tahun :";cin>>ttl[y].tahun;
cout<<"Jenis Kelamin(p/w) : ";cin>>penduduk[y].sex;
cout<<"Alamat "<<endl;
cout<<"RT/RW :";cin>>alamat[y].rt_rw;
cout<<"Desa/kel :";fflush(stdin);cin.get(alamat[y].desa_kel,20);
cout<<"Kecamatan :";fflush(stdin);cin.get(alamat[y].kecamatan,20);
cout<<"kota :";fflush(stdin);cin.get(alamat[y].kota,20);
cout<<"Kode pos :";cin>>alamat[y].kodepos;
cout<<"agama :";fflush(stdin);cin.get(penduduk[y].agama,10);
cout<<"status kawin(menikah/belum) :";fflush(stdin);cin.get(penduduk[y].statka,10);
cout<<"Pekerjaan : ";fflush(stdin);cin.get(penduduk[y].kerja,21);
cout<<"kewarganegaraan :";fflush(stdin);cin.get(penduduk[y].warga,10);
cout<<"berlaku hingga : 15 - 01 - 2017"<<endl;
}
break;
/*---edit data---*/
case 5: cout<<"Masukan NIK yang akan datanya akan diubah = ";cin>>cari;
for(y=0;y<g;y++)
{
if (cari == penduduk[y].nik && (penduduk[y].terhapus == 0))
{
cout<<"NIK : ";cin>>penduduk[y].nik;
cout<<"Nama : ";fflush(stdin);cin.get(penduduk[y].nama,30);
cout<<"ttl "<<endl;
cout<<"tempat :";fflush(stdin);cin.get(ttl[y].tempat,10);
cout<<"tanggal :";cin>>ttl[y].tgl;
cout<<"bulan :";cin>>ttl[y].bulan;
cout<<"tahun :";cin>>ttl[y].tahun;
cout<<"Jenis Kelamin(p/w) : ";cin>>penduduk[y].sex;
cout<<"Alamat "<<endl;
cout<<"RT/RW :";cin>>alamat[y].rt_rw;
cout<<"Desa/kel :";fflush(stdin);cin.get(alamat[y].desa_kel,20);
cout<<"Kecamatan :";fflush(stdin);cin.get(alamat[y].kecamatan,20);
cout<<"kota :";fflush(stdin);cin.get(alamat[y].kota,20);
cout<<"Kode pos :";cin>>alamat[y].kodepos;
cout<<"agama :";fflush(stdin);cin.get(penduduk[y].agama,10);
cout<<"status kawin(menikah/belum) :";fflush(stdin);cin.get(penduduk[y].statka,10);
cout<<"Pekerjaan : ";fflush(stdin);cin.get(penduduk[y].kerja,21);
cout<<"kewarganegaraan :";fflush(stdin);cin.get(penduduk[y].warga,10);
cout<<"berlaku hingga : 15 - 01 - 2017"<<endl;
penduduk[y].terhapus = 0;
}
}
cout<<"Data Warga yang baru"<<endl;
for(y=0;y<g;y++)
{
if ((penduduk[y].terhapus == 0))
cout<<"----------------------------------------------------|"<<endl;
cout<<" nik nama ttl sex |"<<endl;
cout<<"----------------------------------------------------|"<<endl;
cout<<" tempat tgl bln thn |"<<endl;
cout<<"----------------------------------------------------|"<<endl;
cout<<setw(2)<<penduduk[y].nik<<setw(8)<<penduduk[y].nama<<setw(8)<<ttl[y].tempat<<
setw(5)<<
ttl[y].tgl<<setw(5)<<ttl[y].bulan<<setw(7)<<ttl[y].tahun<<setw(4)<<penduduk[y].sex<<endl;
cout<<"----------------------------------------------------|"<<endl<<endl;
cout<<"---------------------------------------------------------------------------------------------------------------
----------------|"<<endl;
cout<<" alamat pekerjaan agama
Status warga |"<<endl;
cout<<"---------------------------------------------------------------------------------------------------------------
----------------|"<<endl;
cout<<" Rt/rw Desa kecamatan kota kode pos
|"<<endl;
cout<<"---------------------------------------------------------------------------------------------------------------
----------------|"<<endl;
cout<<setw(6)<<alamat[y].rt_rw<<setw(11)<<
alamat[y].desa_kel<<setw(20)<<alamat[y].kecamatan<<setw(15)<<
alamat[y].kota<<setw(15)<<alamat[y].kodepos<<setw(18)<<penduduk[y].kerja<<setw(11)<
<penduduk[y].agama<<setw(13)
<<penduduk[y].statka<<setw(11)<<setw(15)<<penduduk[y].warga<<endl;
cout<<"---------------------------------------------------------------------------------------------------------------
----------------|"<<endl;
}
break;
default : printf("maaf anda salah pilih \n");
}
cout<<"mau proses lagi (Y/T) : ";cin>>jawab;
if ((jawab=='Y')||(jawab=='y'))
goto awal;
system ("PAUSE");
return 0;
}