BAB I. PENDAHULUAN

1.1 Latar Belakang

R merupakan bahasa pemrograman yang dapat digunakan untuk melakukan pengolahan dan analisis data statistik. Salah satu kemampuan dasar dalam R adalah penggunaan function atau fungsi. Fungsi merupakan sekumpulan perintah yang disusun untuk menjalankan tugas tertentu. Dengan menggunakan fungsi, proses pengolahan data dapat dilakukan secara lebih terstruktur, ringkas, dan dapat digunakan kembali.

Pada praktikum ini, konsep basic function diterapkan pada dua permasalahan. Permasalahan pertama adalah mengolah data penjualan semangka selama tujuh hari menggunakan fungsi statistik dan fungsi buatan pengguna (user-defined function). Permasalahan kedua adalah membuat fungsi matematika untuk menentukan akar-akar persamaan kuadrat menggunakan rumus kuadrat.

Penggunaan fungsi statistik seperti min(), max(), sum(), mean(), median(), var(), dan sd() membantu memperoleh ringkasan data. Sementara itu, fungsi yang dibuat sendiri memungkinkan beberapa perintah digabungkan menjadi satu proses yang dapat dipanggil kembali dengan argumen tertentu.

1.2 Rumusan Masalah

  1. Bagaimana membuat fungsi pada program R untuk menentukan penjualan terendah, penjualan tertinggi, total penjualan, rata-rata penjualan, urutan penjualan, dan jumlah hari dengan penjualan kurang dari batas yang ditentukan?
  2. Bagaimana membuat fungsi pada program R untuk menentukan akar-akar persamaan kuadrat menggunakan rumus kuadrat?

1.3 Tujuan

  1. Mengetahui cara membuat dan menggunakan function pada program R untuk mengolah data penjualan.
  2. Menggunakan fungsi statistik dasar untuk memperoleh ukuran deskriptif data penjualan.
  3. Membuat fungsi matematika untuk menentukan akar-akar persamaan kuadrat.

1.4 Manfaat

Praktikum ini diharapkan dapat meningkatkan pemahaman mengenai penggunaan fungsi dasar pada R, melatih penyusunan perintah secara sistematis, serta membantu praktikan menginterpretasikan hasil pengolahan data dan perhitungan matematika.

1.5 Batasan Masalah

  1. Data yang digunakan merupakan data penjualan semangka selama tujuh hari, yaitu Senin sampai Minggu, dengan jumlah penjualan berturut-turut 120, 115, 100, 120, 118, 135, dan 178 buah.
  2. Fungsi statistik digunakan untuk memperoleh nilai minimum, maksimum, total, rata-rata, urutan data dari terkecil ke terbesar, dan jumlah hari dengan penjualan kurang dari \(110 + 54 = 164\) buah. Dua digit terakhir NPM yang digunakan adalah 54.
  3. Fungsi matematika digunakan untuk menentukan akar-akar persamaan kuadrat \(x^2 - 5x + 6 = 0\) dengan rumus kuadrat.

BAB II. LANDASAN TEORI

2.1 Program R

R merupakan bahasa pemrograman dan lingkungan komputasi yang banyak digunakan untuk pengolahan data, analisis statistik, dan visualisasi. Perintah dalam R dapat dijalankan secara langsung maupun disusun ke dalam fungsi agar dapat digunakan kembali.

2.2 Pengertian Function

Function adalah sekumpulan instruksi yang diberi nama dan dapat dipanggil untuk melakukan suatu pekerjaan. Fungsi dapat menerima masukan berupa argumen dan menghasilkan keluaran. Dalam R, fungsi buatan pengguna umumnya ditulis menggunakan bentuk:

nama_fungsi <- function(argumen) {
  # perintah yang dijalankan
  return(hasil)
}

2.3 Fungsi Statistik Dasar pada R

Beberapa fungsi statistik dasar yang digunakan dalam praktikum ini adalah:

Fungsi Kegunaan
length(x) Menghitung banyaknya elemen data
min(x) Menentukan nilai terkecil
max(x) Menentukan nilai terbesar
sum(x) Menghitung jumlah seluruh elemen
mean(x) Menghitung rata-rata
median(x) Menentukan nilai tengah
sort(x) Mengurutkan data
var(x) Menghitung varians sampel
sd(x) Menghitung simpangan baku sampel
summary(x) Menampilkan ringkasan statistik

2.4 Fungsi Matematika Persamaan Kuadrat

Persamaan kuadrat mempunyai bentuk umum:

\[ ax^2 + bx + c = 0,\quad a \ne 0 \]

Akar-akar persamaan kuadrat dapat ditentukan menggunakan diskriminan:

\[ D = b^2 - 4ac \]

Kemudian akar-akar persamaan dihitung dengan rumus:

\[ x_1 = \frac{-b+\sqrt{D}}{2a},\qquad x_2 = \frac{-b-\sqrt{D}}{2a} \]

Jika \(D > 0\), terdapat dua akar real berbeda. Jika \(D = 0\), terdapat satu akar real kembar. Jika \(D < 0\), akar-akarnya merupakan bilangan kompleks.

BAB III. METODOLOGI

3.1 Data dan Sumber Data

Data yang digunakan adalah data penjualan semangka selama satu minggu sebagaimana tercantum dalam contoh materi praktikum. Data terdiri atas tujuh pengamatan, mulai dari hari Senin hingga Minggu. Data ini digunakan sebagai contoh penerapan fungsi, bukan sebagai hasil survei lapangan baru.

3.2 Variabel Penelitian

Variabel yang diamati adalah jumlah penjualan semangka per hari, dengan satuan buah.

Hari Jumlah penjualan (buah)
Senin 120
Selasa 115
Rabu 100
Kamis 120
Jumat 118
Sabtu 135
Minggu 178

3.3 Metode Analisis

Analisis dilakukan melalui tahapan berikut:

  1. Memasukkan data penjualan ke dalam sebuah vektor.
  2. Membuat fungsi statistik dengan argumen berupa data dan batas penjualan.
  3. Menghitung nilai minimum, maksimum, total, rata-rata, data terurut, dan jumlah hari di bawah batas.
  4. Membuat tabel dan grafik untuk menyajikan data penjualan.
  5. Membuat fungsi matematika dengan argumen koefisien \(a\), \(b\), dan \(c\).
  6. Menghitung diskriminan dan akar-akar persamaan kuadrat.
  7. Menginterpretasikan hasil yang diperoleh.

3.4 Diagram Alir

BAB IV. HASIL DAN PEMBAHASAN

4.1 Basic Function Statistika

4.1.1 Memasukkan Data

Data penjualan dimasukkan ke dalam vektor data_penjualan. Batas penjualan ditentukan berdasarkan 110 ditambah dua digit terakhir NPM, yaitu 54. Dengan demikian, batas yang digunakan adalah 164 buah.

hari <- c("Senin", "Selasa", "Rabu", "Kamis",
          "Jumat", "Sabtu", "Minggu")
data_penjualan <- c(120, 115, 100, 120, 118, 135, 178)
batas_penjualan <- 110 + 54

data_penjualan
## [1] 120 115 100 120 118 135 178
batas_penjualan
## [1] 164

4.1.2 Membuat Fungsi Statistik

Fungsi berikut digunakan untuk menghitung penjualan terendah, tertinggi, total, rata-rata, urutan penjualan, dan jumlah hari dengan penjualan di bawah batas.

analisis_penjualan <- function(data, batas) {
  hasil <- list(
    jumlah_hari = length(data),
    penjualan_terendah = min(data),
    penjualan_tertinggi = max(data),
    total_penjualan = sum(data),
    rata_rata = mean(data),
    urutan_penjualan = sort(data),
    hari_di_bawah_batas = sum(data < batas)
  )
  return(hasil)
}

hasil_penjualan <- analisis_penjualan(
  data_penjualan,
  batas_penjualan
)

hasil_penjualan
## $jumlah_hari
## [1] 7
## 
## $penjualan_terendah
## [1] 100
## 
## $penjualan_tertinggi
## [1] 178
## 
## $total_penjualan
## [1] 886
## 
## $rata_rata
## [1] 126.5714
## 
## $urutan_penjualan
## [1] 100 115 118 120 120 135 178
## 
## $hari_di_bawah_batas
## [1] 6

4.1.3 Ringkasan Statistik Deskriptif

tabel_statistik <- data.frame(
  Ukuran = c("Jumlah pengamatan", "Minimum", "Maksimum",
             "Range", "Total", "Mean", "Median",
             "Varians", "Standar deviasi"),
  Nilai = c(
    length(data_penjualan),
    min(data_penjualan),
    max(data_penjualan),
    max(data_penjualan) - min(data_penjualan),
    sum(data_penjualan),
    mean(data_penjualan),
    median(data_penjualan),
    var(data_penjualan),
    sd(data_penjualan)
  )
)

knitr::kable(
  tabel_statistik,
  digits = 3,
  caption = "Hasil Statistik Deskriptif Penjualan Semangka"
)
Hasil Statistik Deskriptif Penjualan Semangka
Ukuran Nilai
Jumlah pengamatan 7.000
Minimum 100.000
Maksimum 178.000
Range 78.000
Total 886.000
Mean 126.571
Median 120.000
Varians 619.286
Standar deviasi 24.885

Berdasarkan hasil perhitungan, terdapat tujuh data penjualan. Penjualan terendah adalah 100 buah dan tertinggi adalah 178 buah, sehingga range atau selisih keduanya sebesar 78 buah. Total penjualan selama tujuh hari adalah 886 buah. Rata-rata penjualan sebesar 126,57 buah per hari, sedangkan median sebesar 120 buah. Varians sampel sebesar 619,29 dan standar deviasi sampel sekitar 24,89 buah.

4.1.4 Hasil Fungsi Berdasarkan Batas NPM

cat("Batas penjualan:", batas_penjualan, "buah\n")
## Batas penjualan: 164 buah
cat("Jumlah hari di bawah batas:",
    hasil_penjualan$hari_di_bawah_batas, "hari\n")
## Jumlah hari di bawah batas: 6 hari
cat("Urutan penjualan:",
    paste(hasil_penjualan$urutan_penjualan, collapse = ", "))
## Urutan penjualan: 100, 115, 118, 120, 120, 135, 178

Batas penjualan yang digunakan adalah 164 buah. Berdasarkan data, terdapat enam hari dengan penjualan kurang dari 164 buah. Satu hari lainnya memiliki penjualan 178 buah, yaitu lebih besar daripada batas tersebut.

4.1.5 Tabel Penjualan Harian

tabel_penjualan <- data.frame(
  Hari = hari,
  Penjualan = data_penjualan,
  Keterangan = ifelse(data_penjualan < batas_penjualan,
                      "Di bawah batas", "Di atas batas")
)

knitr::kable(
  tabel_penjualan,
  caption = "Data Penjualan Semangka dan Perbandingan dengan Batas"
)
Data Penjualan Semangka dan Perbandingan dengan Batas
Hari Penjualan Keterangan
Senin 120 Di bawah batas
Selasa 115 Di bawah batas
Rabu 100 Di bawah batas
Kamis 120 Di bawah batas
Jumat 118 Di bawah batas
Sabtu 135 Di bawah batas
Minggu 178 Di atas batas

4.1.6 Grafik Penjualan

barplot(
  data_penjualan,
  names.arg = hari,
  col = "skyblue",
  main = "Grafik Penjualan Semangka Selama Tujuh Hari",
  xlab = "Hari",
  ylab = "Jumlah penjualan (buah)",
  ylim = c(0, 200)
)
abline(h = batas_penjualan, col = "red",
       lty = 2, lwd = 2)
legend(
  "topleft",
  legend = paste("Batas =", batas_penjualan, "buah"),
  col = "red",
  lty = 2,
  lwd = 2,
  bty = "n"
)

Grafik menunjukkan bahwa penjualan tertinggi terjadi pada hari Minggu sebanyak 178 buah, sedangkan penjualan terendah terjadi pada hari Rabu sebanyak 100 buah. Garis merah putus-putus menunjukkan batas 164 buah. Enam batang berada di bawah garis batas dan satu batang, yaitu hari Minggu, berada di atasnya.

4.2 Basic Function Matematika

4.2.1 Membuat Fungsi Persamaan Kuadrat

Fungsi berikut menerima tiga argumen, yaitu koefisien \(a\), \(b\), dan \(c\). Fungsi menghitung diskriminan dan menentukan akar persamaan kuadrat.

akar_kuadrat <- function(a, b, c) {
  if (a == 0) {
    stop("Koefisien a tidak boleh sama dengan 0.")
  }

  D <- b^2 - 4*a*c

  if (D > 0) {
    x1 <- (-b + sqrt(D)) / (2*a)
    x2 <- (-b - sqrt(D)) / (2*a)
  } else if (D == 0) {
    x1 <- -b / (2*a)
    x2 <- x1
  } else {
    bagian_real <- -b / (2*a)
    bagian_imajiner <- sqrt(abs(D)) / (2*abs(a))
    x1 <- complex(real = bagian_real,
                  imaginary = bagian_imajiner)
    x2 <- complex(real = bagian_real,
                  imaginary = -bagian_imajiner)
  }

  return(list(
    koefisien = c(a = a, b = b, c = c),
    diskriminan = D,
    akar_1 = x1,
    akar_2 = x2
  ))
}

4.2.2 Menghitung Akar Persamaan

Persamaan yang digunakan adalah:

\[ x^2 - 5x + 6 = 0 \]

Dengan demikian, koefisiennya adalah \(a=1\), \(b=-5\), dan \(c=6\).

hasil_akar <- akar_kuadrat(a = 1, b = -5, c = 6)
hasil_akar
## $koefisien
##  a  b  c 
##  1 -5  6 
## 
## $diskriminan
## [1] 1
## 
## $akar_1
## [1] 3
## 
## $akar_2
## [1] 2

Diskriminan yang diperoleh adalah:

\[ D=(-5)^2-4(1)(6)=25-24=1 \]

Karena nilai diskriminan lebih besar dari nol, persamaan mempunyai dua akar real yang berbeda. Hasil perhitungan fungsi adalah \(x_1=3\) dan \(x_2=2\).

4.2.3 Memeriksa Hasil Akar

x1 <- hasil_akar$akar_1
x2 <- hasil_akar$akar_2

data.frame(
  Akar = c(x1, x2),
  Substitusi = c(x1^2 - 5*x1 + 6,
                 x2^2 - 5*x2 + 6)
)

Hasil substitusi kedua akar ke persamaan menghasilkan nilai nol. Hal ini menunjukkan bahwa akar yang diperoleh sesuai dengan persamaan kuadrat yang diberikan.

BAB V. PENUTUP

5.1 Kesimpulan

Berdasarkan praktikum penggunaan basic function pada program R, dapat disimpulkan bahwa:

  1. Fungsi buatan pengguna dapat digunakan untuk menggabungkan beberapa proses pengolahan data penjualan ke dalam satu perintah.
  2. Berdasarkan data penjualan semangka selama tujuh hari, diperoleh penjualan minimum 100 buah, maksimum 178 buah, total 886 buah, dan rata-rata 126,57 buah per hari. Urutan penjualan dari terkecil hingga terbesar adalah 100, 115, 118, 120, 120, 135, dan 178 buah.
  3. Dengan batas penjualan sebesar 164 buah berdasarkan dua digit terakhir NPM 54, terdapat enam hari dengan penjualan kurang dari batas tersebut.
  4. Fungsi matematika yang dibuat dapat menghitung akar persamaan kuadrat. Untuk persamaan \(x^2-5x+6=0\), diperoleh diskriminan 1 dan akar-akar 3 serta 2.

5.2 Saran

Sebelum membuat fungsi pada program R, praktikan sebaiknya memahami penggunaan argumen, badan fungsi, dan nilai keluaran (return). Penulisan sintaks perlu dilakukan secara teliti agar tidak terjadi kesalahan ketika program dijalankan. Hasil keluaran juga perlu diperiksa kembali agar interpretasi sesuai dengan data dan perhitungan.

DAFTAR PUSTAKA

Fadhli, M. R. (2021). Dasar-dasar Bahasa Pemrograman R. Bandung: Institut Teknologi Bandung.

Novianti. (2026). Modul Praktikum Komputasi Statistika. Bengkulu: Laboratorium Matematika, Fakultas Matematika dan Ilmu Pengetahuan Alam, Universitas Bengkulu.

Nurdiansyah, D., & Sulistiawan, A. (2023). Dasar Pemrograman Komputer dengan Open Source Software R (Untuk Bidang Sains dan Teknologi). Bojonegoro: Universitas Nahdlatul Ulama Sunan Giri.

Zulfikar, Susanti, A., & Munawarah. (2022). Statistical Computing dengan Program R: Untuk Riset Sains Terapan. Fakultas Pertanian, Universitas KH. A. Wahab Hasbullah.