ARRAY
Array adalah kumpulan data bertipe sama yang menggunakan nama sama. Dengan menggunakan
array, sejumlah variabel dapat memakai nama yang sama. Antara satu variabel dengan
variabel lain di dalam array dibedakan berdasarkan subscript. Sebuah subscript berupa
bilangan di dalam kurung siku.
Array dapat dibedakan menjadi :
1.
Array berdimensi satu
2.
Array berdimensi dua
3.
Array berdimensi tiga
Array Berdimensi Satu
Contoh array berdimensi satu, misalnya menginputkan
5 buah data temperatur. Dan kelima data tersebut disimpan pada array bernama
suhu.
Contoh 1 :
#include
#include
void main()
{
float suhu[5];
// array dengan 5 elemen bertipe float
// Membaca data dari keyboard dan meletakkan ke array
cout << "Masukkan 5 buah data suhu" << endl;
for (int i=0; i<5; i++)
{
cout << i + 1 << " : "; cin >> suhu[i];
}
// Menampilkan isi array ke layar
cout << "Data suhu yang dimasukkan : " << endl;
for (i=0; i<5; i++)
cout << suhu[i] << endl;
}
Mendefinisikan array
Float suhu[5]; float : Tipe elemen array suhu : Nama array [5] : Jumlah elemen
array Maka array suhu dapat menyimpan data sebanyak 5 buah. 2 Subscript dari array selalu dimulai
dari nol. Misal, jika jumlah elemen array [5], maka index dari array tersebut
yaitu 0, 1, 2, 3, 4. 2 Mengakses
elemen array Setelah suatu array didefinisikan, elemen array dapat diakses
dengan bentuk : suhu[i] menyatakan “elemen suhu dengan subscript sama dengan i”
Perintah seperti cin >> suhu[i]; berarti “membaca data dari keyboard dan
meletakkan ke elemen nomor i pada array suhu”.
Perintah seperti cout >> suhu[i]; berarti “menampilkan elemen bernomor i
pada array suhu”.
Contoh 2 :
#include
#include
const int jum_data = 5;
void main()
{
float suhu[jum_data]; // array suhu
float total; // untuk menampung total suhu
// Membaca data dari keyboard dan meletakkan ke array
cout << "Masukkan 5 buah data suhu" << endl; for (int
i=0; i<5; i++) { cout << i + 1 << " : "; cin >>
suhu[i];
}
// Menghitung nilai rata-rata
total = 0; // Mula-mula diisi dengan nol
for(i=0; i<< "Suhu rata-rata= " << total/jum_data
<< endl; } 2 Memberikan
nilai awal terhadap array Seperti halnya variabel biasa, array juga dapat
diberi nilai awal (diinisialisasikan) pada saat didefinisikan. Misalnya: int jum_hari[12]={
31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; Catatan: C++ secara otomatis
akan memberikan nilai awal nol terhadap array yang bersifat global. Jika
bersifat lokal, maka harus diatur terlebih dahulu. Contoh 3 : #include
#include
#include
void main()
{
// Pendefinisian array jum_hari dan pemberian nilai awal
int jum_hari[12]={ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
// Tampilkan isi jum_hari
cout << "Masukkan 5 buah data suhu" << endl; for (int
i=0; i<12; i++) { cout << "jum_hari[" << i <<
"] =" << jum_hari[i] << endl; } } Array Berdimensi Dua
Sebagai gambaran, data kelulusan dari jurusan Teknik Informatika, Manajemen
Informatika, dan Teknik Komputer dari tahun 1992 hingga 1995. Nama 1992 1993
1994 1995 Teknik Informatika 35 45 80 120 Manajemen Informatika 100 110 70 101
Teknik Komputer 10 15 20 17 2
Mendefinisikan array berdimensi dua Bentuk diatas dapat dibentuk dalam array
berdimensi dua, pendefinisiannya : int nilai[3][4]; Pada pendefinisian di atas
: - 3
menyatakan jumlah baris (mewakili nama) - 4 menyatakan jumlah kolom (mewakili
nilai) 2 Mengakses
array berdimensi dua Masing-masing elemen di dalam array berdimensi dua dapat
diakses dengan bentuk : Baris dan kolom dimulai dari 0. Contoh pengaksesan
elemen array berdimensi dua : 1. data_lulus[1][2] = 5; Merupakan instruksi
untuk memberikan nilai 5 ke baris 1 kolom 2. 2. cout << data_lulus[1][2];
Merupakan perintah untuk menampilkan elemen data_lulus dengan subscript pertama
(baris) berupa 1 dan subscript kedua (kolom) bernilai 2. Contoh 4 : #include
#include
void main()
{
int data_lulus[3][4]; // Array berdimensi dua
int tahun, jurusan;
// Memberikan data ke elemen array data_lulus
data_lulus[0][0] = 35; // TI - 1992
data_lulus[0][1] = 45; // TI - 1993
data_lulus[0][2] = 90; // TI - 1994
data_lulus[0][3] = 120; // TI - 1995
data_lulus[1][0] = 100; // MI - 1992
data_lulus[1][1] = 110; // MI - 1993
data_lulus[1][2] = 70; // MI - 1994
data_lulus[1][3] = 101; // MI - 1995
data_lulus[2][0] = 10; // TK - 1992
data_lulus[2][1] = 15; // TK - 1993
data_lulus[2][2] = 20; // TK - 1994
data_lulus[2][3] = 17; // TK - 1995
// Proses untuk memperoleh informasi kelulusan
while(1)
{
cout << "Jurusan (0 = TI, 1 = MI, 2 = TK): "; cin >>
jurusan;
if ((jurusan==0) || (jurusan==1) || (jurusan==2))
break; // keluar dari while
}
while(1)
{
cout << "Tahun (1992 - 1995): "; cin >> tahun;
if ((tahun >= 1992) && (tahun <= 1995)) { tahun -= 1992; //
konversi ke 0, 1, 2 atau 3 break; // keluar dari while } } cout <<
"Jumlah yang lulus = " << data_lulus[jurusan][tahun] <<
endl; } Melewatkan Array Sebagai Argumen Fungsi 2 Array juga dapat berkedudukan
sebagai parameter di dalam fungsi. Misalnya : const int MAKS = 5 int
data[MAKS]; Dari data di atas, fungsi yang menerima array di atas dapat dibuat
prototipe-nya sebagai berikut : void inisialisasi_data(data[MAKS]); Dan
deklarasi fungsi sebagai berikut : void inisialisasi_data(data[], int &
jumlah); Pada contoh kedua, tanda di dalam tanda [ ] tidak terdapat apa-apa dan
parameter kedua digunakan untuk menyatakan jumlah elemen array serta
berkedudukan sebagai referensi (bisa diubah dari dalam fungsi
inisialisasi_data()). Contoh 5 : #include
#include
#include
#include
const int MAKS = 100;
void inisialisasi_data(int data[], int &jumlah);
void main()
{
int data_acak[MAKS]; // array berdimensi satu
int jumlah;
inisialisasi_data(data_acak, jumlah);
// Tampilkan elemen-elemen array
cout << "Isi array : " << endl; for(int i=0; i<<
data_acak[i] << endl; } // Definisi fungsi void inisialisasi_data(int
data[], int &jumlah) { while(1) { cout << "Berapa jumlah data
yang ingin" << endl; cout << "dibangkitkan secara acak (5
- 100) ? "; cin >> jumlah;
if ((jumlah >= 5) && (jumlah<=100)) break; } randomize(); //
Menyetel pembangkit bilangan acak for(int i=0; i
#include
#include
const int BARIS = 5;
const int KOLOM = 5;
void isi_matriks(float mat[][KOLOM], int &brs, int &kol);
void main()
{
float matriks[BARIS][KOLOM];
int jum_baris, jum_kolom;
int i,j;
isi_matriks(matriks, jum_baris, jum_kolom);
cout << "\nMatriks yang terbentuk: " << endl; cout
<< setiosflags(ios::fixed); // ios::fixed --> mengatur angka yg
dimasukkan dalam bentuk angka biasa
// bukan dalam bentuk eksponen
for (i=0; i<< setw(12) << setprecision(5) << matriks[i][j];
// setprecision(5) --> mengatur banyak angka dibelakang koma
cout << endl; } } // Definisi Fungsi void isi_matriks(float mat[][KOLOM],
int &brs, int &kol) { int i,j; cout << "Pastikan jumlah
baris dan kolom" << endl; cout << "tidak melebihi 5"
<< endl; cout << "Jumlah baris = "; cin >> brs;
cout << "Jumlah kolom = "; cin >> kol;
for (i=0; i< brs; i++) for (j=0; j<< "Elemen " << i
<< ", " << j << " = "; cin >>
mat[i][j];
}
}
2 Mengurutkan
Data
Salah satu mengurutkan data adalah dengan menggunakan bubble sort. Pengurutan
dilakukan dengan membandingkan setiap elemen dengan seluruh elemen yang
terletak sesudah posisinya.
Contoh 7 :
#include
#include
#include
void main()
{
int i, j, tmp, jumdata;
int data[] = {5, 100, 20, 31, 77, 88, 99, 20, 55, 1};
jumdata = sizeof(data)/sizeof(int);
// Menampilkan data
cout << "Data semula: " << endl; for(i=0; i<<
setw(4) << data[i]; cout << endl; // Pindah baris // Mengurutkan
data for(i=0; i data[j])
{
tmp = data[i];
data[i] = data[j];
data[j] = tmp;
}
// Menampilkan data
cout << "Data setelah diurutkan: " << endl;
for (i=0; i
cout << setw(4) << data[i];
cout << endl; // Pindah baris
}