Dalam kehidupan modern, informasi sering kali berawal dari kumpulan data yang menggambarkan fakta atau objek di dunia nyata. Data memiliki peran yang sangat penting karena menjadi dasar dalam memperoleh informasi yang bermanfaat untuk berbagai bidang. Dengan semakin melimpahnya data yang tersedia, dibutuhkan alat yang efisien untuk mengelola serta menganalisisnya. Salah satu perangkat lunak yang banyak digunakan untuk keperluan analisis data tersebut adalah R (Kadir, 2019).
R merupakan alat untuk melakukan perhitungan dan pemecahan angka untuk analisis statistik dan pengambilan keputusan. Aspek penting dari analisis statistik adalah menyajikan hasil dengan cara yang dapat dipahami. Ross Ihaka dan Robert Gentleman mengembangkan R pada tahun 1990-an di University of Auckland, Selandia Baru. RStudio adalah lingkungan pengembangan terintegrasi (IDE) open source untuk membuat dan menjalankan kode R (Wibowo, 2022).
Setiap bahasa pemrograman umumnya memiliki sekumpulan fungsi dasar atau basic function, demikian pula dengan bahasa R. R dikenal sebagai bahasa pemrograman yang kuat karena menyediakan berbagai fungsi bawaan yang dapat digunakan kapan saja sesuai kebutuhan. Basic function berisi perintah-perintah umum yang sering digunakan dalam proses pemrograman R. Melalui fungsi dasar ini, pengguna dapat melakukan manipulasi data dengan mudah tanpa perlu menulis kode yang kompleks. Pemahaman terhadap basic function menjadi hal penting dalam pengolahan data, sehingga pada praktikum ini akan dibahas lebih lanjut mengenai fungsi dasar dalam program R (Novianti, 2026).
Berdasarkan latar belakang di atas, masalah yang dapat disimpulkan adalah sebagai berikut:
Berdasarkan rumusan masalah pada penelitian ini, tujuan yang dapat disimpulkan adalah:
Adapun manfaat pada penelitian ini, yaitu:
Adapun batasan masalah pada penelitian ini, yaitu:
Adapun sistematika penulisan dari praktikum ini adalah sebagai berikut.
Fungsi atau kode pada lingkungan R bersifat case sensitive, artinya penggunaan huruf besar atau kecil akan sangat berpengaruh. Selain menggunakan fungsi yang telah disediakan program R, pengguna dimungkinkan untuk membuat fungsi sendiri. Pada bahasa pemrograman terdapat dua jenis fungsi, yaitu fungsi yang tidak mengembalikan nilai dan fungsi yang mengembalikan nilai. Untuk fungsi yang mengembalikan keluaran, fungsi tersebut dapat digunakan dengan dua cara, yaitu dengan cara memanggil langsung atau dapat pula ditampung terlebih dahulu (Faisal, 2016).
Fungsi adalah suatu objek yang membungkus sejumlah perintah. Ketika
namanya dipanggil, perintah-perintah yang terkandung di dalamnya akan
dijalankan. Umumnya, fungsi ketika dipanggil memberikan nilai balik.
Sebagai contoh, pemanggilan min() memberikan nilai balik
berupa bilangan terkecil dari nilai yang diberikan (Kadir, 2019).
Salah satu kemampuan R ialah membuat fungsi-fungsi baru yang dapat digunakan untuk hal-hal berikut (Effendie, 2015):
Fungsi yang disebut User Defined Functions (UDF) merupakan fungsi yang dirancang oleh pengguna untuk melaksanakan tugas tertentu. Berikut elemen utama dari UDF (Novianti, 2026):
Jenis data yang digunakan pada penelitian ini adalah data kuantitatif. Data kuantitatif adalah data yang berbentuk angka dan dapat diukur atau dihitung secara numerik. Data kuantitatif menggambarkan besaran, jumlah, atau ukuran dari suatu variabel.
Sumber data yang digunakan dalam penelitian ini yaitu data sekunder. Data sekunder adalah data yang diperoleh atau dikumpulkan oleh orang yang melakukan penelitian dari sumber-sumber yang sudah ada tanpa melalui proses pengumpulan data secara langsung. Pada penelitian ini, data berasal dari Asisten Praktikum.
Variabel penelitian adalah karakter atau segala sesuatu yang menjadi perhatian dalam suatu penelitian, sehingga variabel penelitian merupakan sesuatu yang menjadi sasaran pengamatan dan dapat diobservasi atau diukur. Pada laporan ini terdapat variabel penelitian berupa \(v\) (vektor) yang memuat jumlah penjualan semangka selama tujuh hari, serta variabel \(a\), \(b\), dan \(c\) yang merupakan koefisien pada persamaan kuadrat untuk menentukan akar-akarnya.
Algoritma yang digunakan pada penelitian untuk melakukan basic function pada program R adalah sebagai berikut:
Pada batasan masalah pertama, fungsi R menggunakan
length(), min(), max(),
sum(), mean(), sort(),
var(), dan sd(). Fungsi tersebut digunakan
untuk memperoleh jumlah data, nilai minimum, maksimum, total, rata-rata,
urutan data, varians, dan standar deviasi. Jumlah hari dengan penjualan
di bawah batas dihitung menggunakan kondisi logika dan
sum().
Pada batasan masalah kedua, fungsi dibuat dengan menerima koefisien \(a\), \(b\), dan \(c\). Diskriminan dihitung menggunakan \(D=b^2-4ac\), kemudian akar-akar persamaan dihitung dengan rumus ABC.
Pengolahan data dilakukan melalui tahapan berikut.
c().statistik_semangka() untuk menghitung
ukuran statistik deskriptif, mengurutkan data, dan menghitung jumlah
hari dengan penjualan di bawah batas.akar_kuadrat() dengan input koefisien
\(a\), \(b\), dan \(c\).Diagram alir berikut menggambarkan tahapan pelaksanaan basic function pada program R, mulai dari memasukkan data hingga memperoleh output.
# Jalankan sekali jika DiagrammeR belum terpasang:
# install.packages("DiagrammeR")
DiagrammeR::grViz("
digraph basic_function {
graph [layout = dot, rankdir = TB, bgcolor = white,
nodesep = 0.35, ranksep = 0.45]
node [fontname = Helvetica, fontsize = 11,
style = filled, color = '#263B73',
fillcolor = '#EAF0FF', fontcolor = '#172554',
penwidth = 1.4, margin = '0.18,0.10']
edge [color = '#263B73', penwidth = 1.3, arrowsize = 0.8]
mulai [label = 'Mulai', shape = oval, fillcolor = '#D9EAD3']
input [label = 'Input data ke dalam vektor', shape = parallelogram]
akses [label = 'Akses vektor', shape = box]
fungsi [label = 'Membuat function yang diinginkan', shape = box]
eksekusi [label = 'Eksekusi sintaks', shape = box]
output [label = 'Output', shape = parallelogram]
selesai [label = 'Selesai', shape = oval, fillcolor = '#D9EAD3']
mulai -> input -> akses -> fungsi -> eksekusi -> output -> selesai
}
")
Gambar 3.1. Diagram alir basic function
Berdasarkan batasan masalah pertama, dilakukan pengolahan data jumlah penjualan semangka selama tujuh hari menggunakan fungsi program R. Data dimasukkan dalam bentuk vektor sesuai urutan hari, yaitu Senin hingga Minggu.
Data penjualan semangka yang digunakan adalah 120, 115, 100, 120, 118, 135, dan 178 buah. Batas penjualan yang digunakan adalah 160 buah, sesuai dua digit terakhir NPM yaitu 50 ditambah 110.
data_semangka <- c(120, 115, 100, 120, 118, 135, 178)
nama_hari <- c("Senin", "Selasa", "Rabu", "Kamis",
"Jumat", "Sabtu", "Minggu")
batas <- 110 + 50
data.frame(
Hari = nama_hari,
Jumlah_Penjualan = data_semangka
)
#> Hari Jumlah_Penjualan
#> 1 Senin 120
#> 2 Selasa 115
#> 3 Rabu 100
#> 4 Kamis 120
#> 5 Jumat 118
#> 6 Sabtu 135
#> 7 Minggu 178
Fungsi berikut digunakan untuk menghitung statistik deskriptif dan informasi penjualan lainnya.
statistik_semangka <- function(data, batas = 160) {
penjualan_terendah <- min(data)
penjualan_tertinggi <- max(data)
total_penjualan <- sum(data)
rata_rata <- mean(data)
data_terurut <- sort(data)
jumlah_hari <- sum(data < batas)
n <- length(data)
range_data <- max(data) - min(data)
median_data <- median(data)
varians <- var(data)
standar_deviasi <- sd(data)
return(list(
N = n,
penjualan_terendah = penjualan_terendah,
penjualan_tertinggi = penjualan_tertinggi,
range = range_data,
total_penjualan = total_penjualan,
rata_rata = rata_rata,
median = median_data,
varians = varians,
standar_deviasi = standar_deviasi,
urutan_penjualan = data_terurut,
batas_penjualan = batas,
jumlah_hari = jumlah_hari
))
}
hasil <- statistik_semangka(data_semangka, batas)
hasil
#> $N
#> [1] 7
#>
#> $penjualan_terendah
#> [1] 100
#>
#> $penjualan_tertinggi
#> [1] 178
#>
#> $range
#> [1] 78
#>
#> $total_penjualan
#> [1] 886
#>
#> $rata_rata
#> [1] 126.5714
#>
#> $median
#> [1] 120
#>
#> $varians
#> [1] 619.2857
#>
#> $standar_deviasi
#> [1] 24.88545
#>
#> $urutan_penjualan
#> [1] 100 115 118 120 120 135 178
#>
#> $batas_penjualan
#> [1] 160
#>
#> $jumlah_hari
#> [1] 6
Tabel berikut menampilkan hasil pengolahan data penjualan semangka.
tabel_statistik <- data.frame(
Statistika_Deskriptif = c(
"n", "Minimum", "Maksimum", "Range", "Total",
"Mean", "Median", "Varians", "Standar Deviasi"
),
Nilai = c(
hasil$N,
hasil$penjualan_terendah,
hasil$penjualan_tertinggi,
hasil$range,
hasil$total_penjualan,
hasil$rata_rata,
hasil$median,
hasil$varians,
hasil$standar_deviasi
)
)
knitr::kable(
tabel_statistik,
digits = 4,
col.names = c("Statistika Deskriptif", "Nilai"),
caption = "Tabel 4.1. Hasil basic function statistika"
)
| Statistika Deskriptif | Nilai |
|---|---|
| n | 7.0000 |
| Minimum | 100.0000 |
| Maksimum | 178.0000 |
| Range | 78.0000 |
| Total | 886.0000 |
| Mean | 126.5714 |
| Median | 120.0000 |
| Varians | 619.2857 |
| Standar Deviasi | 24.8855 |
Grafik batang berikut digunakan untuk membandingkan jumlah penjualan semangka pada setiap hari. Garis putus-putus menunjukkan batas penjualan sebesar 160 buah.
barplot(
data_semangka,
names.arg = nama_hari,
col = "skyblue",
border = "steelblue4",
main = "Jumlah Penjualan Semangka Selama Tujuh Hari",
xlab = "Hari",
ylab = "Jumlah Penjualan (buah)",
ylim = c(0, max(data_semangka) + 30)
)
abline(h = batas, col = "red", lty = 2, lwd = 2)
legend(
"topleft",
legend = c("Jumlah penjualan", paste("Batas =", batas, "buah")),
fill = c("skyblue", NA),
border = c("steelblue4", NA),
lty = c(NA, 2),
col = c(NA, "red"),
bty = "n"
)
Gambar 4.1. Grafik jumlah penjualan semangka selama tujuh hari
Grafik memperlihatkan perbedaan jumlah penjualan pada setiap hari. Garis batas 160 buah membantu menunjukkan hari-hari dengan penjualan di bawah target. Berdasarkan data, hanya penjualan hari Minggu yang mencapai lebih dari 160 buah.
cat("Urutan penjualan dari paling sedikit ke paling banyak:\n")
#> Urutan penjualan dari paling sedikit ke paling banyak:
hasil$urutan_penjualan
#> [1] 100 115 118 120 120 135 178
cat("\nBatas penjualan:", hasil$batas_penjualan, "buah\n")
#>
#> Batas penjualan: 160 buah
cat("Jumlah hari dengan penjualan kurang dari batas:",
hasil$jumlah_hari, "hari\n")
#> Jumlah hari dengan penjualan kurang dari batas: 6 hari
Berdasarkan hasil pengolahan, jumlah data penjualan adalah 7 hari dengan total penjualan 886 buah dan rata-rata 126,5714 buah per hari. Penjualan terendah sebesar 100 buah dan tertinggi sebesar 178 buah, dengan range 78 buah. Median sebesar 120 buah menunjukkan nilai tengah setelah data diurutkan. Varians sebesar 619,2857 dan standar deviasi sebesar 24,88545 menunjukkan penyebaran jumlah penjualan terhadap nilai rata-ratanya. Setelah diurutkan, data penjualan menjadi 100, 115, 118, 120, 120, 135, dan 178 buah. Berdasarkan batas penjualan 160 buah, terdapat 6 hari dengan penjualan kurang dari batas tersebut. Hasil ini menunjukkan bahwa fungsi program R dapat digunakan untuk mengolah data penjualan dan memberikan gambaran kondisi penjualan semangka selama tujuh hari.
Pada batasan masalah kedua, dilakukan perancangan fungsi program R untuk mencari akar-akar persamaan kuadrat dengan menerapkan rumus persamaan kuadrat (rumus ABC). Bentuk umum persamaan kuadrat adalah:
\[ ax^2+bx+c=0 \]
Akar-akar persamaan diperoleh 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} \]
Fungsi berikut menerima koefisien \(a\), \(b\), dan \(c\), menghitung diskriminan, kemudian menentukan akar-akar persamaan kuadrat.
akar_kuadrat <- function(a, b, c) {
D <- b^2 - 4*a*c
if (a == 0) {
stop("Koefisien a tidak boleh sama dengan nol.")
}
if (D < 0) {
return(list(
diskriminan = D,
keterangan = "Persamaan tidak memiliki akar real."
))
}
x1 <- (-b + sqrt(D)) / (2*a)
x2 <- (-b - sqrt(D)) / (2*a)
return(list(
diskriminan = D,
akar_pertama = x1,
akar_kedua = x2
))
}
Persamaan kuadrat yang digunakan adalah:
\[ x^2-5x+6=0 \]
Dengan demikian, koefisiennya adalah \(a=1\), \(b=-5\), dan \(c=6\).
hasil_akar <- akar_kuadrat(1, -5, 6)
hasil_akar
#> $diskriminan
#> [1] 1
#>
#> $akar_pertama
#> [1] 3
#>
#> $akar_kedua
#> [1] 2
Berdasarkan hasil eksekusi program R, diperoleh akar pertama sebesar 3 dan akar kedua sebesar 2. Nilai tersebut dapat diperiksa dengan substitusi ke persamaan awal.
x1 <- hasil_akar$akar_pertama
x2 <- hasil_akar$akar_kedua
data.frame(
Akar = c(x1, x2),
Hasil_Substitusi = c(
x1^2 - 5*x1 + 6,
x2^2 - 5*x2 + 6
)
)
#> Akar Hasil_Substitusi
#> 1 3 0
#> 2 2 0
Grafik berikut menggambarkan fungsi kuadrat \(y=x^2-5x+6\). Grafik digunakan sebagai pendukung untuk memperlihatkan letak akar-akar persamaan pada sumbu horizontal.
curve(
x^2 - 5*x + 6,
from = -1,
to = 6,
n = 500,
lwd = 2,
col = "steelblue",
main = expression(y == x^2 - 5*x + 6),
xlab = "x",
ylab = "y"
)
abline(h = 0, v = 0, col = "gray50", lty = 2)
points(c(2, 3), c(0, 0), pch = 19, col = "red")
text(c(2, 3), c(0, 0), labels = c("(2, 0)", "(3, 0)"),
pos = 3, col = "red")
Gambar 4.2. Grafik fungsi kuadrat y = x^2 - 5x + 6
Hasil substitusi kedua akar menghasilkan nilai nol. Dengan demikian, akar 3 dan 2 memenuhi persamaan kuadrat \(x^2-5x+6=0\). Hal ini menunjukkan bahwa fungsi yang dibuat dapat digunakan untuk menentukan akar-akar persamaan kuadrat menggunakan rumus ABC.
Dalam bahasa pemrograman R, pengguna dapat membuat fungsi secara mandiri sesuai kebutuhan. Fungsi pada R merupakan objek yang memungkinkan eksekusi sejumlah perintah hanya dengan satu kali pemanggilan nama. Keberadaan fungsi membantu pengguna menyusun kode menjadi bagian-bagian yang lebih terstruktur dan mudah dikelola. Program R juga menyediakan berbagai fasilitas untuk membuat serta memanipulasi fungsi, sehingga fungsi dapat disimpan sebagai objek dan dipanggil menggunakan argumen.
Pemahaman mengenai cara kerja fungsi dalam R dapat diperoleh dengan membuat fungsi sendiri. Fungsi yang dikenal sebagai User-Defined Functions (UDF) merupakan fungsi yang dibuat oleh programmer untuk menjalankan tugas tertentu. Struktur fungsi ini terdiri atas empat elemen utama, yaitu nama fungsi (function name), argumen (argument), badan fungsi (function body), dan nilai keluaran (return). Argumen memiliki peranan penting karena menentukan data yang digunakan sebagai input.
Berdasarkan hasil percobaan, praktikan membuat dua fungsi utama untuk
menyelesaikan batasan masalah yang diberikan. Pada batasan masalah
pertama, dibuat fungsi statistik_semangka yang menerima
vektor data penjualan semangka selama tujuh hari dan menghasilkan
statistik deskriptif berupa panjang data, nilai minimum, maksimum,
range, rata-rata, median, varians, serta standar deviasi. Fungsi ini
juga menghitung total penjualan, mengurutkan data, dan menghitung jumlah
hari dengan penjualan di bawah target. Hasil pengolahan menunjukkan
total penjualan sebesar 886 buah, rata-rata 126,5714 buah per hari,
median 120 buah, varians 619,2857, dan standar deviasi 24,88545.
Berdasarkan batas target 160 buah, terdapat 6 hari dengan penjualan
kurang dari batas tersebut.
Selanjutnya, pada batasan masalah kedua, dibuat fungsi
akar_kuadrat untuk menentukan akar-akar persamaan kuadrat
dengan menerapkan rumus ABC. Fungsi tersebut dijalankan dengan
memasukkan koefisien \(a=1\), \(b=-5\), dan \(c=6\), sehingga diperoleh akar pertama
sebesar 3 dan akar kedua sebesar 2. Kedua akar tersebut menghasilkan
nilai nol ketika disubstitusikan ke persamaan awal.
Diharapkan pada saat menulis laporan, penulis lebih teliti dalam menggunakan program R. Penulis juga perlu memahami materi pengolahan data dengan baik agar dapat diaplikasikan pada R. Selain itu, hendaknya selalu memperhatikan cara penulisan agar sesuai dengan kaidah bahasa Indonesia, sehingga dapat menghasilkan laporan yang baik.
Effendie, A. R. (2015). Matematika Aktuaria Dengan Software R. Yogyakarta: Gadjah Mada University Press.
Faisal, R. M. (2016). Seri Belajar Pemrograman: Pengenalan Bahasa Pemrograman R. Banjarmasin: Universitas Lambung Mangkurat.
Kadir, A. (2019). Langkah Mudah Pemrograman R. Jakarta: PT. Elex Media Komputindo.
Novianti, P. (2026). Modul Praktikum Komputasi Statistika. Bengkulu: Laboratorium Statistika Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Bengkulu.
Wibowo, A. (2022). Analisis Statistik dengan R. Semarang: Yayasan Prima Agus Teknik.