Nama : Feri Agustina Alamat : Perum Beringin Lestari Blok C-155 Ngaliyan No. HP : 081326611168 Komting: Cesara-085713191918 Mata Kuliah : Algoritma dan Pemrograman 4 SKS Teori = saya Praktek = Aslab (***) 0-40 = E 41-59 = D 60-69 = C 70-84 = B 85-100= A (PRAKTEK+TEORI)/2 mateng+ uas,uts,tugas MATERI ------ Algoritma adalah langkah2 sistematis untuk memecahkan masalah pemrograman masalah : Pak Harun ingin memasang keramik pada lantai kamar tidurnya Buatlah "Algoritma" untuk menentukan berapa rupiah uang yang harus dikeluarkan oleh Pak Harun untuk membeli keramik saja. 1. Mengukur panjang kamar tidur 2. Mengukur Lebar kamar tidur 3. Menghitung Luas Kamar = Panjang * Lebar 4. Mengukur panjang keramik 5. mengukur lebar keramik 6. menghitung luas keramik 7. menentukan harga keramik per dus 8. menentukan isi keramik per dus 9. menghitung berapa keramik yg diperlukan dengan rumus : luaskamar/luaskeramik 10.Menghitung jml dus keramik yg dibutuhkan dengan rumus jmlkeramik/jml isi perdus 11.Bulatkan jmldus keatas 12.menghitung total harga keramik dengan rumus : jml dus * harga keramik ------------------------------------- contoh lagi yang lebih lucu buatlah "algoritma" tentang apa yg anda kerjakan dipagi hari mulai bangun tidur sampai berangkat ke kampus 1.bangun dari tempat tidur 2.Berjalan kekamar mandi 3.Buka Pintu Kamar Mandi 4.masuk kamar mandi 5.nyalakan keran 6.berwudlu 7. dst... ---------------------------------------- REVIEW DASPRO : a. Variabel dan Type Data Variabel adalah penampung data misal : x=10 nama="heru" Syarat2 membuat nama variabel : - Tidak Boleh : - > 9 Huruf - mengandung spasi - " special karakter (misal : nama&^%$#mhs) - diawal dengan angka (78nama) *) Gubernur Ahok menggusur kalijodo pada bulan maret Data adalah fakta, keadaan yang sebenarnya Informasi adalah data yang sudah diolah Data : Nama saya HERU simpulan : - Nama Variabel : nama_sy - Isi variabel : HERU --> nama_sy = "HERU" Type Data adalah jenis-jenis dari isi variabel : - Karakter/Alphabetik a) 1 Huruf : Character b) > 1 huruf : String - Angka/ALhpanumerik a) Bilangan Bulat : Integer b) Bilangan Pecahan : Real/Float contoh : Nomer Telpon Udinus adalah 0243517261 nama variabel : no_telp Type Data : string b. Input dan Output a) Input adalah memasukan isi variabel kedalam variabel - Character %s + & - String %s - Integer %d + & - Float %f + & b) Output adalah Menampilkan isi variabel di Layar monitor - Character %c - String %s - Integer %d - Float %f soal : Pak Gatot kaca Terbang dari Semarang menuju Jakarta. waktu tempuh terbang dari pak gatotkaca adalah X detik. Buatlah Algoritma untuk mengkonversikan X detik tersebut menjadi berapa jam, berapa menit dan berapa detik? Algoritma : Input x jam = x/3600 menit = (x - (jam*3600))/60 detik = mod(x,60) output jam,menit,detik Soal lagi : Ipin dan Upin Memetik Buah Rambutan. Jumlah Rambutan sebanyak : x buah untuk Ipin y buah untuk Upin. Mereka sepakat buah yang paling banyak akan diberikan kepada Kak Ros yang sedang sakit. dan sisanya akan diberikan kepada Opah Buatlah Algoritma untuk Menentukan berapa buah rambutan untuk kak ros dan berapa buah rambutan untuk Opah? Algoritma : input x, y ros = ((x+y)+abs(x-y))/2 opah = ((x+y)-abs(x-y))/2 output ros, opah Soal Maning : Udinus berenca mengirimkan bantuan sosial berupa sembako kepada warga lereng gunung merapi yang terkena musibah. Paket sembako dikemas dalam bentuk tabung yang sama besar dan dikirim menggunakan Truck. Buatlah Algoritma untuk menentukan berapa BUAH PAKET SEMBAKO yang berupa tabung tersebut yang dapat dikirimkan ke warga lereng merapi? Algoritma : input p_truk, l_truk, t_truk, p_tab, jr_tab vol_truk = p_truk * l_truk * t_truk vol_tab = (3.14 * jr_tab * jr_tab * p_tab) muat = vol_truk / vol_tab output muat c. Statemen Kondisi biasanya di istilahkan dengan statemen if then else yaitu memilih satu dari banyak pilihan. jika umurnya diatas 17 tahun maka sudah dewasa, jika belum maka masih disebut anak-anak. if umur>17 then output "Sudah Dewasa" else output "Masih Anak-Anak" dalam statemen kondisi (if) ada 3 bagian - variabel acuan - operator (=, !=, <, >, <=, >=) - pembandingnya itu sendiri contoh lain : Jika Nilai Ujiannya diatas 60, maka keterangannya LULUS selain itu maka keterangannya GAGAL if nilai >= 60 then ket="LULUS" else ket="GAGAL" misal : jika nilainnya antara 0-49, maka nilai hurufnya "E" if nilai>=0 and nilai<50 then huruf='A' jajal : jika lapar maka makanlah if perut = "LAPAR" then makanlah() Soal : Sebuah Salon yang menyediakan jasa berupa Potong Rambut, Creambath, dan Facial. masing-masing dengan harga jasa 100, 200 dan 300 Salon tersebut juga menyediakan cafe kecil sehingga pengunjung bisa memesan makanan/minuman. Dalam Rangka menyambut Ulang Tahun Pemilik Salon, diberikan Diskon dengan perhitungan. Jika : Pelanggan Laki-laki dan Potong Rambut mendapat diskon 10% Pelanggan Perempuan dan Potong Rambut mendapat diskon 5% Pelanggan Laki-laki dan CreamBath mendapat diskon 15% Pelanggan Perempuan dan CreamBath mendapat diskon 10% Pelanggan Laki-laki Facial mendapat diskon 20% Pelanggan Perempuan Facial mendapat diskon 15% Pelanggan akan mendapatkan hadiah souvenir tambahan berupa : Kacamata jika TOTAL PEMBAYARANNYA diatas 500 Topi jika TOTAL PEMBAYARANNYA diatas 750 dan KAOS jika TOTAL PEMBAYARANNYA diatas 1000 Buatlah Algoritma beserta desain programnya : Algoritma : 1. Input nama_pel 2. Input sex 3. Input Layan 4. Input cafe 5. if layan=1 then ket="POTONG RAMBUT" hrg=100 else if layan=2 then ket="CREAMBATH" hrg=200 else ket="FACIAL" hrg=300 6. output ket, harga 7. if (sex='L' or sex='l') and layan=1 then disc=0.10 * hrg else if (sex='L' or sex='l') and layan=2 then disc=0.15 * hrg else if (sex='L' or sex='l') and layan=3 then disc=0.20 * hrg else if (sex='P' or sex='p') and layan=1 then disc=0.05 * hrg else if (sex='P' or sex='p') and layan=2 then disc=0.15 * hrg else if (sex='P' or sex='p') and layan=3 then disc=0.20 * hrg else disc=0 8. output disc 9. total = hrg+cafe-disc 10. if total>500 then souv="KACA MATA" else if total>750 then souv="TOPI" else if total>1000 then souv="KAOS" else souv="UCAPAN TERIMA KASIH" 11. output souv if total>=0 and total<500 then souv="UCAPAN TERIMA KASIH" else if total>500 and total<750 then souv="KACA MATA" else if total>=750 and total<1000 then souv="TOPI" else souv="KAOS" CARA MENULISKAN ALGORITMA : 1. FLOWCHART 2. PSEUDO CODE kita akan menggunakan PSEUDO CODE dengan tata aturan penulisan ada 3 bagian utama : a. JUDUL / TITLE judul algoritma b. KAMUS / DEKLARASI Menuliskan SEMUA variabel yang digunakan BESERTA TYPE DATANYA c. ALGORITMA / DESKRIPSI Menuliskan langkah2 algoritmanya misal : Buatlah Pseudocode untuk menghitung luas segitiga sama kaki JUDUL Luas_Segi_tiga_sama_kaki KAMUS tinggi : integer {Tinggi Segitiga} alas : integer {Alas Segitiga} luas : float {Luas Segitiga} ALGORITMA input tinggi, alas luas = 0.5 * alas * tinggi output luas ------------------------------------------------------------ d. Statemen Looping/Perulangan adalah proses mengulang2 satu atau lebih statemen ada 2 hal yang harus diperhatikan : a. Apa yang diulang b. Diulang Berapa Kali misal : Menampilkan tulisan "UDINUS" sebanyak 10 kali Bentuk LOOPING : a. For for [nilai awal][batasan][counter] [YANG DIULANG] ex : for x=5 to 23 do step 2 output "UDINUS" b. While do [Nilai Awal] while [batasan] do [YANG DIULANG] [Counter] x=1 while x<11 do output "UDINUS" x=x+1 c. Repeat Until [Nilai Awal] Repeat [Yang Diulang] counter until [Batasan] x=1 repeat output "UDINUS" x=x+1 until x>11 e. Type Data ARRAY adalah type data yang memungkinkan sebuah variabel mampu menampung banyak data setiap data yang masuk ataupun keluar harus disertai dengan NOMER INDEX nya Kasus : Sekelompok anak TK akan diajak kelapangan untuk bermain petak umpet dan kejar2an. Setiap Anak akan didata umurnya masing-masing. Anak yang umurnya diatas rata2 umur kelompok akan diajak bermain Petak Umpet dan sisanya akan diajak bermain kejar2an. Buatlah Algoritma untuk Menentukan BERAPA anak yang bermain Petak Umpet dan BERAPA anak yang bermain Kejar2an? dan SIAPA SAJA? KAMUS Anak_TK KAMUS jml_anak : integer {Jml Anak TK} umur : Array of Integer [1..100] {List Umur Anak TK} jml : integer {Jumlah Umur Semua Anak TK} rata : float {Rata2 Umur Anak TK} pu : integer {Jumlah ANak TK yang Bermain Petak Umpet} ALGORITMA input jml_anak for x=1 to jml_anak input nama[x] input umur[x] jml=0 for x=1 to jml_anak jml=jml+umur[x] rata = jml/jml_anak pu = 0 kj = 0 for x=1 to jml_anak if umur[x] > rata then pu = pu + 1 else kj = kj + 1 output pu for x=1 to jml_anak if umur[x] > rata then output nama[x] output kj for x=1 to jml_anak if umur[x] <= rata then output nama[x] ----------------------------------------------------------------------- ALGORITMA SORTING dan SEARCHING ----------------------------------------------------------------------- Anda GOOGLING : a. Teknik Bubble Sort b. Teknik Selection Sort c. Teknik Insertion Sort d. Teknik Sequential SEARCH e. Teknik Binary SEARCH f. Teknik Quick SEARCH Dicetak ya... Terdapat kumpulan Data Umur Anak2 TK yang didefinisikan seperti dibawah ini : KAMUS umur : Array of Integer [3,4,5,3,5,4,2,6,3,4,5,2,2,6,5] Output yang dihasilkan : yang berumur 2 tahun ada 3 anak yang berumur 3 tahun ada 3 anak yang berumur 4 tahun ada 3 anak yang berumur 5 tahun ada 4 anak yang berumur 6 tahun ada 2 anak a. Teknik Bubble Sort ALGORITMA N=5 for x=1 to N-1 for y= x+1 to N if data[x] > data[y] then temp = data[x] data[x] = data[y] data[y] = temp b. Teknik Sequential SEARCH ALGORITMA N=5 flag=0 input datacari for x=1 to N if data[x] = datacari then flag=1 output "KETEMU DIPOSISI", x if flag=0 then output "Maaf Tidak Ketemu" 1 2 3 4 5 6 7 8 9 10 11 DATA = 10,20,30,40,50,60,70,80,90,100,110,120,130,140,150,160,170,180,190,200 Yang Dicari : 30 ALGORITMA awal=1 7 akhir=N 10 do tengah = (awal+akhir)/2 8 if data[tengah] = datacari then output "KETEMU DIPOSISI", x else if data[tengah] < datacari awal=tengah akhir=N else awal=1 akhir=tengah while(awal<>akhir) TUGAS ANDA SELANJUTNYA : MEMBUAT VIDEO/FILM TENTANG SIMULASI SEARCHING METODE APA SAJA KECUALI SEQUENTIAL SEARCH VIDEO DIBUAT OLEH KELOMPOK BERANGGOTAKAN 3-4 MHS UPLOAD VIDEO ANDA KE YOUTUBE DAN KIRIMKAN ALAMAT YOUTUBE NYA KE SAYA PADA SAAT UJIAN MID SEMESTER www.youtube.com/watch937404798384fvddg5ggh5 f. Fungsi