Putaran ke-1
Download
Report
Transcript Putaran ke-1
PEMROGRAMAN
Belajar memrogram :
belajar tentang metodologi pemecahan
masalah, kemudian menuangkannya dalam
suatu notasi yang mudah dipahami
Belajar bahasa pemrograman :
belajar memakai suatu bahasa
pemrograman, aturan tatabahasanya
(syntaxis), instruksi, tatacara pengoperasian
“compiler”
Urutan pekerjaan dalam pembuatan
program :
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 ada
5. 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, maka
algoritma 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
Contoh persoalan (1) :
ada 2 buah bejana, sebut saja bejana A dan
bejana B, dimana bejana A berisi larutan
berwarna merah dan bejana B berisi larutan
berwarna biru.
Kedua isi bejana tersebut akan dipertukarkan,
sehingga bejana A akan berisi larutan
berwarna 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 B
2) tuangkan larutan dari bejana B ke dalam
bejana A
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 B
kosong.
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 = A
2. 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
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 s
4) 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 !
Misalnya :
A = 10
B = 15
C= 5
D = 17
E= 2
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 masalah
pengurutan data :
T0 : kumpulan data ke-1 sampai ke-n
belum 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
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
K=5 : 25
K=4 : 25
K=3 : 25
K=2 :
8
27
27
27
8
25
10
10
8
27
27
8 21
8 21
10 21
10 21
10 21
76
76
76
76
76
Putaran ke-2 :
K=6 :
8
K=5 :
8
K=4 :
8
K=3 :
8
25
25
25
10
27
27
10
25
10
10
27
27
21
21
21
21
76
76
76
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
Pengurutan data metode Selection sort
(pengurutan pilih) :
1. Jumlah putaran = N – 1
2. Untuk setiap putaran ke-I = 1,2, …. ,jumlah putaran ;
lakukan :
- cari elemen terbesar mulai dari elemen ke-1
sampai elemen ke-N
- pertukarkan elemen terbesar dengan elemen
ke-N
- nilai N kurangi satu
Pengurutan data metode Insertion sort (pengurutan
sisip) :
Untuk setiap putaran ke-I=2,3, … , N ; lakukan :
* berikan nilai D(I) kepada x
* sisipkan x pada tempat yang sesuai antara D(1) …. D(I)
Contoh : N=6 25 , 27 , 10 , 8 , 76 , 21
D(1) D(2) D(3) D(4) D(5) D(6)
Putaran ke-2 : x=D(2)=27 harus dicari tempat yang tepat diantara D(1) dan D(2)
dengan cara menggeser elemen-elemen disebelah kanannya
25 , 27 , 10 , 8 , 76 , 21
Putaran ke-3 : x=D(3)=10 harus dicari tempat yang tepat diantara D(1) dan D(3)
dengan cara menggeser elemen-elemen disebelah kanannya
10 , 25 , 27 , 8 , 76 , 21
Putaran ke-4 : x=D(4)=8 harus dicari tempat yang tepat diantara D(1) dan D(4)
dengan cara menggeser elemen-elemen disebelah kanannya
8 , 10 , 25 , 27 , 76 , 21
Putaran ke-5 : x=D(5)=76 harus dicari tempat yang tepat diantara D(1) dan D(5)
dengan cara menggeser elemen-elemen disebelah kanannya
8 , 10 , 25 , 27 , 76 , 21
Putaran ke-6 : x=D(6)=21 harus dicari tempat yang tepat diantara D(1) dan D(6)
dengan cara menggeser elemen-elemen disebelah kanannya
8 , 10 , 21 , 25 , 27 , 76
Contoh : N=6 25 , 27 , 10 , 8 , 76 , 21
D(1) D(2) D(3) D(4) D(5) D(6)
banyak putaran adalah 5 kali
Putaran ke-1 (N=6) :
elemen terbesar D(5) = 76 pertukarkan dengan
elemen ke-6
: 25 27 10 8 21 76
Putaran ke-2 (N=5) :
elemen terbesar D(2) = 27 pertukarkan dengan
elemen ke-5
: 25 21 10 8 27 76
Putaran ke-3 (N=4) :
elemen terbesar D(1) = 25 pertukarkan dengan
elemen ke-4
:
8 21 10 25 27 76
Putaran ke-4 (N=3) :
elemen terbesar D(2) = 21 pertukarkan dengan
elemen ke-3
:
8 10 21 25 27 76
Putaran ke-5 (N=2) :
elemen terbesar D(2) = 10 pertukarkan dengan
elemen ke-2
:
8 10 21 25 27 76
Tinjauan :
metode Bubble sort :
* tidak efisien karena banyaknya operasi pertukaran
yang dilakukan pada setiap langkah pencarian elemen
terbesar memerlukan waktu yang (relatif) lebih
lama dibandingkan metode lain
* sederhana dan mudah dipahami
metode Selection sort :
* dibandingkan dengan metode Bubble sort, metode ini
memiliki kinerja lebih baik operasi pertukaran
hanya satu kali pada setiap putaran waktu yang
diperlukan lebih singkat
metode Insertion sort :
* diperlukan banyak operasi pergeseran untuk mencari
posisi yang tepat untuk data yang banyak, jumlah
operasi pergeseran meningkat secara kuadratik
tidak praktis untuk data yang banyak
Algoritma Penjumlahan Bilangan Genap
1) Sediakan tempat untuk menampung jumlah
bilangan 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 bilangan genap, tambahkan nilai
bilangan tersebut ke Jum , dan tambahkan
nilai 1 ke Jdat
Mulai
Tulis
Jdat, Jum
Jdat = 0
Selesai
ya
Jum = 0
tidak
I>N
Input N
I=I+1
I=1,N
Input D(I)
I=1
tidak
D(I) habis
dibagi 2
ya
Jdat=Jdat+1
Jum=Jum+1
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
Selesai
Jum = 0
Tulis
Input N
Jdat,Jum
I=1,N
tidak
Bil
Input Bil
Habis dibagi 2
ya
Jdat=Jdat+1
Jum=Jum+Bil