Algoritma dan Pemrograman 1 Laily Hermawanti S T

  • Slides: 188
Download presentation
Algoritma dan Pemrograman 1 Laily Hermawanti, S. T. , M. Kom Hp. 085600377461 lailyaisyah

Algoritma dan Pemrograman 1 Laily Hermawanti, S. T. , M. Kom Hp. 085600377461 lailyaisyah 18@gmail. com Banyumanik

Metode Pembelajaran 1. Kuliah 2. Diskusi 3. Tanya Jawab 4. Tugas

Metode Pembelajaran 1. Kuliah 2. Diskusi 3. Tanya Jawab 4. Tugas

Penilaian 1. Ujian Akhir Semester (UAS) : 35% 2. Ujian Tengah Semester (UTS) :

Penilaian 1. Ujian Akhir Semester (UAS) : 35% 2. Ujian Tengah Semester (UTS) : 35% 3. Tugas Mandiri : 30% 4. Keaktifan Mahasiswa / Kehadiran

Tata Tertib 1. Pakaian 2. Kehadiran 75% 3. Curang Dalam Ujian : E 4.

Tata Tertib 1. Pakaian 2. Kehadiran 75% 3. Curang Dalam Ujian : E 4. Ijin Lewat SMS : 1 x 5. Ujian Susulan : Mahasiswa yang Ortu/Saudara meninggal saat ujian, opname, tugas negara.

Rujukan / Referensi 1. Rosa A. S. , M. Shalahuddin (2010), Modul Pembelajaran Algoritma

Rujukan / Referensi 1. Rosa A. S. , M. Shalahuddin (2010), Modul Pembelajaran Algoritma dan Pemrograman, Modula, Bandung. 2. Rinaldi Munir (2011), Algoritma dan Pemrograman dalam Bahasa Pascal dan C, Graha Ilmu, Yogyakarta.

Materi Kuliah 1. Pertemuan ke : 1 Konsep dasar dan Pengertian Algoritma. 2. Pertemuan

Materi Kuliah 1. Pertemuan ke : 1 Konsep dasar dan Pengertian Algoritma. 2. Pertemuan ke : 2 - 3 Cara Penulisan Algoritma dalam Bahasa Natural dan Flowchart.

Materi Kuliah 3. Pertemuan ke : 4 - 5 Cara Penulisan dalam Flowchart Untuk

Materi Kuliah 3. Pertemuan ke : 4 - 5 Cara Penulisan dalam Flowchart Untuk Struktur Logika Sederhana dan Kompleks. 4. Pertemuan ke : 6 - 7 Cara Penulisan dalam Flowchart untuk Jenis-jenis Struktur Perulangan dalam Algoritma.

Materi Kuliah 5. Pertemuan ke : 8 Cara Penulisan dalam Flowchart untuk Jenis –

Materi Kuliah 5. Pertemuan ke : 8 Cara Penulisan dalam Flowchart untuk Jenis – jenis Counter dan Accumulator. 6. Pertemuan ke : 9 - 10 Pengertian Array dan Penulisannya dalam Algoritma 7. Pertemuan ke : 11 - 12 Pengertian, teknik maupun penulisan Sorting dalam Algoritma

Tujuan Mata Kuliah Ini Dapat Memahami Ilmu Agoritma sebagai dasar untuk membuat aplikasi pemrograman,

Tujuan Mata Kuliah Ini Dapat Memahami Ilmu Agoritma sebagai dasar untuk membuat aplikasi pemrograman, cara penulisan, simbol-simbol yang digunakan, penerapan dasar logika dalam memahami sautu kasus komputerisasi.

Gambaran Apa Itu Algoritma ? • Ada 2 buah gelas. Satu berisi teh dan

Gambaran Apa Itu Algoritma ? • Ada 2 buah gelas. Satu berisi teh dan satunya lagi berisi kopi. Bagaimana caranya menukar isi masing-masing gelas? teh kopi

A B teh kopi teh Bagaimana Algoritmanya ? ? -Alpro 2009 - 11

A B teh kopi teh Bagaimana Algoritmanya ? ? -Alpro 2009 - 11

Algoritma – Siapkan gelas cadangan X X – Tuangkan gelas yang berisi teh ke

Algoritma – Siapkan gelas cadangan X X – Tuangkan gelas yang berisi teh ke gelas cadangan – Tuangkan gelas yang berisi kopi ke gelas yang awalnya dipakai teh – Tuangkan isi gelas cadangan ke gelas yang awalnya berisi kopi X teh kopi X

Pertemuan 1 Konsep Dasar dan Pengertian Algoritma

Pertemuan 1 Konsep Dasar dan Pengertian Algoritma

Asal-usul Kata Algoritma Abu Ja’far Muhammad Ibnu Musa Al Khuwarizmi adalah seorang penulis buku

Asal-usul Kata Algoritma Abu Ja’far Muhammad Ibnu Musa Al Khuwarizmi adalah seorang penulis buku Arab yang berjudul Kitab Al Jabar Wal Muqabala (Buku Pemugaran dan Pengurangan). Kata Al Khuwarizmi dibaca orang Barat menjadi algorism.

Asal-usul Kata Algoritma • Kata algorism berarti proses menghitung dengan angka Arab. • Kata

Asal-usul Kata Algoritma • Kata algorism berarti proses menghitung dengan angka Arab. • Kata algorism lambat laun menjadi algorithm disebabkan kata algorism sering dikelirukan dengan kata arithmetic sehingga akhiran –sm berubah menjadi –thm. • Kata algorithm diserap ke dalam bahasa Indonesia menjadi algoritma.

Apa Itu Algoritma? Ø Algoritma adalah Urutan langkah-langkah untuk memecahkan masalah Ø Kamus Besar

Apa Itu Algoritma? Ø Algoritma adalah Urutan langkah-langkah untuk memecahkan masalah Ø Kamus Besar Bahasa Indonesia: Algoritma adalah urutan logis pengambilan putusan untuk pemecahan masalah Ø Algoritma dibutuhkan untuk memerintah komputer mengambil langkah-langkah tertentu dalam menyelesaikan masalah

Definisi Algoritma • Urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis. • Urutan

Definisi Algoritma • Urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis. • Urutan logis pengambilan keputusan untuk pemecahan masalah. • Logis : hasil dari urutan langkah tersebut harus dapat ditentukan benar atau salah. • Untuk menjadi sebuah algoritma, urutan langkah yang ditempuh untuk menyelesaikan masalah harus memberikan hasil yang benar.

Kesimpulan Definisi Algoritma • Algoritma adalah sekumpulan langkah-langkah terbatas untuk mencari solusi suatu masalah.

Kesimpulan Definisi Algoritma • Algoritma adalah sekumpulan langkah-langkah terbatas untuk mencari solusi suatu masalah. • Berasal dari kata algoris dan ritmis. Awalnya diungkapkan oleh Al Khowarizmi. • Di pemrograman, algoritma didefinisikan sebagai metode yang terdiri dari langkah-langkah terstuktur untuk mencari solusi suatu masalah dengan bantuan komputer. 18

Algoritma dalam Kehidupan • Algoritma adalah jantung ilmu komputer atau informatika. • Banyak cabang

Algoritma dalam Kehidupan • Algoritma adalah jantung ilmu komputer atau informatika. • Banyak cabang ilmu komputer yang diacu dalam terminologi algoritma. • Namun algoritma juga digunakan dalam kehidupan sehari-hari, contohnya resep makanan. • Di dalam resep makanan terdapat langkah-langkah yang merupakan algoritma. Selain itu masih banyak contoh algoritma yang lain.

Algoritma • Algoritma dapat diekpresikan dalam bahasa manusia, menggunakan presentasi grafik Flow. Chart (diagram

Algoritma • Algoritma dapat diekpresikan dalam bahasa manusia, menggunakan presentasi grafik Flow. Chart (diagram alir) ataupun melalui Pseudo. Code yang menjembatani antara bahasa manusia dengan bahasa pemrograman.

Domain algoritma • Masalah : motivasi untuk membuat algoritma. • Algoritma : prosedur untuk

Domain algoritma • Masalah : motivasi untuk membuat algoritma. • Algoritma : prosedur untuk menyelesaikan masalah. Seringkali satu masalah dapat diselesaikan dengan lebih dari satu cara (banyak kemungkinan). • Program: representasi formal dari suatu algoritma dengan menggunakan bahasa pemrograman yang bisa dimengerti oleh komputer. • Proses : aktivitas menjalankan langkah-langkah dalam algoritma.

Proses Penyelesaian masalah dengan Algoritma Pemecahan Masalah Algoritma -Alpro 2009 - Implementasi Solusi 22

Proses Penyelesaian masalah dengan Algoritma Pemecahan Masalah Algoritma -Alpro 2009 - Implementasi Solusi 22

Contoh • Ibu Tati Mengupas Kentang -Alpro 2009 - 23

Contoh • Ibu Tati Mengupas Kentang -Alpro 2009 - 23

Ruang Lingkup • Apakah kentangnya harus dibeli dulu atau sudah ada di dapur ?

Ruang Lingkup • Apakah kentangnya harus dibeli dulu atau sudah ada di dapur ? • Apakah yang dimaksud dengan mengupas kentang untuk makan malam berarti sampai kentang terhidang? • Ketika kentangnya terhidang, jadi sup, digoreng atau direbus saja? -Alpro 2009 - 24

Constraint • Initial State : Kentang sudah ada di kantong kentang, yang ditaruh di

Constraint • Initial State : Kentang sudah ada di kantong kentang, yang ditaruh di rak di dapur dimana ibu tati akan mengupasnya • Final State : Kentang dalam keadaan terkupas di panci, siap untuk dimasak dan kantong kentangnya dikembalikan ke rak lagi -Alpro 2009 - 25

Sub-Aksi • • Ambil kantong kentang dari rak Ambil panci dari almari Kupas kentang

Sub-Aksi • • Ambil kantong kentang dari rak Ambil panci dari almari Kupas kentang Kembalikan kantong kentang ke rak -Alpro 2009 - 26

5 ciri penting algoritma • Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas •

5 ciri penting algoritma • Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas • Setiap langkah harus didefinisikan dengan tepat dan tidak memiliki dua arti (ambigu) • Algoritma memiliki nol atau lebih masukan (input) • Algoritma memiliki nol atau lebih keluaran (output) • Algoritma harus efektif -Alpro 2009 - 27

Bahasa Pemrograman • Untuk melaksanakan suatu algoritma diperlukan suatu bahasa pemrograman, contoh bahasa pemrograman

Bahasa Pemrograman • Untuk melaksanakan suatu algoritma diperlukan suatu bahasa pemrograman, contoh bahasa pemrograman adalah : Pascal, C++, Basic, dll. • Notasi algoritma dapat diterjemahkan kedalam bahasa pemrograman apapun, dengan kata lain notasi algoritma bersifat independen.

KONSEP DASAR PEMROGRAMAN KOMPUTER ta a D ai Nila i Da ta Nil Data

KONSEP DASAR PEMROGRAMAN KOMPUTER ta a D ai Nila i Da ta Nil Data yg Diolah (Masukan/Input) PUSAT PENGOLAH DATA (berbasis Arithmatika dan Logika) Data hasil pengolahan (Keluaran/Output) Penyimpanan Data 29

Klasifikasi Bahasa Pemrograman • Menurut Generasi – – – First Generation Language (1 GL),

Klasifikasi Bahasa Pemrograman • Menurut Generasi – – – First Generation Language (1 GL), kode mesin Second Generation Language (2 GL), bahasa assembly Generasi Ketiga, C, C++, Pascal, Java Generasi Keempat, SQL, PL/SQL, ABAP Generasi Kelima, Prolog, LISP AI • Menurut Tingkatan – Low-level programming language, 1 GL & 2 GL – High-level programming language (HLL), 3 GL – Very High-level programming language (VHLL), 4 GL -Alpro 2009 - 30

Bagaimana Algoritma dapat menjadi program? Piranti Masukan CPU Piranti Keluaran Memori -Alpro 2009 -

Bagaimana Algoritma dapat menjadi program? Piranti Masukan CPU Piranti Keluaran Memori -Alpro 2009 - 31

Belajar Memrogram Vs Belajar Bahasa Pemrograman • Belajar memprogram adalah belajar tentang metodologi pemecahan

Belajar Memrogram Vs Belajar Bahasa Pemrograman • Belajar memprogram adalah belajar tentang metodologi pemecahan masalah, kemudian menuangkannya dalam suatu notasi tertentu yang mudah dibaca dan dipahami. • Belajar bahasa pemrograman berarti belajar memakai suatu bahasa, aturan-aturan tata bahasanya, instruksi-instruksinya, tata cara pengoperasian compiler-nya, dan memanfaatkan instruksi-instruksi tersebut untuk membuat program yang ditulis hanya dalam bahasa itu saja. -Alpro 2009 - 32

Contoh algoritma 1 • Ada 2 buah gelas. Satu berisi teh dan satunya lagi

Contoh algoritma 1 • Ada 2 buah gelas. Satu berisi teh dan satunya lagi berisi kopi. Bagaimana caranya menukar isi masing-masing gelas? teh kopi

Contoh algoritma 1 Algoritma – Siapkan gelas cadangan X X – Tuangkan gelas yang

Contoh algoritma 1 Algoritma – Siapkan gelas cadangan X X – Tuangkan gelas yang berisi teh ke gelas cadangan – Tuangkan gelas yang berisi kopi ke gelas yang awalnya dipakai teh – Tuangkan isi gelas cadangan ke gelas yang awalnya berisi kopi X teh kopi X

Latihan 1 Buatlah suatu algoritma untuk proses pembuatan kopi yang rasa manisnya tepat

Latihan 1 Buatlah suatu algoritma untuk proses pembuatan kopi yang rasa manisnya tepat

Apa Itu Algoritma? Ø Algoritma adalah Urutan langkah-langkah untuk memecahkan masalah Ø Kamus Besar

Apa Itu Algoritma? Ø Algoritma adalah Urutan langkah-langkah untuk memecahkan masalah Ø Kamus Besar Bahasa Indonesia: Algoritma adalah urutan logis pengambilan putusan untuk pemecahan masalah Ø Algoritma dibutuhkan untuk memerintah komputer mengambil langkah-langkah tertentu dalam menyelesaikan masalah

Program dan Bahasa Pemrograman • Program adalah formulasi sebuah algoritma dalam bentuk bahasa pemrograman

Program dan Bahasa Pemrograman • Program adalah formulasi sebuah algoritma dalam bentuk bahasa pemrograman sehingga siap untuk dijalankan pada mesin komputer • Bahasa pemrograman adalah bahasa buatan yang digunakan untuk mengendalikan perilaku dari sebuah mesin, biasanya berupa mesin komputer, sehingga dapat digunakan untuk memberitahu komputer tentang apa yang harus dilakukan.

Pertemuan 2 Cara Penulisan Algoritma dalam Bahasa Natural, Flowchart, dan Pseudo Code

Pertemuan 2 Cara Penulisan Algoritma dalam Bahasa Natural, Flowchart, dan Pseudo Code

Algoritma dalam Bahasa Natural

Algoritma dalam Bahasa Natural

NOTASI PENULISAN Dibagi menjadi 3 cara, yaitu : • Notasi yang dinyatakan dalam kalimat

NOTASI PENULISAN Dibagi menjadi 3 cara, yaitu : • Notasi yang dinyatakan dalam kalimat Natural/Deskriptif • Notasi yang dinyatakan dalam flow chart • Notasi yang dinyatakan dengan pseudo code

Penulisan Algoritma 1. Dalam bahasa natural (Bahasa Indonesia, Bahasa Inggris, dan bahasa manusia lainnya)

Penulisan Algoritma 1. Dalam bahasa natural (Bahasa Indonesia, Bahasa Inggris, dan bahasa manusia lainnya) – Tapi sering membingungkan (ambiguous) 2. Menggunakan flow chart (diagram alir) – Bagus secara visual akan tetapi repot kalau algoritmanya panjang 3. Menggunakan pseudo-code – Sudah lebih dekat ke bahasa pemrograman, namun sulit dimengerti oleh orang yang tidak mengerti pemrograman 2004 EL 2001 - Algoritma v. 1. 2 42

Contoh Algoritma Dalam Bahasa Natural 1. Ambil bilangan pertama dan set maks sama dengan

Contoh Algoritma Dalam Bahasa Natural 1. Ambil bilangan pertama dan set maks sama dengan bilangan pertama 2. Ambil bilangan kedua dan bandingkan dengan maks 3. Apa bilangan kedua lebih besar dari maks, set maks sama dengan bilangan kedua 4. Ambil blangan ketiga dan bandingan dengan maks 5. Apabilangan ketiga lebih besar dari maks, set maks sama dengan bilangan ketiga 6. Variabel maks berisi bilangan terbesar. Tayangkan hasilnya

Notasi yang dinyatakan dalam kalimat deskriptif • Deskripsi setiap langkah dijelaskan dengan bahasa yang

Notasi yang dinyatakan dalam kalimat deskriptif • Deskripsi setiap langkah dijelaskan dengan bahasa yang jelas • Cocok untuk algoritma yang pendek • Relatif sulit untuk dikonversi ke bahasa pemrograman

Notasi yang dinyatakan dalam kalimat deskriptif (lanjut) • Contoh : Algoritma Bilangan Maksimum Diberikan

Notasi yang dinyatakan dalam kalimat deskriptif (lanjut) • Contoh : Algoritma Bilangan Maksimum Diberikan tiga buah bilangan bulat. Carilah bilangan bulat maksimum diantara ketiga bilangan tersebut. Deskripsi : – Mulai – baca bilangan 1 – baca bilangan 2 – bandingkan bilangan 1 dan bilangan 2, kita ambil yang lebih besar, jika kedua bilangan tersebut sama besar, dapat kita ambil bilangan 1, dan sebut bilangan tersebut MAX – baca bilangan 3 – bandingkan MAX dengan bilangan 3, dan pilih yang lebih besar, jika keduanya sama besar, pilih MAX dan sebut bilangan tersebut MAX. – keluarkan sebagai output MAX – selesai

Pertemuan 2 - 3 Cara Penulisan Algoritma dalam Bahasa Natural, Flowchart, dan Pseudo Code

Pertemuan 2 - 3 Cara Penulisan Algoritma dalam Bahasa Natural, Flowchart, dan Pseudo Code

Flowchart (Diagram Alur) 47

Flowchart (Diagram Alur) 47

Flow Chart • flow chart (diagram alir) – (menggambarkan urutan langkah-langkah kegiatan /program mulai

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

Flowchart adalah gambaran dalam bentuk diagram alir dari algoritma-algoritma dalam suatu program, yang menyatakan

Flowchart adalah gambaran dalam bentuk diagram alir dari algoritma-algoritma dalam suatu program, yang menyatakan arah alur program tersebut. 49

FLOWCHART • Flowchart lebih baik dibandingkan pseudocode • Merupakan gambaran dalam bentuk diagram alir

FLOWCHART • Flowchart lebih baik dibandingkan pseudocode • Merupakan gambaran dalam bentuk diagram alir dari algoritma-algoritma dalam suatu program yang menyatakan arah alur program tersebut • Disajikan dalam bentuk grafik/gambar • Dapat membantu programmer maupun orang lain dalam memahami alur program (apa saja input, proses dan output dari program) • Representasi visual, karena itu lebih mudah dipahami • Jumlah simbol yang digunakan sedikit, karena itu lebih sederhana dan lebih mudah dipelajari

Flowchart • bagan yang menggambarkan urutan instruksi untuk proses dengan komputer dan hubungan antara

Flowchart • bagan yang menggambarkan urutan instruksi untuk proses dengan komputer dan hubungan antara suatu proses dengan proses lainnya dengan menggunakan simbol • tidak digunakan untuk menggambarkan urutan langkah untuk memecahkan masalah, tetapi hanya untuk menggambarkan prosedur dalam sistem yang dibentuk -Alpro 2009 - 51

Flowchart • Bagan-bagan yang mempunyai arus • Menggambarkan langkah-langkah penyelesaian suatu masalah • Merupakan

Flowchart • Bagan-bagan yang mempunyai arus • Menggambarkan langkah-langkah penyelesaian suatu masalah • Merupakan salah satu cara penyajian algoritma 52

Tujuan • Menggambarkan suatu tahapan penyelesaian masalah • Secara sederhana, terurai, rapi dan jelas

Tujuan • Menggambarkan suatu tahapan penyelesaian masalah • Secara sederhana, terurai, rapi dan jelas • Menggunakan simbol-simbol standar 53

Model / Jenis Flowchart • System Flowchart • Program Flowchart 54

Model / Jenis Flowchart • System Flowchart • Program Flowchart 54

System Flowchart • Menggambarkan suatu sistem peralatan komputer yang digunakan dalam proses pengolahan data

System Flowchart • Menggambarkan suatu sistem peralatan komputer yang digunakan dalam proses pengolahan data serta hubungan antar peralatan tersebut • Tidak digunakan untuk menggambarkan urutan langkah untuk memecahkan masalah • Hanya untuk menggambarkan prosedur dalam sistem yang dibentuk 55

Program Flowchart • Menggambarkan urutan logika dari suatu prosedur pemecahan masalah • Dua jenis

Program Flowchart • Menggambarkan urutan logika dari suatu prosedur pemecahan masalah • Dua jenis metode penggambaran program flowchart : – Conceptual flowchart, menggambarkan alur pemecahan masalah secara global – Detail flowchart, menggambarkan alur pemecahan masalah secara rinci 56

Simbol-simbol Flowchart • Flow direction symbols – Digunakan untuk menghubungkan simbol satu dengan yang

Simbol-simbol Flowchart • Flow direction symbols – Digunakan untuk menghubungkan simbol satu dengan yang lain – Disebut juga connecting line • Processing symbols – Menunjukan jenis operasi pengolahan dalam suatu proses / prosedur • Input / Output symbols – Menunjukkan jenis peralatan yang digunakan sebagai media input atau output 57

Flow Direction Symbols • Simbol arus / flow – Menyatakan jalannya arus suatu proses

Flow Direction Symbols • Simbol arus / flow – Menyatakan jalannya arus suatu proses • Simbol communication link – Menyatakan transmisi data dari satu lokasi ke lokasi lain • Simbol connector – Menyatakan sambungan dari proses ke proses lainnya dalam halaman yang sama • Simbol offline connector – Menyatakan sambungan dari proses ke proses lainnya dalam halaman yang berbeda 58

Processing Symbols • Simbol process – Menyatakan suatu tindakan (proses) yang dilakukan oleh komputer

Processing Symbols • Simbol process – Menyatakan suatu tindakan (proses) yang dilakukan oleh komputer • Simbol manual – Menyatakan suatu tindakan (proses) yang tidak dilakukan oleh komputer • Simbol decision – Menujukkan suatu kondisi tertentu yang akan menghasilkan dua kemungkinan jawaban : ya / tidak • Simbol predefined process – Menyatakan penyediaan tempat penyimpanan suatu pengolahan untuk memberi harga awal • Simbol terminal – Menyatakan permulaan atau akhir suatu program 59

Processing Symbols • Simbol keying operation – Menyatakan segal jenis operasi yang diproses dengan

Processing Symbols • Simbol keying operation – Menyatakan segal jenis operasi yang diproses dengan menggunakan suatu mesin yang mempunyai keyboard • Simbol offline-storage – Menunjukkan bahwa data dalam simbol ini akan disimpan ke suatu media tertentu • Simbol manual input – Memasukkan data secara manual dengan menggunakan online keyboard 60

Input / Output Symbols • Simbol input/output – Menyatakan proses input atau output tanpa

Input / Output Symbols • Simbol input/output – Menyatakan proses input atau output tanpa tergantung jenis peralatannya • Simbol punched card – Menyatakan input berasal dari kartu atau output ditulis ke kartu • Simbol magnetic tape – Menyatakan input berasal dari pita magnetis atau output disimpan ke pita magnetis • Simbol disk storage – Menyatakan input berasal dari disk atau output disimpan ke disk 61

Input / Output Symbols • Simbol document – Mencetak keluaran dalam bentuk dokumen (melalui

Input / Output Symbols • Simbol document – Mencetak keluaran dalam bentuk dokumen (melalui printer) • Simbol display – Mencetak keluaran dalam layar monitor 62

Lambang Flowchart Terminator (mulai/selesai) Input/output Proses Decision (percabangan) Data Flow (Aliran data) Preparation (pemberian

Lambang Flowchart Terminator (mulai/selesai) Input/output Proses Decision (percabangan) Data Flow (Aliran data) Preparation (pemberian nilai awal suatu variabel) Call (memanggil prosedur/fungsi) Connector (di halaman yg sama Connector ( di halaman lain)

Berikut adalah beberapa simbol yang digunakan dalam menggambar suatu flowchart : SIMBOL NAMA FUNGSI

Berikut adalah beberapa simbol yang digunakan dalam menggambar suatu flowchart : SIMBOL NAMA FUNGSI TERMINATOR Permulaan/akhir program GARIS ALIR (FLOW LINE) Arah aliran program PREPARATION Proses inisialisasi/pemberian harga awal PROSES Proses perhitungan/proses pengolahan data INPUT/OUTPUT DATA Proses input/output data, parameter, informasi PREDEFINED PROCESS (SUB PROGRAM) Permulaan sub program/proses menjalankan sub program DECISION Perbandingan pernyataan, penyeleksian data yang memberikan pilihan untuk langkah selanjutnya ON PAGE CONNECTOR Penghubung bagian-bagian flowchart yang berada pada satu halaman OFF PAGE CONNECTOR Penghubung bagian-bagian flowchart yang berada pada halaman berbeda 64

Pengolahan data START READ HABIS ? Ya Tidak PROCESS WRITE END 65

Pengolahan data START READ HABIS ? Ya Tidak PROCESS WRITE END 65

Menghitung luas persegi panjang Start Input panjang Input lebar Luas panjang * lebar Print

Menghitung luas persegi panjang Start Input panjang Input lebar Luas panjang * lebar Print Luas End 66

Notasi yang dinyatakan dalam flow chart • Sama halnya dengan notasi deskriptif, notasi ini

Notasi yang dinyatakan dalam flow chart • Sama halnya dengan notasi deskriptif, notasi ini cocok untuk algoritma yang pendek • Relatif sulit untuk dikonversi ke bahasa pemrograman

Pembuatan Flowchart • Tidak ada kaidah yang baku. • Flowchart = gambaran hasil analisa

Pembuatan Flowchart • Tidak ada kaidah yang baku. • Flowchart = gambaran hasil analisa suatu masalah • Flowchart dapat bervariasi antara satu pemrogram dengan pemrogram lainnya. • Secara garis besar ada 3 bagian utama: – Input – Proses – Output

Pembuatan Flowchart – cont. • Hindari pengulangan proses yang tidak perlu dan logika yang

Pembuatan Flowchart – cont. • Hindari pengulangan proses yang tidak perlu dan logika yang berbelit sehingga jalannya proses menjadi singkat. • Jalannya proses digambarkan dari atas ke bawah dan diberikan tanda panah untuk memperjelas. • Sebuah flowchart diawali dari satu titik START dan diakhiri dengan END.

Contoh 1 Flowchart

Contoh 1 Flowchart

Contoh 2 Flowchart

Contoh 2 Flowchart

Exercise 1. Buatlah algoritma untuk menghitung luas dan kelilingkaran. Dengan masukan berupa jari-jari. 2.

Exercise 1. Buatlah algoritma untuk menghitung luas dan kelilingkaran. Dengan masukan berupa jari-jari. 2. Buatlah flowchart dari algoritma pada soal no 1 diatas. 3. Buatlah algoritma untuk mengecek bilangan di antara 2 bilangan masukan, apakah sama ataukah lebih besar salah satunya, dan tampilkan hasilnya. 4. Buatlah flowchart dari algoritma pada soal no 3 diatas.

Notasi yang dinyatakan dalam flowchart (lanjut) • Contoh : Algoritma Bilangan Maksimum Diberikan tiga

Notasi yang dinyatakan dalam flowchart (lanjut) • Contoh : Algoritma Bilangan Maksimum Diberikan tiga buah bilangan bulat. Carilah bilangan bulat maksimum diantara ketiga bilangan tersebut. Deskripsi :

Algoritma dengan Flowchart

Algoritma dengan Flowchart

Mulai Inputkan nilai (tugas, uts, uas) NA = 25%tg+25%uts+50%uas NA>60 Lulus Selesai Gagal

Mulai Inputkan nilai (tugas, uts, uas) NA = 25%tg+25%uts+50%uas NA>60 Lulus Selesai Gagal

CONTOH FLOW CHART Start Masukkan a, b, c d = b^2 – 4 ac

CONTOH FLOW CHART Start Masukkan a, b, c d = b^2 – 4 ac d<0 T x 1=(-b+sqrt(d))/2 a x 2 =(-b-sqrt(d))/2 a Y Cetak Pesan “Akar imajiner” Cetak x 1, x 2 Stop 78

Notasi yang dinyatakan dengan pseudo code • Notasi yang menyerupai bahasa pemrograman tingkat tinggi

Notasi yang dinyatakan dengan pseudo code • Notasi yang menyerupai bahasa pemrograman tingkat tinggi • Kemudahan mengkonversinya (mentranslasi ke notasi bahasa pemrograman) • Intinya, Pseudo code adlh campuran antara bahasa alami dengan bahasa pemrograman

Notasi yang dinyatakan dalam pseudo code(lanjut) • Contoh : Algoritma Bilangan Maksimum Diberikan tiga

Notasi yang dinyatakan dalam pseudo code(lanjut) • Contoh : Algoritma Bilangan Maksimum Diberikan tiga buah bilangan bulat. Carilah bilangan bulat maksimum diantara ketiga bilangan tersebut. Deklarasi : – Bil 1, Bil 2, Bil 3 : integer {bilangan yang dicari maksimumnya} – MAX : integer {variabel bantu} Deskripsi : – Read (Bil 1, Bil 2) – If Bil 1 >= Bil 2 then – Bil 1 = MAX – Else Bil 2 = MAX – Read (Bil 3) – If Bil 3 >= MAX then – Bil 3 = MAX – Write (MAX)

Algoritma dengan pseudo-code maks ← bilangan pertama if (maks < bilangan kedua) maks ←

Algoritma dengan pseudo-code maks ← bilangan pertama if (maks < bilangan kedua) maks ← bilangan kedua if (maks < bilangan ketiga) maks ← bilangan ketiga 2004 EL 2001 - Algoritma v. 1. 2 81

Algoritma dengan pseudo-code maks ← bilangan pertama if (maks < bilangan kedua) maks ←

Algoritma dengan pseudo-code maks ← bilangan pertama if (maks < bilangan kedua) maks ← bilangan kedua if (maks < bilangan ketiga) maks ← bilangan ketiga

Ad. 1. Bagaimana merencanakan algoritma Dengan Mendefinisikan masalah. Contoh : Permasalahan menghitung luas lingkaran,

Ad. 1. Bagaimana merencanakan algoritma Dengan Mendefinisikan masalah. Contoh : Permasalahan menghitung luas lingkaran, dengan data yang diketahui adalah diameter lingkaran. Rumus : ∏. r 2 dengan Phi = 3. 14 atau 22/7.

– Dengan flowchart / diagram alir Program Flowchart, yaitu bagan yang menggambar-kan urutan logika

– Dengan flowchart / diagram alir Program Flowchart, yaitu bagan yang menggambar-kan urutan logika dari suatu prosedur pemecahan masalah. Start Phi = 3. 14 Input (diameter) Radius = diameter/2 Luas = phi * radius Output Luas Stop

Ad. 2. Bagaimana menyatakan suatu algoritma (menulis algoritma) – Dengan psudocode Suatu cara penulisan

Ad. 2. Bagaimana menyatakan suatu algoritma (menulis algoritma) – Dengan psudocode Suatu cara penulisan algoritma agar ide dan logika dari algoritma dapat disampaikan/diekspresikan menggunakan gaya Phipemrograman 3. 14 bahasa tertentu. Input (diameter) Radius diameter / 2 Luar phi * radius Output (Luas) End

Contoh Soal Penulisan Algoritma dalam Bahasa Natural, Flowchart, Pseudo Code

Contoh Soal Penulisan Algoritma dalam Bahasa Natural, Flowchart, Pseudo Code

Buat sebuah algoritma untuk memilih bilangan terkecil dari 3 buah bilangan • Algoritma Dalam

Buat sebuah algoritma untuk memilih bilangan terkecil dari 3 buah bilangan • Algoritma Dalam Bahasa Natural 1. Ambil bilangan pertama dan set kecil sama dengan bilangan pertama 2. Ambil bilangan kedua dan bandingkan dengan kecil 3. Apa bilangan kedua lebih kecil dari kecil, set kecil sama dengan bilangan kedua 4. Ambil blangan ketiga dan bandingan dengan kecil 5. Apabilangan ketiga lebih kecil dari kecil, set kecil sama dengan bilangan ketiga 6. Variabel kecil berisi bilangan terkecil. 7. Tayangkan hasilnya.

Algoritma dengan pseudo-code kecil bilangan pertama if ( bilangan kedua < kecil) kecil bilangan

Algoritma dengan pseudo-code kecil bilangan pertama if ( bilangan kedua < kecil) kecil bilangan kedua if ( bilangan ketiga < kecil) kecil bilangan ketiga Ouput(kecil)

Hal yang harus dipenuhi dalam membuat algoritma • Input : data yang harus diberikan

Hal yang harus dipenuhi dalam membuat algoritma • Input : data yang harus diberikan pada komputer • Output: informasi yang akan diperoleh dari komputer • Logika: Merencanakan proses program. Terdiri dari sejumlah instruksi yang mengubah input menjadi output yang diinginkan.

Aspek Penting dari Algoritma 1. Finiteness • 2. Algoritma harus berhenti after a finite

Aspek Penting dari Algoritma 1. Finiteness • 2. Algoritma harus berhenti after a finite number of steps Definiteness • 3. Setiap langkah harus didefinisikan secara tepat, tidak boleh membingungkan (ambiguous) Input • 4. Sebuah algoritma memiliki nol atau lebih input yang diberikan kepada algoritma sebelum dijalankan Output • 5. Sebuah algoritma memiliki satu atau lebih output, yang biasanya bergantung kepada input Effectiveness • Setiap algoritma diharapkan miliki sifat efektif

Struktur Dasar Algoritma • Runtunan (sequence) • Pemilihan (selection) • Pengulangan (repetition)

Struktur Dasar Algoritma • Runtunan (sequence) • Pemilihan (selection) • Pengulangan (repetition)

Runtunan • Sebuah runtunan terdiri dari satu atau lebih instruksi • Tiap instruksi dikerjakan

Runtunan • Sebuah runtunan terdiri dari satu atau lebih instruksi • Tiap instruksi dikerjakan berurutan • Urutan instruksi menentukan keadaan akhir algoritma • Contoh A 1 A 2 A 3 A 4 A 5

Algoritma TUKAR_ISI_BEJANA Diberikan dua buah bejana, A dan B; bejana A berisi larutan merah,

Algoritma TUKAR_ISI_BEJANA Diberikan dua buah bejana, A dan B; bejana A berisi larutan merah, bejana B berisi larutan biru. Pertukarkan isi kedua bejana itu sehingga bejana A berisi larutan biru dan bejana B berisi larutan merah DESKRIPSI • • 1. Tuangkan larutan dari bejana A ke bejana X 2. Tuangkan larutan dari bejana B ke bejana A 3. Tuangkan larutan dari bejana C ke bejana B • – – Hasil akhir Bejana A berisi larutan dari bejana B semula Bejana B berisi larutan dari bejana A semula

Algoritma TUKAR_ISI_BEJANA • Misal urutan diubah menjadi 1. Tuangkan larutan dari bejana B ke

Algoritma TUKAR_ISI_BEJANA • Misal urutan diubah menjadi 1. Tuangkan larutan dari bejana B ke bejana A 2. Tuangkan larutan dari bejana A ke bejana X 3. Tuangkan larutan dari bejana C ke bejana B • Hasil akhir menjadi – Bejana A kosong – Bejana B berisi campuran larutan dari bejana A dan bejana semula B

Pemilihan • Adakalanya instruksi dikerjakan jika kondisi tertentu terpenuhi • Contoh – Jika data

Pemilihan • Adakalanya instruksi dikerjakan jika kondisi tertentu terpenuhi • Contoh – Jika data ke-j lebih kecil dari min, maka isikan data ke-j sebagai min yang baru • Dapat ditulis if kondisi then aksi

Pemilihan • Memilih salah satu tergantung dari nilai kondisinya if kondisi then aksi 1

Pemilihan • Memilih salah satu tergantung dari nilai kondisinya if kondisi then aksi 1 else aksi 2 Contoh if x>y then tulis x sebagai bilangan terbesar else tulis y sebagai bilangan terbesar

Teks Algoritma • Sub Pokok Bahasan – Pendahuluan – Judul Algoritma – Deklarasi –

Teks Algoritma • Sub Pokok Bahasan – Pendahuluan – Judul Algoritma – Deklarasi – Deskripsi – Pengisian Nilai

 • Setiap orang punya pola pikir yang berbeda, karena itu akan menghasilkan algoritma

• Setiap orang punya pola pikir yang berbeda, karena itu akan menghasilkan algoritma yang berbeda • Algoritma dikatakan benar apabila dapat memecahkan masalah • Perlu dipertimbangkan masalah efisiensi dalam penyusunan algoritma • Pemilihan rute jalan, misalnya : – Beberapa rute mungkin akan menghasilkan tujuan yang sama – Ada rute yang lebih efisien dibanding rute lainnya – Sebaiknya yang diambil adalah rute terpendek

 • PEmrograman : aktifitas yg dilakukan dengan membat intruksi untuk menyelesaikan permasalahan yg

• PEmrograman : aktifitas yg dilakukan dengan membat intruksi untuk menyelesaikan permasalahan yg dimenegeti oleh komputer • Program : coding, hasil pemrograman • Bahasa Pemrograman : Bahasa program yang digunakan untuk membuat urutan instruksi yg dimengerti oleh komputer. • Pemrograman (programer) : orang yg membuat program komputer.

Aspek Penting dari Algoritma 1. Finiteness • Algoritma harus berhenti after a finite number

Aspek Penting dari Algoritma 1. Finiteness • Algoritma harus berhenti after a finite number of steps 2. Definiteness • Setiap langkah harus didefinisikan secara tepat, tidak boleh membingungkan (ambiguous) 3. Input • Sebuah algoritma memiliki nol atau lebih input yang diberikan kepada algoritma sebelum dijalankan 4. Output • Sebuah algoritma memiliki satu atau lebih output, yang biasanya bergantung kepada input 5. Effectiveness • Setiap algoritma diharapkan miliki sifat efektif

beberapa langkah umum dalam pembuatan suatu program yaitu • Mendefinisikan masalah – mendefinisikan permasalahan.

beberapa langkah umum dalam pembuatan suatu program yaitu • Mendefinisikan masalah – mendefinisikan permasalahan. langkah ini harus dilakukan untuk menentukan masalah yang ada serta ditentukan pula input dan output program • Mencari solusinya – Bila untuk mendapatkan solusi harus melalui langkah yang terlalu rumit dapat dilakukan pembagian masalah dalam beberapa modul kecil agar mudah untuk dikerjakan. Lalu modul-modul kecil tersebut digabungkan menjadi satu untuk dapat menentukan solusi. • • • Menentukan algoritma Menulis program Menguji program Mendokumentasikan program Merawat program

Pendahuluan • Teks algoritma yang dimaksud di sini adalah teks pseudocode yang dianggap perlu

Pendahuluan • Teks algoritma yang dimaksud di sini adalah teks pseudocode yang dianggap perlu untuk menjembatani keragaman dan kompleksitas bahasa sehingga dapat dilakukan “abstraksi” • Teks ini lebih berorientasi kepada detail design dibandingkan coding (merupakan rancangan secara prosedural yang selanjutnya dengan mudah dapat ditranslasi menjadi salah satu program dalam bahasa tertentu) • Contoh bahasa pemrograman yang digunakan adalah Bahasa Pascal. Jadi dalam pembahasan berikutnya, translasi teks Algoritma adalah ke dalam teks program Bahasa Pascal.

Pendahuluan • Bagian-bagian (blok) dalam teks algoritma: – JUDUL (header) algoritma – DEKLARASI algoritma

Pendahuluan • Bagian-bagian (blok) dalam teks algoritma: – JUDUL (header) algoritma – DEKLARASI algoritma – DESKRIPSI algoritma Keterangan: – Pasangan tanda kurung kurawal (‘{‘ dan ‘}’) digunakan untuk memberikan komentar (untuk memperjelas maksud teks yang dituliskan).

Judul Algoritma • Terdiri dari nama dan penjelasan (spesifikasi) algoritma. • Nama yang digunakan

Judul Algoritma • Terdiri dari nama dan penjelasan (spesifikasi) algoritma. • Nama yang digunakan sebaiknya singkat (namun cukup informatif). • Biasanya di bawah nama diberi spesifikasi algoritma. Algoritma yang akan ditulis nantinya harus sesuai dengan spesifikasi yang didefinisikan.

Deklarasi • Merupakan tempat untuk mendefinisikan berbagai macam nama, yaitu: – – – nama

Deklarasi • Merupakan tempat untuk mendefinisikan berbagai macam nama, yaitu: – – – nama tipe nama konstanta nama peubah (nama variabel) nama fungsi, sekaligus spesifikasinya nama prosedur, sekaligus spesifikasinya • Semua nama tersebut baru dapat digunakan jika telah didefinisikan di dalam DEKLARASI. Penulisan sekumpulan nama dalam DEKLARASI sebaiknya dikelompokkan menurut jenis nama tersebut. • Ketentuan-ketentuan dalam pendefinisian nama-nama: – nama peubah belum terdefinisi harganya ketika didefinisikan. – Pendefinisian konstanta sekaligus juga memberikan harganya. – pendefinisian nama fungsi sekaligus juga dengan domain dan range serta spesifikasinya. – Pendefinisian nama prosedur sekaligus juga dengan pendefinisian parameter (jika ada) dan spesifikasi prosedur (kondisi awal, kondisi akhir dan proses yang dilakukan).

Deklarasi DEKLARASI { Nama tipe, hanya untuk tipe yang bukan tipe dasar } type

Deklarasi DEKLARASI { Nama tipe, hanya untuk tipe yang bukan tipe dasar } type Titik : <X: real, Y: real> { koordinat pada sumbu kartesian } { Nama konstanta, harus menyebutkan nilai } const phi = 3. 14 { Nama peubah (variabel), menyebutkan tipe } P : Titik { Titik dalam derajat kartesian } jmlh : integer { Jumlah suatu elemen } ketemu : boolean { Keadaan hasil pencarian } { Spesifikasi Fungsi, menyebutkan nama fungsi, domain dan range } function Konversi_Real_Ke_Integer(input i: real)→integer { Mengkonversi harga i yang bertipe real menjadi harga ekivalen yang bertipe integer } { Spesifikasi Prosedur, menyebutkan nama, parameter, kondisi awal, kondisi akhir dan proses } procedure Tukar(input/output A: integer, input/output B: integer) { Kondisi awal : A dan B terdefinisi, A=a dan B=b } { Kondisi akhir : A=b dan B=a } { Proses : Mempertukarkan nilai A dan B }

Deskripsi • Merupakan bagian inti dari algoritma. • Komponen di dalam teks algoritma dapat

Deskripsi • Merupakan bagian inti dari algoritma. • Komponen di dalam teks algoritma dapat berupa: – – Instruksi dasar seperti input/output, assignment Urutan (sequence) Pemilihan Pengulangan

Pengisian nilai ke dalam Nama Peubah • Pengisian Nilai secara langsung • Pembacaan Nilai

Pengisian nilai ke dalam Nama Peubah • Pengisian Nilai secara langsung • Pembacaan Nilai dari Piranti Masukan

Pengisian Nilai secara langsung • Pengisian nilai secara langsung (assignment) adalah memasukkan nilai ke

Pengisian Nilai secara langsung • Pengisian nilai secara langsung (assignment) adalah memasukkan nilai ke dalam nama peubah langsung didalam teks algoritma • Notasi pengisian secara langsung : ← • Nilai yang diberikan kepada peubah dapat berupa tetapan, nilai peubah lain atau nilai sebuah ekspresi. Nilai tersebut harus bertipe sama dengan tipe peubah ← tetapan {nilai tetapan diisikan ke dalam peubah} peubah 1 ← peubah 2 {nilai peubah 2 disalin kedalam peubah 1} peubah ← ekspresi {hasil perhitungan diisikan ke dalam peubah}

Pengisian Nilai secara langsung CONTOH k ← 5 jarak ← 0. 03 ketemu ←false

Pengisian Nilai secara langsung CONTOH k ← 5 jarak ← 0. 03 ketemu ←false Nama. Kota ←’Solo’ {Mengisi J dengan jam 6: 12: 39} J. hh ← 6 J. mm ← 12 J. ss ← 39 jarak ← 78. 90 Nama. Kota ←’MEDAN’

Pengisian Nilai secara langsung • Berapakah nilai M dan P setelah runtunan penugasan dibawah

Pengisian Nilai secara langsung • Berapakah nilai M dan P setelah runtunan penugasan dibawah ini selesai dilaksanakan oleh? Andaikan M dan P bertipe integer M P ← ← 16 M*2 P + 100 P + M

Pembacaan Nilai dari Piranti Masukan • Nilai untuk peubah dapat diisi dari piranti masukan

Pembacaan Nilai dari Piranti Masukan • Nilai untuk peubah dapat diisi dari piranti masukan • Dinamakan operasi pembacaan data • Dalam algoritma, dilakukan dengan notasi read Notasi algoritmik untuk pembacaan nilai dari piranti masukan read (nama 1, nama 2, . . . nama. N)

Pembacaan Nilai dari Piranti Masukan CONTOH : read(M) read(a 1, a 2, a 3)

Pembacaan Nilai dari Piranti Masukan CONTOH : read(M) read(a 1, a 2, a 3) read(nama_kota) read(nama_mhs, NRP, nilai) read(P. x, P. y)

Ekspresi Aritmatik • Misal deklarasi sebagai berikut : a, b, c : real d

Ekspresi Aritmatik • Misal deklarasi sebagai berikut : a, b, c : real d : integer i, j , k : integer Misal ekspresi a * b – hasil ekspresi adalah real – a dan b adalah operand, * adalah operator – Bila disimpan ke peubah, maka tipe peubah harus sama dengan tipe hasil – c ← a * b (benar) – d ← a * b (salah)

Ekspresi • Terdiri dari operand dan operator • Operand adalah nilai yang dioperasikan dengan

Ekspresi • Terdiri dari operand dan operator • Operand adalah nilai yang dioperasikan dengan operator tertentu • Operand dapat berupa tetapan, nama peubah, nama tetapan, atau hasil dari suatu fungsi • Ada 3 macam ekspresi : ekspresi aritmatik, ekspresi relasional dan ekspresi string

Ekspresi Relasional • Adalah ekspresi dengan operator <, ≤, >, ≥, = dan ≠,

Ekspresi Relasional • Adalah ekspresi dengan operator <, ≤, >, ≥, = dan ≠, not, and, or dan xor • Misal didefinisikan deklarasi berikut DEKLARASI ketemu, besar : boolean x, y : integer misal ketemu bernilai false, ada bernilai true, x bernilai 8 dan y bernilai 12. Maka : not ada x < ada and true 5 or (x = y) (hasil : : false) true)

Ekspresi String • Ekspresi string adalah ekspresi dengan operator “+” (operator penyambungan /concatenation) DEKLARASI

Ekspresi String • Ekspresi string adalah ekspresi dengan operator “+” (operator penyambungan /concatenation) DEKLARASI kar : char s : string s ← s+kar

Menuliskan Nilai ke Piranti Keluaran • Nilai yang disimpan di memori dapat ditampilkan ke

Menuliskan Nilai ke Piranti Keluaran • Nilai yang disimpan di memori dapat ditampilkan ke piranti keluaran(misal layar monitor) • Instruksi penulisan dengan notasi write(nama 1, nama 2, …, nama. N) write(tetapan) write(nama, tetapan, ekspresi) write(ekspresi)

Bahan Bacaan • Rinaldi Munir, Algoritma dan Pemrograman dalam Bahasa Pascal dan C, Penerbit

Bahan Bacaan • Rinaldi Munir, Algoritma dan Pemrograman dalam Bahasa Pascal dan C, Penerbit Informatika Bandung • Antony Pranata, Algoritma dan Pemrograman

Latihan 2 Buatlah suatu algoritma untuk proses aktivitas yang anda kerjakan dari pagi hingga

Latihan 2 Buatlah suatu algoritma untuk proses aktivitas yang anda kerjakan dari pagi hingga malam hari

Contoh Algoritma 2 • Algoritma untuk menentukan apakah suatu bilangan merupakan bilangan ganjil atau

Contoh Algoritma 2 • Algoritma untuk menentukan apakah suatu bilangan merupakan bilangan ganjil atau bilangan genap. • Algoritmanya : a. Masukkan bilangan yang akan ditentukan b. Bagi bilangan dengan bilangan 2 c. Hitung sisa hasil bagi pada langkah b. d. Bila sisa hasil bagi sama dengan 0 maka bilangan itu adalah bilangan genap tetapi bila sisa hasil bagi sama dengan 1 maka bilangan itu adalah

Latihan 3 • Buat algoritma mengurutkan 3 bilangan acak!

Latihan 3 • Buat algoritma mengurutkan 3 bilangan acak!

Simbol Algoritma (Flowchart): Proses/kegiatan pemrosesan input IO Terminator/Start or End Konektor/Penghubung Next Page Garis

Simbol Algoritma (Flowchart): Proses/kegiatan pemrosesan input IO Terminator/Start or End Konektor/Penghubung Next Page Garis Alir Pencabangan/Pemeriksaan kondisi

Flowchart dan Pseudocode

Flowchart dan Pseudocode

Struktur Dasar Algoritma • Runtunan (Sequence) • Pemilihan (Selection) • Pengulangan(Repetition) -Alpro 2009 -

Struktur Dasar Algoritma • Runtunan (Sequence) • Pemilihan (Selection) • Pengulangan(Repetition) -Alpro 2009 - 131

Flowchart Terminator Input/Output Proses Condisional / Decision -Alpro 2009 - 132

Flowchart Terminator Input/Output Proses Condisional / Decision -Alpro 2009 - 132

Flowchart (cont’) Preparation Arrow Connector (on page) Connector (off page) Display -Alpro 2009 -

Flowchart (cont’) Preparation Arrow Connector (on page) Connector (off page) Display -Alpro 2009 - 133

Flowchart (cont’) • Keuntungan : lebih mudah dilihat dan dipahami • Kelemahan : jika

Flowchart (cont’) • Keuntungan : lebih mudah dilihat dan dipahami • Kelemahan : jika digunakan untuk menggambarkan proses atau algoritma untuk skala kasus yang besar, maka akan dibutuhkan banyak kertas -Alpro 2009 - 134

Kasus • Pemimpin sebuah perusahaan otomotif perlu menentukan besarnya bonus yang akan diberikan kepada

Kasus • Pemimpin sebuah perusahaan otomotif perlu menentukan besarnya bonus yang akan diberikan kepada para pegawainya yang bekerja sebagai account executive. Jika terdapat pegawai yang dalam bulan ini telah menjual mobil lebih dari dua unit, maka akan mendapatkan bonus sebesar Rp 1. 000, - kemudian pegawai yang bisa menjual mobil tepat dua buah maka, akan mendapatkan bonus Rp 500. 000, - namun jika pegawai yang dalam bulan ini penjualannya kurang dari dua unit maka, pegawai tersebut tidak mendapatkan bonus. -Alpro 2009 - 135

Pseudocode • Diarahkan untuk menyerupai aturan penulisan bahasa pemrograman tertentu -Alpro 2009 - 136

Pseudocode • Diarahkan untuk menyerupai aturan penulisan bahasa pemrograman tertentu -Alpro 2009 - 136

Pseudocode Judul Kamus Algoritma -Alpro 2009 - 137

Pseudocode Judul Kamus Algoritma -Alpro 2009 - 137

Judul • Tidak diawali dengan angka atau karakter lain selain alphabet • Tidak terdapat

Judul • Tidak diawali dengan angka atau karakter lain selain alphabet • Tidak terdapat karakter spasi atau karakter selain alphabet kecuali karakter underscore ‘_’ (sebagai pengganti karakter spasi) • Mana yang benar ? – Algoritma berhitung; – Algoritma konversi suhu; – Algoritma hitungan_pajak; – Algoritma 2 bilangan; – Algoritma *kecil; -Alpro 138

Kamus • digunakan sebagai tempat untuk mencantumkan variabel, konstanta, dan record • Hal-hal yang

Kamus • digunakan sebagai tempat untuk mencantumkan variabel, konstanta, dan record • Hal-hal yang dideklarasikan pada bagian ini digunakan sebagai ‘reservasi’ alokasi memory untuk penyimpanan data dan akan digunakan selama program bekerja -Alpro 2009 - 139

Algoritma • digunakan untuk meletakkan semua algoritma atau kode-kode program • Diawali dengan ‘BEGIN’

Algoritma • digunakan untuk meletakkan semua algoritma atau kode-kode program • Diawali dengan ‘BEGIN’ dan diakhiri dengan ‘END’ -Alpro 2009 - 140

Pemilihan (Selection) If kondisi then aksi end. If If kondisi then aksi 1 else

Pemilihan (Selection) If kondisi then aksi end. If If kondisi then aksi 1 else aksi 2 end. If -Alpro 2009 - 141

Contoh (Pemilihan) : If A>B then Max A end. If If B>A then Max

Contoh (Pemilihan) : If A>B then Max A end. If If B>A then Max B end. If If A>B then Max A Else Max B end. If -Alpro 2009 - 142

Pengulangan (Repetition) for var awal to akhir do aksi Endfor repeat aksi until kondisi_stop

Pengulangan (Repetition) for var awal to akhir do aksi Endfor repeat aksi until kondisi_stop while kondisi_ulang do aksi endwhile -Alpro 2009 - 143

Contoh (Pengulangan) : For i 1 to 5 do output(“Algoritma dan Pemrograman”) End. For

Contoh (Pengulangan) : For i 1 to 5 do output(“Algoritma dan Pemrograman”) End. For i 1 Repeat output(“Algoritma dan Pemrograman”) i i+1 Until (i>5) i 1 While (i<=5) do output(“Algoritma dan Pemrograman”) i i+1 endwhile -Alpro 2009 - 144

Input dan Output Algoritma Masukkan_data Kamus data x : integer BEGIN input(x) /*x adalah

Input dan Output Algoritma Masukkan_data Kamus data x : integer BEGIN input(x) /*x adalah variabel penampung nilai*/ END. Algoritma Masukkan_nilai Kamus data x : integer BEGIN x 5 /*panah ke kiri arah masuknya nilai*/ END. -Alpro 2009 - 145

Input dan Output Algoritma Tampilan Kamus data x : integer BEGIN output(x) /*x adalah

Input dan Output Algoritma Tampilan Kamus data x : integer BEGIN output(x) /*x adalah variabel yang berisi nilai*/ END. -Alpro 2009 - 146

TAHAP PENGEMBANGAN ALGORITMA MASALAH / IDEA Algoritma PEMECAHAN Source Code SOLUSI / HASIL Executable

TAHAP PENGEMBANGAN ALGORITMA MASALAH / IDEA Algoritma PEMECAHAN Source Code SOLUSI / HASIL Executable Code

Tahap Pengembangan Pogram Mulai Batasan Masalah Pengembangan Model Rancangan Algoritma Pemrograman Perbaikan Algoritma Pengujian

Tahap Pengembangan Pogram Mulai Batasan Masalah Pengembangan Model Rancangan Algoritma Pemrograman Perbaikan Algoritma Pengujian Pembetulan Analisa Dokumentasi Selesai Algoritma Pemrograman IC - Bab 1 148

TAHAP PENGEMBANGAN ALGORITMA DEFINISI MASALAH MEMBUAT MODEL RANCANG ALGORITMA TULIS PROGRAM COMPILE Y Sintak

TAHAP PENGEMBANGAN ALGORITMA DEFINISI MASALAH MEMBUAT MODEL RANCANG ALGORITMA TULIS PROGRAM COMPILE Y Sintak Err T Executable code: => Run Y Output Err T DOKUMEN TASI 149

TAHAP PENGEMBANGAN ALGORITMA DEFINISI MASALAH MEMBUAT MODEL RANCANG ALGORITMA TULIS PROGRAM COMPILE Masalah: Tentukan

TAHAP PENGEMBANGAN ALGORITMA DEFINISI MASALAH MEMBUAT MODEL RANCANG ALGORITMA TULIS PROGRAM COMPILE Masalah: Tentukan akar-akar dari suatu persamaan kwadrat. Definisi: Persamaan kwadrat : ax^2 + bx + c = 0 Data yg diperlukan : Nilai dari a, b dan c : tipe real Sintak Err Executable code: => Run Output Err DOKUMEN TASI 150

TAHAP PENGEMBANGAN ALGORITMA DEFINISI MASALAH MEMBUAT MODEL RANCANG ALGORITMA TULIS PROGRAM COMPILE Model Matematika

TAHAP PENGEMBANGAN ALGORITMA DEFINISI MASALAH MEMBUAT MODEL RANCANG ALGORITMA TULIS PROGRAM COMPILE Model Matematika : Sintak Err Rumus ABC x 1 = (-b + sqrt(b^2 - 4 ac))/2 a Executable code: => Run x 2 = (-b – sqrt(b^2 - 4 ac))/2 a Output Err DOKUMEN TASI 151

TAHAP PENGEMBANGAN ALGORITMA DEFINISI MASALAH MEMBUAT MODEL RANCANG ALGORITMA TULIS PROGRAM COMPILE Start Masukkan

TAHAP PENGEMBANGAN ALGORITMA DEFINISI MASALAH MEMBUAT MODEL RANCANG ALGORITMA TULIS PROGRAM COMPILE Start Masukkan a, b, c Sintak Err d = b^2 – 4 ac d<0 T x 1=(-b+sqrt(d))/2 a x 2 =(-b-sqrt(d))/2 a Executable code: => Run Y Cetak Pesan “Akar imajiner” Output Err Cetak : x 1, x 2 Stop DOKUMEN TASI 152

TAHAP PENGEMBANGAN ALGORITMA DEFINISI MASALAH MEMBUAT MODEL RANCANG ALGORITMA TULIS PROGRAM COMPILE Sintak Err

TAHAP PENGEMBANGAN ALGORITMA DEFINISI MASALAH MEMBUAT MODEL RANCANG ALGORITMA TULIS PROGRAM COMPILE Sintak Err Executable code: => Run Output Err DOKUMEN TASI 153

TAHAP PENGEMBANGAN ALGORITMA DEFINISI MASALAH MEMBUAT MODEL RANCANG ALGORITMA TULIS PROGRAM COMPILE Sintak Err

TAHAP PENGEMBANGAN ALGORITMA DEFINISI MASALAH MEMBUAT MODEL RANCANG ALGORITMA TULIS PROGRAM COMPILE Sintak Err Executable code: => Run Output Err DOKUMEN TASI 154

TAHAP PENGEMBANGAN ALGORITMA DEFINISI MASALAH MEMBUAT MODEL RANCANG ALGORITMA TULIS PROGRAM COMPILE Sintak Err

TAHAP PENGEMBANGAN ALGORITMA DEFINISI MASALAH MEMBUAT MODEL RANCANG ALGORITMA TULIS PROGRAM COMPILE Sintak Err Executable code: => Run Output Err DOKUMEN TASI 155

TAHAP PENGEMBANGAN ALGORITMA DEFINISI MASALAH MEMBUAT MODEL RANCANG ALGORITMA TULIS PROGRAM COMPILE Sintak Err

TAHAP PENGEMBANGAN ALGORITMA DEFINISI MASALAH MEMBUAT MODEL RANCANG ALGORITMA TULIS PROGRAM COMPILE Sintak Err Executable code: => Run Output Err DOKUMEN TASI 156

TAHAP PENGEMBANGAN ALGORITMA DEFINISI MASALAH MEMBUAT MODEL RANCANG ALGORITMA TULIS PROGRAM COMPILE Sintak Err

TAHAP PENGEMBANGAN ALGORITMA DEFINISI MASALAH MEMBUAT MODEL RANCANG ALGORITMA TULIS PROGRAM COMPILE Sintak Err Executable code: => Run Output Err DOKUMEN TASI 157

TAHAP PENGEMBANGAN ALGORITMA DEFINISI MASALAH MEMBUAT MODEL RANCANG ALGORITMA TULIS PROGRAM COMPILE Sintak Err

TAHAP PENGEMBANGAN ALGORITMA DEFINISI MASALAH MEMBUAT MODEL RANCANG ALGORITMA TULIS PROGRAM COMPILE Sintak Err Executable code: => Run Output Err DOKUMEN TASI 158

PENYAJIAN ALGORITMA � Algoritma bisa dibuat dengan: – Teknik tulisan seperti : Structure english

PENYAJIAN ALGORITMA � Algoritma bisa dibuat dengan: – Teknik tulisan seperti : Structure english dan Pseudocode. – Teknik visual seperti : Flow chart. 159

PSEUDOCODE • Outline dari sebuah program komputer • Ditulis dalam bahasa Inggris atau Indonesia

PSEUDOCODE • Outline dari sebuah program komputer • Ditulis dalam bahasa Inggris atau Indonesia sederhana • Kata kunci (keyword) digunakan untuk menjelaskan struktur kendali (misalnya: “jika”, “ulangi”, “sampai”, ”if”, ”repeat”, “until”) 160

PSEUDOCODE Tujuh operasi dasar komputer: 1. Membaca data (Input) 2. Menampilkan data (Output) 3.

PSEUDOCODE Tujuh operasi dasar komputer: 1. Membaca data (Input) 2. Menampilkan data (Output) 3. Melakukan perhitungan aritmetika (Compute) 4. Memberikan nilai ke suatu identifier (Store) 5. Membandingkan dan Memilih (Compare) 6. Melakukan pengulangan (Loop) 7. Procedure dan atau Function 161

1. MEMBACA DATA • Sewaktu komputer menerima informasi atau input, maka statement yang biasa

1. MEMBACA DATA • Sewaktu komputer menerima informasi atau input, maka statement yang biasa digunakan adalah “Read”, “Get”, “Baca” , ”Input” atau “Key. In” • Contoh: Read Bilangan Get kode_pajak Baca nama_mahasiswa 162

2. MENAMPILKAN DATA • Sewaktu komputer menampilkan informasi ataupun output, maka statement yang biasa

2. MENAMPILKAN DATA • Sewaktu komputer menampilkan informasi ataupun output, maka statement yang biasa digunakan adalah “Print”, “Write”, “Put”, “Output”, “Display” ataupun “Cetak” • Contoh: Print “Universitas Bina Nusantara” Cetak “Metode Perancangan Program” Output Total 163

3. PERHITUNGAN ARITMETIKA � Untuk melakukan operasi aritmetika digunakan pseudocode berikut: + untuk penjumlahan

3. PERHITUNGAN ARITMETIKA � Untuk melakukan operasi aritmetika digunakan pseudocode berikut: + untuk penjumlahan (add) - Untuk pengurangan (subtract) * Untuk perkalian (multiply) / Untuk pembagian (divide) () Untuk kurung � Statement “Compute”, “Calculate” ataupun “Hitung” juga dapat digunakan. � Contoh: Add number to total Total = Total + number 164

4. MEMBERIKAN NILAI KE IDENTIFIER � Ada tiga cara untuk memberikan nilai ke dalam

4. MEMBERIKAN NILAI KE IDENTIFIER � Ada tiga cara untuk memberikan nilai ke dalam variabel : – Memberikan nilai awal, menggunakan statement “Initialize” atau “Set” – Memberikan nilai sebagai hasil dari suatu proses, maka tanda “=“ digunakan – Untuk menyimpan suatu nilai maka statement “Save” atau “Store” digunakan � Contoh: Set Counter to 0 Total = Harga * Jumlah 165

5. MEMBANDINGKAN DAN MEMILIH • • • Salah satu operasi terpenting yang dapat dilakukan

5. MEMBANDINGKAN DAN MEMILIH • • • Salah satu operasi terpenting yang dapat dilakukan komputer adalah membandingkan dan memilih salah satu alternatif solusi. Keyword yang digunakan : “IF”, “THEN” dan “ELSE” Contoh IF Pilih=‘ 1’ THEN Discount = 0. 1 * harga ELSE Discount = 0. 2 * harga ENDIF 166

6. PENGULANGAN • Jika ada beberapa perintah yang harus diulang, maka dapat digunakan keyword

6. PENGULANGAN • Jika ada beberapa perintah yang harus diulang, maka dapat digunakan keyword “DOWHILE” dan “ENDDO”. • Contoh DOWHILE bil < 10 cetak bil = bil +1 ENDDO 167

CONTOH ALGORITMA DGN PSEUDOCODE Algoritma Menggunakan Kalkulator Mulai Nyalakan kalkulator Kosongkan Kalkulator Ulangi Input

CONTOH ALGORITMA DGN PSEUDOCODE Algoritma Menggunakan Kalkulator Mulai Nyalakan kalkulator Kosongkan Kalkulator Ulangi Input harga Tekan tombol Plus (+) Sampai semua harga diinput Tampilkan total harga Matikan kalkulator Selesai 168

CONTOH ALGORITMA DGN PSEUDOCODE Algoritma Berangkat Kuliah Mulai Bangun dari tempat tidur Mandi Pagi

CONTOH ALGORITMA DGN PSEUDOCODE Algoritma Berangkat Kuliah Mulai Bangun dari tempat tidur Mandi Pagi Sarapan Pagi Pergi Ke Kampus Cari Ruang Kuliah Masuk kelas untuk Kuliah Selesai 169

CONTOH ALGORITMA DGN PSEUDOCODE Algoritma Sarapan Pagi Mulai Ambil piring Masukkan nasi dan lauk

CONTOH ALGORITMA DGN PSEUDOCODE Algoritma Sarapan Pagi Mulai Ambil piring Masukkan nasi dan lauk dalam piring Ambil sendok dan garpu Ulangi Angkat sendok dan garpu Ambil nasi dan lauk Suapkan ke dalam mulut Taruh sendok dan garpu Kunyah Sampai (nasi dan lauk habis) ATAU kekenyangan Bereskan piring, sendok dan garpu Selesai 170

FLOW CHART Terminator Arah Proses Konektor Input/Output Konektor antar halaman Dokumen Pemilihan Pengulangan 171

FLOW CHART Terminator Arah Proses Konektor Input/Output Konektor antar halaman Dokumen Pemilihan Pengulangan 171

KRITERIA ALGORITMA YANG BAIK • Mempunyai logika yang tepat untuk memecahkan masalah. • Menghasilkan

KRITERIA ALGORITMA YANG BAIK • Mempunyai logika yang tepat untuk memecahkan masalah. • Menghasilkan output yang benar dalam waktu yang singkat. • Ditulis dengan bahasa baku terstruktur sehingga tidak menimbulkan arti ganda. • Ditulis dengan format baku sehingga mudah diimplementasikan kedalam bahasa pemrograman. • Semua operasi didefinisikan dengan jelas dan berakhir sesudah sejumlah langkah. 172

PEMROGRAMAN TERSTRUKTUR • Pemrograman terstruktur merupakan pola penyusunan program komputer hanya dengan menggunakan tiga

PEMROGRAMAN TERSTRUKTUR • Pemrograman terstruktur merupakan pola penyusunan program komputer hanya dengan menggunakan tiga struktur kontrol yaitu: 1. Sequence 2. Selection 3. Repetition 173

1. SEQUENCE • Sequence merupakan urutan pengerjaan dari perintah/statement pertama sampai dengan perintah/statement terakhir.

1. SEQUENCE • Sequence merupakan urutan pengerjaan dari perintah/statement pertama sampai dengan perintah/statement terakhir. • Umumnya bahasa pemrograman mempunyai sequence (urutan pengerjaan dari perintah / statement ) mulai dari atas ke bawah dan dari kiri ke kanan. • Top-down 174

Contoh Sequence � Contoh: Cetak “Jumlah Mahasiswa” Set Jumlah to 49 Cetak “Tambahan mahasiswa

Contoh Sequence � Contoh: Cetak “Jumlah Mahasiswa” Set Jumlah to 49 Cetak “Tambahan mahasiswa baru” Baca mhs_baru Jumlah = Jumlah + mhs_baru Cetak “Jumlah Mahasiswa” Cetak jumlah � Penjelasan – Urutan pengerjaan adalah mulai dari urutan pertama sampai dengan urutan terakhir, jika mhs_baru diisi dengan 2, maka jumlah yang tercetak adalah 51 175

2. SELECTION • Struktur Kontrol Selection adalah penggambaran sebuah kondisi dan pilihan diantara dua

2. SELECTION • Struktur Kontrol Selection adalah penggambaran sebuah kondisi dan pilihan diantara dua aksi. • Statement Pertama akan dikerjakan jika kondisi bernilai benar, jika tidak maka akan mengerjakan perintah setelah keyword “else” (jika ada). 176

Belajar Memprogram • belajar bahasa pemrograman • belajar tentang strategi pemecahan masalah, metodologi dan

Belajar Memprogram • belajar bahasa pemrograman • belajar tentang strategi pemecahan masalah, metodologi dan sistematika pemecahan masalah kemudian menuliskannya dalam notasi yang disepakati bersama • bersifat pemahaman persoalan, analisis dan sintesis • titik berat : designer program -Alpro 2009 - 177

Belajar Bahasa Pemrograman • belajar memakai suatu bahasa pemrograman, aturan sintaks, tatacara untuk memanfaatkan

Belajar Bahasa Pemrograman • belajar memakai suatu bahasa pemrograman, aturan sintaks, tatacara untuk memanfaatkan instruksi yang spesifik untuk setiap bahasa • titik berat : coder -Alpro 2009 - 178

Syarat Program yang Baik 1. 2. 3. 4. 5. benar berlaku umum untuk beragam

Syarat Program yang Baik 1. 2. 3. 4. 5. benar berlaku umum untuk beragam data (valid) mudah dibaca mudah dimodifikasi dan dikembangkan efisiensi dalam penggunaan ruang dan waktu (kompleksitas rendah) -Alpro 2009 - 179

Contoh Selection � Contoh : IF Hari=1 THEN Cetak “Senin” ELSE Cetak “Bukan hari

Contoh Selection � Contoh : IF Hari=1 THEN Cetak “Senin” ELSE Cetak “Bukan hari Senin” � Penjelasan – Tulisan “Senin” akan ditampilkan jika Hari bernilai 1, jika tidak maka tulisan “Bukan hari Senin” yang akan ditampilkan 180

3. REPETITION • Beberapa statement / perintah dapat diulang dengan menggunakan struktur kontrol repetition.

3. REPETITION • Beberapa statement / perintah dapat diulang dengan menggunakan struktur kontrol repetition. • Statement / perintah akan tetap diulang selama kondisi perulangan memenuhi (jika menggunakan DOWHILE – ENDDO) 181

Contoh Repetition � Contoh: Bintang = 0 DOWHILE bintang < 5 Cetak bintang =

Contoh Repetition � Contoh: Bintang = 0 DOWHILE bintang < 5 Cetak bintang = bintang + 1 ENDDO � Penjelasan: – Pertama kali bintang akan diisi dengan 0, setelah itu isi dari bintang akan dicetak sebanyak lima kali, sehingga tampilannya akan sebagai berikut: 01234 182

LATIHAN 1. Buatlah algoritma menggunakan pseudocode untuk menghitung luas persegi panjang 2. Buatlah algoritma

LATIHAN 1. Buatlah algoritma menggunakan pseudocode untuk menghitung luas persegi panjang 2. Buatlah algoritma menggunakan pseudocode untuk mengubah jam dan menit yang diinput ke dalam satuan detik. 3. Buatlah algoritma menggunakan pseudocode untuk menentukan apakah bilangan yang diinput adalah bilangan ganjil atau bilangan genap. 183

LATIHAN 4. Buatlah algoritma menggunakan pseudocode untuk menghitung luas lingkaran. 5. Buatlah algoritma menggunakan

LATIHAN 4. Buatlah algoritma menggunakan pseudocode untuk menghitung luas lingkaran. 5. Buatlah algoritma menggunakan pseudocode untuk menginput 3 buah bilangan, kemudian tentukan bilangan terbesar, terkecil dan rata-ratanya. 184

SEKIAN TERIMA KASIH

SEKIAN TERIMA KASIH

Belajar Memprogram • belajar bahasa pemrograman • belajar tentang strategi pemecahan masalah, metodologi dan

Belajar Memprogram • belajar bahasa pemrograman • belajar tentang strategi pemecahan masalah, metodologi dan sistematika pemecahan masalah kemudian menuliskannya dalam notasi yang disepakati bersama • bersifat pemahaman persoalan, analisis dan sintesis • titik berat : designer program -Alpro 2009 - 186

Belajar Bahasa Pemrograman • belajar memakai suatu bahasa pemrograman, aturan sintaks, tatacara untuk memanfaatkan

Belajar Bahasa Pemrograman • belajar memakai suatu bahasa pemrograman, aturan sintaks, tatacara untuk memanfaatkan instruksi yang spesifik untuk setiap bahasa • titik berat : coder -Alpro 2009 - 187

Syarat Program yang Baik 1. 2. 3. 4. 5. benar berlaku umum untuk beragam

Syarat Program yang Baik 1. 2. 3. 4. 5. benar berlaku umum untuk beragam data (valid) mudah dibaca mudah dimodifikasi dan dikembangkan efisiensi dalam penggunaan ruang dan waktu (kompleksitas rendah) -Alpro 2009 - 188