Array adalah struktur data yang digunakan untuk menyimpan sekumpulan data yang memiliki tipe data yang sama. Data dalam array disimpan secara berurutan dalam satu blok memori dan dapat diakses menggunakan indeks.
array(data, dim = c(x,y,z,...))
✦ Array 1 Dimensi.
Array 1 dimensi disebut juga sebagai vektor. Digunakan untuk menyimpan data dalam satu baris.
✦ Array 2 Dimensi.
Array 2 dimensi disebut juga sebagai matriks. Digunakan untuk menyimpan data dalam bentuk baris dan kolom
✦ Array 3 Dimensi.
Array 3 dimensi (3D array) adalah struktur data yang menyimpan data dalam tiga tingkat indeks: baris, kolom, dan kedalaman (layer)
satu = array(seq(5,100,by=2))
satu
## [1] 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53
## [26] 55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 93 95 97 99
✦ seq(5, 100, by=2) ➔ membuat deret angka dari 5
ke 100 dengan selisih 2 (jadi angka ganjil).
✦ satu =
array(…) ➔ menyimpan hasil seq menjadi array 1 dimensi dan
menyimpannya ke dalam variabel satu.
✦ satu ➔
memunculkan array tersebut.
satu[satu%%4==0]
## numeric(0)
✦ satu %% 4 ➔ menghitung sisa pembagian setiap
elemen dengan 4.📢 numeric ➔ tipe data angka (seperti 1, 2.5,
100, dsb).
📢 (0) ➔ panjang vektornya 0, alias
tidak ada elemen.
sort(satu,decreasing = TRUE)
## [1] 99 97 95 93 91 89 87 85 83 81 79 77 75 73 71 69 67 65 63 61 59 57 55 53 51
## [26] 49 47 45 43 41 39 37 35 33 31 29 27 25 23 21 19 17 15 13 11 9 7 5
✦ sort(satu) ➔ mengurutkan array satu.
✦
decreasing = TRUE ➔ mengurutkan dari besar ke kecil
(descending).
sum(satu)
## [1] 2496
mean(satu)
## [1] 52
✦ sum(satu) ➔ menghitung total semua nilai dalam
array satu.
✦ mean(satu) ➔ menghitung rata-rata
dari nilai dalam array satu.
# Inisialisasi ukuran array
m = 5
n = 6
✦ m = 5 → membuat variabel m sebesar 5
(baris).
✦ n = 6 → membuat variabel n sebesar 6
(kolom).
# Buat array dengan elemen kelipatan 4 (1 sampai m*n dikali 4)
array_2d = matrix(seq(4, by = 4, length.out = m * n), nrow = m, ncol = n, byrow = TRUE)
print("Array 2 dimensi:")
## [1] "Array 2 dimensi:"
print(array_2d)
## [,1] [,2] [,3] [,4] [,5] [,6]
## [1,] 4 8 12 16 20 24
## [2,] 28 32 36 40 44 48
## [3,] 52 56 60 64 68 72
## [4,] 76 80 84 88 92 96
## [5,] 100 104 108 112 116 120
✦ seq(4, by = 4, length.out = m*n) ➔ membuat
deret angka kelipatan 4 sebanyak 5×6=30 angka.
✦ matrix(…,
nrow = m, ncol = n, byrow = TRUE) ➔ mengubah deret angka
menjadi matriks berukuran 5×6, diisi baris per baris (byrow=TRUE).
✦
print() ➔ mencetak array 2 dimensi ke layar.
threshold = m * n
jumlah_lebih_dari_threshold = sum(array_2d > threshold)
cat("Jumlah elemen lebih dari", threshold, "adalah:", jumlah_lebih_dari_threshold, "\n")
## Jumlah elemen lebih dari 30 adalah: 23
✦ threshold <- m * n ➔ membuat batas nilai,
yaitu hasil 5×6 = 30.
✦ array_2d > threshold
➔ menghasilkan TRUE/FALSE untuk setiap elemen (TRUE jika elemen lebih
dari 30).
✦ sum(…) ➔ menghitung jumlah TRUE
(TRUE dihitung 1, FALSE dihitung 0).
✦ cat() ➔
mencetak hasil dalam format teks.
# (hanya bisa untuk array persegi atau menggunakan min(m, n))
diagonal_utama = diag(array_2d[1:min(m,n), 1:min(m,n)])
cat("Elemen pada diagonal utama:", diagonal_utama, "\n")
## Elemen pada diagonal utama: 4 32 60 88 116
✦ array_2d[1:min(m,n), 1:min(m,n)] ➔ memotong
array jadi persegi 5x5 (ambil min(5,6)=5).
✦
diag(…) ➔ mengambil elemen diagonal utama dari
matriks persegi itu.
✦ cat() ➔ mencetak daftar
angka diagonal.
jumlah_baris2 = sum(array_2d[2, ])
cat("Jumlah elemen pada baris ke-2:", jumlah_baris2, "\n")
## Jumlah elemen pada baris ke-2: 228
✦ array_2d[2, ] ➔ mengambil semua elemen baris
ke-2.
✦ sum(…) ➔ menjumlahkan semua angka dalam
baris tersebut.
✦ cat() ➔ mencetak hasil
jumlah.
# Set seed untuk hasil acak yang konsisten (opsional)
set.seed(123)
# Dimensi array (contoh: x=3, y=3, z=5)
x = 3
y = 3
z = 5
#Membuat array 3D dengan angka acak 11-99
arr_3d = array(sample(11:99, size = x * y * z, replace = FALSE), dim = c(x, y, z))
# Cetak array
print("Array 3D:")
## [1] "Array 3D:"
print(arr_3d)
## , , 1
##
## [,1] [,2] [,3]
## [1,] 41 24 60
## [2,] 89 77 53
## [3,] 61 52 96
##
## , , 2
##
## [,1] [,2] [,3]
## [1,] 35 19 17
## [2,] 79 82 94
## [3,] 67 36 87
##
## , , 3
##
## [,1] [,2] [,3]
## [1,] 46 42 51
## [2,] 92 84 20
## [3,] 25 86 33
##
## , , 4
##
## [,1] [,2] [,3]
## [1,] 37 95 78
## [2,] 70 71 48
## [3,] 63 72 90
##
## , , 5
##
## [,1] [,2] [,3]
## [1,] 44 18 28
## [2,] 39 22 43
## [3,] 15 23 88
Array tiga dimensi (arr_3d) dibuat dengan fungsi array() yang mengambil input dari fungsi sample(). Fungsi sample(11:99, size = xyz, replace = TRUE) menghasilkan 45 angka acak (karena 3×3×5 = 45) dari rentang 11 hingga 99, dengan kemungkinan angka yang sama bisa muncul lebih dari sekali. Angka-angka ini kemudian disusun dalam array berdimensi (3, 3, 5).
print("Seluruh elemen pada lapisan ke-2:")
## [1] "Seluruh elemen pada lapisan ke-2:"
print(arr_3d[,,2])
## [,1] [,2] [,3]
## [1,] 35 19 17
## [2,] 79 82 94
## [3,] 67 36 87
Untuk mengakses seluruh elemen dari lapisan tertentu, digunakan sintaks arr_3d[,,2], yang berarti mengambil semua baris dan semua kolom pada lapisan ke-2. Hasilnya berupa sebuah matriks 3×3 yang menunjukkan isi lapisan kedua dari array tersebut.
max_val = max(arr_3d)
print(paste("Nilai maksimum seluruh array:", max_val))
## [1] "Nilai maksimum seluruh array: 96"
Nilai maksimum dari seluruh elemen dalam array dihitung dengan fungsi max(arr_3d). Nilai ini kemudian digabungkan dengan teks penjelasan menggunakan paste() dan dicetak ke layar, sehingga pengguna dapat mengetahui angka terbesar yang terdapat di dalam array.
# Mengakses kolom dari setiap matriks dalam array
kolom_1 = arr_3d[, 1, ]
kolom_2 = arr_3d[, 2, ]
kolom_3 = arr_3d[, 3, ]
# Menghitung rata-rata per kolom (rata-rata per 'slice' sepanjang sumbu z)
rata_kolom_1 = apply(kolom_1, 2, mean) # 2 = margin untuk kolom (z)
rata_kolom_2 = apply(kolom_2, 2, mean) # 2 = margin untuk kolom (z)
rata_kolom_3 = apply(kolom_3, 2, mean) # 2 = margin untuk kolom (z)
print("Rata-rata per kolom :")
## [1] "Rata-rata per kolom :"
print(rata_kolom_1)
## [1] 63.66667 60.33333 54.33333 56.66667 32.66667
print(rata_kolom_2)
## [1] 51.00000 45.66667 70.66667 79.33333 21.00000
print(rata_kolom_3)
## [1] 69.66667 66.00000 34.66667 72.00000 53.00000
Dalam langkah ini, setiap kolom (kolom pertama, kedua, dan ketiga) diekstrak dari seluruh lapisan array. Ekstraksi dilakukan dengan arr_3d[, 1, ], arr_3d[, 2, ], dan arr_3d[, 3, ] untuk masing-masing kolom. Setiap hasil ekstraksi berbentuk matriks 3×5. Kemudian, untuk setiap kolom hasil ekstraksi, fungsi apply() digunakan dengan parameter MARGIN = 2 untuk menghitung rata-rata setiap kolom (per lapisan). Hasil rata-rata dari masing-masing kolom kemudian ditampilkan, memberikan gambaran tentang rata-rata nilai sepanjang dimensi ketiga (lapisan).
Array adalah struktur data yang menyimpan banyak nilai dengan tipe data yang sama dalam satu blok memori. Di R, array dapat berupa 1 dimensi (vektor), 2 dimensi (matriks), maupun 3 dimensi (beberapa matriks/lapisan).
Array adalah struktur data berukuran tetap, bertipe data homogen, dan multi-indeks, yang sangat efisien untuk menyimpan serta memproses data skala besar.