ALGORITMA & PEMROGRAMAN

Slides:



Advertisements
Presentasi serupa
Pemrograman Terstruktur
Advertisements

PENDAHULUAN KONSEP ALGORITMA DAN DIAGRAM ALIR (FLOWCHART)
Selamat Datang Dalam Kuliah Terbuka Ini
Pengendalian Proses : Seleksi (Conditional)
Menunjukkan berbagai peralatan TIK melalui gambar
Bab 2 Struktur Dasar.
Oleh : Nur Hayatin, S.ST Program Komputer. Tujuan  Setelah perkuliahan selesai diharapkan :  Mahasiswa mampu memahami tentang program komputer  Mahasiswa.
Pengertian Algoritma dan Flowchart
Menempatkan Pointer Q 6.3 & 7.3 NESTED LOOP.
Bahasa Pemrograman Lanjutan
ALGORITMA & PEMROGRAMAN Abdul Kudus, SSi., MSi., PhD. 1) 2) blog: abdulkudus.staff.unisba.ac.id.
Pemrograman Dasar Pengantar Algoritma PTIIK - UB.
Metode Simpleks Diperbaiki (Revised Simplex Method)
ALGORITME & PEMROGRAMAN Abdul Kudus, SSi., MSi., PhD. Senin, 6.30 – 9.00 Rabu, –
ALGORITME & PEMROGRAMAN Abdul Kudus, SSi., MSi., PhD. Senin, 6.30 – 9.00 Rabu, 8.00 – Rabu, – Senin, 9.00 – Selasa, –
Pemrograman Dasar[PTI-15001] 2012
Linked List BEBERAPA CONTOH SOAL 6.3 & 7.3 NESTED LOOP.
WEEK 6 Teknik Elektro – UIN SGD Bandung PERULANGAN - LOOPING.
Induksi Matematika.
Matakuliah : Algoritma & Struktur Data Versi Materi
Rancangan Program Materi Pertemuan 13 Sumber : Slide Inayatullah,M.Si.
ALGORITMA.
VARIABEL DAN OPERATOR.
Bahan Kuliah IF3051 Strategi Algoritma Oleh: Rinaldi Munir
Algoritma dan Pemrograman
PENGANTAR KONSEP PEMROGRAMAN
Modul 1- Review Java.
Algoritma Pemrograman #Pengantar Algoritma Dosen M.Wildan Eltika S.Kom
Pemrograman Komputer.
Algoritma dan Struktur Data
Pemrograman Terstruktur
Selamat Datang Dalam Kuliah Terbuka Ini
Pemrogramman Terstruktur
PENGANTAR ALGORITMA DAN PEMROGRAMAN
DETERMINAN.
Pemrogramman Terstruktur
ANATOMI KARYA ILMIAH Pendahuluan Format Pengetikan
Waniwatining II. HIMPUNAN 1. Definisi
Himpunan Pertemuan Minggu 1.
Dasar Pemrograman ARRAY/LARIK.
Algoritma dan Flowchart
ALGORITMA & LOGIKA PEMROGRAMAN
Algoritma dan Struktur Data
RANCANGAN PROGRAM.
Kompleksitas Algoritma
PERANCANGAN KASUS UJI.
WISNU HENDRO MARTONO,M.Sc
Algoritma dan Flowchart
Tenia Wahyuningrum, SKom., MT Dasar-dasar Algoritma.
Pertemuan-III Algoritma disajikan gambar
Pendahuluan Definisi :
PENGERTIAN DASAR ALGORITMA & FLOWCHART
PERTEMUAN 1 Algoritma & Pemrograman
Struktur Algoritma & Tipe Data
Flowchart (Diagram Alur)
Notasi Algoritma & Tipe Data
Algoritma.
Pertemuan 4 PROGRAMMING LANGUAGE.
Start.
ALGORITMA & LOGIKA PEMROGRAMAN
ALGORITHMA DAN ATURAN PENULISANYA
Pengantar struktur data
ALGORITMA Anifuddin Azis.
ALGORITME & PEMROGRAMAN
Pertemuan ke-2 KONSEP ALGORITMA
Algoritma dan Flowchart
Algoritma dan Struktur Data
Pencarian (searching)
PENGANTAR KONSEP PEMROGRAMAN
Dasar Konstruksi Pemrograman
Transcript presentasi:

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: Algoritma : Teknik penyusunan langkah-langkah penyelesaian masalah dalam bentuk kalimat yang tersusun secara logis dan sistematis.

al-Khwarizmi  algorism  algorithm  algoritma 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 Algoritma Donald 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 nti

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

Contoh: Algoritma untuk mencari angka terbesar (maksimum) dari suatu kumpulan bilangan bulat. Solusi: Anggap angka pertama adalah yang terbesar. Bandingkan dengan angka berikutnya. Jika angka berikut tersebut lebih besar, maka jadikan sebagai yang terbesar. Ulangi langkah 2, sehingga angka terakhir. 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}

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

Struktur Algoritma Agar dapat ditulis lebih teratur, maka dibagi ke dalam beberapa bagian: Bagian kepala Bagian deklarasi variabel Bagian deskripsi/rincian langkah Contoh 1: Algoritma Luas_lingkaran Deklarasi phi = 3.14 jari_jari = 13 Deskripsi luas = phi*jari_jari^2

Contoh 2: Algoritma Cari_Rata_rata Deklarasi data = (2, 1, 3, 5, 8) n = 5 Rincian Langkah akumulasi = 0 for (i in 1:n) { akumulasi = akumulasi + data[i] } Nilai_rata = akumulasi/n

Contoh 2b: Algoritma Cari_Rata_rata Deklarasi data = (2, 1, 3, 5, 8) n = 4 Rincian Langkah akumulasi = data[1] for (i in 2:n) { akumulasi = akumulasi + data[i] } Nilai_rata = akumulasi/(n+1)

Contoh 3: Algoritma Cari_Terbesar Deklarasi data = (2, 1, 3, 5, 8) n = 5 Rincian Langkah terbesar = data[1] for (i in 2:n) { if (data[i] > terbesar) terbesar = data[i] }

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

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

Simbol untuk sistem Keyboard Printer File Monitor

Contoh 1: Pengaturan jadwal dan ruangan kuliah

Bilangan yang lebih besar dari dua bilangan Contoh 2: Bilangan yang lebih besar dari dua bilangan Mulai Mulai Masukkan A dan B Apakah A > B? Bila Ya, cetak A Bila Tidak, cetak B Selesai A  … B  … A > B? Ya Cetak A Tidak Cetak B Selesai

Bilangan yang terbesar dari tiga bilangan Contoh 3: Bilangan yang terbesar dari tiga bilangan Mulai A … B  … C …. Tidak Ya A > B? B > C? Cetak B Ya Tidak A > C? Tidak Cetak C Ya Cetak A Selesai

Tugas: Buat makalah tentang al-khwarizmi (sumber: perpustakaan atau internet seperti google dan wikipedia) Gambar flowchart untuk menyiapkan secangkir kopi (dimulai dari memasak air sampai menghidangkan kopi)! Gambar flowchart untuk mencari bilangan terbesar dari empat bilangan! Gambar flowchart untuk mencari bilangan terbesar dari sekumpulan bilangan!

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.

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.

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

> 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

Operasi dasar + (tambah), - (kurang), 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

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.

Jika kita buat obyek sbb: pinjaman untuk P, dimana besarnya 15000000 bunga 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

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 8 Kita juga bisa menyimpannya dalam suatu obyek. > x <- c(0, 7, 8) # x : vektor dgn 3 elemen Untuk melihatnya kita ketik nama obyeknya > x

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

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

Vektor Aritmetik Mengalikan setiap elemen dari suatu vektor dengan skalar: > x * 3 [1] 0 21 24 Tambah (+), 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.

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

Vektor Huruf (Character / String Vector ) > 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"

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”

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"

Struktur Data Matriks 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 6 Untuk mengakses unsurnya, gunakan dua indeks (baris dan kolom), > m[1,2] [1] 3 Untuk mengakses baris tertentu , gunakan indeks pertama saja > m[1,] [1] 1 3 5 Untuk kolom tertentu, gunakan indeks kedua saja > m[,1] [1] 1 2

> a <- array(1:24, c(3, 4, 2)) > a , , 1 [,1] [,2] [,3] [,4] 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,] 13 16 19 22 [2,] 14 17 20 23 [3,] 15 18 21 24 13 16 19 22 14 17 20 23 15 18 21 24 1 4 7 10 2 5 8 11 3 6 9 12 1 2 3 1 2 3 4

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]] > listku[[1]][2] [1] 2

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 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

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