BAB 2
Pengenalan Pemrograman Statistik
(Python & R)
Mata Kuliah: Dasar Pemrograman Statistik
Capaian Pembelajaran
1. Mahasiswa memahami peran Python dan R dalam pemrograman statistik
modern.
2. Mahasiswa mampu menjalankan program sederhana (Hello World, input–
output).
3. Mahasiswa memahami konsep algoritma dan memodelkannya dalam pseu-
docode serta flowchart.
1 Pendahuluan
Pemrograman statistik adalah keterampilan dasar yang harus dimiliki oleh mahasiswa
statistika. Bahasa yang paling populer saat ini adalah Python dan R. Keduanya open
source, lintas platform, dan memiliki komunitas global yang luas serta ekosistem pustaka
yang matang.
2 Latar Belakang Python dan R
2.1 Python
Python dikembangkan oleh Guido van Rossum (1991) dengan filosofi readability counts;
sintaksnya ringkas dan mudah dibaca. Python kini menjadi bahasa serbaguna: web,
otomasi, komputasi ilmiah, Data Science, dan AI. Ekosistem populer: numpy, pandas,
matplotlib/seaborn, scikit-learn, tensorflow/pytorch.
1
2.2 R
R dikembangkan oleh Ross Ihaka dan Robert Gentleman (1993) sebagai implementasi
open-source dari bahasa S. R berfokus pada analisis statistik dan visualisasi ilmiah.
CRAN (Comprehensive R Archive Network) menyediakan puluhan ribu paket. Ekosistem
modern tidyverse (mis. dplyr, ggplot2, readr) menjadi standar de facto analisis data
di R.
2.3 Perkembangan Versi
• Python: Transisi Python 2 → 3 (sejak 2008) memperbaiki konsistensi & Unicode;
hampir semua pustaka kini mendukung Python 3.
• R: Evolusi S → R, diikuti penguatan CRAN; 2010-an lahir tidyverse yang men-
standarkan tata kerja analisis data.
3 Perbandingan Ekosistem Pustaka
Kategori Python R
Statistik dasar numpy, pandas base R, dplyr
Visualisasi matplotlib, seaborn, ggplot2, lattice, plotly
plotly
Machine learning scikit-learn, caret, mlr3, h2o
tensorflow, pytorch
Big data pyspark, dask sparklyr, [Link]
Pelaporan jupyter, nbconvert RMarkdown, knitr, quarto
Contoh singkat (statistik deskriptif):
Python
import pandas as pd
data = [78 , 65 , 84 , 90 , 71]
print ( " Mean = " , pd . Series ( data ) . mean () )
print ( " Median = " , pd . Series ( data ) . median () )
R
data <- c (78 , 65 , 84 , 90 , 71)
mean ( data ) ; median ( data )
2
4 Perbandingan Sintaks: Python vs R
Topik Python R
Penugasan variabel x = 10 x <- 10 atau x = 10
Output print(x) print(x) / cat(x, "\n")
Input s = input() s <- readline()
Percabangan if..elif..else if..else, ifelse()
Perulangan for, while for, while, repeat
Struktur koleksi list, dict, set, tuple vector, list, matrix,
[Link]
Data frame [Link] [Link], tibble
Seleksi data [Link][..], [Link][..] df[rows, cols],
dplyr::filter/select
5 Algoritma Dasar
5.1 Konsep dan Representasi
Algoritma adalah langkah-langkah logis, terbatas, dan berurutan untuk menyelesaikan
masalah. Representasi umum: (1) deskriptif bahasa alami, (2) pseudocode, (3) flowchart.
5.2 Contoh 1: Rata-rata 3 Bilangan (Pseudocode)
Mulai
Input a, b, c
jumlah <- a + b + c
rata <- jumlah / 3
Tampilkan rata
Selesai
3
Flowchart 1 (Rata-rata)
Mulai
Input a, b, c
jumlah ← a + b + c
rata ← jumlah/3
Tampilkan rata
Selesai
5.3 Contoh 2: Kelulusan Nilai (Pseudocode)
Mulai
Input nilai
Jika nilai >= 60 maka
status <- "Lulus"
selain itu
status <- "Tidak Lulus"
Tampilkan status
Selesai
4
Flowchart 2 (Kelulusan)
Mulai
Input nilai
nilai ≥ 60?
Ya Tidak
status ← Lulus status ← Tidak
Tampilkan status
Selesai
6 Program Pertama dan I/O
Python: Hello World
print ( " Hello , World ! " )
R: Hello World
print ( " Hello , World ! " )
Python: Input–Output Dasar
nama = input ( " Masukkan nama : " )
print ( " Halo , " , nama )
R: Input–Output Dasar
nama <- readline ( prompt = " Masukkan nama : " )
cat ( " Halo , " , nama , " \ n " )
5
7 Studi Kasus Sederhana (Dataset Nilai)
Dataset (CSV)
Nama,Nilai
Andi,78
Budi,65
Citra,84
Dewi,90
Eka,71
Fajar,85
Gita,60
Heri,75
Indah,88
Joko,72
Kiki,95
Lina,67
Maya,80
Nina,76
Oki,89
Analisis dengan Python
import pandas as pd
data = pd . read_csv ( " nilai . csv " )
print ( " Statistik Deskriptif " )
print ( data [ " Nilai " ]. describe () )
# Distribusi kategori kelulusan
data [ " Status " ] = data [ " Nilai " ]. apply ( lambda x : "
Lulus " if x >=60 else " Tidak " )
print ( data [ " Status " ]. value_counts () )
6
Analisis dengan R
data <- read . csv ( " nilai . csv " )
summary ( data$Nilai )
# Distribusi kategori kelulusan
data$Status <- ifelse ( data$Nilai >= 60 , " Lulus " ,
" Tidak " )
table ( data$Status )
Interpretasi
Rata-rata nilai sekitar 78 dengan sebaran yang didominasi kategori Lulus. Ada beberapa
mahasiswa di bawah batas kelulusan sehingga perlu intervensi pembelajaran.
8 Kesalahan Umum (Common Pitfalls)
• Tipe data: mencampur string dan numerik tanpa konversi eksplisit.
• Indentasi Python: blok if/for/while harus rapi, jika tidak akan Indentation-
Error.
• Simbol penugasan: = (Python) vs <- (R) dapat membingungkan pemula.
• Desimal lokal: gunakan titik (.) sebagai pemisah desimal.
• Indexing: Python (0-based) vs R (1-based).
9 Latihan Terstruktur
Latihan A (Dasar)
1. Tulis program biodata (nama, NIM, prodi) di Python dan R.
2. Hitung luas persegi panjang (input panjang, lebar).
3. Baca tiga bilangan dan tampilkan bilangan terbesar.
7
Latihan B (Algoritma & Validasi)
1. Tulis pseudocode dan flowchart untuk rata-rata 5 bilangan.
2. Program membaca nilai (0–100); jika di luar rentang, tampilkan pesan kesalahan.
3. Kembangkan Kelulusan Nilai: kategori A/B/C/D/E.
Latihan C (Ringkas Data)
Data contoh: {78, 65, 84, 90, 71}
Tugas: hitung mean, median, min, max dan tampilkan ringkasan rapi (Python &
R).
Contoh Solusi Python
data = [78 , 65 , 84 , 90 , 71]
mean = sum ( data ) / len ( data )
median = sorted ( data ) [ len ( data ) //2]
print ( " Mean : " , mean , " Median : " , median , " Min : " ,
min ( data ) , " Max : " , max ( data ) )
Contoh Solusi R
data <- c (78 , 65 , 84 , 90 , 71)
cat ( " Mean : " , mean ( data ) , " Median : " , median ( data ) ,
" Min : " , min ( data ) , " Max : " , max ( data ) , " \ n " )
10 Tugas Rumah
Buat Program Kalkulator Nilai Akhir: bobot Tugas (30%), Kuis (20%), UAS (50%).
Input: tiga komponen. Output: nilai akhir dan kategori huruf (A–E) serta status lulus
(≥ 60).
11 Ringkasan
Mahasiswa telah mempelajari latar belakang Python & R, perbandingan ekosistem dan
sintaks, konsep algoritma (pseudocode & flowchart), program Hello World, I/O, studi
kasus dataset nilai, kesalahan umum, serta latihan terstruktur untuk menguatkan kom-
petensi dasar.
8
Referensi
1. Downey, A. (2015). Think Python. O’Reilly.
2. McKinney, W. (2017). Python for Data Analysis. O’Reilly.
3. Wickham, H. & Grolemund, G. (2017). R for Data Science. O’Reilly.
4. Dalgaard, P. (2008). Introductory Statistics with R. Springer.