Array
Penulis: Sayed, Danniel
Last updated
Penulis: Sayed, Danniel
Last updated
Dalam pemograman, array adalah sebuah struktur data yang dapat menyimpan sekumpulan elemen yang mana setiap elemen diidentifikasan dengan sebuah indeks. Indeks pada array dimulai dari indeks 0. Kita akan membahas struktur data lebih dalam pada bab .
Misalkan kita memiliki suatu permasalahan yang membutuhkan 100 atau lebih variabel. Tidak mungkin kita mendeklarasikan 100 atau lebih buah variabel secara manual! Oleh sebab itu, sebagai alternatif, kita mempunyai suatu cara untuk mendeklarasikan banyak variabel sekaligus. Oleh sebab itu kita ingin mendeklarasikan sebuah array.
Dalam C++, pendeklarasian array dapat dituliskan sebagai berikut.
Pendeklarasian array dapat dituliskan dengan pertama-tama menuliskan tipe datanya, lalu namanya dan terakhir di dalam kurung siku bilangan yang menyatakan ukurannya. Array di atas adalah array dengan tipe data int
dengan nama arr dan ukuran 1.000.000. Pada umumnya array dideklarasikan secara global. Perlu diingat bahwa ukuran dari array adalah statis yakni tidak dapat diubah setelah pendeklarasian.
Terdapat juga jenis array yang ukurannya dapat berubah atau dinamis, array ini pada C++ disebut dengan vektor, kita akan membahas tentang vektor lebih lanjut pada bab .
Untuk memasukkan nilai pada array, pada umumnya kita ingin menggunakan for loop yang mana codenya dapat ditulis sebagai berikut:
Untuk mengakses suatu elemen dari suatu array, dapat dituliskan nama_array[indeks]
seperti code di bawah ini, kita juga dapat mendeklarasikan array sebagaimana dituliskan di bawah.
Pada terminal, program akan mengeluarkan Nama
.
Array dua dimensi adalah sebuah array yang berisi sebuah array di dalamnya. Biasanya array dua dimensi dipakai untuk mempresentasikan sebuah tabel, koordinat kartesius dan matriks.
Misalkan kita ingin membuat sebuah matriks yang berukuran 3 x 4. Dalam C++, kita dapat membuat matriks tersebut menggunakan array dua dimensi seperti program di bawah ini:
Pendeklarasian array dua dimensi dapat dituliskan seperti array biasa pada umumnya, namun dengan tambahan satu kurung siku []
. Masing-masing kurung siku tersebut mempresentasikan ukuran dari baris dan kolom pada tabel. Berikut merupakan ilustrasi dari array 2 dimensi di atas:
0
arr[0][0]
arr[0][1]
arr[0][2]
arr[0][3]
1
arr[1][0]
arr[1][1]
arr[1][2]
arr[1][2]
2
arr[2][0]
arr[2][1]
arr[2][2]
arr[2][3]
Untuk memasukkan nilai pada array dua dimensi, pada umumnya kita menggunakan nested for loop karena array dua dimensi memiliki baris dan kolom:
for loop dengan int i = 0; i < 3; i++
berfungsi sebagai perulangan baris, sedangkan for loop dengan int j = 0; j < 4; i++
berfungsi sebagai perulangan kolom.
Selain dari menggunakan nested for loop, kita juga dapat memasukkan nilai pada array dua dimensi secara langsung seperti berikut:
0
1
2
3
4
1
5
6
7
8
2
9
10
11
12
Array Tiga Dimensi adalah sebuah array yang berisi array dua dimensi di dalamnya atau array yang penomoran indeks-nya menggunakan 3 buah angka. Analogi yang sering dipakai seperti titik koordinat dalam diagram kartesius 3D.
Pendeklarasian array tiga dimensi tidak jauh berbeda dengan array dua dimensi yang kita pelajari sebelumnya. Berikut merupakan cara pendeklarasian array tiga dimensi:
tipedata nama-variabel[ukuran x][ukuran y][ukuran z];
Program di atas mengilustrasikan sebuah koordinat kartesius 3D dengan ukuran (2 x 2 x 2).
Sama halnya dengan array dua dimensi, untuk memasukkan nilai pada array tiga dimensi maka kita harus menggunakan nested for loop namun dengan 3 for loop seperti pada contoh program dibawah ini.
for loop dengan int i = 0; i < 2; i++
berfungsi sebagai perulangan ukuran x, for loop dengan int j = 0; j < 2; i++
berfungsi sebagai perulangan ukuran y dan for loop dengan int k = 0; k < 2; k++
berfungsi sebagai perulangan ukuran z.
Selain dari menggunakan nested for loop, kita juga dapat memasukkan nilai pada array tiga dimensi secara langsung seperti berikut:
Output:
Alokasi memori adalah proses dimana program dan layanan komputer ditugaskan dengan ruang memori fisik atau virtual. Dengan kata lain, alokasi memori adalah proses pemesanan sebagian atau seluruh memori komputer untuk pelaksanaan program dan proses tertentu.
Stack
Untuk ukuran memori stack implementasi tiap OS bisa berbeda-beda, seperti contoh ukuran memori stack di linux adalah 8MiB (8 x 1024 x 1024) bytes. Alokasi stack ini tidak bisa gagal, jika gagal maka telah terjadi stack overflow. Memori stack ini bersifat terbatas dan tidak bisa diubah ukurannya atau hanya dealokasi ketika out of scope. Compiler juga bisa mengeluarkan warning apabila kita menggunakan memori stack lebih dari 2048 bytes dari sebuah fungsi.
Contoh alokasi stack
Ukuran memori heap ini tak terbatas dan dinamis. Tergantung jumlah memori yang terpasang. Alokasi memori heap bisa gagal. Memori heap tidak seperti stack. Kita bebas untuk mendealokasikannya kapan saja.
Biasanya STLnya C++ menggunakan memori ini, oleh karena itu ukuran STL seperti vector dan string bisa dinamis.
Untuk alokasi array / memori dinamis bisa menggunakan new
dari C++ atau malloc
dan calloc
dari cstdlib
.
Contoh kode yang menggunakan memori heap.
Memori static dialokasikan di awal program dan hanya akan dibebaskan ketika program berakhir.
Mudah
Indonesia
Mudah
Indonesia
Mudah
Indonesia
Sedang
Indonesia
Sedang
Indonesia
Sulit
Indonesia
★