algoritma & pemrograman

37
ALGORITMA & PEMROGRAMAN Abdul Kudus, SSi., MSi., PhD. Senin, 6.30 – 9.00

Upload: alida

Post on 24-Feb-2016

80 views

Category:

Documents


1 download

DESCRIPTION

ALGORITMA & PEMROGRAMAN. Abdul Kudus, SSi ., MSi ., PhD. Senin, 6.30 – 9.00. PENDAHULUAN. Konsep Algoritma Pondasi untuk menyelesaikan suatu masalah secara berstruktur , efektif dan efisien . Terutama untuk menyelesaikan suatu masalah dengan bantuan program komputer . . Definisi : - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: ALGORITMA & PEMROGRAMAN

ALGORITMA & PEMROGRAMAN

Abdul Kudus, SSi., MSi., PhD.Senin, 6.30 – 9.00

Page 2: ALGORITMA & PEMROGRAMAN

PENDAHULUAN

Konsep AlgoritmaPondasi untuk menyelesaikan suatu masalah secara berstruktur, efektif dan efisien. Terutama untuk menyelesaikan suatu masalah dengan bantuan program komputer.

Definisi:Algoritma : Teknik penyusunan langkah-langkah penyelesaian

masalah dalam bentuk kalimat yang tersusun secara logis dan sistematis.

Page 3: ALGORITMA & PEMROGRAMAN

Catatan Sejarah:Pencetus algoritma adalah Abu Ja’far Muhammad ibnu Musa al-Khwarizmi dalam bukunya Aljabar wal muqobala pada abad IX.

al-Khwarizmi algorism algorithm algoritma

Ciri AlgoritmaDonald E. Knuth (penulis beberapa buku algoritma abad XX) menyatakan ciri algoritma:- Punya awal dan akhir. - Didefinisikan secara tepat dan tidak bermakna ganda (tidak

ambigu).- Punya input- Punya output- Efektif

Page 4: ALGORITMA & PEMROGRAMAN

Contoh algoritma dalam kehidupan sehari-hari:

Proses Algoritma Langkah-langkah

1. Membuat kue Resep kue Campurkan 2 butir telur ke dalam adonan, lalu kocok hingga mengembang

2. Membuat pakaian Pola pakaian Gunting kain dari pinggir kiri bawah ke kanan atas sepanjang 15 cm

3. Praktikum kimia Petunjuk praktikum Campurkan 10 ml H2S04 sulfat ke dalam 15 ml NaOH

Page 5: ALGORITMA & PEMROGRAMAN

Contoh:Algoritma untuk mencari angka terbesar (maksimum) dari suatu kumpulan bilangan bulat.Solusi:1. Anggap angka pertama adalah yang terbesar.2. Bandingkan dengan angka berikutnya. Jika angka berikut

tersebut lebih besar, maka jadikan sebagai yang terbesar.3. Ulangi langkah 2, sehingga angka terakhir.4. Angka terbesar adalah angka terbesar yang terakhir.

Cari angka terbesar dari himpunan:1. A = {12, 7, 15, 26, 10}2. B = {9, 12, 17, 21, 27}3. C = {15, 10, 8, 6, 2}

Page 6: ALGORITMA & PEMROGRAMAN

• Suatu algoritma dapat ditulis dengan menggunakan bahasa sehari-hari, tapi akan sulit diimplementasikan ke dalam bahasa pemrograman komputer.

• Perlu langkah peralihan.

Page 7: ALGORITMA & PEMROGRAMAN

Struktur AlgoritmaAgar dapat ditulis lebih teratur, maka dibagi ke dalam beberapa bagian:• Bagian kepala• Bagian deklarasi variabel• Bagian deskripsi/rincian langkah

Contoh 1:

Algoritma Luas_lingkaranDeklarasi phi = 3.14

jari_jari = 13Deskripsi luas = phi*jari_jari^2

Page 8: ALGORITMA & PEMROGRAMAN

Contoh 2:

Algoritma Cari_Rata_rataDeklarasi data = (2, 1, 3, 5, 8)

n = 5Rincian Langkahakumulasi = 0for (i in 1:n){

akumulasi = akumulasi + data[i]}Nilai_rata = akumulasi/n

Page 9: ALGORITMA & PEMROGRAMAN

Contoh 2b:

Algoritma Cari_Rata_rataDeklarasi data = (2, 1, 3, 5, 8)

n = 4Rincian Langkahakumulasi = data[1]for (i in 2:n){

akumulasi = akumulasi + data[i]}Nilai_rata = akumulasi/(n+1)

Page 10: ALGORITMA & PEMROGRAMAN

Contoh 3:

Algoritma Cari_TerbesarDeklarasi data = (2, 1, 3, 5, 8)

n = 5Rincian Langkahterbesar = data[1]for (i in 2:n){

if (data[i] > terbesar) terbesar = data[i]}

Page 11: ALGORITMA & PEMROGRAMAN

Diagram Alir (Flowchart)Untaian simbol diagram yang menunjukkan aliran proses yang dikerjakan terhadap data. Simbol-simbol flowchart dibagi menjadi simbol untuk program dan simbol untuk sistem (computer hardware).Simbol untuk program

Terminator: untuk mulai atau selesai

Proses: proses terhadap data

Input/Output: menerima input atau menampilkan output

Page 12: ALGORITMA & PEMROGRAMAN

Seleksi/Pilihan: memilih aliran berdasarkan syarat

Predefined-Data: definisi awal dari variabel

Predifened-Process: lambang sub-program

Connector: penghubung pada halaman yang sama

Off-page Connector: penghubung pada halaman yang berbeda

Page 13: ALGORITMA & PEMROGRAMAN

Simbol untuk sistem

Keyboard

Printer

File

Monitor

Page 14: ALGORITMA & PEMROGRAMAN

Contoh 1:Pengaturan jadwal dan ruangan kuliah

Mulai

1. Memetakan jadwaldengan ruanganyang ada

Jadwal kuliahsementara

Data sarana /fasilitas

2. Mencariruangan lain

Tidak

Ya

Memeriksaapakah pemakaian

ruangan penuh

A

B

Jadwaldisetujui

CRuanganlain ada?

Ya

B3. Mengganti

jadwal

A

Tidak

C

Ruangan terisi sarana / fasilitas

yang sesuai

Alat bantupengajaran tersedia

sesuai jadwal

Selesai

Tidak

Ya

Ya

Tidak

4. Menambah sarana /fasilitas yangsesuai

5. Tambah alat bantupengajaran

Page 15: ALGORITMA & PEMROGRAMAN

Contoh 2:Bilangan yang lebih besar dari dua bilangan

Mulai

A … B …

A > B? Cetak A

Cetak B

Selesai

1. Mulai2. Masukkan A dan B3. Apakah A > B?• Bila Ya, cetak A• Bila Tidak, cetak B

4. Selesai

Ya

Tidak

Page 16: ALGORITMA & PEMROGRAMAN

Contoh 3:Bilangan yang terbesar dari tiga bilangan

Mulai

A …B …C ….

A > B? Cetak B

Cetak A

Selesai

B > C?

Ya

Tidak Ya

A > C?Tidak

Cetak C

Tidak

Ya

Page 17: ALGORITMA & PEMROGRAMAN

Tugas:1. Buat makalah tentang al-khwarizmi (sumber: perpustakaan

atau internet seperti google dan wikipedia)2. Gambar flowchart untuk menyiapkan secangkir kopi (dimulai

dari memasak air sampai menghidangkan kopi)!3. Gambar flowchart untuk mencari bilangan terbesar dari

empat bilangan!4. Gambar flowchart untuk mencari bilangan terbesar dari

sekumpulan bilangan!

Page 18: ALGORITMA & PEMROGRAMAN

R R adalah software ‘open-source’ untuk pemrograman statistik. ‘open-source’ = gratis R dibangun berdasarkan bahasa pemrograman S, yang

diciptakan oleh John Chambers dkk di Laboratorium Bell pada tahun 1976.

Pada tahun 1993, Robert Gentleman dan Ross Ihaka di University of Auckland bereksperimen dengan bahasa S ini. Hasil eksperimennya disebut R.

Sejak tahun 1995, R menjadi ‘open-source’ dan ratusan ilmuwan dunia bersama-sama mengembangkannya.

S-Plus adalah software komersial yang juga dikembangkan berdasarkan bahasa S.

Page 19: ALGORITMA & PEMROGRAMAN

• Software R terutama terdiri atas perintah-perintah komputer, dimana kita harus mengetikkan perintahnya agar supaya komputer menjalankan perintah tsb.

•Mengapa kita pilih software yang demikian?Software yang berbasiskan menu memang mudah untuk

digunakan, tapi terbatas hanya pada perintah-perintah tertentu saja.

Software yang berbasiskan perintah adalah sangat terbuka untuk mengerjakan apa saja. Kalau kita ingin mengerjakan suatu perintah dengan komputer yang belum pernah dilakukan orang lain sebelumnya, kita bisa buat perintah tsb sendiri.

Page 20: ALGORITMA & PEMROGRAMAN

Syntax R

-Perintah R diketikkan di jendela console setelah tanda ‘>’-Sebagai contoh, R dapat digunakan sebagai kalkulator> 5 + 49[1] 54

Page 21: ALGORITMA & PEMROGRAMAN

> options(width=40)> 1:20 [1] 1 2 3 4 5 6 7 8 9 10 11 12[13] 13 14 15 16 17 18 19 20

> # "*" adalah simbol untuk perkalian> # Kata-kata setelah tanda # adalah komentar> # yang akan diabaikan oleh R> 3 * 5[1] 15> 3 - 8[1] -5> 12 / 4[1] 3

Page 22: ALGORITMA & PEMROGRAMAN

- Operasi dasar + (tambah), - (kurang), * (kali) dan / (bagi) bisa langsung dikerjakan dalam R.

- R juga bisa mengerjakan pangkat.> 3^4[1] 81

Ruang Penyimpanan

R punya ruang memori yang disebut global environment sebagai tempat untuk menyimpan hasil perhitungan dan menyimpan obyek-obyek lain.

> bunga.30 <- 1.0025^30

Begitu di-enter tidak ada apa-apa. Kita bisa lihat hasilnya dengan mengetikkan nama dari obyek tsb.> bunga.30[1] 1.077783

Page 23: ALGORITMA & PEMROGRAMAN

Setelah kita membuat obyek, kita bisa menggunakannya kemudian.

> saldo.awal <- 3000000> saldo.akhir <- saldo.awal*bunga.30> saldo.akhir[1] 3233350

Contoh.

Saya pinjam uang ke Bank sejumlah P dengan bunga bulanan i. Pinjaman tersebut akan dicicil selama n bulan dengan besar cicilan C.

iiC

iC

iC

iC

iCP

n

n

jj

n

111

11

111

1

2

niiPC

11

Page 24: ALGORITMA & PEMROGRAMAN

niiPC

11

Jika kita buat obyek sbb:pinjaman untuk P, dimana besarnya 15000000bunga untuk I, yang besarnya 1%n untuk n (lamanya cicilan, misalnya 10 bulan), dan cicilan untuk C, maka

> bunga <- 0.01> n <- 10> pinjaman <- 15000000> cicilan <- pinjaman*bunga/(1-(1+bunga)^(-n))> cicilan[1] 1583731

Page 25: ALGORITMA & PEMROGRAMAN

R adalah case-sensitive (membedakan huruf kecil dan besar)

> cicilan<-pinjaman*bunga/(1-(1+bunga)^(-N))Error: object 'N' not found

Vektor

Perintah c() digunakan untuk membuat vektor data.> c(0, 7, 8)[1] 0 7 8Kita juga bisa menyimpannya dalam suatu obyek.> x <- c(0, 7, 8) # x : vektor dgn 3 elemenUntuk melihatnya kita ketik nama obyeknya> x[1] 0 7 8

Page 26: ALGORITMA & PEMROGRAMAN

Simbol ‘: ‘ digunakan untuk membuat barisan bilangan (baik menaik ataupun menurun)

> bil5sampai20 <- 5:20> bil5sampai20 [1] 5 6 7 8 9 10 11 12 13 14 15 16[13] 17 18 19 20

Vektor bisa digabungkan dengan perintah c()

> gabung <- c(bil5sampai20,x)> gabung [1] 5 6 7 8 9 10 11 12 13 14 15 16[13] 17 18 19 20 0 7 8

Page 27: ALGORITMA & PEMROGRAMAN

Mengakses elemen dari suatu vektor menggunakan ‘[]’

> gabung[18][1] 7

Kita bisa mengakses lebih dari satu elemen

> gabung[c(1,5,17)][1] 5 9 0

Untuk mengakses elemen-elemen yg berurutan gunakan ‘:’

> gabung[2:5][1] 6 7 8 9

Untuk mengecualikan bisa menggunakan ‘-’

> gabung[-1] [1] 6 7 8 9 10 11 12 13 14 15 16 17[13] 18 19 20 0 7 8

Page 28: ALGORITMA & PEMROGRAMAN

Vektor Aritmetik

Mengalikan setiap elemen dari suatu vektor dengan skalar:> x * 3[1] 0 21 24Tambah (+), kurang (-) dan bagi (/) juga bisa dilakukan dgn cara yang sama > y <- x - 5> x ^ 3 # y dipangkatkan 3> y ^ x # setiap unsur y dipangkatkan dengan setiap unsur x yang bersesuaian.

Page 29: ALGORITMA & PEMROGRAMAN

Vektor Berpola

Operator ‘:’ digunakan untuk membuat barisan bilangan bulat. Vektor berpola dapat dibuat dengan perintah seq dan rep. Contoh barisan bilangan ganjil yang kurang dari atau sama dengan 21 dibuat dengan cara:> seq(1, 21, by=2)Pola berulang dibuat dengan rep(), contoh:> rep(3, times=12) # ulang nilai 3, 12 kali [1] 3 3 3 3 3 3 3 3 3 3 3 3> rep(seq(2, 20, by=2), 2) # ulang pola 2 4 ... 20, dua kali [1] 2 4 6 8 10 12 14 16 18 20 2 4 6 8 10 12 14 16 18 20> rep(c(1, 4), c(3, 2)) # ulang 1, 3 kali dan 4, 2 kali[1] 1 1 1 4 4

Page 30: ALGORITMA & PEMROGRAMAN

> rep(seq(2, 20, 2), rep(2, 10)) # ulang setiap unsur sebanyak 2 kali [1] 2 2 4 4 6 6 8 8 10 10 12 12 14 14 16 16 18 18 20 20

Vektor Huruf (Character / String Vector )

Skalar dan vektor bisa juga berisi kata (kalimat) atau huruf. Semua unsur dari vektor haruslah mempunyai jenis yang sama.> colors <- c("red", "yellow", "blue")> more.colors <- c(colors, "green", "magenta", "cyan")> # tambahkan bbrp unsur baru> z <- c("red", "green", 1) #coba campur beda jenis> more.colors[1] "red“ "yellow“ "blue” "green" "magenta" "cyan" > z[1] "red“ "green" "1"

Page 31: ALGORITMA & PEMROGRAMAN

Fungsi substr()

Perintah lengkapnya adalah substr(x, awal, akhir)yang gunanya untuk mengambil sebagian dari kata. x adalah vektor kata, awal dan akhir adalah posisi huruf yang akan diambil. Contoh utk mengambil 2 huruf pertama dari vektor x.> substr(colors, 1, 2)[1] "re" "ye" "bl“

Untuk membentuk kata (kalimat) melalui penggabungan, gunakan perintah paste.> paste(colors, "flowers")[1] "red flowers" "yellow flowers" "blue flowers"

Perintah tambahan sep, untuk mengontrol penggabungannya, dimana default-nya adalah spasi.> paste("several ", colors, "s")[1] "several red s" "several yellow s" "several blue s" > paste("several ", colors, "s", sep="")[1] "several reds" "several yellows" "several blues”

Page 32: ALGORITMA & PEMROGRAMAN

Perintah tambahan collapse gunanya untuk mengubah semua unsur vektor menjadi satu kata (kalimat).

> paste("I like", colors, collapse = ", ")[1] "I like red, I like yellow, I like blue"

Page 33: ALGORITMA & PEMROGRAMAN

Struktur DataMatriks dan Array

Untuk membuat matriks kita gunakan fungsi matrix(),> m <- matrix(1:6, nrow=2, ncol=3)> m [,1] [,2] [,3][1,] 1 3 5[2,] 2 4 6Untuk mengakses unsurnya, gunakan dua indeks (baris dan kolom),> m[1,2][1] 3Untuk mengakses baris tertentu , gunakan indeks pertama saja> m[1,][1] 1 3 5Untuk kolom tertentu, gunakan indeks kedua saja> m[,1][1] 1 2

Page 34: ALGORITMA & PEMROGRAMAN

Cara yang lebih umum adalah menyimpan dalam array yang mempunyai indeks banyak> a <- array(1:24, c(3, 4, 2))> a, , 1 [,1] [,2] [,3] [,4][1,] 1 4 7 10[2,] 2 5 8 11[3,] 3 6 9 12

, , 2 [,1] [,2] [,3] [,4][1,] 13 16 19 22[2,] 14 17 20 23[3,] 15 18 21 24

13 16 19 2214 17 20 2315 18 21 24

1 4 7 102 5 8 113 6 9 12

1 23

1 2 3 4

12

Page 35: ALGORITMA & PEMROGRAMAN

List

List adalah struktur data yang bisa berisi lebih dari satu jenis data (angka, huruf dll).> unsur1 <- c(8,2,3)> unsur2 <- c(21,90,1,23,45)> unsur3 <- c("Ana","Ani","Aan","Iin")> listku <- list(ke1=unsur1,ke2=unsur2,ke3=unsur3)> listku$ke1[1] 8 2 3$ke2[1] 21 90 1 23 45$ke3[1] "Ana" "Ani" "Aan" "Iin„

> listku[1]$ke1[1] 8 2 3> listku[[1]][1] 8 2 3> listku[[1]][2][1] 2

Page 36: ALGORITMA & PEMROGRAMAN

Data Frame

Ini adalah struktur data yang paling banyak dipakai dalam R. Jenisnya seperti matriks, tapi setiap kolomnya punya nama sendiri. Kolom-kolom tersebut bisa berisi data berbeda jenis. Gunakakan fungsi data.frame() untuk membuatnya.> tim <- c("Persib","Arema","Persipura","SFC", "Persija")> menang <- c(0,1,1,0,0)> seri <- c(1,0,1,0,1)> kalah <- c(1,1,0,2,0)> ILS <- data.frame(tim,menang,seri,kalah)> ILS tim menang seri kalah1 Persib 0 1 12 Arema 1 0 13 Persipura 1 1 04 SFC 0 0 25 Persija 0 1 0

Page 37: ALGORITMA & PEMROGRAMAN

Cara untuk mengakses unsur-unsurnya

> ILS$menang[1] 0 1 1 0 0> ILS$tim=="Persib"[1] TRUE FALSE FALSE FALSE FALSE> ILS$kalah[ILS$tim=="Persib"][1] 1

Jenis data logika