Hello, World!

Deden Istiawan

ITESA MUHAMMADIYAH
GANJIL 2025

Welcome to R!

Goals

  • Memahami dasar-dasar algoritma dan pemrograman → melatih logika dan cara berpikir sistematis

  • Menyusun pemecahan masalah menggunakan algoritma → dari permasalahan sederhana ke kompleks

  • Mengenal struktur data dasar → variabel, array, string, dan tipe data lainnya

  • Menerapkan konsep pemrograman dalam praktik → membuat program sederhana yang terstruktur dan mudah dipahami

Evaluasi: Algoritma dan Pemrograman

  • Tugas dan latihan pemrograman (40%)
  • Ujian Tengah Semester (UTS) (30%)
  • Ujian Akhir Semester (UAS) (30%)
  • Nilai maksimum: untuk memperoleh nilai A, mahasiswa harus menguasai baik teori algoritma maupun praktik pemrograman secara seimbang.

first steps

Introduction to R and RStudio. Working with projects.

L1: first steps

Introduction to R and RStudio. Working with projects. First uses of functions and packages. Basic data types

Requirements

Untuk mengikuti mata kuliah ini, persyaratan yang dibutuhkan adalah:

  1. Koneksi internet (untuk mengunduh data dan paket).
  1. Menginstal R: ini akan menjadi bahasa pemrograman yang kita gunakan. R dapat diunduh secara gratis di https://cran.r-project.org/

R vs RStudio

Kita akan belajar programming sambil menulis kode

  • Kita memerlukan tata bahasa, sebuah bahasa pemrograman (R)
  • Dan sebuah lingkungan kerja, seperti Ms Word (RStudio) untuk menuliskannya

Menginstal R

Bahasa R akan menjadi tata bahasa dan ejaan kita (aturan main dalam analisis data).

  • Langkah 1: buka https://cran.r-project.org/ dan pilih sistem operasi yang Anda gunakan.

  • Langkah 2: untuk pengguna Mac, cukup klik pada file .pkg, lalu buka setelah selesai diunduh. Untuk pengguna Windows, klik install R for the first time kemudian pilih Download R for Windows. Setelah selesai diunduh, buka file tersebut seperti instalasi biasa.

  • Langkah 3: jalankan file instalasi yang sudah diunduh.

Warning

Setiap kali Anda perlu mengunduh sesuatu dari CRAN (baik R maupun paket tambahan), pastikan perangkat Anda terhubung ke internet.

First operation

Untuk mengecek apakah instalasi berhasil, setelah membuka R, Anda akan melihat R GUI (Graphical User Interface) dengan layar putih yang mirip dengan ini (konsol).

Kode Pertama: kita akan memberikan nilai 1 pada sebuah variabel bernama a dan b (ketikkan kode ini di konsol a <- 1 dan b <- 1 lalu tekan “enter”). Setelah itu kita akan melakukan penjumlahan a + b.

a <- 1

First operation

Untuk mengecek apakah instalasi berhasil, setelah membuka R, Anda akan melihat R GUI (Graphical User Interface) dengan layar putih yang mirip dengan ini (konsol).

Kode Pertama: kita akan memberikan nilai 1 pada sebuah variabel bernama a dan b (ketikkan kode ini di konsol a <- 1 dan b <- 1 lalu tekan “enter”). Setelah itu kita akan melakukan penjumlahan a + b.

a <- 1
b <- 2

First operation

Untuk mengecek apakah instalasi berhasil, setelah membuka R, Anda akan melihat R GUI (Graphical User Interface) dengan layar putih yang mirip dengan ini (konsol).

Kode Pertama: kita akan memberikan nilai 1 pada sebuah variabel bernama a dan b (ketikkan kode ini di konsol a <- 1 dan b <- 1 lalu tekan “enter”). Setelah itu kita akan melakukan penjumlahan a + b.

a <- 1
b <- 2
a + b
[1] 3

Note that…

Di konsol, muncul angka [1]: itu hanyalah penghitung elemen (seperti menghitung baris dalam Microsoft Word).

Menginstal RStudio

RStudio` akan menjadi MS Word yang kita gunakan untuk menulis (dikenal juga sebagai IDE: Integrated Development Environment).

  • Langkah 1: buka situs resmi RStudio (sekarang bernama Posit) dan pilih unduhan gratis.

  • Langkah 2: pilih file instalasi yang sesuai dengan sistem operasi Anda.

  • Langkah 3: setelah file selesai diunduh, buka seperti instalasi biasa dan tunggu hingga proses instalasi selesai.

Tampilan RStudio

Saat membuka RStudio, biasanya Anda akan melihat tiga jendela utama:

  • Console: adalah jendela besar yang memenuhi sebagian besar layar. Cobalah mengetikkan kode yang sama seperti sebelumnya (penjumlahan variabel) di sini. Konsol adalah tempat kita mengeksekusi perintah dan menampilkan hasil.

Tampilan RStudio

Saat membuka RStudio, biasanya Anda akan melihat tiga jendela utama:

  • Environment: layar kecil (kamu bisa menyesuaikan lebarnya dengan menggeser batasnya menggunakan mouse) yang terletak di pojok kanan atas. Di bagian ini akan ditampilkan variabel-variabel yang sudah kamu definisikan.

Tampilan RStudio

Saat membuka RStudio, biasanya Anda akan melihat tiga jendela utama:

  • Multi-purpose panel: jendela di bagian kanan bawah yang digunakan untuk mencari bantuan fungsi (help), serta untuk menampilkan grafik (plot).

What is R? Why R?

What is R? Why R?

R merupakan pengembangan dari bahasa pemrograman S yang dikembangkan di Bell Laboratories.
Bahasa ini kemudian dibawa ke dunia open-source oleh Ross Ihaka dan Robert Gentleman pada tahun 1990-an.
Versi pertama, yaitu R 1.0.0, dirilis pada 29 Februari 2000.

What is R? Why R?

R adalah bahasa statistik unggulan, dibuat oleh dan untuk para ahli statistik, dengan 6 keunggulan utama dibandingkan dengan Excel, SAS, Stata, atau SPSS:

  • Bahasa pemrograman: keunggulan yang jelas → analisis yang dapat direplikasi
  • Gratis: filosofi komunitas R adalah berbagi kode di bawah lisensi copyleft → mendukung penggunaan yang etis terhadap anggaran dan algoritma
  • Perangkat lunak open-source: tidak hanya gratis, tetapi juga memberikan akses bebas terhadap kode orang lain, bahkan hingga kode sumbernya sendirifleksibilitas dan transparansi (Free and Open Source Software / FOSS)

What is R? Why R?

R adalah bahasa statistik unggulan, dibuat oleh dan untuk para ahli statistik, dengan 6 keunggulan utama dibandingkan dengan Excel, SAS, Stata, atau SPSS:

  • Bahasa modular: kita hanya menginstal bagian dasarnya, tetapi ada banyak kode dari orang lain yang bisa kita gunakan kembali (hampir 20.000 paket) → menghemat waktu dan inovasi yang cepat
  • Bahasa tingkat tinggi: memudahkan proses pemrograman (seperti Python) → kurva pembelajaran yang lebih landai
  • Komunitas dan peluang kerja: bersama Python, R menjadi bahasa yang paling banyak digunakan dalam bidang statistik dan data science, baik di dunia riset, pendidikan, perusahaan (seperti Línea Directa, Mapfre, Telefónica, Orange, Apple, Spotify, Netflix, El País, Civio, HP, dll.) maupun di lembaga publik (seperti ISCIII, CNIC, CNIO, INE, IGN, CIS, CEO, DGT, AEMET, RTVE, dll.)

Why programming?

  • Otomatisasi → memungkinkan kamu untuk mengotomatisasi tugas-tugas yang berulang.

  • Replikabilitas → kamu dapat mengulangi analisismu dengan cara yang sama setiap kali dibutuhkan.

  • Fleksibilitas → kamu dapat menyesuaikan perangkat lunak sesuai dengan kebutuhanmu.

  • Transparansi → dapat diaudit secara terbuka oleh komunitas.

Fundamental Idea: Packages

Salah satu konsep penting dalam R adalah penggunaan paket (packages): kumpulan kode yang dibuat oleh orang lain untuk menyelesaikan suatu permasalahan.

  • Instalasi: kita mengunduh kode dari internet (membutuhkan koneksi internet) → seperti membeli buku, cukup sekali saja (untuk setiap komputer).
install.packages("ggplot2")
  • Memuat (Loading): setelah paket diunduh, kita perlu memberi tahu paket mana yang ingin digunakan setiap kali membuka RStudio → seperti mengambil buku dari rak.
library(ggplot2)

Fundamental Idea: Packages

Setelah paket terinstal, ada dua cara untuk menggunakan paket tersebut (seperti mengambil buku dari rak).

  • Seluruh paket: dengan menggunakan library() dan menuliskan nama paket tanpa tanda kutip, kita memuat seluruh isi buku ke dalam sesi R.
library(ggplot2)
  • Fungsi tertentu: dengan menggunakan package::function, kita menunjukkan bahwa kita hanya ingin menggunakan halaman tertentu dari buku tersebut.
ggplot2::geom_point()

You will be wrong

During your learning, it will be very common for things not to work out on the first try → you will be wrong. It will not only be important to accept it but also to read the error messages to learn from them.

  • Pesan error: diawali dengan tulisan “Error in…” dan menunjukkan kegagalan yang menghentikan proses eksekusi kode.
"a" + 1 
Error in "a" + 1: non-numeric argument to binary operator
  • Pesan peringatan (warning): diawali dengan tulisan “Warning in…”.
    Pesan ini menandakan adanya ketidaksesuaian atau potensi kesalahan yang tidak menghentikan proses eksekusi kode.
# Ejecuta la orden pero el resultado es NaN, **Not A Number**, un valor que no existe
sqrt(-1)
Warning in sqrt(-1): NaNs produced
[1] NaN

Scripts (.R files)

Sebuah script adalah dokumen tempat kita menulis program, mirip seperti file .doc, tetapi dengan ekstensi .R, tempat kita menuliskan perintah-perintah. Untuk membuka script pertama, klik menu File < New File < R Script.

Be careful

Penting untuk tidak terlalu sering menggunakan console: semua perintah yang tidak kamu tulis di dalam script akan hilang ketika kamu menutup RStudio.

Be careful

R bersifat case-sensitive: artinya peka terhadap huruf besar dan huruf kecil, sehingga x dan X dianggap sebagai variabel yang berbeda.

Menjalankan Script Pertama

Sekarang kita memiliki jendela keempat: yaitu jendela tempat kita akan menulis kode.
Lalu, bagaimana cara menjalankannya?

  1. Tulis kode yang ingin dijalankan.
  1. Simpan file .R dengan mengklik Save current document.
  1. Kode tidak akan dijalankan kecuali kita memerintahkannya. Ada tiga cara untuk menjalankan script:
  • Salin dan tempel ke dalam console.
  • Pilih baris kode lalu tekan Ctrl+Enter.
  • Aktifkan opsi Source on Save di sebelah tombol simpan: tidak hanya menyimpan, tetapi juga menjalankan seluruh kode.

But first…best practices

Sebelum kita lanjut, ada hal penting yang perlu kamu ketahui sejak awal: memulai belajar pemrograman bisa terasa membuat frustrasi.

Sama seperti saat belajar bahasa baru, tantangan utamanya bukan pada apa yang ingin dikatakan, tetapi bagaimana cara mengatakannya dengan benar.
Hal yang sama juga berlaku untuk R. Karena itu, mari kita menstandarkan gaya pemrograman kita sejak awal untuk menghindari kesalahan di kemudian hari.

  • Tips 1: penugasan (assignment), evaluasi, dan perbandingan itu berbeda.
    Dalam R, kita menggunakan <- untuk memberikan nilai ke variabel, = untuk menetapkan nilai dalam argumen fungsi, dan == untuk memeriksa apakah dua elemen bernilai sama.
x <- 1 # asign
x = 1 # evaluation
x == 1 # comparison

But first…best practices

  • Tips 2: tulislah kode seperti kamu menulis teks biasa.
    Seperti saat menulis dalam bahasa Indonesia, biasakan untuk menambahkan spasi dan pemisah baris (line break) agar kode mudah dibaca.
    Ini bukan aturan wajib, tetapi kebiasaan baik, karena R tidak mempermasalahkan adanya spasi.
x <- 1  # terbaik
x<-1    # kurang rapi
x<- 1   # paling buruk (tentukan gaya penulisanmu)
  • Tips 3: jangan sembarangan, standarkan penamaan variabel. Biasakan untuk memberi nama variabel secara konsisten. Satu-satunya aturan wajib adalah nama variabel harus diawali dengan huruf (tanpa tanda aksen atau karakter khusus). Bentuk penamaan yang paling direkomendasikan adalah snake_case.
variable_in_snake_case
anotherHarderToReadFormat
there.are.people.who.use.this
Even_People_Here.Confusing_That_Do_Not_Deserve_Our_ATTENTION

But first…best practices

  • Tips 4: agar membaca dan menulis kode lebih mudah, buat batas tampilan (limit). Di menu Tools < Global Options, kamu bisa menyesuaikan beberapa pengaturan di RStudio. Pada bagian Code < Display, aktifkan opsi Show margin untuk menampilkan garis batas “imajiner” (tidak memengaruhi kode) yang membantu kamu agar tidak menulis baris kode terlalu panjang dan terbiasa membuat pemisah baris.

But first…best practices

  • Tips 5: tombol Tab adalah sahabat terbaikmu.vDi RStudio, ada fitur autocomplete: ketika kamu mengetik sebagian nama variabel atau fungsi lalu menekan tombol Tab, RStudio akan membantu melengkapinya secara otomatis (autocomplete).

But first…best practices

  • Tips 6: jangan biarkan tanda kurung berdiri sendiri. Setiap kali kamu membuka tanda kurung, pastikan kamu juga menutupnya. Untuk mempermudah hal ini, buka menu Tools < Global Options < Code < Display dan aktifkan opsi Rainbow parentheses, agar setiap pasangan tanda kurung memiliki warna berbeda dan mudah dikenali.

But first…best practices

  • Tips 7: perhatikan bagian kiri layar. Di sana kamu bisa melihat baris kode yang sedang aktif, dan jika terjadi kesalahan sintaks (syntax error), RStudio akan memberitahumu melalui tanda peringatan di sisi kiri.
  • Tips 8: usahakan untuk selalu bekerja menggunakan proyek (project). Untuk kelas ini, buatlah sebuah script bernama class1.R di dalam proyek yang sudah kamu buat sebelumnya.

 

See more tips at https://r4ds.had.co.nz/workflow-basics.html#whats-in-a-name

Cells: Tipe Data

Are there variables beyond numbers in data science? For example, think about the data you might store about a person:

  • Usia atau berat badan merupakan angka (number).
age <- 33
  • Namanya akan berupa teks (dikenal sebagai string atau char).
name <- "javi"
  • Jawaban dari pertanyaan “Apakah kamu terdaftar di program studi?” merupakan apa yang disebut sebagai variabel logika (logical variable) — bernilai TRUE jika terdaftar, atau FALSE jika tidak.
enrolled <- TRUE
  • Tanggal lahirnya akan berupa tanggal (date).

Variabel Numerik

Data yang paling sederhana (dan sudah kita gunakan sebelumnya) adalah variabel numerik. Untuk mengetahui kelas data di R dari suatu variabel, kita dapat menggunakan fungsi class().

a <- 5

Variabel Numerik

Data yang paling sederhana (dan sudah kita gunakan sebelumnya) adalah variabel numerik. Untuk mengetahui kelas data di R dari suatu variabel, kita dapat menggunakan fungsi class().

a <- 5
class(a)

Untuk mengetahui tipologi (format) dari suatu variabel, kita dapat menggunakan fungsi typeof().

typeof(1) # nilai 1, tetapi disimpan sebagai bilangan riil (double precision)
[1] "double"
typeof(as.integer(1)) # nilai 1, tetapi disimpan sebagai bilangan bulat (integer)
[1] "integer"

Variabel Numerik

Selain angka “biasa”, kita juga memiliki tak hingga positif/negatif yang dikodekan sebagai Inf atau -Inf.

1/0
[1] Inf
-1/0
[1] -Inf

Dan nilai yang bukan merupakan angka nyata (not a number seperti bentuk tak tentu, bilangan kompleks, dan sebagainya) dikodekan sebagai NaN.

0/0
[1] NaN
sqrt(-2)
Warning in sqrt(-2): NaNs produced
[1] NaN

Variabel Numerik

Dengan variabel numerik, kita bisa melakukan operasi aritmatika seperti pada kalkulator: penjumlahan (+)…

a + b
[1] 7

…square root (sqrt())…

sqrt(a)
[1] 2.236068

… power (^2, ^3)…

a^2
[1] 25

…absolute value (abs()), etc.

abs(a)
[1] 5

Variabel Teks (String)

Misalkan, selain menyimpan usia seseorang, kita juga ingin menyimpan namanya: sekarang variabel tersebut akan bertipe character.

name <- "Javi"
class(name)
[1] "character"

String teks adalah tipe data yang jelas tidak bisa digunakan untuk operasi aritmatika (tetapi operasi lain seperti menggabungkan teks atau mencari pola dapat dilakukan).

name + 1 # error when we try to sum 1 to a text
Error in name + 1: non-numeric argument to binary operator

Reminder

Variabel teks (character atau string) SELALU ditulis dalam tanda kutip: TRUE (logika, nilai biner) berbeda dengan "TRUE" (teks).

First function: paste

Seperti yang telah kita bahas, di R kita menyebut fungsi sebagai sepotong kode yang dikapsulkan dengan sebuah nama, yang bergantung pada beberapa input argumen. Fungsi pertama kita adalah paste(): diberikan dua string, fungsi ini memungkinkan kita menggabungkan keduanya menjadi satu.

paste("Javi", "Álvarez")
[1] "Javi Álvarez"

Perlu diperhatikan bahwa secara default fungsi paste() menggabungkan string dengan spasi, tetapi kita bisa menambahkan argumen opsional untuk menentukan pemisah sendiri (dengan sep = ...).

paste("Javi", "Álvarez", sep = "*")
[1] "Javi*Álvarez"

First function: paste

Bagaimana cara mengetahui argumen apa saja yang dibutuhkan sebuah fungsi?

Dengan mengetik ?paste di console, kamu akan mendapatkan bantuan (help) di panel multifungsi, di mana kamu bisa melihat di bagian header fungsi tersebut argumen default default arguments yang sudah ditetapkan.

Ada fungsi serupa bernama paste0() yang secara default menggabungkan string dengan sep = "" (tanpa pemisah apapun).

paste0("Javi", "Álvarez")
[1] "JaviÁlvarez"

First function: paste

Argumen (beserta detailnya) juga dapat dilihat dengan menggunakan tab completion (tekan Tab setelah mengetik koma).

Functions: default arguments

Sangat penting untuk memahami konsep argumen default pada sebuah fungsi di R: ini adalah nilai yang digunakan fungsi secara otomatis, dan terkadang kita tidak melihatnya karena sudah memiliki nilai yang ditetapkan.

# Same
paste("Javi", "Álvarez")
[1] "Javi Álvarez"
paste("Javi", "Álvarez", sep = " ")
[1] "Javi Álvarez"

Note

Operator = dikhususkan untuk menetapkan argumen di dalam fungsi. Untuk penugasan lainnya, kita akan menggunakan <-.

💻 It’s your turn

📝 Buat di komputermu sebuah folder untuk mata kuliah ini, lalu buat di dalamnya proyek RStudio: di sinilah kamu akan menyimpan semua yang akan kita lakukan selama satu semester. Setelah membuat proyek, kamu akan memiliki sebuah file R Project. Kemudian, buat dua subfolder di dalam folder tersebut: data → tempat menyimpan berbagai dataset yang akan kita gunakan. scripts → tempat menyimpan file .R dari setiap pertemuan/kegiatan kelas.

📝 Di dalam proyek, buat sebuah script bernama Latihan-class1.R (letakkan di dalam folder scripts). Setelah dibuat, definisikan sebuah variabel bernama a dengan nilai -1. Jalankan kode tersebut dengan tiga cara yang sudah dijelaskan sebelumnya.

Code
a <- -1

📝 Tambahkan baris lain di bawahnya untuk mendefinisikan variabel b dengan nilai 5. Kemudian simpan hasil perkalian kedua variabel tersebut. Jalankan kode sesuai cara yang kamu inginkan.

Code
b <- 5
a * b # without saving it
mult <- a * b # save it

📝 Ubah kode di bawah ini untuk mendefinisikan dua variabel c dan d dengan nilai 3 dan -1. Kemudian bagi kedua variabel tersebut dan simpan hasilnya.

c <- # you should assign 3
d <- # you should assign -1
Code
c <- 3
d <- -1
c / d
div <- c / d

📝 Tetapkan nilai positif pada variabel x dan hitung akar kuadratnya. Tetapkan nilai negatif pada variabel y dan hitung nilai mutlaknya menggunakan fungsi abs().

Code
x <- 5
sqrt(x)

y <- -2
abs(y)

Note that…

Perintah seperti sqrt(), abs(), atau max() adalah yang kita sebut fungsi: baris-baris kode yang telah kita “kapsulkan” di bawah sebuah nama, dan dengan memberikan beberapa argumen input, fungsi tersebut akan mengeksekusi perintahnya (seperti sebuah jalan pintas).
Dalam fungsi, argumen SELALU ditulis di dalam tanda kurung.

📝 Dengan menggunakan variabel x yang sudah didefinisikan, lengkapi/ubah kode di bawah ini agar hasil x - 5 disimpan dalam variabel baru z.

z <- ? - ? # complete the code
z
Code
z <- x - 5
z

📝 Definisikan variabel x dengan nilai -1. Definisikan variabel lain y dengan nilai 0. Kemudian lakukan operasi berikut: x dibagi y dan akar kuadrat dari x. Apa hasil yang kamu dapatkan?

Code
x <- -1
y <- 0

x / y
sqrt(x)

📝 Tuliskan kode di bawah ini di script-mu. Menurutmu, mengapa kode ini tidak berjalan dengan benar?

x <- -1
y <- 0

X + y
Error: object 'X' not found

L2 : databases

Concatenating cells: vectors. First databases