Pendahuluan

Array adalah struktur data penting dalam pemrograman R yang digunakan untuk menyimpan data dalam satu, dua, atau tiga dimensi serta digunakan untuk menyimpan banyak elemen dengan tipe data yang sama (misalnya semua angka, semua karakter, dll), dalam satu atau lebih dimensi.

Array berbeda dari vektor biasa karena array bisa memiliki lebih dari satu dimensi (baris, kolom, lapisan, dst).

Array dalam R dibangun dengan fungsi seperti array(), matrix(), atau hasil operasi pengolahan vektor.

1.Array 1D: Angka Ganjil dari 5 sampai 100

Konsep

Array 1D pada dasarnya sama seperti vektor.Hanya satu barisan data yang memiliki satu indeks untuk mengakses elemen.Berbentuk seperti garis atau list berurutan.

# Membuat array berisi angka ganjil dari 5 sampai 100
# Menggunakan subset untuk memilih angka yang memenuhi kondisi ganjil
bilgan <- subset(5:100, 5:100 %% 2 == 1)
print(bilgan)
##  [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

a. Elemen Habis Dibagi 4

# Menampilkan elemen yang habis dibagi 4
# Menggunakan subset dengan kondisi modulus 4 sama dengan 0
ebagi_4 <- subset(5:100, (5:100) %% 4 == 0)
print(ebagi_4)
##  [1]   8  12  16  20  24  28  32  36  40  44  48  52  56  60  64  68  72  76  80
## [20]  84  88  92  96 100

b. Urutkan secara Descending

# Mengurutkan array secara menurun (descending)
# Menggunakan fungsi sort dengan parameter decreasing = TRUE
decreasing_bilgan <- sort(bilgan, decreasing = TRUE)
print(decreasing_bilgan)
##  [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

c. Jumlah Total dan Rata-rata

# Menghitung jumlah total menggunakan fungsi sum
# Menghitung rata-rata menggunakan fungsi mean
total_bilgan <- sum(bilgan)
rata_bilgan <- mean(bilgan)
print(paste("Jumlah Total:", total_bilgan))
## [1] "Jumlah Total: 2496"
print(paste("Rata-rata:", rata_bilgan))
## [1] "Rata-rata: 52"

2.Array 2D: Kelipatan 4

# Membuat array 2D berisi kelipatan 4
# Menggunakan fungsi matrix dengan urutan bilangan menggunakan seq
m <- 5
n <- 7
a2d <- matrix(seq(4, by = 4, length.out = m * n), nrow = m, ncol = n)
print(a2d)
##      [,1] [,2] [,3] [,4] [,5] [,6] [,7]
## [1,]    4   24   44   64   84  104  124
## [2,]    8   28   48   68   88  108  128
## [3,]   12   32   52   72   92  112  132
## [4,]   16   36   56   76   96  116  136
## [5,]   20   40   60   80  100  120  140

a. Hitung Elemen > (m x n)

# Menghitung jumlah elemen yang lebih besar dari hasil perkalian m*n
# Menggunakan sum dengan kondisi logika
jumlah_elemen_lebih <- sum(a2d > (m * n))
print(jumlah_elemen_lebih)
## [1] 27

b. Elemen Diagonal Utama

# Menampilkan elemen diagonal utama
# Menggunakan fungsi diag untuk mengambil elemen diagonal dari matriks
diagonal_utama <- diag(a2d)
print(diagonal_utama)
## [1]   4  28  52  76 100

c. Jumlah Baris ke-2

# Menghitung jumlah seluruh elemen pada baris ke-2
# Mengakses baris ke-2 kemudian dijumlahkan dengan sum
jumlah_baris2 <- sum(a2d[2, ])
print(jumlah_baris2)
## [1] 476

3.Array 3D: Angka 11-99

# Membuat array 3D (x=3, y=7, z=4) dengan angka 11-94
x <- 3
y <- 7
z <- 4  # Minimal z=4 agar z-3 valid 
# Generate angka acak 11-94 (tanpa pengulangan)
angka <- 11:94
a3d <- array(angka, dim = c(x, y, z))
a3d
## , , 1
## 
##      [,1] [,2] [,3] [,4] [,5] [,6] [,7]
## [1,]   11   14   17   20   23   26   29
## [2,]   12   15   18   21   24   27   30
## [3,]   13   16   19   22   25   28   31
## 
## , , 2
## 
##      [,1] [,2] [,3] [,4] [,5] [,6] [,7]
## [1,]   32   35   38   41   44   47   50
## [2,]   33   36   39   42   45   48   51
## [3,]   34   37   40   43   46   49   52
## 
## , , 3
## 
##      [,1] [,2] [,3] [,4] [,5] [,6] [,7]
## [1,]   53   56   59   62   65   68   71
## [2,]   54   57   60   63   66   69   72
## [3,]   55   58   61   64   67   70   73
## 
## , , 4
## 
##      [,1] [,2] [,3] [,4] [,5] [,6] [,7]
## [1,]   74   77   80   83   86   89   92
## [2,]   75   78   81   84   87   90   93
## [3,]   76   79   82   85   88   91   94

a. Ambil elemen pada layer ke-(z-3) (layer ke-1 untuk z=4)

# Mengambil layer ke (z-3) dari array 3D
# Akses layer menggunakan indeks array a3d[, , layer]
layer_z3 <- a3d[, , 1]
print("Layer 1:")
## [1] "Layer 1:"
print(layer_z3)
##      [,1] [,2] [,3] [,4] [,5] [,6] [,7]
## [1,]   11   14   17   20   23   26   29
## [2,]   12   15   18   21   24   27   30
## [3,]   13   16   19   22   25   28   31

b. Nilai Maksimum

# Mencari nilai maksimum dari seluruh elemen array
# Menggunakan fungsi max
nilai_maks <- max(a3d)
print(paste("Nilai maksimum:", nilai_maks))
## [1] "Nilai maksimum: 94"

c. Rata-rata per Kolom

# Menghitung rata-rata per kolom pada semua layer
# Menggunakan fungsi apply dengan margin = 2 (kolom)
rata_kolom <- apply(a3d, 2, mean)  # Margin 2 = operasi per kolom
print("Rata-rata per kolom:")
## [1] "Rata-rata per kolom:"
print(rata_kolom)
## [1] 43.5 46.5 49.5 52.5 55.5 58.5 61.5

Kesimpulan

Array 1D digunakan untuk operasi dasar seperti filter, sorting, dan perhitungan agregat. Array 2D memudahkan pengolahan data tabular menggunakan operasi baris dan kolom. Array 3D memungkinkan manipulasi data multilevel atau data spasial. R menyediakan fungsi subset(), sort(), sum(), mean(), matrix(), diag(), dan apply() untuk memproses array dengan mudah.

Dalam analisis manipulasi array menggunakan R ini, berbagai teknik pengolahan data telah diterapkan pada array satu dimensi (1D), dua dimensi (2D), dan tiga dimensi (3D). Pada array 1D, proses dimulai dengan pembuatan sekumpulan angka ganjil antara 5 hingga 100, diikuti dengan pemilihan elemen-elemen yang habis dibagi 4, pengurutan elemen secara menurun, serta perhitungan jumlah total dan rata-rata dari seluruh elemen dalam array. Selanjutnya, pada array 2D, sebuah matriks yang berisi kelipatan 4 dengan ukuran 5×7 dibuat, diikuti dengan perhitungan jumlah elemen yang lebih besar dari hasil perkalian dimensi, ekstraksi elemen pada diagonal utama, serta penjumlahan seluruh elemen pada baris kedua. Pada array 3D, array acak dari angka antara 11 hingga 98 dibentuk, diikuti dengan pengambilan layer tertentu berdasarkan indeks, pencarian nilai maksimum dalam seluruh elemen, serta perhitungan rata-rata per kolom di setiap layer. Secara keseluruhan, rangkaian operasi ini menegaskan bahwa R menyediakan alat yang sangat efektif dan efisien untuk manipulasi array multidimensi, yang mempermudah analisis data dalam konteks statistik dan pemrograman.