Komputasi Statistika (C) (Wajib 3 SKS) Pertemuan ke-3/14

Slides:



Advertisements
Presentasi serupa
ALGORITME & PEMROGRAMAN Abdul Kudus, SSi., MSi., PhD. Senin, 6.30 – 9.00 Rabu, –
Advertisements

STRUKTUR PEMROGRAMAN DALAM R
TEORI ALGORITMA.
STRUKTUR DASAR ALGORITMA
STRUKTUR PERULANGAN Perulangan adalah instruksi yang dapat mengulang sederetan Instruksi secara berulang-ulang sesuai persyaratan yang ditetapkan. Struktur.
Algoritma : CONTROL STRUCTURES
MATERI 8 CHOICE / PILIHAN.
PERTEMUAN 6 Algoritma Presented by : Sity Aisyah, M.Kom
Struktur Kontrol Struktur kontrol merupakan pengatur aliran program
Desain dan Analisis Algoritma
Algoritma dan Struktur Data
Instruksi Runtutan Instruksi Pemilihan dan Instruksi Perulangan dalam Pascal Minggu XII.
III. STRUKTUR KONTROL.
Bab 2 – b PERINTAH 2 B Percabangan. PERCABANGAN Tidak setiap baris program akan dikerjakan Hanya yang memenuhi syarat (kondisi) Syarat terdiri dari operand-operand,
Pemograman 1 Pertemuan 6.
2 JAM TEORI dan 1 jam praktek
Struktur kontrol ∞ kondisi. ∞ if-else ,
Pengulangan.
Prodi S1-Sistem Komputer, F Teknik Elektro
Pengulangan Bambang Irawan.
TPI4202 e-tp.ub.ac.id Perulangan (Looping) Lecture 5.
Algoritma dan Struktur Data 1 pertemuan 6
STRUKTUR DASAR ALGORITMA
Prodi S1-Sistem Komputer, F Teknik Elektro
Algoritma & Pemrograman
PERULANGAN C++.
STATEMENT PENGULANGAN
STRUKTUR DASAR ALGORITMA
Pertemuan 4 PROGRAMMING LANGUAGE.
M-FILE DAN PEMROGRAMAN MATLAB
STRUKTUR DASAR ALGORITMA
Algoritma Pemrograman
PERTEMUAN 9-11 STATEMENT PENGULANGAN
Pengantar Model Liner (C) (Wajib 3 SKS) Pertemuan ke-4/14
Materi 10 LOGIKA & ALGORITMA.
Iterasi ( Perulangan ).
Bifurcation & Lompatan Instruksi
PROG.STUDI PEND.FISIKA UIN ALAUDDIN MAKASSAR
Looping (Perulangan).
STRUKTUR LOOPING Castaka Agus Suginto, M.Kom., M.CS.
Perulangan / Looping / Repetisi PEMROGRAMAN DASAR
BAB VI Pengulangan.
Struktur Kontrol Struktur kontrol merupakan pengatur aliran program
ALGORITME & PEMROGRAMAN
Pengulangan Bambang Irawan.
Bifurcation & Lompatan Instruksi
Pengulangan.
Struktur Perulangan Yohana Nugraheni.
Perulangan (LOOPING)   Jika dibandingkan dengan computer, manusia mempunyai kekurangan. Salah satu kekurangannya adalah manusia tidak mampu melaksanakan.
Struktur Dasar Algoritma dan Runtunan
Algoritma dan Pemrograman Subrutin (Function)
Seleksi Kondisi merupakan perintah yang memungkinkan pemilihan atas perintah yang akan dijalankan sesuai dengan kondisi tertentu. Operator yang digunakan.
STRUKTUR CONTROL program
Algoritma & Pemrograman 1
Oleh : UMMU ZAHRA ALGORITMA.
JENIS DAN SIMBOL FLOWCHART PRODI MIK | FAKULTAS ILMU-ILMU KESEHATAN
STATEMENT PENGULANGAN
Flow Control & Exception Handling
PERULANGAN.
Metode Statistika 1 Pertemuan ke-3/7
ALGORITMA DAN PEMROGAMAN
Oleh: Abdul Haris Heryani
ALGORITME & PEMROGRAMAN
Analisa algoritma rekursif
PENGULANGAN ALGORITMA & STRUKTUR DATA I PROGRAM STUDI SISTEM INFORMASI
Konsep Bahasa Pemrograman I Operator
Struktur Kontrol Pemilihan
STRUKTUR DASAR ALGORITMA
Dasar Pemrograman Percabangan Nurul Anisa Sri Winarsih, M. CS
Struktur Kontrol Pemilihan Struktur kontrol pemilihan adalah pernyataan dari Java yang mengijinkan user untukmemilih dan mengeksekusi blok kode spesifik.
Transcript presentasi:

Komputasi Statistika (C) (Wajib 3 SKS) Pertemuan ke-3/14 Dr. Adji Achmad RF, S.Si, M.Sc Statistika, FMIPA, Universitas Brawijaya Malang

STRUKTUR PEMROGRAMAN DALAM R INSTRUKSI PERULANGAN (LOOP) Instruksi perulangan adalah instruksi yang dapat mengulang pelaksanaan sederetan instruksi-instruksi lainnya berulang-ulang sesuai persyaratan yang ditetapkan. Struktur instruksi perulangan pada dasarnya terdiri atas: Syarat perulangan: suatu syarat yang harus dipenuhi agar perulangan dapat terjadi. Bagian perulangan: deretan instruksi yang akan diulang-ulang pengerjaannya. Pencacah (counter) perulangan: suatu variabel yang nilainya harus berubah agar dapat terjadi dan pada akhirnya membatasi banyaknya perulangan yang dapat dikerjakan. Ada 3 macam bentuk instruksi perulangan yang biasa ditemukan dalam program, yaitu for, while dan repeat.

awal:akhir 1. Perulangan for Bentuk umum for (variabel in vektornilai) { instruksi_instruksi } Maknanya adalah ulangi instruksi-instruksi tersebut berdasarkan variabel perulangan mulai nilai awal hingga nilai akhir. Contoh: for (i in 1:10) { cat("Halo...","\n") }

x <- c(4,1,5,7,2,3) n <- length(x) akumulasi <- 0 for(i in 1:n) { akumulasi <- akumulasi + x[i] } rata <- akumulasi/n 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) { print(i) } for (i in c(3,2,9,6)) { print(i^2) } angkutan <- c("mobil", "bis", "kereta","sepeda") for (kendaraan in angkutan) { print(kendaraan) }

Fibo <- rep(0,times=12) for (i in 3:12) { Fibo[i] <- Fibo[i-2] + Fibo[i-1] }

Perulangan while while (syarat) { Instruksi_instruksi } Maknanya adalah ulangi instruksi-instruksi selama syarat yang diberikan masih terpenuhi Perhatikan: Harus ada instruksi yang berkaitan dengan syarat sebelum masuk ke while sehingga syarat ini terpenuhi dan pengulangan bisa dilaksanakan. Bila tidak, maka instruksi while tidak bisa dijalankan. Ada satu instruksi di antara instruksi-instruksi yang diulang agar pada satu saat syarat perulangan tidak terpenuhi, sehingga perulang bisa berhenti.

Contoh: Algoritma berikut menggunakan while untuk menampilkan angka 1 hingga 10 secara berurutan. while(angka < 11) { cat("angka= ",angka,"\n") angka <- angka + 1 } kondisi awal instruksi yg bisa mengubah syarat sehingga tidak terpenuhi pd saat angka  11

Loop Menggunakan while() Banyaknya pengulangan tidak diketahui Diulang selagi masih terpenuhinya syarat Perintah R while (syarat) { Perintah-perintah R } 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 { Instruksi_instruksi if(syarat) break } Makna: ulangi pelaksanaan instruksi_instruksi hingga syarat terpenuhi. Perhatikan: Instruksi-instruksi akan diulang hanya apabila syarat TIDAK terpenuhi, dan ketika syarat terpenuhi maka perulangan berhenti. Instruksi-instruksi dikerjakan terlebih dahulu sebelum syarat diperiksa. Harus ada satu instruksi yg mendahului repeat agar syarat tidak terpenuhi sehingga perulangan bisa berlangsung. Harus ada instruksi yang menyebabkan syarat terpenuhi dan perulangan berhenti.

Contoh: Algoritma berikut menampilkan “Halo…” sebanyak 5 kali, dengan menggunakan repeat. cacah <- 1 repeat { cat("Halo...","\n") cacah <- cacah + 1 if(cacah > 5) break } Contoh: Menggunakan repeat untuk menghitung jumlah x1+x2+x3+…+xn dan rata-ratanya x <- c(4,1,5,7,2,3) n <- length(x) akumulasi <- 0 i <- 1 repeat { akumulasi <- akumulasi + x[i] i <- i + 1 if (i > n) break } rata <- akumulasi/n

break digunakan utk keluar dr pengulangan (loop) Break juga bisa dipakai di dalam pengulangan while selain di dalam pengulangan repeat > i <- 1 > while (i <= 10) + { + i <- i+4 + } > i [1] 13 > i <- 1 > while(TRUE) + { # pengulangan yg sama + i <- i+4 + if (i > 10) break + } > i [1] 13 > i <- 1 > repeat + { # pengulangan yg sama juga + i <- i+4 + if (i > 10) break + } > i [1] 13 break digunakan utk keluar dr pengulangan (loop) break juga dpt digunakan dlm pengulangan for

Perintah next akan melewatkan perintah di bawahnya dan langsung melompat pada iterasi berikutnya. Ket: is.na(x) adalah TRUE jika x merupakan data missing (NA) > x <- c(3,1,5,NA,6,9,NA,2) > jml <- 0 > for (unsur in x) + { + 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) { aksi } Ya Apabila syarat dipenuhi, maka “aksi” dijalankan. Contoh: Jika x lebih besar dr 100, maka nilainya akan ditambah 5 if (x >100) { x <- x + 5 }

Bentuk 2 kasus if (syarat) { aksi_1 } else aksi_2 } Apabila syarat dipenuhi, maka “aksi_1” dijalankan. Tetapi jika tidak terpenuhi maka “aksi_2” yg dijalankan.

Contoh: Jika x lebih besar dr 0, maka ditampilkan “bilangan ini positif”. Selain itu akan ditampilkan “bilangan ini negatif”. 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 Aksi_3 }

Penentuan nilai akhir: Contoh: Penentuan nilai akhir: nilai <- function(skor) { if (skor >= 80) nilai <- "A" } else if (skor >= 60) nilai <- "B" 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 > if (x[1] && y[1]) print("keduanya TRUE") [1] "keduanya TRUE" > if (x && y) print("keduanya TRUE") > if (x & y) print("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 < 2) == 1

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 nama_fungsi <- function(input) { badan_dari_fungsi (perintah-perintah) return(output) }

> kubik <- function(x) + { + y <- x^3 + return(y) + } Contoh: Berikut ini adalah fungsi untuk menghitung pangkat tiga dari suatu input bilangan. > kubik <- function(x) + { + y <- x^3 + return(y) + } nama_fungsi input perintah R output Jalankan fungsi yang baru tersebut. > kubik(2) [1] 8

Atau inputnya berupa vektor. > dataku <- 1:5 > kubik(dataku) [1] 1 8 27 64 125 > kubik(dataku/2) [1] 0.125 1.000 3.375 8.000 15.625 Bisa juga dipanggil secara rekursif. > kubik(kubik(dataku)) [1] 1 512 19683 262144 1953125

Suatu fungsi bisa punya lebih dari satu input. > bagi <- function(x,y) + { + z <- x/y + return(z) + } 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 input header=TRUE menunjukkan bhw file data mempunyai baris judul, sehingga datanya mulai baris kedua. "Exam 1" "Exam 2" Quiz 2.0 3.3 4.0 3.3 2.0 3.7 4.0 4.0 4.0 2.3 0.0 3.3 2.3 1.0 3.3 3.3 3.7 4.0 > dataujian <- read.table("c:/ujian.txt",header=TRUE) > head(dataujian) Exam.1 Exam.2 Quiz 1 2.0 3.3 4.0 2 3.3 2.0 3.7 3 4.0 4.0 4.0 4 2.3 0.0 3.3 5 2.3 1.0 3.3 6 3.3 3.7 4.0

lihat input (argumen) lengkap dari read.table function (file, header = FALSE, sep = "", quote = "\"'", dec = ".", row.names, col.names, as.is = !stringsAsFactors, na.strings = "NA", colClasses = NA, nrows = -1, skip = 0, check.names = TRUE, fill = !blank.lines.skip, strip.white = FALSE, blank.lines.skip = TRUE, comment.char = "#", allowEscapes = FALSE, flush = FALSE, stringsAsFactors = default.stringsAsFactors(), fileEncoding = "", encoding = "unknown") { if (is.character(file)) { file <- if (nzchar(fileEncoding)) file(file, "rt", encoding = fileEncoding) else file(file, "rt") on.exit(close(file)) . . . dan seterusnya

Output dari suatu Fungsi oddcount <- function(x) { k <- 0 for (n in x) if (n %% 2 == 1) k <- k+1 } return(k) oddcount <- function(x) { k <- 0 for (n in x) if (n %% 2 == 1) k <- k+1 } k Output adalah: obyek yg di-return obyek pada perintah terakhir