• Tidak ada hasil yang ditemukan

Yudha Dwi P. N. Pertemuan 2 Pengantar Algoritma

N/A
N/A
Protected

Academic year: 2021

Membagikan "Yudha Dwi P. N. Pertemuan 2 Pengantar Algoritma"

Copied!
32
0
0

Teks penuh

(1)

Pertemuan 2

Pengantar Algoritma

Yudha Dwi P. N.

(2)

PROSES, INSTRUKSI DAN AKSI

Pada dasarnya sebuah algoritma merupakan

deskripsi pelaksanaan suatu proses.

Selanjutnya sebuah proses dikerjakan oleh

pemroses menurut algoritma yang sudah

ditulis, dalam hal ini merupakan suatu

instruksi

Kemudian tiap instruksi mengerjakan suatu

aksi

Bila suatu aksi dilaksanakan,maka sejumlah

operasi yang bersesuaian dengan aksi akan

(3)

Proses, Instruksi, dan Aksi

Pada dasarnya, sebuah algoritma merupakan deskripsi pelaksanaan suatu proses. Algoritma itu sendiri disusun oleh sederetan langkah instruksi yang logis. Tiap langkah instruksi tersebut mengerjakan suatu tindakan (aksi). Bila suatu aksi

dilaksanakan, maka sejumlah operasi yang bersesuaian dengan aksi itu dikerjakan oleh pemroses. Efek dari pengerjaan suatu aksi dapat diamati dengan

membandingkan keadaan pada saat aksi belum dimulai (t0), dan keadaan pada saat

aksi selesai dikerjakan (t1).

t0 : keadaan sebelum aksi dikerjakan

aksi

t1 : keadaan setelah aksi dikerjakan

Sebagai contoh, tinjau kembali algoritma yang menggambarkan proses

mempertukarkan larutan dari dua buah bejana A dan B. Pada setiap pelaksanaan aksi amati keadaan awal dan keadaan akhir akhirnya

(4)

Proses, Instruksi, dan Aksi….

t0 : Bejana A kosong, bejana B berisi larutan berwarna biru

2. Tuangkan larutan dari bejana B ke dalam bejana A

t1 : Bejana A berisi larutan berwarna biru, bejana B kosong

t0 : Bejana B kosong, bejana C berisi larutan berwarna merah

3. Tuangkan larutan dari bejana C ke dalam bejana B

t1 : Bejana B berisi larutan berwarna merah, bejana A sudah berisi larutan

berwarna biru (bejana C kosong)

t0 : Bejana A berisi larutan berwarna merah, bejana B berisi larutan berwarna

biru (bejana C masih kosong)

1. Tuangkan larutan dari bejana A ke dalam bejana C

(5)

Contoh 1 :

Terdapat Suatu Algoritma

PENGURUTAN DATA

Diberikan tabel yang berisi N buah data

bilangan yang tersusun acak. Urutkan

seluruh elemen tabel tersebut

sedemikian sehingga terurut menaik;

(6)

Sebagai Ilustrasi :

Misalkan banyaknya data yang terdapat

pada tabel adalah 5 buah dengan

perincian sebagai berikut :

(7)

LANGKAH PENYELESAIAN

Algoritma pengurutan yang cukup

sederhana adalah dengan mencari

elemen yang terkecil di dalam tabel mulai

dari data ke 1 sampai data ke n, lalu

menempatkan pada posisi elemen yang

saling dipertukarkan tersebut, istilah yang

sering diberikan adalah PASS

(8)

PASS 1

Carilah elemen terkecil ( min ) mulai dari

elemen ke 1 sampai ke 5

20

30

10

34

2

Pertukarkan min = 2 dengan data pertama ( 20 )

sehingga hasilnya adalah

(9)

PASS 2

Carilah elemen terkecil ( min ) mulai dari

elemen ke 2 sampai ke 5

2

30

10

34

20

Pertukarkan min = 10 dengan data kedua ( 30 )

sehingga hasilnya adalah

(10)

PASS 3

Carilah elemen terkecil ( min ) mulai dari

elemen ke 3 sampai ke 5

2

10

30

34

20

Pertukarkan min = 20 dengan data ketiga ( 30 )

sehingga hasilnya adalah

(11)

PASS 4

Carilah elemen terkecil ( min ) mulai dari

elemen ke 4 sampai ke 5

2

10

20

34

30

Pertukarkan min = 30 dengan data keempat ( 34 )

sehingga hasilnya adalah

(12)

Algoritma PENGURUTAN DATA

Diberikan tabel yang berisi N buah data

bilangan yang tersusun acak. Urutkan sueluruh

elemen tabel tersebut sedemikian sehingga

terurut menaik:

Elemen ke-1 < elemen ke-2 < … < elemen ke-N

DESKRIPSI:

1.1 Mulai dari pass k=1

1.2 Selama ke-1 < N-1 Lakukan

1.2.1 cari elemen terkecil (min) mulai dari

elemen ke-k sampai elemen ke-N

1.2.2 pertukaran min dengan elemen ke-k.

(13)

Algoritma PENGURUTAN DATA

Diberikan tabel yang berisi N buah data bilangan yang tersusun acak. Urutkan sueluruh elemen tabel tersebut sedemikian sehingga terurut menaik:

Elemen ke-1 < elemen ke-2 < … < elemen ke-N DESKRIPSI:

1.1 Mulai dari pass k=1

1.2 Selama ke-1 < N-1 Lakukan

1.2.1.1 elemen ke-k dianggap elemen terkecil sementara (min)

1.2.1.2.1 selama akhir tabel belum terlampau lakukan 1.2.1.2.1.1 tinjau elemen berikutnya di dalam tabel 1.2.1.2.1.2 jika elemen ini lebih kecil dari min, maka

min yang baru adalah elemen ini

1.2.2.1 tempatkan elemen ke-k di tempat sementara (temp) 1.2.2.2 tempatkan min pada elemen ke-k

1.2.2.3 tempatkan temp di tempat min yang lama 1.2.3 ulangi 1.2 untuk pass berikutnya (k+1)

(14)

Struktur Dasar Algoritma

Algoritma berisi langkah suatu masalah. Langkah-langkah tersebut dapat berupa runtunan aksi, pemilihan aksi, dan pengulangan aksi. Ketiga jenis langkah tersebut membentuk konstruksi suatu algoritma. Jadi, sebuah algoritma dapat dibangun dari tiga buah struktur dasar, yaitu:

1. Runtunan (sequence) 2. Pemilihan (selection) 3. Pengulangan (repetition)

1. Runtunan

Sebuah runtunan terdiri dari satu atau lebih instruksi. Tiap instruksi dikerjakan secara berurutan sesuai dengan urutan penulisannya, yakni sebuah instruksi dilaksanakan setelah instruksi sebelumnya selesai dilaksanakan. Urutan

instruksi menetukan keadaan akhir algoritma. Bila urutan diubah, maka hasil akhirnya mungkin juga bisa berubah. Perhatikan runtunan instruksi berikut:

A1 A2

(15)

Struktur Dasar Algoritma…

Contoh

misalkan seorang pemuda tiba di tepi sebuah sungai. Pemuda tersebut membawa seekor kambing, seekor serigala, dan sekeranjang sayur. Mereka bermaksud

menyeberangi sungai. Pemuda tersebut menemukan sebuah perahu kecil yang hanya dapat memuat satu bawaannya setiap kali menyeberang.

Situasinya dipersulit dengan kenyataan bahwa serigala tidak dapat ditinggal berdua dengan kambing (karena serigala akan memangsa kambing) atau kambing tidak dapat ditinggal berdua dengan sekeranjang sayur (karena kambing akan memakan sayur). Buatlah algoritma untuk menyebrangkan pemuda dan seluruh bawaannya itu sehingga mereka sampai ke seberang sungai dengan selamat.

Buatlah algoritma untuk menyebrangkan pemuda dan seluruh bawaannya itu sehingga mereka sampai ke seberang sungai dengan selamat.

(16)

Algoritma PENYEBRANGAN SUNGAI

Menyeberankan pemuda (P) dan bawaanya

berupa srigala (S), kambing(K), dan

sekeranjang sayur (Y) dengan sebuah

perahu kecil yang hanya dapat memuat 2

item (pemuda dan salah satu bawaannya)

(17)

Deskripsi

1.

{ Sisi A : ( P,H,K,Y ) Sisi B : ( -,-,-,- )}

PEMUDA MENYEBERANGKAN KAMBING DARI A KE B

2.

{ Sisi A : ( -,H,-,Y ) Sisi B : (P,-,K,- )}

PEMUDA MENYEBERANGKAN SENDIRI DARI B KE A

3.

{ Sisi A : ( P,H,-,Y ) Sisi B : ( -,-,K,- )}

PEMUDA MENYEBERANGKAN HARIMAU DARI A KE B

4.

{ Sisi A : ( -,-,-,Y )

PEMUDA MENYEBERANGKAN KAMBING DARI B KE A

Sisi B : ( P,H,K,- )}

5.

{ Sisi A : ( P,-,K,Y ) Sisi B : ( -,H,-,- )}

PEMUDA MENYEBERANGKAN SAYUR DARI A KE B

6.

{ Sisi A : ( -,-,K,- )

PEMUDA MENYEBERANGKAN SENDIRI DARI B KE A

Sisi B : ( P,H,-,Y )}

7.

{ Sisi A : ( P,-,K,- ) Sisi B : ( ,H,-,Y )}

PEMUDA MENYEBERANGKAN KAMBING DARI A KE B

(18)

Struktur Dasar Algoritma…

2. Pemilihan

Adakalanya sebuah instruksi dikerjakan jika kondisi tertentu dipenuhi. Contoh dalam algoritma pencarian data terkecil dilakukan dengan

membanding-bandingkan data. Mula-mula data pertama dianggap data terkecil sementara (min). Kemudian membandingkan min dengan data ke-2, 3, ….. N. Selama

proses perbandingan, bila data lebih kecil dari min, maka date ke-j itu menjadi min yang baru. Langkah terakhir ditulis dalam pernyataan berikut

Jika data ke-j lebih kecil dari min, maka isikan data ke-j sebagai min yang baru Pernyataan diatas dapat ditulis dalam struktur umum

if kondisi then aksi

Dalam bahasa indonesia, if berati “jika” dan then artinya “maka”. Kondisi

adalah persyaratan yang dapat bernilai benar atau salah. Aksi hanya dilaksanakan apabila kondisi bernilai benar. Sebaliknya, apabila kondisi bernilai benar.

(19)

Struktur Dasar Algoritma…

Struktur pemilihan if-then hanya memberikan satu pilihan aksi bila kondisi (persyartan) dipenuhi (bernilai benar), dan tidak memberi pilihan aksi lain bila kondisi bernilai salah.

Bentuk pemilihan yang lebih umum ialah pemilihan satu dari dua buah aksi bergantung pada nilai kondisinya.

Else

artinya “kalau tidak”. Bila kondisi bernilai benar, aksi 1 akan dikerjakan, tetapi kalau tidak, aksi 2 yang akan dikerjakan, Misalnya pada pernyataan berikut:

if kondisi then aksi 1

else

aksi 2

if hari hujan then

pergilah dengan becak else

pergilah dengan motor

Jika hari memang hujan, maka aksi “pergilah dengan becak” dilakukan, sebaliknya aksi “pergilah dengan motor” dilakukan bila hari tidak hujan

(20)

Struktur Dasar Algoritma…

Apabila pilihan aksi yang dilakukan lebih dari dua buah, maka struktur pemilihannya menjadi lebih rumit, seperti pada contoh berikut (pemilihan bersarang)

Perhatikanlah bahwa penggunaan indentasi (rongak kosong) membuat algoritma menjadi lebih mudah dibaca. Tanpa indentasi, algoritma menjadi lebih sulit dibaca, misalnya algoritma ditulis seperti dibawah ini

if lampu pengatur lalu lintas berwarna merah then anda harus berhenti

else

if lampu pengatur lalu lintas berwarna kuning then anda boleh jalan tapi dengan hati-hati

else

anda dipersilahkan terus berjalan

if lampu pengatur lalu lintas berwarna merah then anda harus berhenti

Else if lampu pengatur lalu lintas berwarna kuning then anda boleh jalan tapi dengan hati-hati else

(21)

Struktur Dasar Algoritma…

Contoh lain dari pemilihan bersarang adalah menentukan bilangan terbesar dari tiga buah bilangan: x, y, dan z.

Kelebihan struktur pemilihan terletak pada kemampuannya yang memungkinkan pemroses mengikuti jalus aksi yang berbeda berdasarkan kondisi yang ada. Tanpa struktur pemilihan, kita tidak mungkin menulis algoritma untuk permasalahan praktis yang demikian kompleks.

if x > y then

if x > z then

tulis x sebagai bilangan terbesar else

tulis z sebagai bilangan terbesar else

if y > z then

tulis y sebagai bilangan terbesar else

(22)

Struktur Dasar Algoritma…

3. Pengulangan

Salah satu kelebihan komputer adalah kemampuannya untuk mengerjakan pekerjaan yang sama berulang kali tanpa mengenal lelah.

Sewaktu duduk di sekolah dasar, bila anda pernah dihukum oleh guru untuk menuliskan sebuah kalimat sebanyak 500 kali, misalnya dikarenakan anda nakal tidak mengerjakan PR. Misalkan kalimat yang harus ditulis 500 kali tersebut adalah:

“Saya berjanji tidak akan nakal dan malas lagi”

Bila pekerjaan menulis kalimat ini diserahkan kepada komputer, maka pemrogram mungkin menuliskannya sebagai berikut:

(23)

Struktur Dasar Algoritma…

Tentu saja algoritma untuk menuliss 500 buah kalimat seperti diatas tidak elegan, karena instruksi

“Saya berjanji tidak akan nakal dan malas lagi”

harus dibuat di dalam teks algoritma sebanyak 500 kali. Untuk mengatasi hal ini, maka anda dapat menggunakan struktur pengulangan for-do sehingga algoritma menulis 500 buah kalimat dapat ditulis sebagai berikut:

J adalah pencacah pengulangan yang dari 1 sampai 500. Komputer akan

melaksanakan aksi tulis kalimat tersebut sebanyak 500 kali. Struktur pengulangan ini dapat ditulis secara umum sebagai berikut:

for pencacah pengulangan dari 1 sampai N do aksi

(24)

Struktur Dasar Algoritma…

Struktur pengulangan yang kedua adalah REPEAT yang terdiri atas kata kunci repeat-until (repeat artinya “ulangi” dan until artinya “sampai” atau “hingga”) yang mempunyai bentuk umum sebagai berikut:

yang artinya adalah pengulangan aksi dilakukan hingga kondisi (persyaratan) berhenti terpenuhi.

repeat aksi

Until kondisi

Struktur pengulangan yang ketiga adalah WHILE dengan kata kunci while-do (while artinya “selagi” atau “selama” dan do artinya “lakukan”) yang mempunyai bentuk umum sebagai berikut:

while kondisi do aksi

yang artinya adalah selama kondisi (persyaratan) pengulangan masih benar, maka aksi dikerjakan. Perbedaannya dengan repeat-until, jika pada repeat-until

(25)

Struktur Dasar Algoritma…

Meskipun struktur repeat-until dan while-do mempunyai fungsi yang mirip

sehingga pada beberapa kasus dapat saling menggantikan, namun secara umum penggunaannya bergantung pada spesifikasi masalah.

(26)

Latihan

Tiga pasang suami istri yang sedang menempuh perjalanan sampai ke sebuah sungai. Di situ mereka menemukan sebuah perahu kecil yang hanya bisa membawa tidak lebih dari dua orang setiap kali menyebrang. Penyebrangan sungai dirumitkan oelh kenyataan bahwa para suami istri sangan pencemburu dan tidak mau meninggalkan istri-istri mereka jika ada lelaki lain. Tulislah alogaritma untuk menunjukan bagaimana penyebrangan itu bisa dilakukan.

(27)

Notasi algoritma bukan merupakan notasi bahasa

pemrograman, namun notasi ini dapat diterjemahkan ke

dalam berbagai bahasa pemrograman. Meskipun notasi

algoritma tidak berbentuk baku seperti notasi bahasa

pemrograman, namun konsistensi terhadap notasi perlu

diperhatikan untuk menghindari terjadinya kekeliruan.

Bentuk notasi algoritma:

•Uraian deskriptif

•Diagram-alir (flowchart)

•Pseudocode

(28)

Uraian deskriptif

Dengan notasi bergaya uraian, deskripsi setiap langkah dijelaskan

dengan bahasa yang gamblang. Proses diawali dengan kata kerja

seperti ‘baca’ atau ‘membaca’, ’hitung’ atau ‘menghitung’, ‘bagi’ atau

‘membagi’, ‘ganti’ atau ‘membagi’, dan sebagainya, sedangkan

pernyataan kondisional dinyatakan dengan ‘jika ... maka ...’.

Contoh menghitung luas dan keliling suatu lingkaran:

Algoritma Hitung_Luas_dan_Keliling_Lingkaran

DESKRIPSI:

• Masukkan jari-jari lingkaran (r)

• Hitung luas lingkaran dengan rumus L = p * r2

• Hitung keliling lingkaran dengan rumus K = 2 * p *

r

(29)

Flowchart

Flowchart adalah gambaran

dalam bentuk diagram alir dari

algoritmaalgoritma dalam suatu

program, yang menyatakan arah

alur program tersebut.

Contoh menghitung luas dan

(30)

Simbol-simbol

diagram aliran

(31)

Pseoudocode

Notasinya yang menyerupai notasi bahasa pemrograman tingkat

tinggi, khususnya Bahasa C dan Pascal.

Contoh

Algoritma Hitung_Luas_dan_Keliling_Lingkaran

{ Dimasukkan nilai jari-jari lingkaran (r). Hitung &

cetak luas & keliling lingkaran dengan rumus

L=phi*r*r dan K=2*phi*r }

DEKLARASI:

const phi = 3.14

r, L, K = real

DESKRIPSI:

read(r)

L ¬ phi * r * r

K ¬ 2 * phi * r

write(„Luas lingkaran = „,L)

write(„Keliling lingkaran = „,K)menghitung luas dan

keliling suatu lingkaran

(32)

Tugas Rumah

Referensi

Dokumen terkait

(1) Pejabat Pegawai Negeri Sipil tertentu dilingkungan Pemerintah Kota Pangkalpinang diberi wewenang Khusus Penyidik untuk melakukan penyidikan tindak pidana di bidang

Pembelajaran Sejarah Berbasis Pendekatan Multikultural dan Perspektif Sejarah Lokal, Nasional, Global, untuk Integrasi Bangsa (Studi Kuasi Eksperimental Terhadap

Mewujudkan rancangan gedung terminal penumpang Bandar Udara Internasional Yogyakarta di Kulon Progo yang merepresentasikan tiga elemen utama pembentuk poros imaginer

jenis isolat yang dimanfaatkan untuk rehabilitasi dan restorasi Paket Iptek  Demplot kegiatan rehabilitasi dan restorasi hutan mangrove serta lahan bekas tambang

(FISIP

SISTEM PENDUKUNG KEPUTUSAN PEMILIHAN MAHASISWA BERPRESTASI MENGGUNAKAN METODE AHP DAN LOGIKA FUZZY..

Hasil yang ditemukan dalam penelitian ini yaitu keenam informan memaknai olahraga calisthenics selain sebagai olahraga yang menyehatkan, olahraga calisthenics juga

Penelitian ini digunakan untuk menjawab permasalahan, apakah penggunaan metode Numbered Heads Together (NHT) dapat meningkatkan hasil belajar mata pelajaran