Konsep Array

Pengertian Array

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,...))

Ciri-ciri Array

  1. Menyimpan data dengan tipe yang sama.
  2. Memiliki ukuran tetap (jumlah elemen harus ditentukan saat deklarasi).
  3. Setiap elemen dapat diakses menggunakan indeks, dimulai dari 0.
  4. Efisien untuk menyimpan dan mengakses data berurutan

Jenis-jenis Array

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)

1. Buat array 1D berisi angka ganjil dari 5 sampai 100

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.

  1. Tampilkan semua elemen yang habis dibagi 4

satu[satu%%4==0]
## numeric(0)
satu %% 4 ➔ menghitung sisa pembagian setiap elemen dengan 4.
== 0 ➔ memilih elemen yang sisanya 0 (berarti habis dibagi 4).
satu[…] ➔ menampilkan elemen yang memenuhi syarat tersebut.

Output

📢 numeric ➔ tipe data angka (seperti 1, 2.5, 100, dsb).
📢 (0) ➔ panjang vektornya 0, alias tidak ada elemen.

📌 Jadi numeric(0) adalah vektor angka, tapi kosong.

  1. Urutkan array tersebut secara menurun (descending)

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).

  1. Hitung jumlah total dan rata-ratanya

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.

2. Buat array 2 dimensi (m,n) yang elemennya kelipatan 4 dengan m,n>4

# 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.

  1. Hitung berapa elemen dalam array yang bernilai lebih dari (mxn)

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.

  1. Tampilkan elemen pada diagonal utama

# (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.

  1. Hitung jumlah seluruh elemen baris ke-2

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.

3. Buat array 3D (x,y,z) dari angka lebih dari 10 dan kurang dari 100

# 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).

  1. Seluruh elemen pada lapisan ke-(z-3)

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.

  1. Nilai maksimum pada seluruh array

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.

  1. Cari rata-rata per kolom

# 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).

Kesimpulan

📌 Pengertian Umum

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).

📌 Ciri-ciri Array

  • Menyimpan data dengan tipe sama.
  • Ukuran tetap (jumlah elemen sudah ditentukan sejak awal).
  • Setiap elemen diakses melalui indeks (baris, kolom, dan lapisan).

📌 Manfaat Array

  • Mempermudah pengolahan data dalam jumlah besar.
  • Mendukung perhitungan matematis dan analisis statistik.
  • Digunakan dalam bidang Machine Learning, Data Science, dan Grafik 3D.

🎯 Ringkasan Akhir

Array adalah struktur data berukuran tetap, bertipe data homogen, dan multi-indeks, yang sangat efisien untuk menyimpan serta memproses data skala besar.