STRATEGI DAN ANALISA ALGORITMA Catur Supriyanto S Kom

  • Slides: 37
Download presentation
STRATEGI DAN ANALISA ALGORITMA Catur Supriyanto, S. Kom, MCs

STRATEGI DAN ANALISA ALGORITMA Catur Supriyanto, S. Kom, MCs

Strategi dan Analisa Algoritma • Dosen • SKS • Email • Ruang : Catur

Strategi dan Analisa Algoritma • Dosen • SKS • Email • Ruang : Catur Supriyanto, S. Kom, MCS : 3 SKS : catur. dinus@gmail. com : G. 2 – Office of International Affairs

Deskripsi Penerapan cara pembelajaran pada matakuliah Strategi dan Analisis Algoritma secara umum ditujukan untuk

Deskripsi Penerapan cara pembelajaran pada matakuliah Strategi dan Analisis Algoritma secara umum ditujukan untuk memberikan pembekalan kepada mahasiswa dalam berfikir secara logis, kritis, kreatif dan analitis dalam memecahkan masalah berbasis program komputer. Secara khusus pada matakuliah ini akan diberikan ketrampilan baru dalam hal pengukuran efisiensi dan waktu tempuh suatu algoritma, yaitu mengukur seberapa efisien langkah-langkah serta berapa banyak waktu yang di perlukan untuk pemecahan suatu masalah.

Standar Kompetensi • Standar kompetensi dari mata kuliah ini adalah memberikan pengetahuan mengenai cara

Standar Kompetensi • Standar kompetensi dari mata kuliah ini adalah memberikan pengetahuan mengenai cara melakukan analisa algoritma dan memilih disain algoritma yang baik untuk suatu masalah. • Pada akhirnya mahasiswa dapat mengembangkan suatu strategi pemecahan masalah dengan disain algoritma yang telah di analisis dengan benar.

Komponen Penilaian • KEAKTIFAN: • TUGAS: • UTS: • UAS: 10% 20% 30% 40%

Komponen Penilaian • KEAKTIFAN: • TUGAS: • UTS: • UAS: 10% 20% 30% 40%

Peraturan • Tidak ada tes susulan apapun • Peraturan absensi mengikuti aturan Universitas (75%)

Peraturan • Tidak ada tes susulan apapun • Peraturan absensi mengikuti aturan Universitas (75%) • Tidak ada tugas tambahan untuk meningkatkan nilai yang kurang • Dosen terlambat 30 menit, maka kelas kosong • Mahasiswa terlambat 30 menit, tidak boleh absen

Sejarah Algoritma Asal kata Algoritma berasal dari nama Abu Ja’far Mohammed Ibnu Musa al-Khowarizmi,

Sejarah Algoritma Asal kata Algoritma berasal dari nama Abu Ja’far Mohammed Ibnu Musa al-Khowarizmi, ilmuan Persia yang menulis kitab al jabr w’almuqabala (rules of restoration and reduction) sekitar tahun 825 M

Definisi Algoritma • Urutan langkah-langkah untuk memecahkan masalah • Urutan logis pengambilan keputusan untuk

Definisi Algoritma • Urutan langkah-langkah untuk memecahkan masalah • Urutan logis pengambilan keputusan untuk memecahkan masalah • urutan langkah logis, berarti algoritma harus mengikuti suatu urutan tertentu, tidak boleh melompat-lompat. • Alur pemikiran dalam menyelesaikan suatu pekerjaan yang dituangkan secara tertulis. • alur pikiran, yang artinya algoritma seseorang dapat berbeda dari algoritma orang lain. • tertulis, yang artinya dapat berupa kalimat, gambar, atau tabel tertentu.

Algoritma dalam Kehidupan

Algoritma dalam Kehidupan

Algoritma dalam Kehidupan

Algoritma dalam Kehidupan

Definisi Algoritma [2] • Dalam bidang komputer, algoritma sangat diperlukan dalam menyelesaikan berbagai masalah

Definisi Algoritma [2] • Dalam bidang komputer, algoritma sangat diperlukan dalam menyelesaikan berbagai masalah pemrograman, terutama dalam komputasi numeris. Tanpa algoritma yang dirancang baik maka proses pemrograman akan menjadi salah, rusak, atau lambat dan tidak efisien. • Algoritma di butuhkan untuk memerintah komputer mengambil langkah-langkah tertentu untuk menyelesaikan masalah • Algoritma Pemrograman Program • Agar algoritma dapat memerintah (diproses) komputer, maka dirubah menjadi bentuk program (melalui proses pemrograman).

Sifat - Sifat Algoritma Aspek Penting Algoritma : • Finite algoritma harus berhenti setelah

Sifat - Sifat Algoritma Aspek Penting Algoritma : • Finite algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas • Definite setiap langkah didefinisikan secara tepat, tidak boleh membingungkan (ambigu) • Input sebuah algoritma memiliki satu/lebih input sebelum dijalankan • Output algoritma memiliki satu/lebih output, yang biasanya bergantung kepada input • Effective setiap algoritma diharapkan memiliki sifat efektif. (setiap langkah harus sederhana dan sehingga dapat dikerjakan dalam waktu yang masuk akal)

Notasi Algoritma • Penulisan algoritma tidak tergantung dari spesifikasi bahasa pemrograman dan komputer yang

Notasi Algoritma • Penulisan algoritma tidak tergantung dari spesifikasi bahasa pemrograman dan komputer yang mengeksekusinya. • Notasi algoritma bukan notasi bahasa pemrograman tetapi dapat diterjemahkan ke dalam berbagai bahasa pemrograman

Peranan Algoritma • Peran algoritma : fundamental (tidak ada algoritma tidak ada program) •

Peranan Algoritma • Peran algoritma : fundamental (tidak ada algoritma tidak ada program) • Algoritma + struktur data = program • Struktur data : teknik/cara penyusunan/ penyimpanan data dalam komputer • “ memori seminim mungkin dan kecepatan eksekusi semaksimal mungkin”

Tahap Penyelesaian Masalah analisis Model Algoritma analisis Program Eksekusi Hasil Data

Tahap Penyelesaian Masalah analisis Model Algoritma analisis Program Eksekusi Hasil Data

Suatu Algoritma yg terbaik (The Best): “Suatu algoritma harus menghasilkan output yg tepat guna

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 diperoleh suatu solusi. “

Contoh: Sebuah prosedur ketika akan mengirimkan surat kepada teman: 1. Tulis surat pada secarik

Contoh: 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.

Penulisan Algoritma • Menggunakan bahasa natural (Bahasa manusia: Indonesia, Inggris) Kelemahannya masih sering membingungkan

Penulisan Algoritma • Menggunakan bahasa natural (Bahasa manusia: Indonesia, Inggris) Kelemahannya masih sering membingungkan (ambigu) / sulit dipahami. • Menggunakan Flowchart Baik karena alur algoritma dapat dilihat secara visual, tetapi repot pembuatannya jika algoritma panjang • Menggunakan Pseudocode Sudah dekat dengan bahasa pemrograman, tetapi sulit dimengerti oleh orang yang belum tahu pemrograman

Menggunakan Natural Language (Bahasa Natural) Write an algorithm to perform addition of two number.

Menggunakan Natural Language (Bahasa Natural) Write an algorithm to perform addition of two number. • Step 1: read the first number say a • Step 2: read the second number say b • Step 3: add the two number and store the result in a variable c • Step 4: display the result

Menggunakan Pseudo Code Algorithm sum(a, b) //problem description: this algorithm perform addition of two

Menggunakan Pseudo Code Algorithm sum(a, b) //problem description: this algorithm perform addition of two //number //input: two integers a and b //output: addition of two integers c a+b Write c

Menggunakan Flowchart Start Statement Transition Processing / Assignment Statement Input / Output Statement Conditional

Menggunakan Flowchart Start Statement Transition Processing / Assignment Statement Input / Output Statement Conditional Statement Stop Statement

Menggunakan Flowchart [2] Symbol Predefined Process (Simbol untuk mempersiapkan penyimpanan yang akan digunakan sebagai

Menggunakan Flowchart [2] Symbol Predefined Process (Simbol untuk mempersiapkan penyimpanan yang akan digunakan sebagai tempat pengolahan di dalam storage) Symbol Off-line Connector ( Simbol untuk keluar/masuk prosedure atau proses dalam lembar/halaman yang lain) Symbol Connector (Simbol untuk keluar/masuk prosedur atau proses dalam lembar/halaman yang sama)

Menggunakan Flowchart [3] Start Input the value of a Input the value of b

Menggunakan Flowchart [3] Start Input the value of a Input the value of b c= a + b Display the value of c Stop

 • Buatlah flowchart untuk menampilkan semua bilangan genap dari 1 – 20 dan

• Buatlah flowchart untuk menampilkan semua bilangan genap dari 1 – 20 dan bilangan ganjil dari 30 – 50 dengan menggunakan pengulangan while. 1. x : int 2. y : int 3. Deskripsi 4. x ← 2 5. y ← 31 6. while (x<=20) 7. write (x) 8. x ← x+2 9. while (y<=49) 10. write (y) 11. y ← y+2 12. end while

 • Buatlah flowchart untuk menampilkan semua bilangan kelipatan 7 dari 1 – 50

• Buatlah flowchart untuk menampilkan semua bilangan kelipatan 7 dari 1 – 50 dengan menggunakan pengulangan do while. 1. x : int 2. Deskripsi 3. x ← 7 4. Do 5. write (x) 6. x ← x+7 7. while (x<=49)

Pentingnya Analisa Algorithm • Suppose, if we want to build a house we do

Pentingnya Analisa Algorithm • Suppose, if we want to build a house we do not directly start constructing the house. Instead we consult an architect, we put our ideas and suggestion, accordingly he draws a plan of the house, and he discussed it with us. Finally, the blue print of house gets ready. Now it becomes very easy and systematic for construction of desired house. • Designing is just a paper work and it can be easily modified on the paper. • Before actual implementation of the program, designing an algorithm is very important step.

Tahap Analisa Algoritma 1. Bagaimana merencanakan algoritma? 2. Bagaimana menyatakan suatu algoritma (menulis algoritma)?

Tahap Analisa Algoritma 1. Bagaimana merencanakan algoritma? 2. Bagaimana menyatakan suatu algoritma (menulis algoritma)? 3. Bagaimana validitas suatu algoritma? 4. Bagaimana menganalisa suatu algoritma? 5. Bagaimana menguji program dari suatu algoritma?

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.

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 bahasa pemrograman tertentu. Phi 3. 14 Input (diameter) Radius diameter / 2 Luas phi * radius Output (Luas) End

 • Dengan flowchart / diagram alir Program Flowchart, yaitu bagan yang menggambarkan urutan

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

Tahap Proses Uji Algoritma 1. Pengujian Tahap Debuging Untuk mengecek kesalahan program, Baik sintaksis

Tahap Proses Uji Algoritma 1. Pengujian Tahap Debuging Untuk mengecek kesalahan program, Baik sintaksis maupun logika. 2. Pengujian Tahap Profiling Untuk menentukan waktu tempuh dan banyaknya memori program yang digunakan.

Analisis Suatu Algoritma Untuk melihat effisiensi dan efektifitas dari suatu algoritma, dapat dilihat dari:

Analisis Suatu Algoritma Untuk melihat effisiensi dan efektifitas dari suatu algoritma, dapat dilihat dari: 1. 2. Waktu Tempuh dari Suatu Algoritma Jumlah memori yang digunakan v Hal-hal yang dapat mempengaruhi waktu tempuh adalah : 1. 2. 3. 4. Banyaknya langkah. Besar dan jenis input data. Jenis Operasi. Komputer dan kompilator

Langkah-langkah yang membentuk suatu algoritma dapat dibagi menjadi 3 kelompok proses: 1. Sequence Process

Langkah-langkah yang membentuk suatu algoritma dapat dibagi menjadi 3 kelompok proses: 1. Sequence Process instruksi dikerjakan secara berurutan satu persatu dimulai dari langkah pertama sampai terakhir. 2. Selection Process instruksi pemilihan proses (percabangan), sehingga apabila memenuhi persyaratan tertentu maka instruksi akan dikerjakan. Contoh : jika pembayaran tunai diberi diskon 10% Jika dilakukan secara kredit maka diskon 0 %. (dalam pernyataan diatas, hanya boleh melakukan 1 instruksi dari 2 alternatif instruksi. 3. Iteration Process suatu instruksi yang dikerjakan berulang selama beberapa kali selama masih memenuhi suatu kondisi.

BAHASA PEMROGRAMAN Program harus ditulis dalam suatu bahasa yang dimengerti oleh komputer yaitu dalam

BAHASA PEMROGRAMAN Program harus ditulis dalam suatu bahasa yang dimengerti oleh komputer yaitu dalam Bahasa pemrogram dibedakan menjadi : • Bahasa tingkat rendah (low level language) : bahasa yang berorientasi ke mesin. • Bahasa tingkat tinggi (high level language) : bahasa yang berorientasi ke manusia (seperti bahasa inggris) contoh bahasa Pascal, bahasa C dll.

BAHASA PEMROGRAMAN • Program yang ditulis dalam bahasa pemrograman akan diterjemahkan kedalam bahasa mesin

BAHASA PEMROGRAMAN • Program yang ditulis dalam bahasa pemrograman akan diterjemahkan kedalam bahasa mesin (kenal dengan biner digit) dengan menggunakan penterjemah. Penterjemah : • • Interpreter : menterjemahkan baris per baris instruksi. Contoh bahasa Basic. Compiler : menterjamahkan setelah seluruh instruksi ditulis. Contoh bahasa Pascal, C, C++, dll. Interpreters and Compilers (Bits and Bytes, Episode 6). mp 4

Tugas (Buat Flowchartnya dan Pseudocodenya !) 1. Buatlah algoritma untuk menghitung konversi suhu. dari

Tugas (Buat Flowchartnya dan Pseudocodenya !) 1. Buatlah algoritma untuk menghitung konversi suhu. dari Celcius menjadi Reamur dan Farenheit. • Input: suhu dalam Celcius • Proses: R = 4/5 * C dan F = 9/5 * C + 32 • Output 2. Buatlah algoritma untuk menentukan suatu bilangan genap atau ganjil • Input: suatu bilangan • Ouput: genap / ganjil 3. Buatlah algoritma untuk menentukan suatu bilangan adalah bilangan prima atau bukan.

Pseudocode Cek Bil. Prima 1. Mulai 2. Masukan nilai bilangan a 3. b=1 4.

Pseudocode Cek Bil. Prima 1. Mulai 2. Masukan nilai bilangan a 3. b=1 4. b=b+1 5. c=a mod b 6. Periksa apakah c=0 7. Jika tidak kembali ke langkah 4 8. Jika iya periksa apakah a=b 9. Jika tidak maka a bukan bilangan prima 10. Jika iya maka a adalah bilangan prima 11. Selesai