new-ku1072_mg02
TRANSCRIPT
5/10/2018 new-KU1072_mg02 - slidepdf.com
http://slidepdf.com/reader/full/new-ku1072mg02 1/11
PEMROGRAMAN
Belajar memrogram : belajar tentang metodologi pemecahan
masalah, kemudian menuangkannya dalam
suatu notasi yang mudah dipahami
Belajar bahasa pemrograman :
belajar memakai suatu bahasapemrograman, aturan tatabahasanya
(syntaxis), instruksi, tatacara pengoperasian
“compiler”
Urutan pekerjaan dalam pembuatanprogram :
1. Pendefinisian masalah apa input & outputnya
2. Penyusunan algoritma diagram alir/ flowchart
3. Pengkodean (coding) menerjemahkan
algoritma kedalam bahasa pemrograman
4. Runing & debugging menjalankan program
dan memperbaiki kesalahan yang ada5. Dokumentasi program arsip program,
termasuk listing program dan penjelasannya
Algoritma :
adalah urutan logis pengambilan keputusan
untuk pemecahan masalah (KBBI – Kamus
Besar Bahasa Indonesia , Balai Pustaka,
1988) urutan langkah-langkah logis penyelesaian masalah yang disusun secara
sistematis
Melaksanakan algoritma berarti mengerjakan
langkah-langkah di dalam algoritma tersebut
pemroses harus mengerti setiap langkah dalam
algoritma
Bila pemrosesnya adalah komputer, makaalgoritma harus ditulis dalam notasi bahasa
pemrograman disebut sebagai program
komputer
Jadi : * algoritma adalah urutan langkah-langkah
penyelesaian masalah
* program komputer adalah realisasi algoritma
dalam bahasa pemrograman
5/10/2018 new-KU1072_mg02 - slidepdf.com
http://slidepdf.com/reader/full/new-ku1072mg02 2/11
Menuliskan Algoritma
• Algoritma dapat dituliskan dengan
berbagai cara:
– Teks
• Level kedekatan dengan kode program: mulai dari
teks bebas sampai pseudocode
– Diagram, misal: bagan alir (flowchart )
Contoh Persoalan 1
• Buatlah algoritma untuk menentukan
apakah suatu bilangan bulat positif adalahbilangan genap atau bilangan ganjil.
Contoh Algoritma 1:
Menggunakan Teks Bebas
1. Bagi bilangan dengan bilangan 2
2. Hitung sisa hasil bagi pada langkah 1.
3. Bila sisa hasil bagi sama dengan 0 maka
bilangan itu adalah bilangan genap tetapi
bila sisa hasil bagi sama dengan 1 maka
bilangan itu adalah bilangan ganjil.
Contoh Algoritma 2:
Menggunakan Pseudocode
ALGORITMA:
input (n)
m ← n mod 2
if m = 0 then output (n, ‘ adalah bilangan genap’)
else { m = 1 } output (n, ‘ adalah bilangan ganjil’)
KAMUS:
n : integer > 0 {input bilangan bulat positif}
m : integer > 0 {hasil sisa pembagian n dgn. 2}
Program Menentukan_Bilangan
{ Menentukan apakah suatu bilangan bulat positif adalah bilangan
ganjil atau genap }
5/10/2018 new-KU1072_mg02 - slidepdf.com
http://slidepdf.com/reader/full/new-ku1072mg02 3/11
Contoh Algoritma 3:
Menggunakan Flowchart
Ke slide 26
Ya
Tida k
Sta rt
input (n)
m = n mod 2{ Hitung sisa
bagi ndenga n 2 }
A
A
m = 0
output( ‘Genap’)
output(‘Ganjil’)
End
Kamus:
n : integer > 0
m : integer > 0
Bagan Alir (Flowchart )
• Bagan alir (flowchart ): skema grafis untuk
merepresentasikan algoritma• Kelebihan:
– Bentuk grafis memudahkan interpretasi dan pembacaan
– Relatif mudah dimengerti
– Relatif mudah untuk dibuat
• Kekurangan: – Tidak ringkas (membutuhkan media penulisan yang relatif besar)
– Untuk algoritma dalam ukuran besar menjadi tidak praktis
– Kurang fleksibel untuk menjelaskan konsep-konsep spesifikdalam pemrograman
• Misalnya: struktur data (type data tidak terdefinisi eksplisit),kondisional dengan banyak kasus, dsb.
Simbol Flowchart
Proses
perhitungan/proses pengolahan data
Proses
Proses
inisialisasi/pember
ian harga awal
Preparation
Arah aliran
program
Garis alir / flow line
Permulaan/akhir
algoritma
Terminator
FUNGSINAMASIMBOL
Simbol Flowchart
Perbandingan
pernyataan,
penyeleksian data
yang memberikanpilihan untuk langkah
selanjutnya
Decision
Permulaan sub
program/proses
menjalankan sub
program
Predefined process/ subprogram
Proses input/output
data, parameter,informasi
Input/output data
FUNGSINAMASIMBOL
5/10/2018 new-KU1072_mg02 - slidepdf.com
http://slidepdf.com/reader/full/new-ku1072mg02 4/11
Simbol Flowchart
Penghubung bagian-bagian
flowchart yang berada pada
halaman yang berbeda
Off Page Connector
Penghubung bagian-bagianflowchart yang berada pada
satu halaman
On Page Connector
FUNGSINAMASIMBOL
Dll.
Dari Spesifikasi Masalah ke Flowchart
Contoh Persoalan 2
• Buatlah sebuah algoritma yang membaca
sebuah harga berupa bilangan bulat yangmewakili pengukuran suhu air (dalamderajat Celcius) pada tekanan atmosfir dan menuliskan wujud air pada temperatur dan tekanan tersebut:
– Jika suhu≤0 derajat, maka wujud air: beku
– Jika suhu>0 derajat dan ≤100 derajat, makawujud air: cair
– Jika suhu<100 derajat, maka wujud air: uap
Contoh Persoalan 2
Start
input(T)
T
output(‘Beku’)
T≤0
output(‘Cair’) output(‘Uap’)
0<T≤100
T>100
End
Kamus
T : integer {suhu air}
Dari Spesifikasi Masalah ke Flowchart
Contoh Persoalan 3
• Buatlah sebuah algoritma yang membaca
sebuah nilai N yang merupakan integer
positif > 0 dan menuliskan output
1,2,3…,N berderet ke bawah, contoh: N =
4
1
2
34
5/10/2018 new-KU1072_mg02 - slidepdf.com
http://slidepdf.com/reader/full/new-ku1072mg02 5/11
Contoh Persoalan
3
Start
input(N)
output(I)
I = 1
I = I + 1
End
I > NTidak
Ya
Kamus:
N : integer > 0 {input bilangan}
I : integer > 0 {counter}
Latihan• Buatlah algoritma dalam bentuk flowchart untuk
persoalan-persoalan berikut: – Menentukan apakah suatu huruf adalah huruf ‘A’ atau bukan.
– Menentukan rangking (urutan) dari 3 buah bilangan bulat yangberbeda dan menuliskan urutannya secara menaik.
– Menentukan apakah masukan tahun (bilangan bulat positif)adalah tahun kabisat atau bukan.
• Buatlah algoritma untuk menghitung nilai faktorial darimasukan sebuah bilangan bulat positif atau 0.
• Buat algoritma untuk menghitung jumlah N suku darideret aritmatika berikut: Sn = 3 + 7 + 11 + …… + (4n-1)
• Buat algoritma untuk mencetak pasangan nilai X dan Y dimana hubungan antara X dan Y memenuhi persamaan Y= X3 – 2X +1 dan nilai x berubah dari – 10 sampai 10.
Contoh persoalan (1) :
ada 2 buah bejana, sebut saja bejana A dan
bejana B, dimana bejana A berisi larutanberwarna merah dan bejana B berisi larutanberwarna biru.Kedua isi bejana tersebut akan dipertukarkan,
sehingga bejana A akan berisi larutanberwarna biru dan bejana B berisi larutan
berwarna merah.Buatlah algoritma pemecahan masalahnya !
•Pendefinisian masalah :
- masukan (input) : bejana A berisi larutan berwarna merah
bejana B berisi larutan berwarna biru
- keluaran (output) : bejana A berisi larutan berwarna biru
bejana B berisi larutan berwarna merah
* Algoritma :
1) tuangkan larutan dari bejana A ke dalam
bejana B2) tuangkan larutan dari bejana B ke dalam
bejana A
5/10/2018 new-KU1072_mg02 - slidepdf.com
http://slidepdf.com/reader/full/new-ku1072mg02 6/11
Algoritma di muka tidak memberikan hasil seperti
yang diharapkan hasil akhir yang diperoleh
adalah bejana A berisi campuran dari larutan
berwarna merah dan biru, sedangkan bejana Bkosong.
Seharusnya :
1) tuangkan larutan dari bejana A ke dalam
bejana kosong C
2) tuangkan larutan dari bejana B ke dalam
bejana A
3) tuangkan larutan dari bejana C ke dalam
bejana B
Contoh persoalan (2) :
diberikan 5 buah bilangan bulat positif, sebut
saja bilangan A, B, C, D, dan E.
Carilah bilangan terkecil diantara kelima
bilangan tersebut !
* Pendefinisian masalah :
- input : bilang bulat positif A, B, C, D, E - output : bilangan terkecil diantara kelima
bilangan tersebut
Algoritma :1. ambil X = A2. bila X > B , maka X = B
bila X <= B , maka X tetap
3. bila X > C , maka X = C bila X <= C , maka X tetap
4. bila X > D , maka X = D bila X <= D , maka X tetap
5. bila X > E , maka X = E
bila X <= E , maka X tetap 6. bilangan terkecil adalah X
Contoh persoalan (3) :
Diberikan 2 buah bilangan bulat positif m dan n,
dimana m > n.
Carilah bilangan pembagi bersama terbesar (PBT)
dari kedua bilangan tersebut (PBT = bilangan bulat positif terbesar yang membagi habis bilangan m dan n)
* Pendefinisian masalah : - input : bilangan bulat positif m dan n,
m>n- output : bilangan pembagi bersama terbesar
untuk bilangan m dan n
5/10/2018 new-KU1072_mg02 - slidepdf.com
http://slidepdf.com/reader/full/new-ku1072mg02 7/11
Algoritma :
1) bagilah bilangan m dengan n, sebut saja
sisanya adalah s
2) jika s = 0, maka PBT = n, selesai
jika s ≠ 0, maka lanjutkan ke langkah 3
3) ganti nilai m dengan n,
ganti nilai n dengan s4) kembali ke langkah 1
STRUKTUR DASAR ALGORITMA
1. SEQUENCE BERURUTAN 2. SELECTION PEMILIHAN 3. REPETITION PENGULANGAN
Contoh persoalan (4) :
Diberikan 5 buah bilangan bulat positif A, B, C, D, E.
Buatlah algoritma agar kelima buah bilangan tersebut
tersusun berurutan dari yang terkecil sampai yang terbesar !
Contoh persoalan (4) :
Diberikan 5 buah bilangan bulat positif A, B, C, D, E.
Buatlah algoritma agar kelima buah bilangan tersebut
tersusun berurutan dari yang terkecil sampai yang terbesar !
Misalnya :
A = 10
B = 15
C = 5
D = 17
E = 2
5/10/2018 new-KU1072_mg02 - slidepdf.com
http://slidepdf.com/reader/full/new-ku1072mg02 8/11
Putaran ke-1 :
10 15 5 17 2
Cari elemen terkecil dari elemen ke-1 sampai ke-5
Elemen ke-5, nilai 2
2 15 5 17 10
Pertukarkan nilai elemen ke-5 dengan elemen ke-1
Putaran ke-2 :
2 15 5 17 10
Cari elemen terkecil dari elemen ke-2 sampai ke-5 Elemen ke-3, nilai 5
2 5 15 17 10
Pertukarkan nilai elemen ke-3 dengan elemen ke-2
Putaran ke-3 :
2 5 15 17 10
Cari elemen terkecil dari elemen ke-3 sampai ke-5
Elemen ke-5, nilai 10
2 5 10 17 15
Pertukarkan nilai elemen ke-5 dengan elemen ke-3
Putaran ke-4 :
2 5 10 17 15
Cari elemen terkecil dari elemen ke-4 sampai ke-5 Elemen ke-5, nilai 15
2 5 10 15 17
Pertukarkan nilai elemen ke-5 dengan elemen ke-4
Algoritma dari penyelesaian masalahpengurutan data :
T0 : kumpulan data ke-1 sampai ke-nbelum terurut membesar
algoritma pengurutan data
T1 : kumpulan data ke-1 sampai ke-n
sudah terurut membesar
Algoritma pengurutan data :
diberikan N buah data yang tersusun secara acak, urutkan kumpulan data tersebut
sehingga : data ke-1≤ data ke-2 ≤ ……… ≤ data ke-N
* Deskripsi :
untuk putaran K=1,2, ….. ,N-1, lakukan :
1) cari data dengan nilai terkecil mulai dari
data ke-K sampai data ke-N 2) pertukarkan data dengan nilai terkecil dengan
data ke-K
5/10/2018 new-KU1072_mg02 - slidepdf.com
http://slidepdf.com/reader/full/new-ku1072mg02 9/11
1.1 Data ke-K dianggap data terkecil (min )1.2 Bandingkan min dengan data
ke-J=K+1,K+2, ….. ,N
1.2.1 untuk J=K+1,K+2, ….. , N lakukan : jika data ke-J lebih kecil dari min , maka
isikan data ke-J sebagai min yang baru
2.1 Tempatkan data ke-K disebuah tempat
sementara (temp )2.2 Tempatkan min di tempat data ke-k (ini
akan berakibat nilai lama terhapus )2.3 Tempatkan nilai yang tersimpan di temp di
tempat min yang lama
DESKRIPSI SECARA LENGKAP
Untuk putaran ke-K=1,2, ……. ,N-1 , lakukan :
1. Data ke-K dianggap data terkecil sementara (min )2. Untuk J=K+1,K+2, ……. , N , lakukan :
jika data ke-J lebih kecil dari min , maka isikan data ke-J
sebagai min yang baru 3. Tempatkan data ke-K di sebuah tempat
sementara(temp ), tempatkan min di tempat data ke-K yang
lama,tempatkan temp di tempat min yang lama
Pengurutan data metode Bubble sort (pengurutan gelembung) : untuk setiap putaran ke-I=1,2,…..,N-1 , lakukan :
mulai dari elemen K=N,N-1, …. , I+1 lakukan :
1. Bandingkan L(K) dengan L(K-1)
2. Pertukarkan L(K) dengan L(K-1) jika
L(K)<L(K-1)
Contoh :
N=6 25 , 27 , 10 , 8 , 76 , 21
Putaran ke-1 :
K=6 : 25 27 10 8 21 76
K=5 : 25 27 10 8 21 76K=4 : 25 27 8 10 21 76
K=3 : 25 8 27 10 21 76
K=2 : 8 25 27 10 21 76
Putaran ke-2 :
K=6 : 8 25 27 10 21 76
K=5 : 8 25 27 10 21 76
K=4 : 8 25 10 27 21 76
K=3 : 8 10 25 27 21 76
Putaran ke-3 :
K=6 : 8 10 25 27 21 76
K=5 : 8 10 25 21 27 76
K=4 : 8 10 21 25 27 76
Putaran ke-4 :
K=6 : 8 10 21 25 27 76
K=5 : 8 10 21 25 27 76
Putaran ke-5 :
K=6 : 8 10 21 25 27 76
5/10/2018 new-KU1072_mg02 - slidepdf.com
http://slidepdf.com/reader/full/new-ku1072mg02 10/11
5/10/2018 new-KU1072_mg02 - slidepdf.com
http://slidepdf.com/reader/full/new-ku1072mg02 11/11
Algoritma Penjumlahan Bilangan Genap
1) Sediakan tempat untuk menampung jumlahbilangan genap dan banyak bilangan genap
sebut Jum dan Jdat
2) masukkan nilai banyak bilangan sebut N
3) masukkan nilai bilangan ( sebanyak N bilangan,
yaitu D(1) sampai dengan D(N))
4) periksalah jenis setiap bilangan, apakah bilangan
genap atau gasal. Bila bilangan adalah bilangangenap, tambahkan nilai bilangan tersebut ke Jum,
dan tambahkan nilai 1 ke Jdat
Mulai
Jdat = 0
Jum = 0
Input N
I = 1 , N
Input D(I)
I = 1
D(I) habis
dibagi 2
ya
tidak
Jdat=Jdat+1
Jum=Jum+1
I = I + 1
I > N
tidak
yaSelesai
Tulis
Jdat, Jum
Algoritma Penjumlahan Bilangan Genap
1) Sediakan tempat untuk menampung jumlah
bilangan genap dan banyak bilangan genap sebut Jum dan Jdat
2) untuk putaran I=1,2, …..,N :
- baca/masukkan data nilai bilangan ke-I
- Bila jenis bilangan adalah bilangan genap,
tambahkan nilai bilangan ke Jum dan nilai Jdat
dinaikkan 1
Mulai
Jdat = 0
Jum = 0
Input N
I = 1 , N
Input Bil
Bil
Habis dibagi 2
ya Jdat=Jdat+1
Jum=Jum+Bil
tidak
Tulis
Jdat,Jum
Selesai