Anda di halaman 1dari 10

Menggunakan Array untuk Menyimpan Banyak Data

Misalkan kita ingin menyimpan nama-nama teman untuk data kontak.


Mungkin saja, kita akan menyimpannya seperti ini:
string namaKontak1 = "Ayu";
string namaKontak2 = "Bunga";
string namaKontak3 = "Cyntia";
string namaKontak4 = "Deni";
string namaKontak5 = "Elisa";
Hal ini boleh-boleh saja..
Akan tetapi, masalahnya:
“Gimana nanti kalau ada banyak sekali data, pasti capek bikin variabel terus?”
Karena itu, kita membutuhkan Array.

Menggunakan Perulangan dan Array


Menggunakan perintah cout secara berulang untuk mencetak semua isi array.
cout << "Nilai ke-1: " << nilai[0] << endl;
cout << "Nilai ke-2: " << nilai[1] << endl;
cout << "Nilai ke-3: " << nilai[2] << endl;
cout << "Nilai ke-4: " << nilai[3] << endl;
cout << "Nilai ke-5: " << nilai[4] << endl;
Kalau isi array-nya ada ribuan, apa kamu akan sanggup menulis ini berulang-ulang?
Tentu saja tidak!
Karena itu, kita bisa memanfaatkan perulangan untuk mencetaknya.
Contoh: array_loop.cpp
#include <iostream>
using namespace std;
int main(){
// membuat array kosong
int nilai[5];
// mengisi array
nilai[0] = 32;
nilai[1] = 42;
nilai[2] = 76;
nilai[3] = 31;
nilai[4] = 57;
// mencetak isi array dengan perulangan
for(int i; i < 5; i++){
printf("Nilai ke-%d: %d\n", i, nilai[i]);
}
return 0;
}

Jauh lebih sederhana ‘kan…


Tapi ada yang masih kurang.
Pada perulangan di atas kita memberikan batas maksimal secara manual, yaitu:  i < 5.
Nilai 5 seharusnya diganti dengan ukuran atau jumlah isi array.
Sehingga akan menjadi seperti ini:
int length = sizeof(nilai) / sizeof(*nilai);
for (int i = 0; i < length; i++){
printf("Nilai ke-1: %d\n", nilai[i]);
}

Mengambil Panjang Array


Ada dua cara untuk mendapatkan panjang array:
1. Partama cara seperti di atas (seperti bahasa C);
2. Menggunakan Class array dari C++.
Kita bahas dulu cara yang pertama..
Pada contoh di atas, kita menggunakan fungsi sizeof() untuk mengambil panajang atau
ukuran array.
Fungsi sizeof() sebenarnya akan mengambil ukuran memori dari array.
Misalkan saya punya array seperti ini:
int nilai[2] = {1, 2};
Isi array-nya berupa integer, tipe data integer memiliki ukuran 4 byte dalam memori. Maka
ukuran array tersebut adalah 8 byte.
Lalu bagaimana cara mendapatkan banyaknya isi array?
Karena di bahasa C belum memiliki fungsi khusus untuk mengambil banyaknya isi array.
Kita harus membaginya dengan panjang pointernya.
Contoh:
int array[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
/* ukuran array dalam byte */
int size = sizeof(array);
/* banyaknya isi array `array` */
int length = sizeof(array) / sizeof(*array);
Mari kita coba…
Buatlah program dengan nama panjang_array.cpp, kemudian isi dengan kode berikut:
#include <stdio.h>
void main(){
// membuat array
string contact[] = {"Ami", "Ayu", "Budi", "Agus", "Mila"};
// mengambil banyaknya isi array
int length = sizeof(contact) / sizeof(*contact);
printf("Banyaknya isi array nilai: %d\n", length);
}

Cara kedua, kita bisa gunakan Class Template dari C++. Class Template ini mulai


ditambahkan pada C++.
Contoh:
// membuat array dengan class
array<string, 5> names = {"Ali", "Abi", "Ami", "Mia", "Nia"};
// mengambil ukuran array
cout << names.size();
Tapi sebelum kita dapat menggunakan Class Template array<>, kita harus mengimpornya
dengan #include.
Contoh lengkap: array_class.cpp
#include <iostream>
#include <array>
using namespace std;

int main(){
array<string, 5> names = {"Ali", "Abi", "Ami", "Mia", "Nia"};
printf("Ada %d data di dalam array: \n", names.size());

for(int i = 0; i < names.size(); i++){


cout << i << ". " << names[i] << endl;
}
return 0;
}
Hasilnya:

Bisa dibilang, Class Template array ini adalah pengembangan dari cara yang sebelumnya.
Array dianggap sebagai sebuah objek..
Objek itu apa? Akan dipelajari matakuliah Objek Oriented Programming

Latihan: Program Hitung Rata-Rata


Anggap saja kita diminta untuk membuat program untuk menghitung tinggi rata-rata dari
sepuluh orang.
Pertama kita pasti akan membutuhkan sebuah array dengan panjang 10 yang berisi
kumpulan tinggi badan.
int tinggi_badan[10] = {175, 165, 166, 157, 184, 156, 163, 176, 171, 169};
Berikutnya kita harus menghitung nilai rata-rata dari sekumpulan nilai tersebut.
#include <iostream>
using namespace std;
int main(){
// membuat array dari tinggi badan
int tinggi_badan[10] = {175, 165, 166, 157, 184, 156, 163, 176, 171, 169};

// length itu sama dengan n


int length = sizeof(tinggi_badan) / sizeof(tinggi_badan[0]);
int sum = 0;

for(int i = 0; i < length; i++){


sum += tinggi_badan[i];
}

// rata-rata tinggi badan


float rata_rata = (float)sum / (float)length;

printf("Rata-rata tinggi badan: %.2f\n", rata_rata);

return 0;
}

Studi Kasus Contoh Program Tentang Array di C++

#include <conio.h>
#include <iostream>
#include <string>
using namespace std;
int main()
{
int n;
string nama[10],status[10];
int nilai[10];
cout<<"Masukan Jumlah Data = ";
cin>>n;
cout<<endl;

for (int i=0; i<n; i++) {


cout<<endl;

cout<<"Data ke-"<<i+1<<endl;
cout<<"Masukan Nama = ";
cin>>nama[i];
cout<<"Masukan Nilai = ";
cin>>nilai[i];

if (nilai[i]<=50) {
status[i]="Tidak Lulus";
} else {
status[i]="Lulus";
}
}
cout<<endl;
cout<<"DAFTAR NILAI MAHASISWA"<<endl;
cout<<"-------------------------------------------"<<endl;
cout<<"No Nama Nilai Status "<<endl;
cout<<"-------------------------------------------"<<endl;
for (int i=0; i<n;i++) {
cout<<i+1<<" "<<nama[i]<<" "<<nilai[i]<<" "<<status[i]<<endl;
cout<<"-------------------------------------------"<<endl;
} getch();
}

Latihan 1
• Deklarasikan sebuah array of character dengan ukuran 10.
• Isilah character dengan nilai dari keyboard (pengguna)
• Tuliskan ke layar semua elemen array
• Hitunglah ada berapa banyak character ‘A’ yang ada dalam array
Penyelesaian
#include <iostream>
#include using namespace std; int main ()

{
int i, countA; char TabChar[10]; // deklarasi array of character berukuran 10 //
// mengisi array of character dari masukan pengguna
for (i=0; i> TabChar[i]; } // menuliskan kembali ke layar
count A = 0;
for (i=1; i<< TabChar[i] << endl;
if (TabChar[i] = ‘A’)
{ countA++; //sekaligus menghitung kemunculan A }
} cout << "Banyaknya A: " << countA << endl;
return 0;
}
Latihan 2
• Lakukanlah modifikasi terhadap program maxArray.cpp untuk mencari elemen array
bernilai minimum
• Lakukanlah juga modifikasi terhadap program idxMaxArray.cpp untuk mencari indeks
elemen array bernilai minimum

maxArray.cpp

#include <iostream>

#include using namespace std;


int main ()
{
int i, min; int TabInt[10];
//mencari nilai minimum
min=TabInt[0];
//inisialisasi min dgn elemen ke-0
for (i=1; i<< "Nilai minimum: " << min << endl;
return 0; }

idxMaxArray.cpp
#include using namespace std;
int main ()
{
int i, idxmin;
int TabInt[10];
// mencari nilai minimum
idxmin=0; //inisialisasi idxmin dgn 0
for (i=1; i<< "Indeks nilai minimum: " << idxmin << endl;
return 0;
}
Latihan 3
- Buatlah sebuah program yang menghitung frekuensi kemunculan sebuah nilai X di dalam
suatu array. Nilai X didapatkan dari input pengguna.
-Buatlah sebuah program KemunculanTerakhir yang mencari indeks array terakhir IX yang
berisi suatu nilai X. IX akan bernilai -1 jika X tidak terdapat di mencari indeks array terakhir
IX yang berisi suatu nilai X. IX akan bernilai -1 jika X tidak terdapat di dalam TabInt.
Contoh: TabInt={4,3,7,6,3,8,4,3,6}, X=3, maka IX=7

#include <iostream>
#include using namespace std;

int main ()
{
int frek, i, X;
int TabInt[10];
// mengisi data nilai dari input user
for (i=0; i> TabInt[i]; {
} cin >> X; // Nilai yang dicari // menghitung frekuensi X
cout << "Data input: "; frek = 0;
for (i=0; i<< "Frekuensi " << X << " = " << frek << endl;
return 0;
}

#include using namespace std;


int main ()
{
int TabInt[10];
// mengisi data nilai dari input user
for (int i=0; i> TabInt[i];
{cin >> TabInt[i]; }
cin >> X; // mencari suatu nilai, yaitu X i = 10; found = false;
// Mencari mundur dari indeks terakhir
while ((i >= 0) && (!found))
{ if (TabInt[i]==X)
{ found = true; }
else { i--; } }
// i = -1 atau found IX = i;
cout << "Indeks terakhir " << X << " : " << IX << endl;
return 0;
}
Latihan 4
• Buatlah sebuah program yang mendeklarasikan sebuah array of integer berukuran 100,
mengisi array sampai salah satu dari 2 kondisi ini terpenuhi: – Array terisi penuh – Pengguna
mengisikan -999 (tidak termasuk sebagai elemen array)
• Tuliskan ke layar berapa banyak elemen array dan jumlah total seluruh elemen

#include using namespace std;


int main () {
int i, sum, Neff; int TI[100];
// mengisi data nilai dari input user
cin >> X;
i = 0;
while ((X != -999) && (i < 100))
{
while ((X != -999) && (i < 100))
{ TI[i] = X; cin >> X; i++; } // X = -999 atau i = 100 Neff = i;
// menghitung total isi array
i = 0; sum = 0;
while (i < Neff)
{ sum = sum + TI[i]; i++; }
// i = Neff
cout << "Banyaknya elemen = " << Neff << endl;
cout << "Jumlah total elemen = " << sum << endl;
return 0;
}

Anda mungkin juga menyukai