1 / 37

ALGORITMA & PEMROGRAMAN

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 :

alida
Download Presentation

ALGORITMA & 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. ALGORITMA & PEMROGRAMAN Abdul Kudus, SSi., MSi., PhD. Senin, 6.30 – 9.00

  2. PENDAHULUAN KonsepAlgoritma Pondasiuntukmenyelesaikansuatumasalahsecaraberstruktur, efektifdanefisien. Terutamauntukmenyelesaikansuatumasalahdenganbantuan program komputer. Definisi: Algoritma : Teknikpenyusunanlangkah-langkahpenyelesaianmasalahdalambentukkalimat yang tersusunsecaralogisdansistematis.

  3. CatatanSejarah: Pencetusalgoritmaadalah Abu Ja’far Muhammad ibnu Musa al-Khwarizmi dalambukunyaAljabarwalmuqobalapadaabad IX. al-Khwarizmi  algorism  algorithm  algoritma • CiriAlgoritma • Donald E. Knuth (penulisbeberapabukualgoritmaabad XX) menyatakancirialgoritma: • - Punyaawaldanakhir. • Didefinisikansecaratepatdantidakbermaknaganda (tidakambigu). • Punya input • Punya output • Efektif

  4. Contohalgoritmadalamkehidupansehari-hari:

  5. Contoh: Algoritmauntukmencariangkaterbesar (maksimum) darisuatukumpulanbilanganbulat. Solusi: Anggapangkapertamaadalah yang terbesar. Bandingkandenganangkaberikutnya. Jikaangkaberikuttersebutlebihbesar, makajadikansebagai yang terbesar. Ulangilangkah 2, sehinggaangkaterakhir. Angkaterbesaradalahangkaterbesar yang terakhir. Cariangkaterbesardarihimpunan: 1. A = {12, 7, 15, 26, 10} 2. B = {9, 12, 17, 21, 27} 3. C = {15, 10, 8, 6, 2}

  6. Suatualgoritmadapatditulisdenganmenggunakanbahasasehari-hari, tapiakansulitdiimplementasikankedalambahasapemrogramankomputer. • Perlulangkahperalihan.

  7. StrukturAlgoritma • Agar dapatditulislebihteratur, makadibagikedalambeberapabagian: • Bagiankepala • Bagiandeklarasivariabel • Bagiandeskripsi/rincianlangkah Contoh 1: AlgoritmaLuas_lingkaran Deklarasi phi = 3.14 jari_jari = 13 Deskripsiluas = phi*jari_jari^2

  8. Contoh 2: AlgoritmaCari_Rata_rata Deklarasi data = (2, 1, 3, 5, 8) n = 5 RincianLangkah akumulasi = 0 for (i in 1:n) { akumulasi = akumulasi + data[i] } Nilai_rata = akumulasi/n

  9. Contoh 2b: AlgoritmaCari_Rata_rata Deklarasi data = (2, 1, 3, 5, 8) n = 4 RincianLangkah akumulasi = data[1] for (i in 2:n) { akumulasi = akumulasi + data[i] } Nilai_rata = akumulasi/(n+1)

  10. Contoh 3: AlgoritmaCari_Terbesar Deklarasi data = (2, 1, 3, 5, 8) n = 5 RincianLangkah terbesar = data[1] for (i in 2:n) { if (data[i] > terbesar) terbesar = data[i] }

  11. Diagram Alir (Flowchart) Untaiansimbol diagram yang menunjukkanaliranproses yang dikerjakanterhadap data. Simbol-simbol flowchart dibagimenjadisimboluntuk program dansimboluntuksistem (computer hardware). Simboluntuk program Terminator: untukmulaiatauselesai Proses: prosesterhadap data Input/Output: menerima input ataumenampilkan output

  12. Seleksi/Pilihan: memilihaliranberdasarkansyarat Predefined-Data: definisiawaldarivariabel Predifened-Process: lambang sub-program Connector: penghubungpadahalaman yang sama Off-page Connector: penghubungpadahalaman yang berbeda

  13. Simboluntuksistem Keyboard Printer File Monitor

  14. Contoh 1: Pengaturanjadwaldanruangankuliah

  15. Contoh 2: Bilangan yang lebihbesardariduabilangan Mulai • Mulai • Masukkan A dan B • Apakah A > B? • BilaYa, cetak A • BilaTidak, cetak B • Selesai A  … B  … A > B? Ya Cetak A Tidak Cetak B Selesai

  16. Contoh 3: Bilangan yang terbesardaritigabilangan Mulai A … B  … C …. Tidak Ya Cetak B A > B? B > C? Ya Tidak Tidak A > C? Cetak C Ya Cetak A Selesai

  17. Tugas: Buatmakalahtentang al-khwarizmi (sumber: perpustakaanatau internet sepertigoogledanwikipedia) Gambar flowchart untukmenyiapkansecangkir kopi (dimulaidarimemasak air sampaimenghidangkan kopi)! Gambar flowchart untukmencaribilanganterbesardariempatbilangan! Gambar flowchart untukmencaribilanganterbesardarisekumpulanbilangan!

  18. R • R adalah software ‘open-source’ untukpemrogramanstatistik. • ‘open-source’ = gratis • R dibangunberdasarkanbahasapemrograman S, yang diciptakanoleh John Chambers dkkdiLaboratorium Bell padatahun 1976. • Padatahun 1993, Robert Gentleman dan Ross Ihakadi University of Auckland bereksperimendenganbahasa S ini. Hasileksperimennyadisebut R. • Sejaktahun 1995, R menjadi ‘open-source’ danratusanilmuwanduniabersama-samamengembangkannya. • S-Plus adalah software komersial yang jugadikembangkanberdasarkanbahasa S.

  19. Software R terutamaterdiriatasperintah-perintahkomputer, dimanakitaharusmengetikkanperintahnya agar supayakomputermenjalankanperintahtsb. • Mengapakitapilih software yang demikian? • Software yang berbasiskan menu memangmudahuntukdigunakan, tapiterbatashanyapadaperintah-perintahtertentusaja. • Software yang berbasiskanperintahadalahsangatterbukauntukmengerjakanapasaja. Kalaukitainginmengerjakansuatuperintahdengankomputer yang belumpernahdilakukanorang lain sebelumnya, kitabisabuatperintahtsbsendiri.

  20. Syntax R • Perintah R diketikkandijendelaconsole setelahtanda ‘>’ • Sebagaicontoh, R dapatdigunakansebagaikalkulator • > 5 + 49 • [1] 54

  21. > 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 > # "*" adalahsimboluntukperkalian > # Kata-katasetelahtanda # adalahkomentar > # yang akandiabaikanoleh R > 3 * 5 [1] 15 > 3 - 8 [1] -5 > 12 / 4 [1] 3

  22. Operasidasar + (tambah), - (kurang), * (kali) dan / (bagi) bisalangsungdikerjakandalam R. • R jugabisamengerjakanpangkat. • > 3^4 • [1] 81 RuangPenyimpanan R punyaruangmemori yang disebutglobal environmentsebagaitempatuntukmenyimpanhasilperhitungandanmenyimpanobyek-obyek lain. > bunga.30 <- 1.0025^30 Begitudi-enter tidakadaapa-apa. Kita bisalihathasilnyadenganmengetikkannamadariobyektsb. > bunga.30 [1] 1.077783

  23. Setelahkitamembuatobyek, kitabisamenggunakannyakemudian. > saldo.awal <- 3000000 > saldo.akhir <- saldo.awal*bunga.30 > saldo.akhir [1] 3233350 Contoh. Sayapinjamuangke Bank sejumlahPdenganbungabulanani. PinjamantersebutakandicicilselamanbulandenganbesarcicilanC.

  24. Jikakitabuatobyeksbb: pinjamanuntuk P, dimanabesarnya 15000000 bungauntuk I, yang besarnya 1% nuntuk n (lamanyacicilan, misalnya 10 bulan), dan cicilanuntuk C, maka > bunga <- 0.01 > n <- 10 > pinjaman <- 15000000 > cicilan <- pinjaman*bunga/(1-(1+bunga)^(-n)) > cicilan [1] 1583731

  25. R adalahcase-sensitive (membedakanhurufkecildanbesar) > cicilan<-pinjaman*bunga/(1-(1+bunga)^(-N)) Error: object 'N' not found Vektor Perintahc()digunakanuntukmembuatvektor data. > c(0, 7, 8) [1] 0 7 8 Kita jugabisamenyimpannyadalamsuatuobyek. > x <- c(0, 7, 8) # x : vektor dgn 3 elemen Untuk melihatnya kita ketik nama obyeknya > x [1] 0 7 8

  26. Simbol ‘: ‘ digunakanuntukmembuatbarisanbilangan (baikmenaikataupunmenurun) > bil5sampai20 <- 5:20 > bil5sampai20 [1] 5 6 7 8 9 10 11 12 13 14 15 16 [13] 17 18 19 20 Vektorbisadigabungkandenganperintahc() > 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

  27. Mengakseselemendarisuatuvektormenggunakan ‘[]’ > gabung[18] [1] 7 Kita bisamengakseslebihdarisatuelemen > 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

  28. VektorAritmetik Mengalikansetiapelemendarisuatuvektordenganskalar: > x * 3 [1] 0 21 24 Tambah (+), kurang (-) danbagi (/) jugabisadilakukandgncara yang sama > y <- x - 5 > x ^ 3 # y dipangkatkan 3 > y ^ x # setiap unsur y dipangkatkan dengan setiap unsur x yang bersesuaian.

  29. VektorBerpola Operator ‘:’ digunakanuntukmembuatbarisanbilanganbulat. Vektorberpoladapatdibuatdenganperintahseqdanrep. Contohbarisanbilanganganjil yang kurangdariatausamadengan 21 dibuatdengancara: > seq(1, 21, by=2) Polaberulangdibuatdenganrep(), 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

  30. > rep(seq(2, 20, 2), rep(2, 10)) # ulangsetiapunsursebanyak 2 kali [1] 2 2 4 4 6 6 8 8 10 10 12 12 14 14 16 16 18 18 20 20 VektorHuruf (Character / String Vector ) Skalardanvektorbisajugaberisikata (kalimat) atauhuruf. Semuaunsurdarivektorharuslahmempunyaijenis yang sama. > colors <- c("red", "yellow", "blue") > more.colors <- c(colors, "green", "magenta", "cyan") > # tambahkanbbrpunsurbaru > z <- c("red", "green", 1) #cobacampurbedajenis > more.colors [1] "red“ "yellow“ "blue” "green" "magenta" "cyan" > z [1] "red“ "green" "1"

  31. Fungsisubstr() Perintahlengkapnyaadalahsubstr(x, awal, akhir)yang gunanyauntukmengambilsebagiandarikata. xadalahvektorkata, awaldanakhiradalahposisihuruf yang akandiambil. Contohutkmengambil 2 hurufpertamadarivektorx. > substr(colors, 1, 2) [1] "re" "ye" "bl“ Untukmembentukkata (kalimat) melaluipenggabungan, gunakanperintahpaste. > paste(colors, "flowers") [1] "red flowers" "yellow flowers" "blue flowers" Perintahtambahansep, untukmengontrolpenggabungannya, dimana default-nyaadalahspasi. > 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”

  32. Perintahtambahancollapse gunanyauntukmengubahsemuaunsurvektormenjadisatukata (kalimat). > paste("I like", colors, collapse = ", ") [1] "I like red, I like yellow, I like blue"

  33. Struktur Data Matriksdan Array Untukmembuatmatrikskitagunakanfungsimatrix(), > m <- matrix(1:6, nrow=2, ncol=3) > m [,1] [,2] [,3] [1,] 1 3 5 [2,] 2 4 6 Untukmengaksesunsurnya, gunakanduaindeks (barisdankolom), > m[1,2] [1] 3 Untukmengaksesbaristertentu , gunakanindekspertamasaja > m[1,] [1] 1 3 5 Untukkolomtertentu, gunakanindekskeduasaja > m[,1] [1] 1 2

  34. Cara yang lebihumumadalahmenyimpandalamarray yang mempunyaiindeksbanyak > 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 2 1 13 16 19 22 14 17 20 23 15 18 21 24 1 2 3 1 4 7 10 2 5 8 11 3 6 9 12 1 2 3 4

  35. List List adalahstruktur data yang bisaberisilebihdarisatujenis data (angka, hurufdll). > 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

  36. Data Frame Iniadalahstruktur data yang paling banyakdipakaidalam R. Jenisnyasepertimatriks, tapisetiapkolomnyapunyanamasendiri. Kolom-kolomtersebutbisaberisi data berbedajenis. Gunakakanfungsidata.frame()untukmembuatnya. > 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 kalah 1 Persib 0 1 1 2 Arema 1 0 1 3 Persipura 1 1 0 4 SFC 0 0 2 5 Persija 0 1 0

  37. Cara untukmengaksesunsur-unsurnya > ILS$menang [1] 0 1 1 0 0 > ILS$tim=="Persib" [1] TRUE FALSE FALSEFALSEFALSE > ILS$kalah[ILS$tim=="Persib"] [1] 1 Jenis data logika

More Related