2 Array adalah kumpulan data bertipe sama yang menggunakan nama sama.
2 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.
2 Array dapat dibedakan menjadi :
1. Array berdimensi satu
2. Array berdimensi dua
3. Array berdimensi tiga
Array Berdimensi Satu
2 Contoh array berdimensi satu, misalnya menginputkan 5 buah data temperatur. Dan kelima data tersebut disimpan pada array bernama suhu.
Contoh 1 :
#include<iostream.h>
#include<conio.h>
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;
}
2 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<iostream.h>
#include<conio.h>
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<jum_data; i++)
total += suhu[i]; // Tambahkan isi suhu[i] ke total
cout << "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<iostream.h>
#include<conio.h>
#include<iomanip.h>
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<iostream.h>
#include<conio.h>
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<iostream.h>
#include<conio.h>
#include<stdlib.h>
#include<time.h>
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<jumlah; i++)
cout << 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<jumlah; i++)
data[i] = random(100);
}
2 Apabila array berdimensi dua hendak dilewatkan sebagai argumen fungsi, pendeklarasiannya dapat berupa semacam beriku t:
void isi_matriks(float mat[BARIS][KOLOM], int &brs, int &kol);
Atau cukup mengisikan pada bagian kolom saja, seperti contoh dibawah ini :
void isi_matriks(float mat[][KOLOM], int &brs, int &kol);
Contoh 6 :
#include<iostream.h>
#include<conio.h>
#include<iomanip.h>
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<jum_baris; i++)
{
for (j=0; j<jum_kolom; j++)
cout << 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<kol; j++)
{
cout << "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<iostream.h>
#include<conio.h>
#include<iomanip.h>
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<jumdata; i++)
cout << setw(4) << data[i];
cout << endl; // Pindah baris
// Mengurutkan data
for(i=0; i<jumdata-1; i++)
for(j=i+1; j<jumdata; j++)
if (data[i] > data[j])
{
tmp = data[i];
data[i] = data[j];
data[j] = tmp;
}
// Menampilkan data
cout << "Data setelah diurutkan: " << endl;
for (i=0; i<jumdata; i++)
cout << setw(4) << data[i];
cout << endl; // Pindah baris
}
Tidak ada komentar:
Posting Komentar