Algoritma Pemrograman 1
(Alpro1) 4 sks
By. Rita Wiryasaputra, ST., M. Cs.
ritasaputra@gmail.com
Ketentuan Mahasiswa Jurusan
Informatika (S1) UIGM
•
Atasan Baju batik, Bawahan celana panjang
hitam (1 semester)
•
Aktif dalam kegiatan kampus
•
Sertifikat akan merupakan prasyarat ujian
praskripsi
Komponen Penilaian UIGM
Total Nilai Grade Konversi Nilai
80 > NA >= 100 A 4 68 > NA >= 80 B 3 56 > NA >= 68 C 2 45 > NA >= 56 D 1
NA <= 45 E 0
Ketentuan Mata Kuliah Algoritma Pemrog.1
Jurusan Informatika (S1) UIGM
•
Datang tepat waktu, sebelum dosen memasuki
ruangan
•
Sebelum dan setelah perkuliahan, papan tulis
dibersihkan
•
Nilai tugas, apabila
dikerjakan sendiri tanpa
menjiblak
hasil karya orang lain dan
dikumpulkan tepat pada waktunya.
•
Nilai Mid (UTS) apabila telah selesai melakukan
pembayaran uang perkuliahan
Tugas 1
•
Student Profile berisi biografi (nama, npm,
date of birth, favorite things…) prestasi, foto
latar belakang merah. Dikumpul 15 September
2015 jam 08.00 UIGM,ukuran kertas A4,
Website Universitas
Uigm.ac.id
•
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,
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
(770-840).
•
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
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
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
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
–
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)
Pemecahan Masalah -Strategi -Metodologi -Sistematika
Notasi yang telah disepakati
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)
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
30
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
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.
X
1
= number of air conditioner to be produced
X
2
= number of large fans to be produced
Max = 25 X
1+ 15 X
2•
3 X
1+ 2 X
2≤ 240 (hours of wiring constraint)
•
2 X
1+ X
2≤ 140 (hours of drilling constraint)
•
X
1≥ 0 ( first nonnegativity constraint)
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 kondisi1 THEN
Aksi1
ELSE
IF kondisi2 THEN
Aksi2
ELSE
Aksi3
(Aksi 3 dilakukan jika kondisi 1 dan 2 tidak terpenuhi)
IF kondisi THEN
aksi
IF kondisi THEN
aksi1
ELSE
aksi2
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
UNTILkondisi
(pengulangan aksi dilakukan sehingga kondisi/persyaratan berhenti terpenuhi)
• WHILEkondisi DO
Aksi
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
Contoh Penulisan Algoritma (Flow Chart)
Mulai maks = bilangan pertama maks < bilangan kedua? maks < bilangan ketiga? maks = bilangan kedua maks = bilangan ketiga Sediakan wadah bernama maks Selesai Ya Tdk Ya TdkContoh Penulisan Algoritma
(Pseudocode)
•
maks
bilangan pertama
•
if (
maks
< bilangan kedua)
Then maks
bilangan kedua
•
if (
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
Contoh Teks Algoritma
Judul algoritma spesifikasi algoritma
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.