1.01k likes | 1.3k Views
Algoritma dan pemrograman E. Rizal. Semester Gasal 2012/2013. Telp : 021 – 8656789 HP : 08128513048 E-mail : rrizal65@yahoo.com rizal65@uhamka.ac.id Blog : rizal65.blog.uhamka.ac.id Website : www.uhamka.ac.id. ABSEN : 10 % TUGAS : 15% UTS : 25 %
E N D
Algoritmadanpemrograman E. Rizal Semester Gasal 2012/2013
Telp : 021 – 8656789 • HP : 08128513048 • E-mail : rrizal65@yahoo.com • rizal65@uhamka.ac.id • Blog : rizal65.blog.uhamka.ac.id • Website : www.uhamka.ac.id
ABSEN : 10 % TUGAS : 15% UTS : 25 % UAS : 50% KOMPONEN PENILAIAN
RencanaPertemuan • RencanaPertemuan (tatapmuka) : 16 x • Termasuk UTS dan UAS • Syarat minimal Mata KuliahbisaDiujikan : 75% X rencanapertemuan. • Syarat minimal Mahasiswabisamengikuti UJIAN AKHIR SEMESTER : 75 % dariTatapMukaygdilakukan dg Dosen.
AturanPerkuliahan • Toleransiketerlambatanmaks. 15 menit • Berbusanasopan, rapi, dantidakmemakai sandal. • Jujur, dilarangkerastitipAbsen ( bagiygberhalanganhadir : Adasuratketerangansakit, dll. Dan izin via smsmaks. 2 x)
Referensi : • RinaldiMunir, AlgoritmadanPemrogramandalambahasa Pascal dan C, PenerbitInformatika Bandung • P. InsapSantosa, Ir ., M.Sc., Dasardasar Pascal, Teoridan Program Terapan • Budi Raharjo, TeknikPemrograman Pascal, PenerbitInformatika Bandung. • Donald Knuth, The art Computer Programming, Vol.1 / fundamental Algorithms. 2nd edition, Addison Wesleyl • Referensidari internet
beberapalangkahumumdalampembuatansuatuprogramyaitu • Mendefinisikanmasalah • mendefinisikanpermasalahan. langkahiniharusdilakukanuntukmenentukanmasalah yang adasertaditentukan pula inputdan output program • Mencarisolusinya • Bilauntukmendapatkansolusiharusmelaluilangkah yang terlalurumitdapatdilakukanpembagianmasalahdalambeberapamodul-modulkecil agar mudahuntukdikerjakan. Lalumodul-modulkeciltersebutdigabungkanmenjadisatuuntukdapatmenentukansolusi. • Menentukanalgoritma • Menulisprogram • Mengujiprogram • Mendokumentasikanprogram • Merawatprogram
ApaituAlgoritma • Algoritmaadalahurutanlangkah-langkahlogispenyelesaianmasalah yang disusunsecarasistematisdanlogis.- Katalogismerupakankatakuncidalamalgoritma.- Urutanlogis/langkah-langkahdalamalgoritmaharusdapatditentunkandengannilaiBenar(TRUE) atauSalah(FALSE). • AlgoritmaadalahjantungnyaIlmukomputer/ Informatika
AlgoritmaDalamKehidupan. Tanpadisadarikitaseringmenerapkanalgoritmadalamkehidupansehari-hari, seperti : • Memasakresepmakanan • MencuciBaju • Mandi • dll
ContohAlgoritma : • Misalkanada 2 Ember yang berisi air(larutan) yang berwarna, (anggapsaja Ember A dan Ember B). Ember A berisi air yang berwarnaMerah, sedangkan Ember B berisi air yang berwarnaBiru. Volume kedua ember tersebutsama. • Pertanyaannya? : Bagaimanakahcarapertukaranisikedua ember itusehingganantiakanmenjadi Ember A berisi air warnaBiru, dan Ember B berisi air warnaMerah?
Algoritmanya : • KondisiAwal : Ember A (Berisi air warnaMerah) dan Ember B (Berisi air warnaBiru).KondisiAhir : Ember A (Berisi air warnaBiru) dan Ember B (Berisi air warnaMerah). • AlgoritmamenghasilkanEfekNetto
Penyelesainyan : • Tambahkansatu Ember kosong, (Anggapsaja Ember C). • Tuang ember A ke ember C • Tuang ember B ke ember A • Tuang ember C ke ember B • Selesai.
BAHASA PEMROGRAMAN. • Untukmelaksanakansuatualgoritma, diperlukansuatubahasapemrograman, contoh : Pascal, C++, Visual Basic, dll. • Notasialgoritmadapatditerjemahkankedalambahasapemrogramanapapaun, dengankata lain notasialgoritmabersifatindependen. • NotasiAlgoritmik :- Deskripsi- Flow Chart- KodePesudo
Program : instruksi (coding) • Pemrogram : yang membuat program • Pemrograman : kegiatan yang dilakukanuntukmerancangdanmenulis program • BahasaPemrograman : bahasa yang digunakandalammembuat program yang dimengertiolehkomputer.
Algoritma : { sisi A : (P, S, K, Y) sisi B : (………………)} • Pemudamenyeberangkankambingdarisisi A kesisi B { sisi A : (-, S, -, Y) sisi B : (P,-,K,-)} • Pemudamenyeberangsendiridarisisi B kesisi A • Pemudamenyeberangkansrigaladarisisi A kesisi B • Pemudamenyeberangkankambingdarisisi B kesisi A • Pemudamenyeberangkansayurdarisisi A kesisi B • Pemudamenyeberangkansendiridari B ke A • Pemudamenyeberangkankambingdarisisi A kesisi B { sisi A : (………………) sisi B : (P, S, K, Y) }
Algoritmnamerupakankerangkadasardarikonsepsuatuprogramuntukmenyelesaikanmasalah . • Algoritmatidakterikatdarisuatubahasapemrogramanmanapunataudengankata lain bahasa yang digunakanadalahbebasdenganbahasaapapun, baikmemakaibahasa Indonesia, bahasaInggrisataubahasalainnya.
Setiaporangpunyapolapikir yang berbeda, karenaituakanmenghasilkanalgoritma yang berbeda • Algoritmadikatakanbenarapabiladapatmemecahkanmasalah • Perludipertimbangkanmasalahefisiensidalampenyusunanalgoritma • Pemilihanrutejalan, misalnya : • Beberaparutemungkinakanmenghasilkantujuan yang sama • Adarute yang lebihefisiendibandingrutelainnya • Sebaiknya yang diambiladalahruteterpendek
Kriteria/ AspekPentingdariAlgoritma 1. Finiteness• Algoritmaharusberhenti after a finite number of steps2. Definiteness• Setiaplangkahharusdidefinisikansecaratepat, tidakboleh membingungkan (ambiguous)3. Input• Sebuahalgoritmamemilikinolataulebihinput yang diberikankepadaalgoritmasebelumdijalankan4. Output• Sebuahalgoritmamemilikisatuataulebih output, yang biasanyabergantungkepadainput5. Effectiveness• Setiapalgoritmadiharapkanmilikisifatefektif
FLOWCHART • Flowchartlebihbaikdibandingkanpseudocode • Merupakangambarandalambentuk diagram alirdarialgoritma-algoritmadalamsuatuprogram yang menyatakanarahalurprogramtersebut • Disajikandalambentukgrafik/gambar • Dapatmembantu programmer maupunorang lain dalammemahamialurprogram (apasajainput, prosesdan output dariprogram) • Representasi visual, karenaitulebihmudahdipahami • Jumlahsimbol yang digunakansedikit, karenaitulebihsederhanadanlebihmudahdipelajari
Flow Chart • flow chart (diagram alir) • (menggambarkan urutan langkah-langkah kegiatan /program mulai dari awal sampai akhir dengan menggunakan simbol atau gambar tertentu.) • Kegunaan : mendesain dan mempresentasikan program
Kaidah-KaidahUmumPembuatanFlowchart Program • Dalam pembuatan flowchart Program tidak ada rumus atau patokan yang bersifatmutlak. Karenaflowchart merupakangambaranhasilpemikirandalammenganalisissuatumasalahdengankomputer. Sehinggaflowchart yang dihasilkandapatbervariasiantarasatupemrogramdengan yang lainnya.
Namunsecaragarisbesarsetiappengolahanselaluterdiriatas 3 bagianutama, yaitu: • Input, • Prosespengolahandan • Output
Untukpengolahan data dengankomputer, urutandasarpemecahansuatumasalah: • START, berisipernyataanuntukpersiapanperalatan yang diperlukansebelummenanganipemecahanpersoalan. • READ, berisipernyataankegiatanuntukmembaca data darisuatuperalataninput. • PROSES, berisikegiatan yang berkaitandenganpemecahan persoalansesuaidengan data yang dibaca. • WRITE, berisipernyataanuntukmerekamhasilkegiatanke peralatanoutput. • END, mengakhirikegiatanpengolahan.
Walaupuntidakadakaidah-kaidah yang bakudalampenyusunanflowchart, namunadabeberapaanjuran: • Hindaripengulanganproses yang tidakperludanlogika yang berbelitsehinggajalannyaprosesmenjadisingkat. • Jalannyaprosesdigambarkandariataskebawahdandiberikantandapanahuntukmemperjelas. • Sebuahflowchart diawalidarisatutitik START dandiakhiridenganEND.
Kasus: • BuatlahsebuahAlgoritmadenganmenggunakanflowchart, mencariluaspersegipanjang. Solusi: Perumusanuntukmencariluaspersegipanjangadalah: L = p. l dimana, L adalahLuaspersegipanjang, p adalahpanjangpersegi, dan l adalahlebarpersegi.
Keterangan 1: 1. Simbolpertamamenunjukkandimulainyasebuah program. 2. Simbolkeduamenunjukkanbahwainput data dari p dan l. 3. Data darip dan l akandiprosespadasimbolketigadengan menggunakan perumusan L = p. l 4. Simbolkeempatmenunjukkanhasiloutput dariprosesdarisimbol ketiga. 5. Simbolkelimaatauterakhirmenunjukkanberakhirnya program dengantandaEnd.
kuis • BuatlahsebuahAlgoritmadenganmenggunakanflowchart untukmenghitungluaslingkaran!
Case (penggunaan Decision dalamproses) • Membuatalgoritmadengan flowchart untukmenentukanapakahseorangmahasiswatersebut LULUS atau GAGAL berdasarNilaiAkhir (NA) yang didapat. • denganketentuan : Jika NA >= 60, maka LULUS, kalautidak, maka GAGAL. • Buatlahalgoritma dg flowchart untukmenyelesaikanpermasalahandiatas!
INPUT : • TUGAS, UTS, dan UAS • Proses : • NA = (10%xABSEN)+(15%xTUGAS)+(25%XUTS)+(50%XUAS) • Output : • NA ( Nilaiakhir)
Pseudo Code • berupapengkodeanataupenandaan yang menyerupaisuatuprogram • Pseudo Codeseringdigunakandalampenulisanalgoritma. • Contoh : Mencaribilanganterkecildariduabilangan yang dimasukkan. Algoritma : • Masukkanbilpertama • Masukkanbilkedua • Jikabilpertama < bilkeduamakakerjakanlangkah 4, bilatidakmakadikerjakanlangkah 5. • Tampilkanbilpertama • Tampilkanbilkedua
Menghitung rata-rata tigabuah data Algoritmadenganstrukturbahasa Natural (Deskriptif) Algoritmadenganpseudocode input (a, b, c) Jml = a+b+c Rerata = Jml/3 Output (Rerata) • - Baca bilangan a, b, dan c • - Jumlahkanketigabilangantersebut • - Bagijumlahtersebutdengan 3 • - Tulishasilnya
Latihan • BuatlahsebuahAlgoritma program denganmenggunakannotasiAlgoritmikDeskriptifdanPseudo Code untukmenghitungluaslingkaran!
NilaiTerbesar Dari 2 BuahBilangan deskriptif Pseudo code Input bil1, bil2 if bil1 > bil2, then besar bil1 Besar bil2 Output(Besar) • Baca bilanganpertama, danbilangankedua • Bandingkannilaipertamadengannilaikedua. • sehinggadidapatnilaiterbesardiantarakeduabilangantersebut.
NilaiTerbesar Dari 3 BuahBilangan deskriptif Pseudo code Input bil1, bil2, bil3 Besar bil1 If bil2 > Besar, then besar bil2 If bil3 > besar, then besar bil3 Output (besar) • Baca bilanganpertama , bilangankeduadanbilanganketiga • Bandingkannilaipertamadengannilaikedua. • Kemudian yang lebihbesardiantaranilaitersebutdibandingkandengannilaiberikutnya (nilaiketiga) • sehinggadidapatnilaiterbesardiantaraketigavariabeltersebut.
TIGA BAGIAN UTAMA PENULISAN ALGORITMA : • Judul (Header) • Kamus • Algoritma
Contoh : JUDUL ( Header) • Program Jumlah_Bilangan{ judulalgoritma } KAMUS • Kamus : • c,d ,e: integer ALGORITMA • Algoritma : • Input (c,d) • If c < d then • e c + d • Else • e c-d • Output( e )
TIPE DATA, OPERATOR DAN EKSPRESI Program Komputer memanipulasi data (variabel dan konstanta) di dalam memori. • TIPE DATA : • Untuk menyatakan tipe data dari sebuah variabel (peubah) pada Deklarasi. • OPERATOR : • Menspesifikasikan operasi apa yang dapat dilakukan terhadap peubah (variabel) dan konstanta. • EKSPRESI : • Mengkombinasikan peubah-peubah dan dan konstanta untuk menghasilkan hasil baru.
TIPE DATA • TIPE DATA DASAR : • Tipe yang dapat langsung dipakai. • TIPE DATA BENTUKAN : • Tipe dasar atau dari tipe bentukan lain yang sudah didefinisikan sebelumnya.
1. TIPE DATA DASAR • Dalam pemrograman, yang termasuk ke dalam tipe dasar adalah : Bilangan lojik, bilangan bulat, karakter, bilangan riil, dan string • Bilangan lojik, bilangan bulat, dan karakter disebut juga dengan TIPE ORDINAL (nilainya ada dalam urutan).
BILANGAN LOJIK • NAMA TIPE : • Boolean • RANAH NILAI : • Dua buah nilai : Benar (true) dan Salah (false) • bilangan logik :benar 1, salah 0 • KONSTANTA : • True dan False • OPERASI : • Operasi Logika atau operasi boolean • Operasi logika menghasilkan nilai : true atau false • Operator logika : AND, OR dan XOR
BILANGAN LOJIK - next • Contoh operasi logika : • Misalkan X, Y, dan Z adalah peubah (variabel) bertipe boolean. • Dimana : • X bernilai true, Y bernilai false, dan Z bernilai true • Maka : operasi logika hasil ------------------------------------------ ( x and y) or z true A and ( y or z) true Not (x and z) false (y xor z) and y false
BILANGAN BULAT • Bilangan yang tidak mengandung pecahan desimal, misal : 34, 8, 0, -17, 45678901, dsb • NAMA TIPE : • Integer • RANAH NILAI :
BILANGAN BULAT - next • Contoh ; • deklarasi : • X : byte • Y : integer • Maka : • Peubah X tidak dapat dioperasikan untuk nilai-nilai di atas 255 • Peubah Y tidak dapat dioperasikan untuk nilai-nilai di atas 32767
Contoh program Program salahtipe; Uses wincrt; Var a,b,x : shortInt; Begin a:=10; b:=20; X:=a*b; {x akan bernilai -56, bukan 200} Writeln(‘Nilai x=‘, x); End.
BILANGAN BULAT - next • KONSTANTA : • Harus ditulis tanpa mengandung titik desimal : • Contoh : 78, -14, 7654, 0, 5, 9999, dsb • OPERASI : • Operasi aritmetika : + (tambah) - (kurang) * (kali) Div (hasil bagi bilangan bulat) Mod (sisa hasil bagi) Contoh : 3 + 10 hasil : 13 10 DIV 3 hasil : 3 10 MOD 3 hasil : 1
BILANGAN BULAT - next 2. Operasi Perbandingan : • Menghasilkan nilai boolean (true dan false)