09 - MATRIX / ARRAY / TABEL
ARRAY
PENGERTIAN ARRAY
Type array adalah type yang mengacu kepada sebuah atau sekumpulan elemen melalui indeks di variabel. Elemen array dapat di akses langsung jika indeks tersebut terdefinisi nilainya. Array biasanya disebut juga sebagai tabel, matriks, atau larik.
Type array digunakan untuk mempresentasikan sekumpulan informasi yang tertipe sama, dan di simpan dengan urutan. Saya analogikan array sebagi hari, dalam hari terdapat nama hari yang berjumlah 7, misalnya indeks 1 saya isi dengan hari senin dan seterusnya. Terdapat berbagai jenis array yaitu array 1 dimensi, dan array multidimensi (2d, 3d).
DEFINISI ARRAY
- Array merupakan tipe non-skalar yang mengacu pada sekumpulan elemen tipe dan diakses melalui indeks.
- Eleme yang ada di didalam array harus mempunyai tipe yang sama.
- Disebut juga tabel, vektor, atau larik.
- Penyimpanan tipe di lakukan secara kontigu dalam memory komputer.
INDEKS ARRAY
- Elemen suatu array dapat di akses melalui index yang telah terdefinisi: array[index]
- Elemen di awali dari 0 adalah elemen pertama (beberapa bahasa pemrograman yang lain mungkin memulai indeks dari 1)
CONTOH SOAL ARRAY 1 DIMENSI
Soal pertama adalah kita akan membuat array yang berisikan nama hari dalam bahasa pemrograman C++. Bagaimana caranya? simak berikut:
| Judul menyimpan nama hari dalam array |
| Kamus hari[7] : array {"senin", "selasa", "rabu", "kami", "jumat", "sabtu", "minggu"} of string |
| Algoritma output hari[0] output hari[1] output hari[2] output hari[3] output hari[4] output hari[5] output hari[6] |
Kodingan:
#include <iostream>
using namespace std;
// Kamus
string hari[7] = {"Senin", "Selasa",
"Rabu", "Kamis", "Jumat", "Sabtu", "Minggu"};
// Algoritma
int main()
{
cout << hari[0] << endl;
cout << hari[1] << endl;
cout << hari[2] << endl;
cout << hari[3] << endl;
cout << hari[4] << endl;
cout << hari[5] << endl;
cout << hari[6] << endl;
cin.get();
return 0;
}Hasil run:
ARRAY 2 DIMENSI
- Terdiri dari dua batasan nilai, untuk panjang baris dan panjang kolom.
- Sehingga perlu untuk membuat kurugn kota sebanyak 2. [][]
- Indeks di kurung kotak pertama merepresentasikan elemen baris.
- indeks di kurung kotak kedua mempresentasikan elemen kolom.
Array 2 dimensi dapat direpresentasikan seperti matriks, penulisan array 2 dimensi adalah dengan satu variabel dan dua array, contohnya seperti ini: x[][], array 2 dimensi ini dapat di lihat indeksnya seperti gambar di bawah ini.
Dari gambar di atas dapat disimpulkan bahwa array awal berperan sebagai baris, dan array kedua berperan sebagai kolom.CONTOH SOAL ARRAY 2 DIMENSI
Buatlah penjumlahan matriks ordo 3 x 3 dengan nilai yang di inputkan oleh user.
Notasi dari soal di atas:
| Judul Penjumlahan 2 matriks ordo 3 x 3 dengan nilai di inputkan oleh user |
| Kamus m1[5][5], m2[5][5], hasil[5][5] : array of integer |
| Algoritma output ("INPUT MATRIKS A") i traversal[0..2] { j traversal[0..2] { output("Baris ")(i + 1)(" kolom ")(j + 1)(" = ") input m1[i][j] } } output ("INPUT MATRIKS B") i traversal[0..2] { j traversal[0..2] { output("Baris ")(i + 1)(" kolom ")(j + 1)(" = ") input m2[i][j] } } output ("HASIL PENJUMLAHAN") i traversal[0..2] { j traversal[0..2] { hasil[i][j] <- m1[i][j] + m2[i][j] output (hasil[i][j])(new line) } output (new line) } |
Hasil run:
#include <iostream>
using namespace std;
// Kamus
int m1[5][5], m2[5][5], hasil[5][5];
// Algoritma
int main()
{
// input nilai matriks A
cout <<"====================\nINPUT MATRIKS A\n";
for(int i=0;i<3;i++) {
for(int j=0;j<3;j++) {
cout <<"Baris "<< i+1 <<" Kolom "<< j+1 <<" = "; cin >> m1[i][j];
}
}
// input nilai matriks B
cout <<"\nINPUT MATRIKS B\n";
for(int i=0;i<3;i++) {
for(int j=0;j<3;j++) {
cout <<"Baris "<< i+1 <<" Kolom "<< j+1 <<" = "; cin >> m2[i][j];
}
}
// output hasil penjumlahan antara matriks A dan matriks B
cout <<"\nHASIL PENJUMLAHAN MATRIKS A DAN B ADALAH : \n";
for(int i=0;i<3;i++) {
for(int j=0;j<3;j++) {
hasil[i][j] = m1[i][j] + m2[i][j];
cout << hasil[i][j] <<"\t";
}
cout << endl;
}
cin.get();
return 0;
}
Hasil run:
ARRAY 3 DIMENSI.
Array 3D
- Perbedaan dengan Array 2D adanya tambahan kedalaman disini.
- Dalam hal ini terdiri dari tigak kotak [dimensi baris] [dimensi kolom] [dimensi kedalaman]
- kita bisa bisa mendeklarasikan array 3D seperti ini : int x[3][3][3]
SOAL SEDERHANA
CONTOH SOAL ARRAY
Di soal yang pertama kita akan membuat sebuah array untuk menampung data usia berupa inputan dan dari inputan itu kita akan mengurutkannya (sorting) dari usia paling mudah.
Notasi
| Judul Mengiputkan data usia lalu mengurutkan dari paling muda |
| Kamus usia : array[0..10] a,b : integer |
| Algoritma output ("INPUT USIA") i traversal [0..5] { output ("input usia ke-")(i+1)(" : ") input (usia[i]) } output ("SEBELUM DI SORTING") i traversal [0..5] { output (usia ke-)(i+1)(" : ")(usia[i]) } output ("SESUDAH DI SORTING") a <- 0 while(a<=5) { b <- a+1 while(b<=5) { if(usia[a] > usia[b]) { swap(usia[a],usia[b]) } b <- b+1 } a <- a+1 } i traversal [0..5] { output ("USIA KE-")("i + 1")(" : ")(usia[i]) } |
Kodingan:
/***************************
Judul: sorting data
Nama : Samuel Andrey Aji Prasetya
NIM : A11.2021.13716
Kelompok : A11.4113
Tanggal : 24 januari 2022
***************************/
// kamus
#include <iostream>
using namespace std;
int usia[10];
int a,b;
// algoritma
int main() {
// input data
cout <<"INPUT USIA\n";
for(int i=0;i<=5;i++)
{
cout <<"input usia ke-"<<i+1<<" : ";
cin >> usia[i];
}
// penampilan data sebelum di sorting
cout <<"SEBELUM DI SORTING\n";
for(int i=0;i<=5;i++)
{
cout <<"usia ke-"<<i+1<<" : "<<usia[i]<<"\n";
}
cout <<"\nSESUDAH DI SORTING\n";
a=0;
while(a<=5) {
b=a+1;
while(b<=5) {
if(usia[a] > usia[b]) {
swap(usia[a],usia[b]);
}
b+=1;
}
a+=1;
}
// proses sorting data
// menampilkan data setelah di sort
for(int i=0;i<=5;i++) {
cout <<"USIA KE-"<<i+1<<" : "<< usia[i]<<"\n";
}
return 0;
}
Hasil run program:
Dan itu tadi contoh dari sorting atau pengurutan data di array.
Bila ada kesalahan dalam penulisan dan kekurangan lainnya mohon di maafkan, karena disini kita sama-sama belajar, dan bila mempunyai referensi lebih atau saran silahkan tambahkan di kolom komentar. Terima kasih.
Referensi : Diktat prosedural ITB IF. IF ITB.2007 , PPT Daspro teori array.
Posted by