Algoritma-Pemrograman

Download Report

Transcript Algoritma-Pemrograman

Pertemuan 01
Ferdi Barlianto S.T
2010
1




SKS
: 3 SKS
Dosen
: Ferdi Barlianto
Email
: [email protected]
Jadwal Kuliah Kelas:
:
• Group S2: senin, 1630
• Ruang: Multimedia
Model Perkuliahan ; Ceramah Tatap Muka dan Praktikum
Algoritma dan
Pemrograman I
Mahasiswa mempunyai pemahaman dan
mampu menjelaskan tentang konsep dasar
pemrograman komputer, algoritma dan
tahapan pembuatan algoritma pemrograman
terstruktur.
Dasar logika pemrograman
dan pembuatan program yang
sederhana dengan baik
3
Pengantar AlPro
Program komputer
dan bahasa
pemrograman
Error handling
Percabangan dan
perulangan
Lingkup
Mata
Kuliah
Definisi dan prinsipprinsip algoritma
Konsep algoritma
menggunakan
Pseudocode dan
Flowchart
Input, output dan
operator
Tipe data dan
Variabel
Dasar-dasar
pemrograman c#










Mampu menjelaskan Prinsip-prinsip Algoritma
Mampu menjelaskan Konsep Bahasa Pemrograman
Mampu membuat Flowchart dan Pseudocode
Mampu menjelaskan Konsep Dasar Bahasa C
Mampu menjelaskan tipe data dan variabel
Mampu membuat program Struktur Input/Output
Mampu membuat program Percabangan
Mampu membuat program Perulangan
Mampu menjelaskan Pemrograman Modular
Mampu membuat exception handling dan error handling
Sub Kompentensi
Mampu menjelaskan konsep dasar pemrograman
Mampu menjelaskan definisi algoritma
Mampu menjelaskan tahap pengembangn algoritma
Mampu menyajikan algoritma
Mampu menjelaskan algoritma menggunakan mode Pseudocode
dan flowchart
Mampu membuat program perulangan dan percabangan
Mampu melakukan pemrogramn terstruktur
Tujuan Pembelajaran
Konsep
Algoritma
Pemrograman
Terstruktur
Konsep
algoritma
Definisi
Pseudocode
Flowchart
Pemrograman
Terstruktur
Class dan
objek
Tipe data dan
variabel
Input dan
output
operator
Percabangan
dan
perulangan
Error
handling
Partisipas
i
UTS
Tugas
UAS
A [80 - 100]
B [66 - 79]
C [56 - 65]
D [46 - 55]
E [<=45]
 Kontrak
Perkuliahan & Pengantar
Algoritma dan Pemrograman 30/9
 Algoritma, Pseudocode dan Flowchart
 Pengantar Bahasa Pemrograman (dengan
Bahasa C)
 Tipe data dan Variabel
 Input & Output pada Bahasa C
 Penggunaan operator aritmatika dan
logika
 Struktur Kontrol Percabangan
 Struktur Kontrol Perulangan
 Struktur Kontrol Perulangan Bertingkat
 Error handling

Brian W. Kernighan, Dennis M. Ritchie (1988). The C
Programming Language, Second Edition, Prentice Hall

Deitel, H.M. and Deitel, P.J. (2001). C HOW TO
PROGRAM. 3rd edition. Prentice Hall, NJ.

Gottfried, B.S. (1996). Schaum’s Outline Series. Theory
and Problems of Programming with C. McGraw Hill, NY.

Ngoen. Th. S. (2004). Pengantar Algoritma dengan
Bahasa C. Penerbit Salemba Teknika.

Sedgewick, R. (1992). Algorithms in C++. Addison
Wesley.

Deitel, H.M. (2005). Visual c# - How to Program. 2nd
Edition. Prentice Hall,NJ.
12
COMPUTER
TO – COMPUTE + ER
(Menghitung/Mengolah bilangan)
(Mengolah Data)
Data yg Diolah
(Masukan/Input)
PUSAT PENGOLAH DATA
(berbasis Arithmatika
dan Logika)
Data hasil pengolahan
(Keluaran/Output)
Penyimpanan Data
13
 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 langkahlangkah terstuktur untuk mencari solusi suatu
masalah dengan bantuan komputer.
15



Adalah kumpulan instruksi-instruksi tersendiri yang
biasanya disebut source code yang dibuat oleh
programmer (pembuat program)
Program adalah kumpulan instruksi atau perintah yang
disusun sedemikian rupa sehingga mempunyai urutan
nalar yang tepat untuk menyelesaikan suatu persoalan.
Instruksi (statement) yang dimaksud adalah syntax
(cara penulisan) sesuai dengan bahasa pemrograman
yang digunakan yang mempunyai komponenkomponen : Input, Output, Proses, Percabangan dan
Perulangan.
 Adalah
alat untuk membuat program
 Contoh: C, C++, C#, Pascal, Basic, Perl,
PHP, ASP, JHP, Java, dll.
 Perbedaan: cara
memberikan instruksi
(sintaks)
 Persamaan: bertujuan menghasilkan
output yang sama
Pemrograman Prosedural / Terstruktur

•
•
•
•
•

•
•

•
•
•
•
Berdasarkan urutan-urutan, sekuensial
Program adalah suatu rangkaian prosedur untuk memanipulasi
data. Prosedur merupakan kumpulan instruksi yang
dikerjakan secara berurutan.
Harus mengingat prosedur mana yang sudah dipanggil dan
apa yang sudah diubah.
Program dapat dibagai-bagi menjadi prosedur dan fungsi.
Contoh: PASCAL dan C
Pemrograman Fungsional
Berdasarkan teori fungsi matematika
Fungsi merupakan dasar utama program.
Pemrograman Modular
Pemrograman ini membentuk banyak modul.
Modul merupakan kumpulan dari prosedur dan fungsi yang
berdiri sendiri
Sebuah program dapat merupakan kumpulan modul-modul.
Contoh: MODULA-2 atau ADA
Pemrograman Berorientasi Obyek

•
•

•
•
Pemrograman berdasarkan prinsip obyek, dimana
obyek memiliki data/variabel/property dan
method/event/prosedur yang dapat dimanipulasi
Contoh: C++, Object Pascal, dan Java.
Pemrograman Berorientasi Fungsi
Pemrograman ini berfokus pada suatu fungsi tertentu
saja. Sangat tergantung pada tujuan pembuatan bahasa
pemrograman ini.
Contoh: SQL (Structured Query Language), HTML, XML
dan lain-lain.
Pemrograman Deklaratif

•
•
Pemrograman ini mendeskripsikan suatu masalah
dengan pernyataan daripada memecahkan masalah
dengan implementasi algoritma.
Contoh: PROLOG

Dilihat dari Struktur Sistem Komputer dan Siklus diatas,
Algoritma Pemrograman menempati posisi dibagian
implementasi karena bagian implementasi merupakan
bagian dimana pemrogram melakukan proses coding
(pembuatan program).

Kejadian yang terjadi pada waktu yang terbatas dan
menghasilkan efek yang memang direncanakan
• Dari waktu0 ke waktuN
• Contoh: “aksi Bu Tati mengupas kentang untuk makan
malam”
• Batasan:
 Apa kentang harus dibeli dulu atau sudah ada?
 Apakah mengupas berarti sampai kentang terhidang?
 Apakah setelah kentang selesai dikupas, harus ada kegiatan lain
seperti dibuat sup atau digoreng?
• Berarti harus ada kejadian awal = start dan kejadian akhir
= finish

Kejadian bu Tati dapat juga diterapkan pada ibu-ibu
yang lain, yang juga akan mengupas kentang
• Cara (Metode) sebisa mungkin harus bersifat universal
MASALAH / IDEA
Algoritma
PEMECAHAN
Source
Code
SOLUSI / HASIL
Executable
Code
DEFINISI
MASALAH
MEMBUAT
MODEL
RANCANG
ALGORITMA
TULIS PROGRAM
COMPILE
Y
Sintak Err
T
Executable code:
=> Run
Y
Output Err
T
DOKUMEN TASI
23
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
24
DEFINISI
MASALAH
MEMBUAT
MODEL
RANCANG
ALGORITMA
TULIS PROGRAM
COMPILE
Model Matematika :
Sintak Err
Rumus ABC
x1 = (-b + sqrt(b^2 - 4ac))/2a
Executable code:
=> Run
x2 = (-b – sqrt(b^2 - 4ac))/2a
Output Err
DOKUMEN TASI
25
DEFINISI
MASALAH
MEMBUAT
MODEL
RANCANG
ALGORITMA
Start
TULIS PROGRAM
COMPILE
Masukkan a,b,c
Sintak Err
d = b^2 – 4ac
d<0
T
x1=(-b+sqrt(d))/2a
x2 =(-b-sqrt(d))/2a
Executable code:
=> Run
Y
Cetak Pesan
“Akar imajiner”
Output Err
Cetak : x1, x2
Stop
DOKUMEN TASI
26
DEFINISI
MASALAH
MEMBUAT
MODEL
RANCANG
ALGORITMA
TULIS PROGRAM
COMPILE
Sintak Err
Executable code:
=> Run
Output Err
DOKUMEN TASI
27
DEFINISI
MASALAH
MEMBUAT
MODEL
RANCANG
ALGORITMA
TULIS PROGRAM
COMPILE
Sintak Err
Executable code:
=> Run
Output Err
DOKUMEN TASI
28
DEFINISI
MASALAH
MEMBUAT
MODEL
RANCANG
ALGORITMA
TULIS PROGRAM
COMPILE
Sintak Err
Executable code:
=> Run
Output Err
DOKUMEN TASI
29
DEFINISI
MASALAH
MEMBUAT
MODEL
RANCANG
ALGORITMA
TULIS PROGRAM
COMPILE
Sintak Err
Executable code:
=> Run
Output Err
DOKUMEN TASI
30
DEFINISI
MASALAH
MEMBUAT
MODEL
RANCANG
ALGORITMA
TULIS PROGRAM
COMPILE
Sintak Err
Executable code:
=> Run
Output Err
DOKUMEN TASI
31
DEFINISI
MASALAH
MEMBUAT
MODEL
RANCANG
ALGORITMA
TULIS PROGRAM
COMPILE
Sintak Err
Executable code:
=> Run
Output Err
DOKUMEN TASI
32

Algoritma bisa dibuat dengan:
• Teknik tulisan seperti : Structure english dan
Pseudocode.
• Teknik visual seperti : Flow chart.
33
 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”)
34
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
35


Sewaktu komputer menerima informasi atau
input, maka statement yang biasa digunakan
adalah “Read”, “Get”, “Baca” ,”Input” atau
“KeyIn”
Contoh:
Read Bilangan
Get kode_pajak
Baca nama_mahasiswa
36


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
37

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
38

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
39



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
40
 Jika
ada beberapa perintah yang harus diulang,
maka dapat digunakan keyword “DOWHILE”
dan “ENDDO”.
 Contoh
DOWHILE bil < 10
cetak bil
bil = bil +1
ENDDO
41
Algoritma Menggunakan Kalkulator
Mulai
Nyalakan kalkulator
Kosongkan Kalkulator
Ulangi
Input harga
Tekan tombol Plus (+)
Sampai semua harga diinput
Tampilkan total harga
Matikan kalkulator
Selesai
42
Algoritma Berangkat Kuliah
Mulai
Bangun dari tempat tidur
Mandi Pagi
Sarapan Pagi
Pergi Ke Kampus
Cari Ruang Kuliah
Masuk kelas untuk Kuliah
Selesai
43
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
44
Terminator
Arah
Proses
Konektor
Input/Output
Konektor antar
halaman
Dokumen
Pemilihan
Pengulangan
45
Start
Masukkan
a,b,c
d = b^2 – 4ac
d<0
T
x1=(-b+sqrt(d))/2a
x2 =(-b-sqrt(d))/2a
Y
Cetak Pesan
“Akar imajiner”
Cetak
x1,x2
Stop
46





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.
47

Pemrograman terstruktur merupakan pola
penyusunan program komputer hanya
dengan menggunakan tiga struktur kontrol
yaitu:
1. Sequence
2. Selection
3. Repetition
48
 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
49

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
50


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).
51

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
52
 Beberapa
statement / perintah dapat diulang
dengan menggunakan struktur kontrol
repetition.
 Statement
/ perintah akan tetap diulang selama
kondisi perulangan memenuhi (jika
menggunakan DOWHILE – ENDDO)
53
Contoh:

Bintang = 0
DOWHILE bintang < 5
Cetak bintang
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
54
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.
55
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 rataratanya.
56
 Ulangi
latihan no. 1 s/d no. 5 diatas
dengan menggunakan Flow Chart.
57
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
2 kanibal naik perahu ke seberang kiri
Pindahkan 1 kanibal ke seberang kiri
Perahu kembali ke seberang kanan dgn 1 kanibal
Ulangi langkah 1-3
2 misionaris naik perahu ke seberang kiri
Di seberang kiri, tukar 1 kanibal dgn 1 misionaris di perahu
Perahu kembali ke seberang kanan dgn 1 kanibal dan 1 misionaris
Di seberang kanan, tukar kanibal di perahu dgn 1 misionaris di
seberang kanan
Perahu kembali ke seberang kiri dgn 2 misionaris
Turunkan semua misionaris di perahu ke seberang kiri
Perahu kembali ke seberang kanan dgn 1 kanibal
Ulangi langkah 1-3
2 kanibal naik perahu ke seberang kiri
Turunkan kedua kanibal ke seberang kiri
 Ada
2 gelas kosong berukuran: 5 liter
dan 3 liter
 Bagaimana cara kita mendapatkan air
berukuran 4 liter?
 Bagaimana cara mendapatkan air
berukuran 2 liter?








Masukkan air ke 3 liter hingga penuh
Masukkan air 3 liter ke 5 liter, sisa 2 liter kosong
Masukkan air ke 3 liter hingga penuh
Tuangkan air 3 liter ke sisa 2 liter, berarti sisa 1 liter di
gelas 2 liter
Buang seluruh air di gelas 5 liter tadi
Tuangkan air 1 liter yg ada di gelas 3 liter tadi hingga
ke 5 liter kosong
Masukkan air ke 3 liter hingga penuh
Tuangkan 3 liter ke gelas 5 liter yang sudah ada 1 liter
tadi, hingga kita dapat 4 liter
 Gelas
5 liter diisi penuh
 Buang isinya ke gelas 3 liter
 Sisa 2 liter di gelas 5 liter!
 Mahasiswa
mampu menjelaskan
Algoritma dan membuat Flowchart