Pertanyaan 1

Soal

Buatlah data menggunakan Notepad seperti pada gambar berikut. Simpan data dalam file data2.txt. Dengan menggunakan perintah scan, buatlah matriks berukuran 4 \(\times\) 10 dari data pada data2.txt. Simpan objek tersebut dalam matriks2.

Penyelesaian

Langkah 1: Membuat File data2.txt (4 baris, 10 kolom sesuai gambar)

Data pada gambar soal tersusun sebagai berikut:

Baris Data
1 75 90 35 51 50 56 35 80 70 80
2 68 29 58 66 89 81 86 70 94 67
3 35 47 67 87 37 30 66 58 59 55
4 67 76 80 78 60 90 69 80 76 87

File data2.txt dibuat dengan format 10 angka per baris (4 baris) agar persis seperti gambar di Notepad:

# Membuat vektor data sesuai urutan pada gambar (baris per baris)
data_vec <- c(
  75, 90, 35, 51, 50, 56, 35, 80, 70, 80,
  68, 29, 58, 66, 89, 81, 86, 70, 94, 67,
  35, 47, 67, 87, 37, 30, 66, 58, 59, 55,
  67, 76, 80, 78, 60, 90, 69, 80, 76, 87
)

# Menyimpan ke file data2.txt dengan 10 kolom per baris (sesuai gambar)
write(data_vec, file = "data2.txt", ncolumns = 10)

# Menampilkan isi file untuk verifikasi
cat("Isi file data2.txt (10 angka per baris, 4 baris):\n")
cat(readLines("data2.txt"), sep = "\n")
Isi file data2.txt (10 angka per baris, 4 baris):
75 90 35 51 50 56 35 80 70 80
68 29 58 66 89 81 86 70 94 67
35 47 67 87 37 30 66 58 59 55
67 76 80 78 60 90 69 80 76 87

Langkah 2: Membaca Data dengan scan()

Gunakan fungsi scan() untuk membaca data numerik dari file data2.txt.

# Membaca data dari file data2.txt menggunakan scan()
data_scan <- scan("data2.txt")

# Menampilkan hasil scan
cat("Hasil scan (vektor dengan 40 elemen):\n")
print(data_scan)
Hasil scan (vektor dengan 40 elemen):
 [1] 75 90 35 51 50 56 35 80 70 80 68 29 58 66 89 81 86 70 94 67 35 47 67 87 37
[26] 30 66 58 59 55 67 76 80 78 60 90 69 80 76 87

Langkah 3: Membentuk Matriks 4 x 10 dan Menyimpan ke matriks2

Gunakan fungsi matrix() dengan parameter nrow = 4, ncol = 10, dan byrow = TRUE agar pengisian mengikuti urutan baris pada file asli. Objek hasil disimpan dalam variabel matriks2.

# Membentuk matriks 4 x 10 dan menyimpannya ke objek matriks2
matriks2 <- matrix(data_scan, nrow = 4, ncol = 10, byrow = TRUE)

# Menampilkan matriks
cat("Objek matriks2 (matriks 4 x 10):\n")
print(matriks2)
Objek matriks2 (matriks 4 x 10):
     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,]   75   90   35   51   50   56   35   80   70    80
[2,]   68   29   58   66   89   81   86   70   94    67
[3,]   35   47   67   87   37   30   66   58   59    55
[4,]   67   76   80   78   60   90   69   80   76    87

Langkah 4: Verifikasi Dimensi dan Nama Objek

# Memeriksa dimensi matriks
cat("Nama objek:", "matriks2", "\n")
cat("Dimensi matriks:", dim(matriks2), "\n")
cat("Jumlah baris:", nrow(matriks2), "\n")
cat("Jumlah kolom:", ncol(matriks2), "\n")
Nama objek: matriks2 
Dimensi matriks: 4 10 
Jumlah baris: 4 
Jumlah kolom: 10 

Pertanyaan 2

Soal

Buatlah file tiket_pesawat.csv menggunakan Microsoft Excel berikut:

ID_Transaksi Maskapai Rute Jumlah_Tiket Harga_Tiket
1 Garuda Jakarta-Bali 20 1.500.000
2 Lion Air Jakarta-Surabaya 15 900.000
3 AirAsia Jakarta-Medan 10 1.200.000
4 Citilink Jakarta-Lombok 8 1.100.000

Tuliskan perintah R untuk membaca file tersebut ke dalam R, dengan baris pertama sebagai header dan simpan data dalam objek tiket_pesawat.

Penyelesaian

Langkah 1: Membuat File tiket_pesawat.csv

File tiket_pesawat.csv dibuat menggunakan Microsoft Excel atau langsung dari R. Perhatikan bahwa dalam file CSV, harga tiket disimpan dalam format numerik murni tanpa pemisah ribuan agar dapat dibaca sebagai tipe data numerik di R.

# Membuat data frame sesuai tabel pada soal
tiket_data <- data.frame(
  ID_Transaksi = c(1, 2, 3, 4),
  Maskapai = c("Garuda", "Lion Air", "AirAsia", "Citilink"),
  Rute = c("Jakarta-Bali", "Jakarta-Surabaya", "Jakarta-Medan", "Jakarta-Lombok"),
  Jumlah_Tiket = c(20, 15, 10, 8),
  Harga_Tiket = c(1500000, 900000, 1200000, 1100000),
  stringsAsFactors = FALSE
)

# Menyimpan ke file CSV (row.names = FALSE agar tidak ada kolom indeks tambahan)
write.csv(tiket_data, file = "tiket_pesawat.csv", row.names = FALSE)

# Menampilkan isi file CSV mentah untuk verifikasi
cat("Isi file tiket_pesawat.csv:\n")
cat(readLines("tiket_pesawat.csv"), sep = "\n")
Isi file tiket_pesawat.csv:
"ID_Transaksi","Maskapai","Rute","Jumlah_Tiket","Harga_Tiket"
1,"Garuda","Jakarta-Bali",20,1500000
2,"Lion Air","Jakarta-Surabaya",15,9e+05
3,"AirAsia","Jakarta-Medan",10,1200000
4,"Citilink","Jakarta-Lombok",8,1100000

Langkah 2: Membaca File CSV ke R

Gunakan fungsi read.csv() dengan parameter header = TRUE agar baris pertama pada file dianggap sebagai nama kolom (header). Data disimpan dalam objek bernama tiket_pesawat.

# Membaca file tiket_pesawat.csv dengan baris pertama sebagai header
tiket_pesawat <- read.csv("tiket_pesawat.csv", header = TRUE)

# Menampilkan objek data yang telah dibaca
cat("Objek tiket_pesawat yang telah dibaca ke R:\n")
print(tiket_pesawat)
Objek tiket_pesawat yang telah dibaca ke R:
  ID_Transaksi Maskapai             Rute Jumlah_Tiket Harga_Tiket
1            1   Garuda     Jakarta-Bali           20     1500000
2            2 Lion Air Jakarta-Surabaya           15      900000
3            3  AirAsia    Jakarta-Medan           10     1200000
4            4 Citilink   Jakarta-Lombok            8     1100000

Langkah 3: Verifikasi Nama Objek dan Struktur Data

# Memeriksa nama objek
cat("Nama objek:", "tiket_pesawat", "\n\n")

# Melihat struktur data
cat("Struktur data:\n")
str(tiket_pesawat)
Nama objek: tiket_pesawat 

Struktur data:
'data.frame':   4 obs. of  5 variables:
 $ ID_Transaksi: int  1 2 3 4
 $ Maskapai    : chr  "Garuda" "Lion Air" "AirAsia" "Citilink"
 $ Rute        : chr  "Jakarta-Bali" "Jakarta-Surabaya" "Jakarta-Medan" "Jakarta-Lombok"
 $ Jumlah_Tiket: int  20 15 10 8
 $ Harga_Tiket : num  1500000 900000 1200000 1100000
# Melihat summary data
cat("\nSummary data:\n")
summary(tiket_pesawat)

Summary data:
  ID_Transaksi    Maskapai             Rute            Jumlah_Tiket  
 Min.   :1.00   Length:4           Length:4           Min.   : 8.00  
 1st Qu.:1.75   Class :character   Class :character   1st Qu.: 9.50  
 Median :2.50   Mode  :character   Mode  :character   Median :12.50  
 Mean   :2.50                                         Mean   :13.25  
 3rd Qu.:3.25                                         3rd Qu.:16.25  
 Max.   :4.00                                         Max.   :20.00  
  Harga_Tiket     
 Min.   : 900000  
 1st Qu.:1050000  
 Median :1150000  
 Mean   :1175000  
 3rd Qu.:1275000  
 Max.   :1500000  

Pertanyaan 3

Soal

Setelah Anda mempelajari materi sesi ini, buatlah 2 contoh Program R serta lampirkan hasil output R tersebut.

Penyelesaian

Berdasarkan Modul 7: Data Set dalam R dan Import Data, berikut adalah 2 contoh program R yang mencakup materi: 1. Mengakses data set yang tersedia di R 2. Import data dari file ASCII (menggunakan read.table dan scan) 3. Import data dari file Microsoft Excel (menggunakan read.csv)


Contoh Program 1: Mengakses Data Set yang Tersedia di R (Dataset iris)

Program ini menunjukkan cara mengakses data set bawaan R menggunakan fungsi data(), serta memeriksa struktur dan atribut data set menggunakan dim(), names(), str(), dan attributes().

# ============================================
# Contoh Program 1: Mengakses Data Set iris di R
# ============================================

# 1. Memuat dataset iris yang tersedia dalam package datasets
data(iris)

# 2. Menampilkan dimensi dataset (150 baris, 5 kolom)
cat("=== DIMENSI DATASET IRIS ===\n")
cat("dim(iris):", dim(iris), "\n")
=== DIMENSI DATASET IRIS ===
dim(iris): 150 5 
# 3. Menampilkan nama-nama atribut (field/kolom)
cat("\n=== NAMA ATRIBUT (FIELD) ===\n")
cat("names(iris):", names(iris), "\n")

=== NAMA ATRIBUT (FIELD) ===
names(iris): Sepal.Length Sepal.Width Petal.Length Petal.Width Species 
# 4. Menampilkan struktur data
cat("\n=== STRUKTUR DATA ===\n")
str(iris)

=== STRUKTUR DATA ===
'data.frame':   150 obs. of  5 variables:
 $ Sepal.Length: num  5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
 $ Sepal.Width : num  3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
 $ Petal.Length: num  1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
 $ Petal.Width : num  0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
 $ Species     : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...
# 5. Menampilkan 5 data pertama
cat("\n=== LIMA DATA PERTAMA ===\n")
print(iris[1:5, ])

=== LIMA DATA PERTAMA ===
  Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1          5.1         3.5          1.4         0.2  setosa
2          4.9         3.0          1.4         0.2  setosa
3          4.7         3.2          1.3         0.2  setosa
4          4.6         3.1          1.5         0.2  setosa
5          5.0         3.6          1.4         0.2  setosa
# 6. Menampilkan 10 nilai pertama dari atribut Sepal.Width
cat("\n=== 10 NILAI PERTAMA SEPAL.WIDTH ===\n")
cat("iris[1:10, 'Sepal.Width']:\n")
print(iris[1:10, "Sepal.Width"])

=== 10 NILAI PERTAMA SEPAL.WIDTH ===
iris[1:10, 'Sepal.Width']:
 [1] 3.5 3.0 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1
# 7. Alternatif: menggunakan tanda $ (dollar)
cat("\niris$Sepal.Width[1:10]:\n")
print(iris$Sepal.Width[1:10])

iris$Sepal.Width[1:10]:
 [1] 3.5 3.0 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1
# 8. Menampilkan atribut lengkap
cat("\n=== ATRIBUT LENGKAP ===\n")
attributes(iris)

=== ATRIBUT LENGKAP ===
$names
[1] "Sepal.Length" "Sepal.Width"  "Petal.Length" "Petal.Width"  "Species"     

$class
[1] "data.frame"

$row.names
  [1]   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18
 [19]  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36
 [37]  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51  52  53  54
 [55]  55  56  57  58  59  60  61  62  63  64  65  66  67  68  69  70  71  72
 [73]  73  74  75  76  77  78  79  80  81  82  83  84  85  86  87  88  89  90
 [91]  91  92  93  94  95  96  97  98  99 100 101 102 103 104 105 106 107 108
[109] 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
[127] 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144
[145] 145 146 147 148 149 150

Contoh Program 2: Import Data dari File ASCII (read.table dan scan)

Program ini menunjukkan cara membaca data dari file ASCII menggunakan read.table() dan scan(), sesuai dengan materi Modul 7 Kegiatan Belajar 1.

# ============================================
# Contoh Program 2: Import Data dari File ASCII
# ============================================

# --- BAGIAN A: Menggunakan read.table() ---

# 1. Membuat file nilai.txt (data mahasiswa)
# Format: Nama, NIM, Jenis_kelamin, Nilai
nilai_data <- data.frame(
  Nama = c("Rina", "Jaka", "Anita", "Reni", "Budiman"),
  NIM = c("A130001", "A130002", "A130003", "A130004", "A130005"),
  Jenis_kelamin = c("P", "L", "P", "P", "L"),
  Nilai = c(80, 90, 75, 85, 80),
  stringsAsFactors = FALSE
)

# Menyimpan ke file nilai.txt (tab-delimited)
write.table(nilai_data, file = "nilai.txt", row.names = FALSE, sep = "\t")

cat("=== ISI FILE nilai.txt ===\n")
cat(readLines("nilai.txt"), sep = "\n")
=== ISI FILE nilai.txt ===
"Nama"  "NIM"   "Jenis_kelamin" "Nilai"
"Rina"  "A130001"   "P" 80
"Jaka"  "A130002"   "L" 90
"Anita" "A130003"   "P" 75
"Reni"  "A130004"   "P" 85
"Budiman"   "A130005"   "L" 80
# 2. Membaca file nilai.txt dengan read.table() tanpa header
cat("\n--- read.table tanpa header ---\n")
nilai_mhs <- read.table("nilai.txt")
cat("Default (tanpa header=TRUE):\n")
print(nilai_mhs)

--- read.table tanpa header ---
Default (tanpa header=TRUE):
       V1      V2            V3    V4
1    Nama     NIM Jenis_kelamin Nilai
2    Rina A130001             P    80
3    Jaka A130002             L    90
4   Anita A130003             P    75
5    Reni A130004             P    85
6 Budiman A130005             L    80
# 3. Membaca file nilai.txt dengan read.table() dengan header=TRUE
cat("\n--- read.table dengan header=TRUE ---\n")
nilai_mhs <- read.table("nilai.txt", header = TRUE)
cat("Dengan header=TRUE:\n")
print(nilai_mhs)

--- read.table dengan header=TRUE ---
Dengan header=TRUE:
     Nama     NIM Jenis_kelamin Nilai
1    Rina A130001             P    80
2    Jaka A130002             L    90
3   Anita A130003             P    75
4    Reni A130004             P    85
5 Budiman A130005             L    80
# 4. Mengakses kolom Nilai saja
cat("\n--- Mengakses kolom Nilai ---\n")
nilai_ujian <- nilai_mhs$Nilai
cat("nilai_mhs$Nilai:\n")
print(nilai_ujian)

--- Mengakses kolom Nilai ---
nilai_mhs$Nilai:
[1] 80 90 75 85 80
# --- BAGIAN B: Menggunakan scan() ---

# 5. Membuat file latihan5.txt (data numerik 3 baris x 12 kolom)
latihan5_vec <- c(
  50, 28, 75, 35, 49, 64, 88, 94, 54, 34, 28, 56,
  87, 42, 33, 67, 31, 98, 58, 47, 37, 66, 64, 25,
  66, 35, 87, 58, 93, 86, 69, 29, 96, 86, 57, 80
)
write(latihan5_vec, file = "latihan5.txt", ncolumns = 12)

cat("\n=== ISI FILE latihan5.txt (3 baris x 12 kolom) ===\n")
cat(readLines("latihan5.txt"), sep = "\n")

=== ISI FILE latihan5.txt (3 baris x 12 kolom) ===
50 28 75 35 49 64 88 94 54 34 28 56
87 42 33 67 31 98 58 47 37 66 64 25
66 35 87 58 93 86 69 29 96 86 57 80
# 6. Membaca file latihan5.txt dengan scan()
cat("\n--- Membaca dengan scan() ---\n")
data5.scan <- scan("latihan5.txt")
cat("data5.scan (36 items):\n")
print(data5.scan)

--- Membaca dengan scan() ---
data5.scan (36 items):
 [1] 50 28 75 35 49 64 88 94 54 34 28 56 87 42 33 67 31 98 58 47 37 66 64 25 66
[26] 35 87 58 93 86 69 29 96 86 57 80
# 7. Mengubah ke bentuk matriks 6x6
cat("\n--- Matriks 6 x 6 dari scan() ---\n")
matrix5.scan <- matrix(scan("latihan5.txt"), 6)
cat("matrix5.scan:\n")
print(matrix5.scan)

--- Matriks 6 x 6 dari scan() ---
matrix5.scan:
     [,1] [,2] [,3] [,4] [,5] [,6]
[1,]   50   88   87   58   66   69
[2,]   28   94   42   47   35   29
[3,]   75   54   33   37   87   96
[4,]   35   34   67   66   58   86
[5,]   49   28   31   64   93   57
[6,]   64   56   98   25   86   80

Kesimpulan

Berdasarkan Modul 7: Data Set dalam R dan Import Data, dapat disimpulkan:

  1. Mengakses Data Set di R: Fungsi data() digunakan untuk memuat data set yang tersedia dalam R (seperti iris, AirPassengers, women, dll). Fungsi dim(), names(), str(), dan attributes() digunakan untuk memeriksa ukuran, struktur, dan atribut data set.

  2. Import File ASCII:

    • read.table(): Digunakan untuk membaca file ASCII dalam format tabel/grid. Parameter header = TRUE digunakan jika baris pertama berisi nama variabel.
    • scan(): Digunakan untuk membaca data dari file ASCII ke dalam vektor atau list. Dapat dikombinasikan dengan matrix() untuk membentuk matriks.
  3. Import File Microsoft Excel: File Excel harus diubah ke format .txt (tab-delimited) atau .csv (comma separated value) terlebih dahulu, kemudian dibaca menggunakan read.table() atau read.csv().

  4. Import dari Paket Statistik: R menyediakan paket foreign untuk meng-import data dari berbagai program statistik seperti MINITAB (read.mtp), SPSS (read.spss), SAS (read.ssd/read.xport), S+ (read.S), STATA (read.dta), Systat (read.systat), dan Epi info (read.epiinfo).


Referensi

Suhartono. (2009). Analisis data statistik dengan R. Yogyakarta: Graha Ilmu.

Venables, W. N., & Smith, D. M. (2007). An introduction to R. The R Development Core Team.

Venables, W. N., Smith, D. M., & the R Core Team. (2013). Notes on R: A programming environment for data analysis and graphics, version 3.0.2. Dalam An introduction to R. The R Development Core Team.

R Core Team. (2023). R: A language and environment for statistical computing. R Foundation for Statistical Computing. https://www.R-project.org/

Wickham, H., & Grolemund, G. (2016). R for data science: Import, tidy, transform, visualize, and model data. O’Reilly Media.

Adler, J. (2010). R in a nutshell: A desktop quick reference. O’Reilly Media.