paparan algoritma pemrograman

28
ALGORITMA DAN PEMROGAMAN

Upload: independent

Post on 26-Feb-2023

1 views

Category:

Documents


0 download

TRANSCRIPT

ALGORITMADAN

PEMROGAMAN

Kata algoritma, mungkin bukan sesuatu yang asing bagi kita. Penemunya adalah seorang ahli matematika dari Uzbekistan yang bernama Abu Abdullah Muhammad Ibn Musa al-Khwarizmi (770-840). Di literatur barat dia lebih terkenal dengan sebutan Algorizm. Panggilan inilah yang kemudian dipakai untuk menyebut konsep algorithm yang ditemukannya.Dalam bahasa Indonesia disebut sebagai ALGORITMA.

Modul 1PENGENALAN ALGORITMA

Apa yang dimaksud dengan algorima ?

Algoritma adalah kunci dari bidang ilmu komputer, karena banyak bidang di bawah ilmu komputer yang lahir berdasarkan konsep algoritma. Pada hakekatnya algoritma juga adalah kunci dari kehidupan kita. Cara membuat masakan (resep masakan) adalah juga sebuah contoh nyata dari algoritma.

Solusi dari suati masalah yang harus dipecahkan dengan menggunakan komputer.Algoritma harus di buat secara runut agar komputer mengerti dan mampu mengeksekusinya. Analisis kasus sangat dibutuhkan dalam membuat sebuah algoritma. Ketajaman dalam menganalisa sebuah kasus dapat dilatih dengan menyelesaikan kasus-kasus algoritma, mulai dari yang paling sederhana sampai rumit.

Algoritma berarti solusi..?

1.1 Definisi ALGORITMA• Sebuah Prosedur (yang efektif) didefinisikan sebagai himpunan hingga instruksi yang bersifat diskrit dan jelas, serta dapat dijalankan secara mekanik. Untuk pemecahan dengan komputer, pengertian dapat dijalankan secara mekanik yang diartikan sebagai dapat dibuatkan Program komputernya.

• Semi-algoritma adalah Prosedur yang mampu menghasilkan pemecahan atau solusi masalah, bila solusi memang ada, dan kemudian berhenti.

• Algoritma adalah Semi-algoritma yang mampu mendeteksi tidak adanya solusi, bila solusi memang tidak ada, dan mampu pula berhenti.

Singkatnya, Algoritma merupakan suatu himpunan hingga instruksi yang secara jelas memperinci langkah-langkah pelaksanaan, dalam pemecahan suatu masalah tertentu, atau suatu kelas masalah tertentu, dengan dituntut pula bahwa himpunan instruksi tersebut dapat dilaksanakan secara mekanik.

Kesabaran sangat dibutuhkan dalam mempelajari algoritma yang harus dipikirkan secara logika dengan pemikiran yang lebih mudah dimengerti (menggunakan gambaran-gambaran tertentu di dalam pikiran) agar dapat lebih mudah di mengerti dan dapat lebih mudah dipetakan (diubah) menjadi bahasa pemrograman untuk dieksekusi oleh komputer. Algoritma harus dibuat dengan pemikiran yang detail dari proses-proses yang ada di logika kita.

Contoh 1:Sebagai contoh yang mudah, prosedur yang dapat kita gunakan ketika kita ingin mengirimkan surat kepada teman, yaitu :1. Tulis surat pada secarik kertas surat ;2. Ambil sampul surat;3. Masukan surat ke dalam sampul;4. Tutup sampul surat menggunakan perekat ;5. Jika kita ingat alamat teman tersebut,

maka tulis alamat pada sampul surat. Jika tidak ingat , lihat lebih dulu pada buku alamat, baru kemudian kita tulis alamat pada pada sampul surat;

6. Tempel perangko pada surat;7. Bawa surat ke kantor pos untuk di poskan.

1.Baca a2.Masukkan x sama dengan 13.Hitung y sebesar x * x4.Jika y tidak sama dengan a maka

cetak x sebagai akar dari a. selesai5.Tambah nilai x dengan 16.Pergi ke langkah 3

Contoh 2:Berikut ini contoh Prosedur untuk menyelesaikan masalah komputasi akar bulat positif dari suatu bilangan bulat (integer) positif a, yaitu :

10 INPUT A 20 X = 1 30 Y = X * X 40 IF Y = A THEN PRINT X : END 50 X = X + 1 60 GO TO 30

Kalau kita masukan nilai 4 misalnya, maka akan tercetak nilai 2, sebagai akar dari 4.

Contoh 3:Kita dapat membuatkan sebuah program Prosedur diatas, contohnya dalam bahasa BASIC berikut ini :

Namun, bila kita masukan nilai 5 misalnya, Prosedur akan berlanjut tak berhenti, karena A = 5 akar bulatnya tidak ada.Terlihat Prosedur diatas merupakan sebuah Semi-algoritma bukan Algoritma.Sebuah Semi-algoritma selalu dapat disempurnakan dengan suatu cara/modifikasi menjadi Algoritma.Contoh penyempurnaan Semi-algoritma diatas menjadi Algoritma :45 IF Y > A THEN PRINT “TIDAK ADA AKAR”: END

Contoh 4 :Dibawah ini terdapat sebuah Algoritma yang sederhana berisikan instruksi dalam bahasa Indonesia sehari-hari.MasalahTentukan bilangan terbesar diantara 3 bilangan bulat yang diberikan.

Algoritma secara garis besarnya adalah:1.Bandingkan bilangan bulat pertama dan kedua, kemudian tentukan mana yang lebih besar di antara mereka.

2.Bandingkan bilangan tadi (bilangan yang lebih besar hasil langkah 1) dengan bilangan ketga. Bilangan yang lebih besar di sini merupakan bilangan besar.

Algoritma dengan langkah yang lebih terperinci adalah sebagai berikut:1.Baca (sebagai input) bilangan yang pertama; sebut sebagai NUM1.2.Baca (sebagai input) bilangan yang kedua; sebut sebagai NUM2.3.Bandingkan NUM1 dengan NUM2, kita ambil yang lebih besar, dan sebut bilangan tersebut BESAR.4.Baca (sebagai input) bilangan yang ketiga; sebut sebagai NUM3.5.Bandingkan BESAR dengan NUM3, dan pilih yang lebih besar, jika keduanya sama besar, pilih BESAR; dan sebut bilangan tersebut BESAR.6.Keluarkan, sebagai output, BESAR.7.Selesai.

Untuk jelasnya, mengenai pelaksanaan Algoritma diatas, misalkan ketiga bilangan tersebut adalah 3, 9, 71.Kita baca bilangan pertama, yakni 3. Jadi NUM1 adalah

32.Kita baca bilangan kedua, yakni 9. Jadi NUM2 adalah 93.Kita bandingkan NUM1 dengan NUM2, yakni 3 dengan 9.

Kita ambil yang lebih besar, yakni 9, kita sebut sebagai BESAR.

4.Kita baca bilangan ketiga, yakni 7. Jadi NUM3 adalah 7

5.Kita bandingkan BESAR dengan NUM3, yakni 9 dengan 7. Kita ambil yang lebih besar, yakni 9, nilai BESAR adalah 9.

6.Kita keluarkan nilai BESAR, yakni 9, sebagai output.7.Selesai

CATATANPerhatikan bahwa keputusan yang diamibil didalam perancangan Algoritma dibuat sesuai pilihanan dari perancang bersangkutan (misalnya, langkah ke-4 harus dibuat mendahului langkah ke-3; jika dua bilangan tersebut sudah sama di lanjutkan ke-3, pilihsalah satu). Walaupun demikian, langkah-langkah lain tidak dapat diambil tanpa mengganggu kesatuan Algoritma tersebut (misalnya, langkah ke-4 harus selalu mendahului langkah ke-5).

Contoh 5 :Beriku ini perluasan dari persoalan pada Conoh 1-4 diatas.MasalahTentukan bilangan terbesar, diantara N buah bilangan diberikan, dengan N > 2

 

AnalisisKarena Algoritma harus dapat diaplikasikan pada setiap N > 2, N harus menjadi parameter. Oleh karenanya, besarnya N harus menjadi salah satu input untuk Program, bersama dengan bilangannya sendiri.

ALGORITMA1.Input (masukan) N2.Input (masukan) bilanganpertama; sebut NUM13.Input (masukan) bilangankedua; sebut BESAR4.Buatlah pencacah atau counter untuk menghitung banykanya bilangan yang sudah dibaca, sebut pecahan tersebut HITUNG. Isilah sebagai harga awal dari HITUNG adalah 2.

5.Bandingkan NUM1 dengan BESAR, jika NUM1 lebih besar daripada BESAR, tempatkan BESAR = NUM1.

6.Jika HITUNG = N, output adalah BESAR, kemudian berhenti. Jika HITUNG belum sama dengan N tambahkan 1 pada nilai HITUNG. Masukan bilangan berikutnya sebut NUM1, kemudian laksankan lagi langkah ke-5 ini.

CATATANDi sini tidak ada maksud untuk menyimpan bilangan tersebut di dalam memori. Kita tidak memerlukan bilangan-biilangan yang bukan bilangan terbesar.

Silahkan Anda laksanakan Algoritma pada Contoh 5 tersebut diatas untuk 7 buah bilangan berikut ini :11 5 2 6 4 13 9

Setelah itu, laksanakan untuk data yang Anda buat sendiri dan lihat ketepatan hasilnya.

1. Membuat kotak kosong di tanah lapang untuk menyimpan kentang yang akan dikupas.

2. Mengisi kotak kosong untuk kentang dengan kentang yang akan dikupas.

3. Membuat kotak kosong di tanah lapang untuk menyimpan pisau yang akan digunakan mengupas kentang.

4. Mengisi kotak kosong dengan pisau yang akan digunakan untuk mengupas kentang.

5. Setelah pisau dan kentang sudah siap di tanah lapang, maka barulah kita bisa melakukan proses pengupasan kentang.

Contoh kasus :

Memetakan Algoritma ke dalam Bahasa PemrogramanKita pasti sudah mengerti langkah-langkah mengupas kentang seperti di atas.Masalahnya adalah, kita harus membuat langkah-langkah solusi yang di inginkan harus menggunakan bahasa yang dimengerti oleh komputer yang dikemas dalam bentuk program komputer.

1. Membuat langkah-langkah yang dibutuhkan untuk menyelesaikan masalah dengan menggunakan bahasa manusia seperti contoh pembuatan mengupas kentang diatas secara runut mulai dari inisialisasi, proses penyelesaian dan finalisasi.

No.

Tahapan Algoritma Keterangan

1. Deklarasi Mendeklaraskan kotak kosong yang dipakai sebagai tempat untuk menyimpan sesuatuContoh kode dengan bahasa algoritmik pada tahap deklarasi adalah sebagai berikut:kentang : intergerpisau : interger

2. Inisialisasi Merupakan tahapan mempersiapkan proses yang akan dikerjakan untuk menyelesaikan masalah misalnya mengisi kotak-kotak kosong yang akan dipergunakan untuk menyelesaikan permasalahan.Contoh kode dengan bahasa algoritmik pada tahap inisialisasi adalah sebagai berikut :kentang <- 1pisau <- 1n

No.

Tahapan Algoritma Keterangan

3. Reklasifikasi Tahapan penyelesaian masalah untuk memenuhi tujuan sebuah algoritma dibuatContoh kode dengan bahasa algoritmik tahap ini misalnya :kentang <- kentang + pisau

4. Finalisasi Merupakan tahapan bersih-bersih atau tahapan akhir miswalnya menghapus alokasi kotak yang tidak di perlukan lagi atau mengeset isi kotak yang butuh diset pada akhir algoritma.Contoh kode dengan bahasa algoritmik tahap finalisasi misalnya:pisau <- c

Bahasa Manusia Bahasa AlgoritmikMendeklarasikan kotak kosong yang dipakai sebagai tempat untuk menyimpan kentang dan pisau

kentang : intergerpisau : interger

Mengisi kotak-kotak kosong yang akan dipergunakan

kentang <- 1pisau <- 1

Memproses kentang dimana kentang saat ini adalah kentang yang telah di kupas dengan pisau.

kentang <- kentang + pisau

Pisau selesai dignakan pisau <- 0

Menuliskan ke layar selesai mengupas kentang.

output (“selesai mengupas kentang”)

2.Membuat langkah-langkah dari bahasa manusia menjadi bahasa algoritmik. Misalnya sebagai berikut :

3. Mengubah bahasa algoritmik menjadi bahasa pemrograman, misalnya dengan bahasa pemrograman Pascal dan C.Seperti contoh berikut:

Bahasa Algoritma Bahasa Pascalkentang : intergerpisau : interger

varkentang : interger;pisau : interger;

kentang <- 1pisau <- 1

beginkentang := 1;pisau := 1;

output (“mulai mengupas kentang”)

writeln (‘mulai mengupas kentang’);

kentang <- kentang + pisau kentang := kentang + pisau;

pisau <-0 pisau :=0;output (“selesai mengupas kentang”)

writeln (‘selesai mengupas kentang’);end.

Bahasa Algoritma Bahasa Ckentang : intergerpisau : interger

Int main(){ int kentang; int pisau;

kentang <- 1pisau <- 1

kentang = 1;pisau = 1;

output (“mulai mengupas kentang”)

printf (“mulai mengupas kentang\n”);

kentang <- kentang + pisau kentang = kentang + pisau;

pisau <-0 pisau =0;output (“selesai mengupas kentang”)

printf (“selesai mengupas kentang\n”);return 1;}

Melakukan kompilasi dengan menggunakan perangkat lunak yang disebut sebagai compiler atau interpreter untuk mengetahui apakah kode program mengandung kesalahan penulisan, jika ada kesalahan penulisan kode program maka harus diperbaiki dahulu lalu di kompilasi lagi sampai tidak ada kesalahan penulisan kode lagi, cara mengkompilasi begantung pada compiler atau interpreter yang digunakan.

Gambar: Mekanisme Eksekusi Program

mulai mengupas mulai mengupas kentangkentang selesai mengupas selesai mengupas kentangkentang