Berlangganan

About Me


pendahuluan algoritma

 
Tujuan Instruksi Umum (TIU):
· Mampu memahami suatu masalah dan mampu mencari solusi pemecahannya dan mampu menuangkan
langkah-langkah pemecahan masalah tersebut dalam bentuk notasi alami, flowchart ataupun psudocode.


Tujuan Instruksi Khusus (TIK):
· Mengetahui pengertian umum tentang algoritma, flowchart, pseudocode dan program
· Mengetahui struktur dasar Algoritma
· Mampu membuat dan membaca algoritma sederhana.
· Mampu menerangkan hubungan masalah-algoritma-program komputer
· Mampu menganalisa masalah dan menerjemahkannya ke dalam bentuk pseudocode dan notasi alami.



Pembahasan Materi:
· Pengertian algoritma
· Penulisan algoritma
· Tahapan pelaksanaan pemrograman komputer
· Implementasi algoritma menjadi program
· Struktur dasar algoritma
· Latihan pemecahan masalah



1.1



Pendahuluan



Sebuah algoritma merupakan deskripsi pelaksanaan suatu proses, dimana algoritma disusun oleh
sederetan langkah instruksi yang logis. Dengan kata lain algoritma adalah urutan langkah-langkah atau instruksi-
instruksi logis yang harus dilaksanakan untuk memecahkan masalah.
Kata logis merupakan kata kunci dalam sebuah algoritma. Langkah-langkah di dalam algoritma harus
logis, ini berarti hasil dari urutan langkah-langkah tersebut harus dapat ditentukan, benar atau salah. Langkah-
langkah yang tidak benar dapat memberikan hasil yang salah.
Sebagai contoh, tinjau persoalan mempertukarkan isi dua gelas, A dan B. Gelas A berisi air kopi,
sedangkan gelas B berisi air susu. Kita ingin mempertukarkan isi kedua gelas itu sedemikian sehingga gelas A
berisi air susu dan gelas B berisi air kopi.
Jika kita langsung menuangkan air kopi yang ada di gelas A langsung ke gelas B maka yang didapatkan
adalah gelas A menjadi kosong dan gelas B menjadi air kopi susu, begitu juga sebaliknya.
Untuk mempertukarkan isi dua gelas tersebut, kita memerlukan sebuah gelas tambahan yang diperlukan
sebagai tempat penampungan sementara. Sebut gelas tambahan tersebut gelas C. Dengan menggunakan gelas
bantu C ini, algoritma mempertukarkan isi dua buah gelas yang benar adalah sebagai berikut ini:

Algoritma Tukar Isi Gelas:

Diberikan dua buah gelas, A dan B; gelas A berisi air kopi, gelas B berisi air susu. Pertukarkan isi kedua gelas itu
sedemikian sehingga gelas A berisi air susu dan gelas B berisi air kopi.

Deskripsi:
Tuangkan kopi dari gelas A ke dalam gelas C (gelas A menjadi kosong).
Tuangkan susu dari gelas B ke dalam gelas A (gelas B menjadi kosong).
Tuangkan kopi dari gelas C ke dalam gelas B.


Syarat algoritma yang baik menurut Donald E. Knuth harus memenuhi lima hal berikut ini:
1. Finiteness
Algoritma yang baik harus ada akhir atau berhenti setelah mengerjakan sederetan instruksi. Algoritma yang
tiada akhir atau tidak dapat berhenti bukan merupakan algoritma yang baik.
2. Defineteness
Setiap langkah algoritma harus didefinisikan dengan tepat dan jelas sehingga tidak menimbulkan makna
ganda(ambiguous). Sebagai contoh, pernyataan “Lakukan langkah di bawah ini beberapa kali”, pernyataan
tersebut jelas akan membingungkan karena tidak ada yang membatasi berapa banyak perintah yang harus
dijalankan. Bandingkan dengan pernyataan berikut: “Lakukan langkah di bawah ini sebanyak 10 kali”.
3. Input
Algoritma yang baik harus memiliki masukan data untuk diolah. Masukan adalah besaran atau nilai yang
diberikan kepada algoritma, masukan biasanya diberikan di awal penulisan. Sebagai contoh, untuk menghitung
luas segitiga kita membutuhkan nilai alas dan nilai tinggi, sehingga luas segitiga dapat dihitung.
4. Output
Algoritma yang baik adalah algoritma yang menghasilkan output atau keluaran yang merupakan hasil dari
pengolahan data masukan.
5. Effectiveness
Algoritma yang baik adalah algoritma yang mempunyai langkah-langkah atau instruksi yang effektif yaitu
algoritma yang memiliki langkah yang paling sederhana, sehingga dapat dikerjakan dalam waktu yang cukup
wajar.

1.2 Penulisan Algoritma

 Algoritma bersifat programming language independent, yang maksudnya adalah penulisan algoritma tidak
terikat dengan bahasa pemrograman tertentu, tetapi algoritma dapat diterapkan untuk berbagai bahasa pemrograman.
Algoritma dapat dituliskan dalam 3 bentuk/ notasi, yaitu:
(1) Flowchart, penggunaan flowchart lebih menggambarkan urutan instruksi secara visual sehingga memudahkan
orang awam dalam membaca urutan instruksi tersebut.
(2) Bahasa/ notasi alami, contohnya menggunakan Bahasa Indonesia Terstruktur (BIT). Dengan menggunakan
bahasa alami maka akan memudahkan pengguna dalam memahami algoritma tersebut, tetapi untuk masalah
yang cukup kompleks penggunaan notasi alami tidak disarankan karena akan menyulitkan saat
pengkonversian ke dalam bahasa pemrograman. Supaya tidak menyulitkan dalam pembuatan maupun
pembacaan algoritma, maka BIT menggunakan beberapa istilah seperti berikut ini:

Untuk mendapatkan data masukan, dapat menggunakan kata berikut: isi, baca, masukkan, baca data,
baca file.
Untuk menyatakan proses penghitungan, dapat menggunakan kata berikut: hitung, jumlahkan, kurangi,
dan sebagainya.
Untuk menyatakan proses pemilihan, dapat menggunakan kata berikut: jika...maka....sebaliknya....akhir
jika.
Untuk menyatakan proses pengulangan, dapat menggunakan kata berikut: ulangi....sampai....,
selama......lakukan,.
Untuk menyatakan hasil keluaran, dapat menggunakan pernyataan berikut: tulis, cetak, tampilkan, rekam.

(3) Pseudocode; adalah notasi yang menyerupai bahasa pemrograman tingkat tinggi, umunya menyerupai bahasa
Pascal atau C.
Pseudocode menggunakan beberapa istilah seperti:
Untuk mendapatkan data masukan: input, read, get, key-in.
Untuk menyatakan proses pemilihan: if...then....; if....then...else....end if.
Untuk menyatakan proses pengulangan: repeat...until...; while...do...; for...do....end for; do....while....;
Untuk menyatakan hasil keluaran: print, write, display.

Contoh:
Buatlah algoritma untuk mencari luas sebuah lingkaran.
Berdasarkan permasalahan tersebut kita ketahui untuk mencari luas segitiga dapat dihitung dengan menggunakan :
rumus matematis: Luas Segitiga = Л. R

Dalam bentuk flowchart, permasalahan di

atas dapat digambarkan sebagai berikut:
 
Berikut ini adalah penulisan algoritma dengan menggunakan
notasi Bahasa Indonesia Terstruktur (BIT):
1. Masukkan nilai jari-jari (R)
2. Tetapkan nilai Pi = 3.14
3. Hitung luas = Pi * R * R
4. Cetak nilai Luas

mulai

Input R

3.14
Pi   3.14

                                            Ls   Pi * R *

Cetak Ls

selesai
Penulisan dalam bentuk pseudocode dapat dituliskan sebagai berikut :

1. read R 
2. Pi= 3.14
3. luas = Pi * R * R
4. print luas


1.3 Tahapan Pelaksanaan Pemrograman Komputer

Setelah kita mengetahui apa yang dimaksud dengan algoritma dan bagaimana membuat sebuah
algoritma, tahapan selanjutnya adalah bagaimana kita menerapkannya dalam bahasa pemrograman. Tetapi
sebelum itu kita harus melihat secara keseluruhan tahapan dalam pemrograman komputer. Berikut ini adalah
tahapan yang harus dilakukan dalam pembuatan program komputer:


1. Mendefinisikan Masalah. Pendefinisian atau pemahaman masalah adalah tahapan pertama yang penting
karena pada tahap ini kita menentukan masalahnya, kemudian apa saja yang dapat dipecahkan dengan
program komputer dan selanjutnya kita menentukan juga masukan seperti apa yang diperlukan dan keluaran
yang bagaimana yang diinginkan.
2. Menentukan solusi. Pada tahap ini yang harus dilakukan adalah mencari jalan bagaimana masalah tersebut
diselesaikan.
3. Memilih algoritma. Pemilihan algoritma merupakan tahap yang cukup penting karena jika salah menentukan
algoritma yang dipilih maka akan menyebabkan program menghasilkan unjuk kerja atau performa yang kurang
optimal.
4. Menulis program. Tahap penulisan program dalam sebuah bahasa pemrograman atau biasa disebut tahap
coding. Pada tahap ini algoritma diterjemahkan ke dalam bahasa pemrograman tertentu, yang kemudian akan
diproses oleh komputer. Untuk memahami proses yang terjadi pada tahap coding dapat dilihat dari gambar di
bawah ini:

Algoritma


Translasi


Program dalam Bahasa
Tingkat Tinggi


Kompilasi + Linking


Program dalam Bahasa
Mesin


Interpretasi oleh CPU

Operasi
(baca, tulis, hitung, perbandingan, dsb)

Keterangan:
Algoritma di translasikan menjadi program dalam bahasa tingkat tinggi. Selanjutnya, program dikompilasi dan
diterjemahkan menjadi program dalam bahasa mesin dan di-link dengan berkas library. Instruksi dalam bahasa
mesin diinterpretasikan oleh CPU. Operasi yang bersesuaian dengan setiap instruksi dilaksanakan.


5. Menguji program. Setelah program selesai ditulis, dapat dilakukan pengujian untuk melihat apakah program
yang sudah dibuat berhasil di kompilasi dengan baik, kemudian program diuji kembali untuk melihat apakah
program menghasilkan keluaran yang diinginkan

6. Menulis dokumentasi. Tahap ini dapat dilakukan bersamaan dengan tahap penulisan program, contohnya
memberikan komentar pada program untuk menjelaskan program tersebut. Tahap ini terkadang dianggap tidak
penting dan seringkali diabaikan, sesungguhnya dokumentasi sangat penting terlebih untuk program yang
cukup kompleks dimana pembuatan program dilakukan oleh lebih dari satu orang, dokumentasi dapat
memberikan penjelasan tentang algoritma yang digunakan oleh si pembuat program.
7. Merawat program. Tahap ini dapat dilakukan setelah program selesai dibuat dan telah digunakan.

1.4 Implementasi Algoritma Menjadi Program

Seperti telah dibahas pada sub bab sebelumnya, setelah algoritma dibuat maka tahap selanjutnya adalah
meng-implementasikannya ke dalam program komputer yang dapat dituliskan dalam bahasa pemrograman
tertentu. Sebagai contoh apabila algoritma dituliskan dalam bahasa C, maka diperlukan compiler C untuk
menerjemahkan program tersebut menjadi instruksi bahasa mesin yang kemudian diproses oleh komputer.
Program dapat didefinisikan sebagai sederetan instruksi atau perintah (dalam bahasa yang di mengerti
oleh komputer) untuk melaksanakan tugas-tugas tertentu, sehingga menghasilkan suatu keluaran / output yang
diharapkan. Sedangkan bahasa pemrograman dapat didefinisikan sebagai program yang berisikan instruksi-
instruksi yang dimengerti oleh komputer.

Dalam pembuatan program komputer umumnya menggunakan  bahasa pemrograman tingkat tinggi, seperti Bahasa Pascal, C ataupun C++.

Suatu program komputer pada umumnya berisi 3 hal, yaitu:
(1) Pembacaan/ pemasukan data ke dalam komputer (Input)
(2) Melakukan penghitungan terhadap data tersebut (Proses)
(3) Mengeluarkan/ mencetak hasilnya (Output)


Bahasa pemrograman dapat diklasifikasikan menjadi dua:
(1) Low level language / bahasa tingkat rendah yang berorientasi pada mesin, contohnya: bahasa mesin /
machine language dan bahasa rakitan / assembly language.
(2) High level language/bahasa tingkat tinggi adalah bahasa pemrograman yang berorientasi pada manusia.
Bahasa pemrograman ini disebut juga bahasa generasi ketiga atau 3GL. Contohnya : BASIC, PASCAL,
COBOL, FORTRAN, C, C++.


Perintah-perintah yang digunakan dalam bahasa tingkat tinggi (bahasa generasi ke-3) umumnya menggunakan
bahasa Inggris. Sebagai contoh:


Dalam C:
Dalam C++:


printf (“Belajar Algoritma\n”);
cout<< “Belajar Algoritma \n”;
Dalam Pascal: Writeln(‘Belajar Algoritma’);

Ketiga perintah di atas adalah perintah yang dituliskan dalam bahasa C, bahasa C++ dan bahasa Pascal.
Ketiganya menghasilkan keluaran yang sama yaitu menampilkan kalimat Belajar Algoritma. Ketiga perintah
tersebut sebelum diproses oleh komputer sesungguhnya harus diterjemahkan terlebih dahulu agar perintah-


5






perintah tersebut dimengerti oleh mesin komputer. Untuk menerjemahkannya dibutuhkan perangkat lunak yang
disebut interpreter dan compiler.
Interpreter merupakan perangkat lunak yang digunakan untuk menerjemahkan program baris per baris,
maksudnya adalah jika baris pertama yang akan diekseskusi maka baris pertama dari sebuah program akan
diterjemahkan terlebih dahulu ke dalam bahasa mesin, kemudian jika baris kedua yang akan dieksekusi baru baris
kedua yang akan diterjemahkan, dan seterusnya. Contoh bahasa pemrograman yang menggunakan interpreter
adalah Basic
Sedangkan compiler menerjemahkan seluruh perintah dalam program tersebut ke dalam bahasa mesin
terlebih dahulu baru kemudian menjalankan hasil penerjeman. Hasil penerjemahan tersebut dapat disimpan dalam
memori sementara ataupun dapat disimpan dalam sebuah file terpisah. Contoh bahasa pemrograman yang
menggunakan compiler adalah Pascal, C, C++.


1.5 Struktur Dasar Algoritma

Algoritma berisi langkah-langkah penyelesaian 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).

Sebenarnya dalam kehidupan sehari-haripun kita sudah menggunakan algoritma dalam menjalani rutinitas
kehidupan. Sebagai contoh, saat mengikuti ujian semester ada langkah-langkah yang harus dilaksanakan antara
lain:
1. Mempersiapkan kartu ujian.
2. Menempati tempat duduk sesuai nomer ujian.
3. Menandatangani form kehadiran.
4. Mendapatkan lembar soal dan lembar jawaban.
5. Mengerjakan ujian dengan tertib.
6. Keluar ruangan ujian saat waktu ujian telah habis.


Dalam banyak hal terkadang algoritma yang dilakukan tidak berurutan seperti di atas, terkadang akan ada
beberapa langkah yang harus dipilih tergantung pada kondisi. Sebagai contoh, dari pengembangan algoritma di
atas, saat peserta ujian telah selesai mengerjakan ujian tetapi waktu ujian masih ada, apa yang selanjutnya harus
dilakukan? Apakah keluar ruangan atau tetap menunggu di ruangan hingga waktu ujian habis. Keadaan seperti ini
dalam algoritma di sebut percabangan atau selection.
Pada permasalahan lain, ada keadaan dimana suatu langkah atau sebuah perintah dilaksanakan lebih dari
satu kali. Contohnya, seorang mahasiswa akan mengambil mata kuliah yang sama selama mata kuliah tersebut
belum bernilai minimal C. Keadaan ini dalam algoritma dinamakan perulangan atau looping.
Contoh:


1. Buatlah algoritma deskriptif untuk masalah berikut:
6










Tiga orang pemburu membawa tiga orang kanibal dari sebuah pulau terpencil menuju desa terdekat. Antara

pulau terpencil dengan desa terdekat dibatasi oleh sebuah sungai yang memiliki arus yang deras. Untuk

menyeberangi sungai, mereka hanya dapat menggunakan sebuah perahu kecil. Perahu tersebut dapat

digunakan untuk bolak balik tetapi minimal harus ada satu orang untuk mengendarai perahu dan perahu hanya

dapat menampung maksimal dua orang sekali jalan. Hal yang penting dalam permasalahan ini adalah bahwa

jumlah pemburu tidak boleh lebih sedikit dibandingkan dengan jumlah kanibal, baik di sisi pulau maupun di sisi

desa karena jika jumlah kanibal lebih banyak dibandingkan jumlah pemburu maka kanibal dapat memakan

pemburu. Buatlah algoritma untuk menyebrangkan tiga orang kanibal dan tiga orang pemburu selurunya

selamat tiba desa.





Pemahaman masalah:

Hasil yangdiharapkan: seluruh pemburu dan kanibal selamat menyebrangi sungai
Permasalahan:

Hanya dapat menggunakan perahu untuk menyebrangi sungai.

perahu minimal berisi 1 orang, maksimal berisi 2 orang.

Jumlah pemburu harus lebih banyak dari jumlah kanibal.
 
 
Algoritma Penyebrangan sungai

P1, P2, P3, K1, K2, K3 {P adalah pemburu, K adalah kanibal}

PT, DS {PT adalah pulau terpencil, DS adalah desa}





Deskripsi:

1. P1, K1 menyebrang dari PT ke DS {P2, P3, K2, K3 berada di PT} {P1, K1 di DS}

P1 menyebrang kembali ke PT {P1,P2, P3, K2, K3 berada di PT} {K1 di DS}

2. K2, K3 menyebrang dari PT ke DS {P1,P2, P3 berada di PT} {K1,K2,K3 di DS}

K1 menyebrang kembali ke PT {P1,P2, P3, K1 berada di PT} { K2,K3 di DS}

3. P1,P2 menyebrang dari PT ke DS {P3, K1 berada di PT} {P1, P2, K2, K3 di DS}

P2, K2 menyebrang kembali ke PT {P2, P3, K1,K2 berada di PT} {P1, K3 di DS}

4. P2, P3 menyebrang dari PT ke DS {K1, K2 berada di PT} {P1,P2, P3, K3 di DS}

K3 menyebrang kembali ke PT {K1, K2, K3 berada di PT} {P1, P2, P3 di DS}

5. K1,K2 menyebrang dari PT ke DS {K3 berada di PT} {P1, P2, P3, K1, K2 di DS}

K2 menyebrang kembali ke PT {K2, K3 berada di PT} {P1, P2, P3, K1 di DS}

6. K2 dan K3 menyebrang dari PT ke DS {---} {P1, P2, P3, K1, K2, K3 di DS}

 Algoritma penyeberangan sungai ini adalah salah satu contoh algoritma runtunan, karena jika langkah yang
dilaksanakan tidak berurutan maka tidak akan memecahkan masalah.





2. Buatlah algoritma untuk menuliskan nilai mutlak dari nilai yang dimasukkan oleh pengguna.
Pemahaman masalah:
Nilai mutlak x

| x| adalah sbb:
| x | = x, jika x ≥ 0
| x | = -x, jika x < 0

Algoritma Nilai mutlak
x adalah variabel yang menampung nilai yang dimasukkan
Deskripsi:
1. Input nilai x.
2. Jika (x < 0) maka kerjakan perintah nomer 3, jika tidak kerjakan nomer 4

3. x  -x

4. Tulis x.
penjelasan algoritma :
Langkah pertama meminta masukan sebuah kata yang disimpan pada variabel Kt

Langkah kedua memberi nilai awal m=1, variabel M digunakan untuk menyimpan hasil pengulangan

(pencacah).

Langkah ketiga memberikan perintah untuk mengulangi langkah ketiga hingga langkah kelima selama nilai

M masih bernilai lebih kecil atau sama dengan 5.

Langkah keempat merupakan perintah untuk mencetak Kt.
Langkah kelima menambahkan variabel M dengan 1. variabel M harus ditambah dengan nilai 1 agar
kondisi pada langkah ketiga ada saatnya bernilai salah, dalam hal ini digunakan untuk membatasi perulangan.
  Algoritma mencetak kata yang yang dimasukkan oleh pengguna merupakan bentuk algoritma pengulangan.

 











0 Response to "pendahuluan algoritma"

Post a Comment