Algoritma Pemrograman 1 (Alpro1) 4 sks By. Rita Wiryasaputra, ST., M. Cs.
[email protected]
Kartu Hasil Studi (Per Semester)
• Buku Referensi – Algoritma dan Pemrograman dalam Bahasa Pascal dan C (Buku 1), Rinaldi Munir, Informatika Bandung – Algoritma dan Pemrograman dalam Bahasa Pascal dan C (Buku2), Rinaldi Munir&Leoni Lidya, Informatika Bandung
Alat
Live coding C++ Turbo Pascal 7.0 Borland C++
Pendahuluan Sistem Komputer terdiri dari : • Hardware (perangkat keras) I, P, O • Software (perangkat lunak) Operating System , Programming Language, Application Program • Brainware user (end), administrator, desainer, programmer
Ciri Program yang bagus • Correct – Program dapat memberikan solusi yang tepat dari suatu masalah
• Clear – Program harus jelas, dapat dimengerti dengan mudah, dan dapat di trace dengan mudah
• Efesien – Terkait dengan sumber daya yang dibutuhkan. Kecepatan juga menjadi hal yang perlu diperhatikan
Definisi • Algoritma urutan langkah dari awal hingga akhir disusun secara sistematis dan bersifat logis untuk menyelesaikan suatu masalah. Urutan langkah logis berarti algoritma harus mengikuti suatu urutan tertentu, tidak boleh melompat-lompat.
Asal kata: • Penulis buku Arab Al-Khowarizmi (dibaca algorism) seorang ahli matematika, geografi, astronomi dan musik dari Uzbekistan yang bernama Abu Abdullah Muhammad Ibn Musa al-Khwarizmi (770840). • Kitab Al-jabar wal-muqabala (buku pemugaran dan pengurangan) • 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.
Contoh Algoritma Sederhana • Masalah : Membuat Kopi Panas • Algoritma : – Ambil gelas – Ambil gula masukkan ke dalam gelas – Ambil kopi masukkan ke dalam gelas – Ambil air panas, tuangkan ke dalam gelas – Aduk air, gula dan kopi sampai rata – Kopi panas siap disajikan
Contoh Algoritma • Memasak Mie Instant • Jika seseorang ingin mengirim surat kepada kenalannya di tempat lain, langkah yang harus dilakukan adalah : – – – –
Menulis surat Surat dimasukkan kedalam amplop tertutup Amplop ditempeli perangko secukupnya Pergi ke kantor pos terdekat untuk mengirimkannya
Penulisan Algoritma 1. Uraian Deskriptif dengan bahasa natural (Indonesia, Jawa) seperti contoh sebelumnya yaitu pembuatan kopi panas Terlalu banyak akan membingungkan
2. Pseudocode Pseudo : tidak sebenarnya, PseudoCode : Code yang tidak sebenarnya Bahasa Natural tapi Lebih dekat ke bahasa pemrograman Sulit dimengerti kecuali yang tahu pemrograman
3. Flow-Chart (Diagram Alir) Bagus secara visual dan mudah dimengerti Merepotkan untuk menggambar kalau algoritmanya besar/banyak
What is the difference?? • Belajar memprogram: pemahaman persoalan, analisis, dan sintesis Pemecahan Masalah
-Strategi -Metodologi -Sistematika
Notasi yang telah disepakati
– Identifikasi masalah (input,proses,output) – Algoritma – Implementasi algoritma yang ditulis dengan bahasa pemrograman (program)
• Belajar Bahasa Pemrograman : – Belajar memakai suatu bahasa,aturan sintaks (tata bahasa)
Notasi • Tidak ada notasi baku dalam penulisan teks algoritma (notasi algoritmik) sebagaimana pada notasi bahasa pemrograman. Namun, agar notasi algoritmik mudah ditranslasikan ke dalam notasi bahasa pemrograman, sebaiknya notasi algoritmik tersebut berkoresponden dengan notasi bahasa pemrograman secara umum.
Penyajian dan Struktur Algoritma Algoritma disajikan dalam 2 bentuk : • Tulisan ( Pseudocode, English structure) • Gambar (Structure chart, HIPO, Flowchart, Nassi-Scheiderman chart) Pada dasarnya struktur algoritma meliputi: • Runtunan/sequence • Pemilihan/selection (If dan Case) • Pengulangan/repetition (For, Repeat dan While)
Karakteristik Algoritma (IDETO) • Input-terdapat nol masukkan atau lebih yang diberikan secara eksternal • Definite (pasti)-harus secara sempurna menyatakan apa yang dilakukan (instruksi-instruksi jelas dan tidak ambigu) • Efective-setiap instruksi harus dapat dilakukan secara manual dalam jumlah waktu yang terhingga. Contoh instruksi yang tidak efektif adalah: A=A+0 atau A=A*1 • Terminate/finite-harus berhenti setelah sejumlah terbatas operasi • Output-sedikitnya terdapat 1 keluaran yang dihasilkan
Masalah dan Model • Mathematical Modeling is a procedure that recognizes and verbalizes a problem and then quantifies it by turning the words into mathematical expressions. • Mathematical Modeling is an art that improves with experience • A constrained mathematical model consists of – An objective – One or more constraints 21
Electrocomp. Corporation • The Electrocomp Corporation manufactures two electrical products: air conditioners and large fans. The assembly process for each is similar in that both require a certain amount of wiring and drilling. Each air conditioner takes 3 hours of wiring and 2 hours of drilling. Each fan must go through 2 hours of wiring and 1 hour of drilling. During the next production period, 240 hours of wiring time are available and up to 140 hours of drilling time may be used. Each air conditioner sold yields a profit of $25. Each fan assembled may be sold for a $15 profit. Formulate and solve this LP production mix situation to find the best combination of air conditioners and fans that yields the highest profit.
Solution Electrocomp. X1 = number of air conditioner to be produced X2 = number of large fans to be produced Max = 25 X1 + 15 X2 • 3 X1 + 2 X2 ≤ 240 (hours of wiring constraint) • 2 X1 + X2 ≤ 140 (hours of drilling constraint) • X1 ≥ 0 ( first nonnegativity constraint) • X2 ≥ 0 ( second nonnegativity constraint)
Rancangan Algoritma
Struktur Dasar Algoritma • Runtunan (sequence) – aksi-aksi dalam algoritma yang dikerjakan secara berurutan – contoh :
A1. Aksi 1 A2. Aksi 2 A3. Aksi 3
Struktur Dasar Algoritma(2) • Pemilihan (selection) – aksi dikerjakan jika kondisi tertentu terpenuhi – contoh :
IF kondisi THEN aksi IF kondisi THEN aksi1 ELSE aksi2
IF kondisi1 THEN Aksi1 ELSE IF kondisi2 THEN Aksi2 ELSE Aksi3 (Aksi 3 dilakukan jika kondisi 1 dan 2 tidak terpenuhi)
Struktur Dasar Algoritma (3) •
Pengulangan (repeatition) – aksi-aksi yang dikerjakan berulang kali – contoh : • FOR pencacah pengulangan dari a sampai b DO Aksi (aksi dilakukan sebanyak hitungan pencacah pengulangan, yaitu dari a sampai b yakni sebanyak b-a+1 kali) • REPEAT Aksi UNTIL kondisi (pengulangan aksi dilakukan sehingga kondisi/persyaratan berhenti terpenuhi) • WHILE kondisi DO Aksi (selama kondisi/persyaratan pengulangan masih benar, maka aksi dikerjakan)
Flowchart
Contoh Masalah dan Pemecahannya dengan algoritma • Masalah : memilih bilangan terbesar dari tiga bilangan • Algoritma : –…
Contoh Penulisan Algoritma (Bahasa Natural) 1. Sediakan wadah sementara untuk menyimpan bilangan terbesar, beri nama maks 2. Ambil bilangan pertama dan set maks sama dengan bilangan pertama 3. Ambil bilangan kedua dan bandingkan dengan maks 4. Apa bila bilangan kedua lebih besar dari maks, set maks sama dengan bilangan kedua 5. Ambil blangan ketiga dan bandingan dengan maks 6. Apabila bilangan ketiga lebih besar dari maks, set maks sama dengan bilangan ketiga 7. Variabel maks berisi bilangan terbesar. Tayangkan hasilnya
Contoh Penulisan Algoritma (Flow Chart) Mulai
Sediakan wadah bernama maks
maks = bilangan pertama
maks < bilangan kedua?
Ya
maks = bilangan kedua
Ya
maks = bilangan ketiga
Tdk maks < bilangan ketiga? Tdk
Selesai
Contoh Penulisan Algoritma (Pseudocode) • maks bilangan pertama • if (maks < bilangan kedua) Then maks bilangan kedua
• if (maks < bilangan ketiga) Then maks bilangan ketiga
Teks Algoritma • Struktur teks algoritma – Kepala algoritma terdiri atas nama algoritma dan penjelasan (spesifikasi) tentang algoritma tersebut – Deklarasi mendefinisikan semua nama (konstanta, peubah, tipe, prosedur atau fungsi) yang dipakai dalam algoritma – Deskripsi Berisi uraian langkah-langkah penyelesaian
Komentar ditulis diantara tanda kurung “{“ dan “}”
Contoh Teks Algoritma Judul algoritma spesifikasi algoritma
Kata2 yg biasanya menjadi keyword bhs pemrogram diberi garis bawah
Pascal
Pemrograman • Program kumpulan instruksi/perintah tersendiri yang biasanya disebut source code disusun sedemikian rupa sehingga mempunyai urutan nalar yang tepat untuk menyelesaikan suatu persoalan dan dibuat oleh programmer. • Instruksi (statement) syntax (cara penulisan) sesuai dengan bahasa pemrograman yang digunakan. • Komponen : input, output, proses, percabangan dan perulangan. • Pemrograman proses mengimplementasikan algoritma dengan menggunakan suatu bahasa
Bahasa Pemrograman • Bahasa Pemrograman prosedur/tata cara penulisan program • Fungsi bahasa pemrograman media untuk menyusun dan memahami sehingga pemrogram dengan komputer dapat berkomunikasi. • Contoh : C, C++, C#, Pascal, Basic, Perl, PHP, ASP, JHP, Java dan sebagainya • Perbedaan : cara memberikan instruksi • Persamaan : bertujuan menghasilkan output yang sama.
Bahasa Pemrograman • Dunia komputer beraneka ragam bahasa pemrograman. • Bahasa pemrograman dikelompokkan berdasarkan kriteria tertentu. Contohnya level bahasa (high, middle, low), procedural/functional programming, object oriented programming, dan sebagainya. • Dasarnya bahasa pemrograman memiliki bagian yang serupa. • Perbedaannya tata bahasa yang digunakan. • Analogi belajar bahasa Indonesia, bahasa Jawa, bahasa asing. Perbedaannya pada istilah/simbol yang digunakan dan dialek bahasa tersebut
Sifat bahasa pemrograman: • • • • • • • • •
Ekspresivitas jelas menggambarkan algoritma Didefinisikan dengan baik sintaks dan semantik konsisten dan tidak bermakna ganda. Mendukung berbagai tipe data. Modularitasnya mempunyai fasilitas subprogramming (modul). Fasilitas masukan dan keluaran mendukung berbagai model file (sequential, random, access, index, multiple index). Portabilitas dipakai pada berbagai mesin komputer yang berbeda Efisiensi dikompilasi dan dieksekusi secara cepat pada mesin komputer dimana program dapat diimplementasikan. Mudah dipelajari dipahami dan diajarkan. Bersifat umum jangkauan luas untuk berbagai aplikasi.
Faktor Penting Bahasa Pemrograman • Sintaks aturan gramatikal yang mengatur tata cara penulisan kata, ekspresi dan pernyataan • Semantik aturan-aturan untuk menyatakan arti • Pragmatik kemudahan implementasi dan efisiensi
Bahasa pemrograman Pascal • Bahasa pemrograman berbasis teks. • Penulisan program dan proses eksekusinya dilakukan dari atas ke bawah pemrograman Linear programming. • Bahasa pemrograman Prosedural, dimana program dibedakan antara data (dalam memori) dengan instruksi. Program terdiri dari runtunan instruksi yang dilaksanakan satu per satu secara berurutan oleh pemroses. Alur pelaksanaan instruksi dapat berubah karena adanya kondisional. Data dalam memori dimanipulasi oleh instruksi secara beruntun.