SILABUS MATAKULIAH LOGIKA ALGORITMA Sumber Referensi 1 Zakaria

SILABUS MATAKULIAH: LOGIKA ALGORITMA

Sumber Referensi: 1. Zakaria. Teddy Marcus & Agus Prijono, “Konsep dan Implementasi Struktur Data”, Informatika. Bandung, 2005 2. Kristanto, Andri. Algoritma & Pemprograman Dengan C++ Edisi 2. Graha Ilmu. Yogyakarta, 2009 3. Sjukani, Algoritma & Struktur Data dengan C, C++, dan Java, 2005, Mitra Wacana Media, Jakx Munir, Rinaldi, 2002, Logika dan Algoritma Buku I, Edisi keempat, Informatika, Bandung 4. Munir, Rinaldi, 2005, Logika dan Algoritma Buku II, Edisi ketiga, Informatika, Bandung

Lanjutan Sumber Referensi: 5. Yulikuspartono, S. Kom, 2003, Pengantar Logika dan Algoritma, Andi Offset, Yogyakarta 6. Kurniadi, Indarwoko. 2011. Logika dan Algoritma Dasar Menggunakan Bahasa C++. Mitra Wacana Media. , Jakarta 7. Insap Santosa, P. , Ir. , Struktur Data menggunakan Turbo Pascal 6. 0. Andi Offset. Yogyakarta. 2006)pert 10 8. B, indra Yatini, Erliansyah Nasution. Algoritma & Struktur Data Dengan C++. Graha Ilmu. Yogyakarta. 2005

KONTRAK PERKULIAHAN • Pertemuan 1 -6, materinya disampaikan oleh dosen dikelas • Pertemuan 7 diadakan Uji Kompetensi Individu • Pertemuan 8 diadakan UTS, materi diambil dari pertemuan 1 -6

LANJUTAN KONTRAK PERKULIAHAN • Pertemuan 9 -14 disampaikan dosen di kelas • Pertemuan 15 diadakan Uji Kompetensi Individu • Pertemuan 16 diadakan UAS dimana materi diambil dari pertemuan 9 -14 • Untuk Demontrasi Pertukaran pada pertemuan 2 mahasiswa membawa 2 Gelas/botol air yang berbeda warnanya (Air mineral dan Air Teh ) dan 1 gelas Kosong • Diharapkan sudah membentuk kelompok maximal 5 mahasiswa

Mata Kuliah Semester Jurusan SKS : Logika Algoritma : Satu : Manajemen Informatika : 4 sks CAPAIAN PEMBELAJARAN: Mampu membuat program/project dengan menggunakan bahasa pemrograman tertentu dan membuat flowchart dari program/project yang dibuat.

Lanjutan Minggu Kemampuan yang diharapkan Bahan Kajian Bentuk Pengajaran Kriteria Penilaian 1 Memahami dan menganalisa konsep dasar logika algoritma Kesepakatan perkuliahan, diskusi dan penjelasan tugas Ceramah dan tanya jawab Kemampuan mengungkapkan ide 2 Memahami konsep variabel dan peubah Mengenal Variabel data dan soal analisis algoritma Ceramah dan tanya jawab Kemampuan menyelesaikan masalah 3 Memahami jenis-jenis Konsep tipe data dan data, dan operasinya pada operasi string pemrograman C++ Ceramah dan tanya jawab Kemampuan mengungkapkan ide 4 Mampu membuat diagram flowchart Ceramah dan tanya jawab Kemampuan menyelesaikan masalah Diagram alur flowchart dan struktur branching

Lanjutan Minggu Kemampuan yang diharapkan Bahan Kajian Bentuk Pengajaran Kriteria Penilaian Struktur Ceramah dan Kemampuan mengungkapkan looping tanya jawab ide dengan flowchart dan statement program 5 Memahami instruksi perulangan yang disusun dalam suatu diagram alur 6 Memahami struktur Struktur pemanggilan ulang Rekursif (rekursif) Ceramah dan Kemampuan menyelesaikan tanya jawab masalah 7 Uji Kompetensi Individu Latihan Soal 8 Pertemuan 1 -6 Ujian Tengah Semester (UTS) Kemampuan menyelesaikan masalah

Lanjutan Minggu Kemampuan yang diharapkan 9 Bahan Kajian Bentuk Pengajaran Kriteria Penilaian Memahami tentang Struktur Array Ceramah dan Kemampuan mengungkapkan konsep matrix tanya jawab ide dalam algoritma Metode D and Ceramah dan Kemampuan menyelesaikan C, Sorting tanya jawab masalah 10 Memahami tehnik sorting yang ada pada suatu algoritma 11 Memahami tentang Searching tehnik pencarian data pada suatu algoritma Ceramah dan Kemampuan menyelesaikan tanya jawab masalah

Lanjutan Minggu Kemampuan yang Bahan Kajian diharapkan Bentuk Kriteria Pengajaran Penilaian 12 -13 Mampu menyelesaikan masalah dengan menggunakan metode Greedy Metode Greedy: Ceramah • Optimaol on tape dan tanya storage jawab • Knapsack Problem • Minimum Spanning Tree • Shortest Path Problem • Travelling Salesman Kemampuan mengungkapkan ide, Kemampuan menyelesaikan masalah 14 Greedy Lanjutan Coloring (Pewarnaan) Ceramah dan tanya jawab Kemampuan menyelesaikan masalah 15 Uji Kompetensi Individu Pertemuan 9 -14 Latihan Soal Kemampuan menyelesaikan masalah 16 Ujian Akhir Semester (UAS)

Sistem Penilaian Mata Kuliah Logika Algoritma 20 % 25% 30% Absensi Tugas & Quiz UTS UAS

PERTEMUAN 1 PENGERTIAN DASAR LOGIKA DAN ALGORITMA

PENGERTIAN DASAR LOGIKA Diperkenalkan pertama kali oleh Aristoteles (384 -322 SM) ALGORITMA Diperkenalkan Oleh Ahli Matematika : Abu Ja’far Muhammad Ibnu Musa Al Khawarizmi. Seorang ilmuan Persia yang menulis kitab al jabr w’al muqabala (rules of restoration and reduction) sekitar tahun 825 M

LOGIKA DAN ALGORITMA Definisi Logika 1. penalaran atau bentuk pemikiran. 2. ilmu yang memberikan prinsip-prinsip yang harus diikuti agar dapat berfikir valid menurut aturan yang berlaku. Definisi Algoritma 1. Langkah - langkah yang dilakukan agar solusi masalah dapat diperoleh. 2. Suatu prosedur yang merupakan urutan langkah yg berintegrasi. 3. Suatu metode khusus yang digunakan untuk menyelesaikan suatu masalah yang nyata. (Webster Dictionary)

TAHAP PENYELESAIAN MASALAH Masalah Analisis Model Algoritma Analisis Program Eksekusi Data Hasil

Kriteria Pemilihan Algoritma 1. 2. 3. 4. 5. Ada Output, Efektifitas dan Efesiensi, Jumlah Langkahnya Berhingga, Berakhir, ( SEMI ALGORITMA ) Terstruktur, v Suatu Algoritma yg terbaik (The Best): “Suatu algoritma harus menghasilkan output yg tepat guna (efektif) dlm waktu yg relatif singkat & penggunaan memori yg relatif sedikit (efesien) dgn langkah yg berhingga & prosedurnya berakhir baik dlm keadaan dip’oleh suatu solusi ataupun tdk ada solusinya “.

Contoh Algoritma Sebuah prosedur untuk masalah menentukan akar kuadrat dari suatu bilangan Bulat Positif yg di Input: Baca bilangan Bulat Positif yg diinput, sebut saja sebagai A 1. Dinyatakan Nilai B adalah 0 2. Hitung Nilai C yg berisikan Nilai B dikalikan Nilai B 3. Jika Nilai C sama dengan Nilai A, maka Nilai B adalah Akar dari Nilai A, lalu stop. 4. Jika tidak, maka Nilai B akan bertambah 1 5. Kembali ke langkah pada No. 3

TAHAPAN ANALISA ALGORITMA 1. Bagaimana merencanakan suatu algoritma. 2. Bagaimana menyatakan suatu algoritma a. Dengan bahasa semu (pseudocode). Merupakan bentuk informal untuk mendeskripsikan algoritma yang mengikuti struktur bahasa pemrograman tertentu. Tujuan pseudocode adalah: Lebih mudah dibaca oleh manusia, lebih mudah dipahami dan lebih mudah dalam menuangkan ide/hasil pemikiran Contoh 1: Untuk menghitung Luas Segi tiga : a. Masukan Nilai Alas b. Masukan Nilai Tinggi c. Hitung Luas =( Alas * Tinggi ) / 2 d. Cetak Luas

Lanjutan Bahasa Semu (Pseudocode) Contoh 2 : Sebuah prosedur ketika akan mengirimkan surat kepada teman: 1. Tulis surat pada secarik kertas surat 2. Ambil sampul surat atau amplop 3. Masukkan surat ke dalam amplop 4. Tutup amplop surat dengan lem perekat 5. Tulis alamat surat yg dituju, jika tdk ingat, lebih dahulu ambil buku alamat & cari alamat yg dituju, lalu tulis alamat tsb pd amplop surat. 6. Tempelkan perangko pada amplop surat 7. Bawa surat ke kantor pos utk diserahkan pd pegawai pos atau menuju ke bis surat untuk memasukkan surat ke dlm kotak/bis surat.

Bahasa Pemrograman Program adalah kumpulan intruksi-instruksi yang diberikan kepada komputer untuk melaksanakan suatu tugas atau pekerjaan. Dalam membuat program dibutuhkan bahasa pemrograman. Bahasa pemrograman adalah bahasa komputer yang digunakan dalam menulis program Contoh bahasa pemrograman adalah: Bahasa rakitan (assembly), Fortran, Cobol, Pascal, C, C++, Basic, Prolog, PHP, Java.

Lanjutan bahasa pemrograman Berdasarkan aplikasi kegunaanya, bahasa pemrograman dapat digolongkan menjadi 2 kelompok yaitu: 1. Bahasa Pemrograman bertujuan khusus (specific purpose programming language), yang termasuk kelompok ini adalah cobol (untuk terapan bisnis dan administrasi), Fortran (aplikasi komputasi ilmiah), bahasa assembly (aplikasi pemrograman mesin), Prolog (aplikasi kecerdasan buatan). 2. Bahasa Pemrograman bertujuan umum (general purpose programming language), yang dapat digunakan untuk berbagai aplikasi, yang termasuk kelompok ini adalah bahasa Pascal, Basic, C dan C++

Lanjutan bahasa pemrograman Berdasarkan kedekatan bahasa pemrograman dikelompokan menjadi 2 macam yaitu: 1. Bahasa tingkat rendah Bahasa yang dirancang agar setiap instruksinya langsung dikerjakan oleh komputer, tanpa harus melalui penerjemah. Contoh: bahasa mesin (sekumpulan kode biner (0 dan 1)) 2. Bahasa tingkat tinggi Bahasa jenis ini membuat program menjadi lebih mudah dipahami. Contoh: Pascal, Cobol, Basic, Fortran, C, C++

Contoh perbandingan Program C++ dan Pascal v Perbedaan C++ dan pascal pada strukturnya C++ Pascal #include <stdio> program nama program Void main() begin { writeln (Hallo dunia!); Printf(“Hello dunia”); end. } v Perbedaan C++ dan pascal pada perintah syntax C++ Gunakan perintah “swich of” Pascal Gunakan “case of” v Perbedaan C++ dan pascal pada penulis huruf C++ Sensitive terhadap hurup kecil dan besar Pascal Tidak dibedakan menurut besar kecil huruf

b. Dengan diagram alur atau flowchat DIAGRAM ALUR (FLOWCHART) Adalah suatu diagram yang menggambarkan susunan logika suatu program Simbol simbol yang digunakan adalah sebagai berikut : Proses/prosessing, satu atau beberapa himpunan penugasan yang akan dilaksanakan secara berurutan. Input / Output data yg akan dibaca & dimasukan ke dalam memori komputer dari suatu alat input Terminal, berfungsi sebagai awal (berisi ‘Start’) sebagai akhir (berisi ‘End’) dari suatu proses alur.

Lanjutan Diagram Flowchart Decision (kotak keputusan) berfungsi utk memutuskan arah/percabangan yg diambil sesuai dgn kondisi yg dipenuhi, yaitu Benar/Salah. (dibahas dalam struktur branching). Subroutine digunakan untuk menjalankan proses program) bagian (sub suatu atau prosedur. Preparation digunakan untuk pemberian harga awal.

Lanjutan Diagram Flowchart Connector/penghubung, digunakan untuk menghubungkan diagram alur yang terputus dimana bagian tersebut masih berada pada halaman yang sama. On page Connector, Untuk menghubungkan sambungan dari bagian flowchart yang terputus dimana sambungannya berada pada halaman lain. Flowline, menunjukkan bagian arah instruksi dijalankan

Contoh Pengambaran Flowchart Menghitung Luas Segitiga : Start Masukan Alas Masukan Tinggi Luas = (Alas * Tinggi)/2 Cetak Luas Stop

Diagram Alur untuk Program Komputer Pada dasarnya suatu program komputer umumnya terdiri atas : 1. Pembacaan / pemasukan data ke dalam komputer 2. Melakukan komputasi/perhitungan terhadap data tersebut 3. Mengeluarkan / mencetak/ menampilkan hasilnya.

Struktur Algoritma : 1. Struktur Squence / Struktur Sederhana Digunakan untuk program yang instruksinya sequential atau urutan 2. Struktur Branching Digunakan untuk program yang menggunakan pemilihan atau penyeleksian kondisi * Materi ini akan dijelaskan pada pertemuan 4 3. Stuktur Looping Digunakan untuk program yang instruksinya akan dieksekusi berulang-ulang. * Materi ini akan dijelaskan pada pertemuan 5

Catatan : Ketiga struktur diatas dapat digunakan secara bersamaan pada satu diagram alur. Memberi harga kepada suatu Variabel (Cara I) Suatu variabel dapat diartikan sebagai suatu nilai yg dapat berubah harganya. Contoh menggambarkan pemberian harga suatu variabel : X = 5 variabel X diberi harga sebesar 5

Kotak proses/penugasan dpt berfungsi antara lain untuk : C= P - Q N=N+1 Variabel C diberi harga sebesar harga var. P dikurangi harga var. Q (dlm hal ini, harga variabel P & Q harus sudah ada) Harga yg terbaru dari variabel N adalah harga lama dari variabel N ditambah 1 (atau dengan kata lain, harga variabel N bertambah 1) Harga yg baru dari var. S adalah harga lama S ditambah dengan harga variabel T. S =S + T Jenis variabel terbagi atas 2 macam, yaitu : Variabel Numerik/bil. , Variabel untai kata/string,

Memberi harga kepada suatu variabel (Cara II) Dgn menggunakan kotak masukan/baca/input/read, STRUKTUR SQUENCE / STRUKTUR SEDERHANA Diagram yang alurnya mengalir secara berurutan dari atas ke bawah atau dengan kata lain tidak adanya percabangan atau pengulangan. Input A A=A*2 Cetak A END Keterangan : 1. Masukan Nilai Variable A mis : 3 2. Proses A dengan A*2 3. Cetak hasil proses diatas A=A*2 yg menghasilkan A=6

c. Dengan Statmen. Program/Penggalan Program v Contoh dengan menggunakan Program C++ #include<conio. h> #include<iostream. h> main() { int a, t, l; //pendeklarasian variabel clrscr(); cout<<"Masukan nilai Alas : "; //Input Data cin>>a; cout<<"Masukan nilai Tinggi : "; //Input Data cin>>t; l=(b*a)/2; //Proses Data cout<<"Total Luas : "<<l<<endl; //Output Data getch(); }

Contoh dengan menggunakan Program Pascal program luas; uses crt; var a, t: integer; L: real; begin clrscr; write(‘Masukan. Nilai Alas: ’); readln (a); write(‘Masukan. Nilai. Tingi: ’); readln(t); writeln(‘ ‘); L: =(a*t)/2; writeln(‘Luas Segitiga adalah =’, L: 6: 2); readln; end.

Lanjutan tahapan Analisa Algoritma 3. Bagaimana validitas suatu algoritma. 4. Bagaimana Menganalisa suatu Algoritma. 5. Bagaimana Menguji Program dari suatu Algoritma. Tahap Proses uji Algoritma : a. Fase Debugging yaitu fase dari proses program eksekusi yang akan melakukan koreksi terhadap kesalahan. b. Fase Profilling yaitu fase yang akan bekerja jika program tersebut sudah benar (telah melewati fase debugging).

Contoh Fase Debugging Contoh menggunakan bahasa C++: Muncul Pesan seperti berikut: #include<conio. h> #include<iostream. h> main() { int a, t, l; //pendeklarasian variabel clrscr(); cout<<"Masukan nilai Alas : "; //masukkan nilai alas cin>>a; cout<<"Masukan nilai Tinggi : "; //masukan nilai tinggi cin>>t; l=(b*a)/2; //perhitungan luas cout<<"Total Luas : "<<l<<endl; //hasil perhitungan luas getch(); }

Contoh Fase Profilling Contoh menggunakan bahasa C++: #include<conio. h> #include<iostream. h> main() { int a, t, l; //pendeklarasian variabel clrscr(); cout<<"Masukan nilai Alas : "; //masukkan nilai alas cin>>a; cout<<"Masukan nilai Tinggi : "; //masukan nilai tinggi cin>>t; l=(a*t)/2; //perhitungan luas cout<<"Total Luas : "<<l<<endl; //hasil perhitungan luas getch(); }

Analisa Suatu Algortima (Untuk melihat faktor efesiensi & efektifitas dari algoritma tersebut), Dapat dilakukan terhadap suatu algoritma dengan melihat pada : a. Waktu Tempuh (Running Time) dr suatu Algortima. Hal-hal yg dpt mempengaruhi drpd waktu tempuh adalah : 1. Banyaknya langkah. 2. Besar dan jenis input data. 3. Jenis Operasi. 4. Komputer dan kompilator b. Jumlah Memori Yang Digunakan.

Sifat-Sifat Algoritma 1. 2. 3. 4. 5. 6. Banyaknya Langkah Instruksi Harus Berhingga, Langkah atau Instruksi harus Jelas, Proses harus Jelas dan mempunyai batasan, Input dan Output harus mempunyai Batasan, Efektifitas, Adanya Batasan Ruang Lingkup,

Latihan Individu (Gunakan Bahasa sehari-hari / Pseudocode ) 1. 2. 3. Buat algoritma untuk mengirim email kepada teman dengan asumsi sudah mempunyai alamat email. Buat algoritma untuk meminjam buku di perpustakaan Buat algoritma pada saat membeli buku di toko buku

Tugas Kelompok Buatkan algoritma dengan penyelesaian Pseudocode dan Flowchart untuk kasus mahasiswa bisa dinyatakan lulus dalam matakuliah logika algoritma dengan ketentuan jika grade A s/d C dinyatakan lulus selain itu tidak lulus. Untuk mendapatkan grade diperoleh dari nilai 20% absensi, 25% tugas, 25% UTS dan 30% UAS Catatan: Tugas ini akan dilanjutkan pada pertemuan 3

LATIHAN SOAL

Latihan Soal 1. Dalam menyusun suatu program, langkah pertama yang harus dilakukan adalah : a. Membuat program b. Membuat Algoritma c. Membeli komputer d. Proses e. Mempelajari program 2. Sebuah prosedur langkah demi langkah yang pasti untuk menyelesaikan sebuah masalah disebut : a. Proses b. Program c. Algoritma d. Prosesor e. Step

Latihan Soal 2. Sebuah prosedur langkah demi langkah yang pasti untuk menyelesaikan sebuah masalah disebut : a. Proses d. Prosesor b. Program e. Step c. Algoritma 3. Pseudocode yang digunakan pada penulisan algoritma dapat berupa : a. Bahasa Inggris b. Bahasa Puitis c. Bahasa pemrograman d. Bahasa Asing e. Sembarang bahasa asal terstruktur

Latihan Soal 3. Pseudocode yang digunakan pada penulisan algoritma dapat berupa : a. Bahasa Inggris b. Bahasa Puitis c. Bahasa pemrograman d. Bahasa Asing e. Sembarang bahasa asal terstruktur 4. Pada pembuatan program komputer, algoritma dibuat : a. Sebelum pembuatan program b. Pada saat program dibuat c. Sesudah pembuatan program d. Pada saat verifikasi program e. Saat Program di eksekusi

Latihan Soal 4. Pada pembuatan program komputer, algoritma dibuat : a. Sebelum pembuatan program b. Pada saat program dibuat c. Sesudah pembuatan program d. Pada saat verifikasi program e. Saat Program di eksekusi 5. Tahapan dalam menyelesaikan suatu masalah adalah : a. Masalah – Pseudocode – Flowchart – Program – Eksekusi – Hasil b. Masalah – Algoritma – Flowchart – Program – Eksekusi – Hasil c. Masalah – Model – Algoritma – Eksekusi – Hasil d. Masalah – Model – Algoritma – Program – Eksekusi – Hasil e. Algoritma – Program – Model – Eksekusi - Hasil

Latihan Soal 5. Tahapan dalam menyelesaikan suatu masalah adalah : a. Masalah – Pseudocode – Flowchart – Program – Eksekusi – Hasil b. Masalah – Algoritma – Flowchart – Program – Eksekusi – Hasil c. Masalah – Model – Algoritma – Eksekusi – Hasil d. Masalah – Model – Algoritma – Program – Eksekusi – Hasil e. Algoritma – Program – Model – Eksekusi - Hasil 1. Dalam menyusun suatu program, langkah pertama yang harus dilakukan adalah : a. Membuat program d. Proses b. Membuat Algoritma e. Mempelajari program c. Membeli komputer
- Slides: 47