Académique Documents
Professionnel Documents
Culture Documents
for(cacah in 10:1)
{
cat(cacah,"\n")
}
cat("lariiii...","\n")
Loop Menggunakan for() jika banyaknya pengulangan diketahui
Perintah R
for (i in nilai_nilai_i)
{
Perintah-perintah R
}
Contoh
for (i in 1:10) for (i in c(3,2,9,6))
{ {
print(i) print(i^2)
} }
angkutan <- c("mobil", "bis", "kereta","sepeda")
for (kendaraan in angkutan)
{
print(kendaraan)
}
Fibo <- rep(0,times=12)
Fibo[1] <- 1
Fibo[2] <- 1
for (i in 3:12)
{
Fibo[i] <- Fibo[i-2] + Fibo[i-1]
}
Perulangan while
while (syarat)
{
Instruksi_instruksi
}
Contoh:
Hitung jumlah dari bilangan 1,2,3,… sampai jumlahnya > 1000
n <- 1
jumlah <- 0
while (jumlah <= 1000)
{
jumlah <- jumlah + n
n <- n + 1
}
Misal kita ingin membuat barisan bilangan Fibonacci yang kurang
dari 300. Kita tidak tahu berapa banyaknya bilangan-bilangan ini.
Oleh karena itu kita tak tahu bagaimana menghentikan loop
menggunakan for(), tetapi loop while() bisa.
Fib1 <- 1
Fib2 <- 1
Fibo <- c(Fib1,Fib2)
while (Fib2 < 300)
{
Fibo <- c(Fibo, Fib2)
Fib2.lama <- Fib2
Fib2 <- Fib1 + Fib2
Fib1 <- Fib2.lama
}
Perulangan repeat dan break
repeat
{
Instruksi_instruksi
if(syarat) break
}
> i <- 1
> repeat
break digunakan utk
+ { # pengulangan yg sama juga keluar dr
+ i <- i+4 pengulangan (loop)
+ if (i > 10) break
+ } break juga dpt
> i digunakan dlm
[1] 13 pengulangan for
Perintah next akan melewatkan perintah di bawahnya dan langsung
melompat pada iterasi berikutnya.
> x <- c(3,1,5,NA,6,9,NA,2) Ket: is.na(x) adalah
> jml <- 0 TRUE jika x merupakan
> for (unsur in x) data missing (NA)
+ {
+ if (is.na(unsur)) next
+ jml <- jml + unsur
+ }
> jml
[1] 26
Pengulangan terhadap himpunan bukan vektor
Perintah get() akan menjadikan karakter/string dr suatu obyek
sebagai input, dan akan mengeluarkan obyeknya sebagai outputnya.
> P <- matrix(c(2,4,1,3),2,2)
> Q <- matrix(c(1,4,2,3),2,2)
> for (M in c("P","Q"))
+ {
+ matrikku <- get(M)
+ print(det(matrikku))
+ }
[1] 2
[1] -5
INSTRUKSI PEMILIHAN dengan Perintah if()
Instruksi pemilihan adalah instruksi yang dipakai untuk memilih
satu aksi dari beberapa kemungkinan aksi berdasarkan suatu
persyaratan.
Bentuk 1 kasus Tidak
if (syarat) Ya
{
aksi
}
if (x >0)
{
cat("bilangan ini positif","\n")
} else
{
cat("bilangan ini negatif","\n")
}
Bentuk Bersusun (Lebih dari 1 Syarat)
if (syarat_1)
{
Aksi_1
} else
{
if (syarat_2)
{
Aksi_2
} else
{
Aksi_3
}
}
Contoh:
Penentuan nilai akhir:
A , jika skor 80
nilai B , jika 60 skor 80
C , jika skor 60
nilai <- function(skor)
{
if (skor >= 80)
{
nilai <- "A"
} else
{
if (skor >= 60)
{
nilai <- "B"
} else
{
nilai <- "C"
}
}
return(nilai)
}
Terjemahkan ke dalam R !
Operator Aritmetik dan Boolean (Logika) serta Nilainya
> x <- c(TRUE,FALSE,TRUE)
> y <- c(TRUE,TRUE,FALSE)
> x & y
[1] TRUE FALSE FALSE
> x[1] && y[1]
[1] TRUE
> x && y # hanya memeriksa unsur pertama
[1] TRUE
> if (x[1] && y[1]) print("keduanya TRUE")
[1] "keduanya TRUE"
> if (x && y) print("keduanya TRUE")
[1] "keduanya TRUE"
> if (x & y) print("keduanya TRUE")
[1] "keduanya TRUE"
Warning message:
In if (x & y) print("keduanya TRUE") :
the condition has length > 1 and only the first
element will be used
>1<2
[1] TRUE
> (1 < 2) * (3 < 4)
[1] 1
> (1 < 2) * (3 < 4) * (5 < 1)
[1] 0
> (1 < 2) == TRUE
[1] TRUE
> (1 < 2) == 1
[1] TRUE
Membuat Fungsi R Sendiri
• Kita bisa membuat fungsi baru untuk tujuan tertentu, misalnya
untuk menghitung rumus tertentu yang belum ada dalam
fungsi bawaan dari R.
• Fungsi mempunyai input dan output
• Semua variabel yang dibuat di dalam suatu fungsi hanya
dikenal secara internal untuk fungsi itu saja.
Bentuk Umum Fungsi dalam R
output
Jalankan fungsi yang baru tersebut.
> kubik(2)
[1] 8
Atau inputnya berupa vektor.
Contoh:
> bagi(15,3)
[1] 5
Nilai Default bagi Input (Argumen) suatu Fungsi
Ingat lagi contoh fungsi read.table utk membaca eksternal data.
c:/ujian.txt
"Exam 1" "Exam 2" Quiz input header=TRUE menunjukkan
2.0 3.3 4.0 bhw file data mempunyai baris
3.3 2.0 3.7 judul, sehingga datanya mulai baris
4.0 4.0 4.0
2.3 0.0 3.3 kedua.
2.3 1.0 3.3
3.3 3.7 4.0
. . . dan seterusnya
Output dari suatu Fungsi
oddcount <- function(x) oddcount <- function(x)
{ {
k <- 0 k <- 0
for (n in x) for (n in x)
{ {
if (n %% 2 == 1) k <- k+1 if (n %% 2 == 1) k <- k+1
} }
return(k) k
} }
Output adalah:
-obyek yg di-return
-obyek pada perintah terakhir