new-ku1072_mg02

11
 PEMROGRAMAN Belajar memr ogram: belajar tent ang metodologi pemecahan masalah, kemudian menuangkannya dal am suatu notasi yang mudah di pahami Belajar bahasa pemr ograman : belajar memakai suat u bahasa pemrograman, aturan tatabahasanya (synt axis) , inst ruksi , tatac ara pengoperasi an “compiler” Urutan pekerjaan dalam pembuatan prog ram : 1. Pendefinisi an masalah apa input & output nya 2. Penyusunan algori tma diagram alir/ flowchart 3. Pengkodean (codi ng) menerjemahkan al gori tma kedalam bahasa pemr ograman 4. Runing & debugging menjal ankan program dan memperbaiki kesalahan yang ada 5. Dokumentasi program arsip program, termasuk list ing program dan penjelasannya  Algoritma : adal ah urutan logi s pengambilan keputusan untuk pemecahan masalah (KBBI – Kamus Besar Bahasa Indonesia , Balai Pus taka, 1988) urutan langkah-langkah logi s penyel esaian masalah yang di susun secara sistematis Mel aks anakan algori tma ber art i menger jakan langkah-langkah di dal am al gori tma tersebut   pemroses harus menger ti seti ap langkah dalam algoritma Bil a pemrosesnya adalah komput er, mak a al gori tma harus di tuli s dalam notasi bahasa pemrograman   di sebut sebagai program komputer Jadi : * algori tma adalah urutan langkah-l angkah penyel esaian masal ah * pr ogr am komput er adalah realisasi algori tma dalam bahasa pemrograman

Upload: angga-fauzi-rohman

Post on 09-Jul-2015

230 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: new-KU1072_mg02

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

Page 2: new-KU1072_mg02

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 }

Page 3: new-KU1072_mg02

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

Page 4: new-KU1072_mg02

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

Page 5: new-KU1072_mg02

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

Page 6: new-KU1072_mg02

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

Page 7: new-KU1072_mg02

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

Page 8: new-KU1072_mg02

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 

Page 9: new-KU1072_mg02

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

Page 10: new-KU1072_mg02

5/10/2018 new-KU1072_mg02 - slidepdf.com

http://slidepdf.com/reader/full/new-ku1072mg02 10/11

Page 11: new-KU1072_mg02

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