1 / 14

ALGORITME & PEMROGRAMAN

ALGORITME & PEMROGRAMAN. Abdul Kudus, SSi ., MSi ., PhD. Senin, 6.30 – 9.00 Rabu, 10.00 – 12.00 Rabu, 12.00 – 14.00. Mengenal Fungsi. Fungsi : kumpulan perintah yang mengambil input, menggunakan input tsb untuk menghitung nilai yang lain, dan mengeluarkan hasilnya.

Download Presentation

ALGORITME & PEMROGRAMAN

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ALGORITME & PEMROGRAMAN Abdul Kudus, SSi., MSi., PhD. Senin, 6.30 – 9.00 Rabu, 10.00 – 12.00 Rabu, 12.00 – 14.00

  2. Mengenal Fungsi Fungsi: kumpulan perintah yang mengambil input, menggunakan input tsb untuk menghitung nilai yang lain, dan mengeluarkan hasilnya. • Kita bisamembuatfungsibaruuntuktujuantertentu, misalnyauntukmenghitungrumustertentu yang belumadadalamfungsibawaandari R. • Fungsimempunyai input dan output • Semuavariabel yang dibuatdidalamsuatufungsihanyadikenalsecara internal untukfungsiitusaja. BentukUmumFungsidalam R nama_fungsi<- function(input){ badan_dari_fungsi (perintah-perintah) return(output) }

  3. Contoh: Kita buat fungsi dengan nama oddcount(), yg gunanya utk menghitung banyaknya bilangan ganjil dalam suatu vektor. > # counts the number of odd integers in x > oddcount <- function(x) { + k <- 0 # assign 0 to k + for (n in x) { + if (n %% 2 == 1) k <- k+1 # %% is the modulo operator + } + return(k) + } > oddcount(c(1,3,5)) [1] 3 > oddcount(c(1,2,3,7,9)) [1] 4 nama fungsi input output

  4. for (n in x) { if (n %% 2 == 1) k <- k+1 } • Pertama-tama, n diberi nilai x[1], lalu dites apakah nilai tsb ganjil atau genap. Jika nilainya ganjil (spt dlm contoh ini), maka nilai dari variabel k akan bertambah 1. • Kemudian n diberi nilai x[2], lalu dites apakah ganjil atau genap, dst. Bisa juga dibuat program sbb: for (i in 1:length(x)) { if (x[i] %% 2 == 1) k <- k+1 } Tetapi yang atas lebih efisien

  5. Ruang lingkup variabel Variabel yang hanya dikenali di dalam suatu fungsi disebut variabel lokal. Dalam fungsi oddcount(), variabel k dan n adalah lokal, dimana variabel tsb akan hilang dari memory komputer setelah fungsi tersebut dijalankan. > oddcount(c(1,2,3,7,9)) [1] 4 > n Error: object 'n' not found Variabel yang dibuat di luar fungsi merupakan variabel global dan variabel tsb bisa digunakan di dalam fungsi. > f <- function(x) return(x+y) > y <- 3 > f(5) [1] 8

  6. Vektor (lanjutan) • Panjang dari vektor Panjang dr vektor diperoleh dgn perintah length(). > x <- c(1,2,4) > length(x) [1] 3 Contoh: Program berikut utk mencari subskrip dari angka 1 yang pertama dalam sebuah vektor > first1 <- function(x) { + for (i in 1:length(x)) { + if (x[i] == 1) break # break out of loop + } + return(i) + } > > x2 <- c(2,3,1,4,1) > first1(x2) [1] 3

  7. Matriks sebagai vektor > m <- matrix(c(1,2,3,4),nrow=2,byrow=TRUE) > m [,1] [,2] [1,] 1 2 [2,] 3 4 > m + 10:13 [,1] [,2] [1,] 11 14 [2,] 14 17

  8. Deklarasi variabel Kita tidak bisa langsung merujuk elemen dr suatu vektor, tanpa mendefinisikan vektor tsb terlebih dahulu. > y[1] <- 5 > y[2] <- 12 SALAH > y <- vector(length=2) > y[1] <- 5 > y[2] <- 12 BENAR

  9. Operasi thd Vektor 1. Operasi Aritmetik dan logika > x <- c(1,2,4) > x + c(5,0,-1) [1] 6 2 3 > x * c(5,0,-1) [1] 5 0 -4 perkalian unsur-unsur bersesuaian > x <- c(1,2,4) > x / c(5,4,-1) [1] 0.2 0.5 -4.0 > x %% c(5,4,-1) [1] 1 2 0

  10. 2. Subskrip (Indeks) Vektor Membuat sub-vektor dgn mengambil unsur-unsur dgn subskrip tertentu > y <- c(1.2,3.9,0.4,0.12) > y[c(1,3)] # extract elements 1 and 3 of y [1] 1.2 0.4 > y[2:3] [1] 3.9 0.4 > v <- 3:4 > y[v] [1] 0.40 0.12 > x <- c(4,2,17,5) > y <- x[c(1,1,3)] > y [1] 4 4 17 Duplikat diperbolehkan

  11. > z <- c(5,12,13) > z[-1] # exclude element 1 [1] 12 13 > z[-1:-2] # exclude elements 1 through 2 [1] 13 Subskrip negatif utk mengecualikan. ambil kecuali yang terakhir > z <- c(5,12,13) > z[1:(length(z)-1)] [1] 5 12 > z[-length(z)] [1] 5 12 atau

  12. 3. Operator “:” (colon operator) Membuat vektor berisi barisan > 5:8 [1] 5 6 7 8 > 5:1 [1] 5 4 3 2 1 Dalam program mirip dengan loop (perulangan) for (i in 1:length(x)) { Hati-hati utk kasus berikut! > i <- 2 > 1:i-1 # this means (1:i) - 1, not 1:(i-1) [1] 0 1 > 1:(i-1) [1] 1

  13. 4. Membuat vektor berisi barisan seq() Perintah yang lebih umum daripada operator “:” adalah perintah seq(), dimana barisannya tidak hanya mempunyai beda +1 tetapi bisa utk beda yang lainnya. > seq(from=12,to=30,by=3) [1] 12 15 18 21 24 27 30 > seq(from=10,to=30,by=2.5) [1] 10.0 12.5 15.0 17.5 20.0 22.5 25.0 27.5 30.0 > seq(from=12.5,to=30,length=8) [1] 12.5 15.0 17.5 20.0 22.5 25.0 27.5 30.0

  14. 5. Mengulang vektor dengan rep() Perintah rep() memudahkan kita meletakkan skalar (atau vektor) yang sama ke dalam vektor yang panjang. Bentuk perintahnya adalah rep(x, times) yang akan membuat vektor dengan banyaknya unsur times*length(x), yakni x diulang sebanyak times kali. Perintah lainnya adalah dengan tambahan perintah (argumen) each dimana setiap unsur x diulang sebanyak each kali. > x <- rep(8,4) > x [1] 8 8 8 8 > rep(c(5,12,13),3) [1] 5 12 13 5 12 13 5 12 13 > rep(1:3,2) [1] 1 2 3 1 2 3 > rep(c(5,12,13),each=2) [1] 5 5 12 12 13 13

More Related