Anda di halaman 1dari 27

PENGANTAR ALGORITMA DAN PEMROGRAMAN

M. AJIR MUZAKKI
PROGRAM

 Program adalah kumpulan instruksi atau perintah yang disusun


sedemikian rupa sehingga mempunyai urutan nalar yang tepat
untuk menyelesaikan suatu persoalan. (Menurut P. Insap santosa).
TAHAPAN PELAKSANAAN PEMBUATAN PROGRAM
Algoritma

Interpretasi
Program :
Program dlm Bahasa Tingkat Tinggi Realisasi
dari
Kompilasi + lingking
Algoritma.
Program dlm Bahasa Mesin

Interpretasi oleh CPU

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


ALGORITMA

 Algoritma berasal dari kata penulis buku Arab terkenal Abu Ja’far Muhammad ibnu Musa
Al-Khwarizmi. (Oleh orang Barat di baca algorism), dalam bahasa indonesia menjadi
algoritma
 Algoritma adalah urutan langkah logis tertentu untuk memecahkan suatu masalah.
 Urutan langkah logis, yang berarti algoritma harus mengikuti suatu urutan tertentu, tidak boleh
melompat-lompat.
 (Dari Microsoft Press Computer and Internet Dictionaary 1997, 1998)
 Alur pemikiran dalam menyelesaikan suatu pekerjaan yang dituangkan secara tertulis.
 Alur pikiran, sehingga algoritma seseorang dapat juga berbeda dari algoritma orang lain.
 Tertulis, yang artinya dapat berupa kalimat, gambar, atau tabel tertentu.
 (Dari Algoritma dan Struktur Data dengan C, C++, dan Java oleh Moh Sjukani hal 1)
• Pertimbangan dalam pemilihan algoritma adalah algoritma haruslah benar. Artinya
algoritma akan memberikan keluaran yang dikehendaki dari sejumlah masukan yang
diberikan.

• Tidak peduli sebagus apapun algoritma, kalau memberikan keluaran yang salah,
pastilah algoritma tersebut bukanlah algoritma yang baik.
KRITERIA ALGORITMA (DONALD E. KNUTH)
1. Input: algoritma dapat memiliki nol atau lebih inputan dari luar.
2. Output: algoritma harus memiliki minimal satu buah output keluaran.
3. Definiteness (pasti): algoritma memiliki instruksi-instruksi yang jelas
dan tidak ambigu.
4. Finiteness (ada batas): algoritma harus memiliki titik berhenti (stopping
role).
5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat
dilaksanakan dan efektif. Contoh instruksi yang tidak efektif adalah: A
= A + 0 atau A = A * 1
STRUKTUR DASAR ALGORITMA

 Sequence Process: instruksi dikerjakan secara sekuensial, berurutan.


 Selection Process: instruksi dikerjakan jika memenuhi kriteria tertentu
 Iteration Process: instruksi dikerjakan selama memenuhi suatu kondisi tertentu.
PENULISAN ALGORITMA

 Menggunakan bahasa natural (Bahasa manusia: Indonesia, Inggris)


Kelemahannya masih sering membingungkan (ambigu) / sulit dipahami.
 Menggunakan Flowchart
Baik karena alur algoritma dapat dilihat secara visual, tetapi repot pembuatannya
jika algoritma panjang
 Menggunakan Pseudocode
Sudah dekat dengan bahasa pemrograman, tetapi sulit dimengerti oleh orang yang
belum tahu pemrograman
CONTOH ALGORITMA
MENGGUNAKAN BAHASA NATURAL

 Algoritma mengirim surat


 Jika seseorang ingin mengirim surat kepada kenalannya di tempat lain,
langkah yang harus dilakukan adalah:
1. Menulis surat
2. Surat dimasukkan ke dalam amplop tertutup
3. Tulis alamat tujuan pada amplop.
4. Amplop ditempeli perangko secukupnya.
5. Pergi ke Kantor Pos terdekat untuk mengirimkannya
algoritma menjemur pakaian
1) Siapkan jemuran.
2) Ambil satu pakaian yang nantinya akan dijemur.
3) Peras pakaian tersebut terlebih dahulu.
4) Letakkan pakaian tersebut pada tiang jemuran.
5) Ulangi langkah dari 2 sampai 4 hingga pakaian habis.

Dari algoritma di atas, dapat diketahui bahwa dari langkah 2 sampai 4 harus
dilakukan secara berulang-ulang hingga pakaian habis.
Algoritma Memasak air :
1) Siapkan panci.
2) Masukkan air secukupnya ke dalam panci.
3) tutup panci tersebut.
4) letakkan panci tersebut di atas kompor.
5) Hidupkan kompor.
6) Apabila air sudah mendidih, lalu matikan kompor.
7) Angkat panci tersebut dari kompor.
Algoritma bersyarat atau contional algorithm terdapat pada langkah ke 6. Apabila air
sudah mendidih, lalu matikan kompor. Sehingga apabila air tersebut belum
mendidih, maka kompor tidak dimatikan.
Menentukan apakah suatu bilangan merupakan
bilangan ganjil atau bilangan genap.
 Masukkan sebuah bilangan sembarang
 Bagi bilangan tersebut dengan bilangan 2
 Hitung sisa hasil bagi pada langkah 2.
 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.
Algoritma menghitung luas persegi panjang:
 Masukkan panjang (P)
 Masukkan lebar (L)
 Luas ←P * L
 Tulis Luas
FLOWCHART
 Flowchart : Bentuk gambar/diagram alir dari langkah-langkah program yang mempunyai
satu atau dua arah aliran secara sekuensial
Kegunaan:
 Untuk mendesain program
 Untuk merepresentasikan program
Maka, flowchart harus dapat merepresentasikan komponen-komponen dalam bahasa
pemrograman
Sebelum pembuatan program
 Mempermudah programmerdalam menentukan alur logika program
Sesudah pembuatan program
 Menjelaskan alur program kepada orang lain
Berikut adalah beberapa simbol yang digunakan dalam menggambar suatu
flowchart :
SIMBOL NAMA FUNGSI

TERMINATOR Permulaan/akhir program

GARIS ALIR
Arah aliran program
(FLOW LINE)

PREPARATION Proses inisialisasi/pemberian harga awal

Proses perhitungan/proses pengolahan


PROSES
data

Proses input/output data, parameter,


INPUT/OUTPUT DATA
informasi

PREDEFINED PROCESS Permulaan sub program/proses


(SUB PROGRAM) menjalankan sub program
Perbandingan pernyataan,
DECISION penyeleksian data yang memberikan
pilihan untuk langkah selanjutnya
Penghubung bagian-bagian flowchart
ON PAGE CONNECTOR
yang berada pada satu halaman

Penghubung bagian-bagian flowchart


OFF PAGE CONNECTOR
yang berada pada halaman berbeda
15
3 Struktur Flowcart
Sequence/ Branching/ Looping/
Sederhana Percabangan Perulangan

Ketiga struktur diatas dapat digunakan secara bersamaan pada satu diagram alur.
Contoh Flowcart
start

read/input

Ya
condition? stop

Tidak

process

write/print
Contoh Flowcart Start

Phi = 3.14

Input
(diameter)

Radius = diameter/2
Luas = phi * radius * radius

Output
Luas

Stop
Flowchart aktifitas
.
Beli Form Isi Form Dapat Nomor
Mulai
Pendaftaran Pendaftaran Ujian

Mengikuti
ujian

Ya Tdk
Mengikuti Registrasi Lulus? Mengulang
OSPEK ulang Tahun depan

KULIAH Selesai
PSUDOCODE

 Notasi yang menyerupai bahasa pemrograman tingkat tinggi


 Kemudahan mengkonversinya (mentranslasi ke notasi bahasa pemrograman)
Contoh (1) : Menghitung rata-rata tiga buah data

Algoritma dengan struktur pseudocode :


 1) input (a, b, c)
 2) Jml = a+b+c
 3) Rerata = Jml/3
 4) Output (Rerata)
Problem:mencari bilangan terbesar dari dua bilangan yang diinputkan
Contoh Algoritma:
1. Masukkan bilangan pertama
2. Masukkan bilangan kedua
3. Jika bilangan pertama > bilangan kedua maka kerjakan langkah 4, jika tidak, kerjakan langkah 5.
4. Tampilkan bilangan pertama
5. Tampilkan bilangan kedua
Contoh Pseudo-code:
1. Input a
2. Input b
3. If a > b then kerjakan langkah 4
4. print a
5. print b
Algoritma Pseudo-code
Nilai A ditambah dengan 5 A ←A + 5
Cetak nilai A bila lebih besar dari 10 IF A > 10 THEN PRINT A
Dari dua bilangan A dan B, cari bilangan yang IF A > B THEN PRINT A ELSE PRINT
terbesar B
LATIHAN
1. Buatlah algoritma dengan menggunakan bahasa natural
Diberikan 2 buah bejana A dan B, bejana A berisi larutan berwarna merah, bejana B berisi larutan
berwarna biru. Tukarkan isi kedua bejana itu sedemikian sehingga bejana A berisi larutan warna biru
dan bejana B berisi larutan berwarna merah.
2. Buatlah algoritma dengan menggunakan bahasa natural
a. Buat langkah untuk melakukan penggantian ban mobil yang pecah ( tanpa ada masalah / syarat ).
b. Dari Soal diatas dikembangkan kembali, mis : bila ban serep kempes atau ban serep bocor.
3. Buatlah algoritma dengan menggunakan bahasa natural
Diberikan data 5 bilangan secara acak, lakukan pengurutan sehingga ke 5 bilangan tersebut terurut
dari kecil ke besar.
1. Tulislah flowchart dan program untuk menghitung dan mencetak keliling (k) dan
luas (l) dari sebuah bujur sangkar. Nilai real single precision untuk sisi (s) diisikan
melalui keyboard.
2. Tulislah flowchart dan program untuk mengisikan nilai jari-jari sebuah lingkaran,
dan kemudian mencetak keliling dan luas lingkaran tersebut
3. Tulislah flowchart dan program memasukkan sebuah bilangan dan kemudian
cetaklah nilai satuan, puluhan, dan ratusan dari bilangan tersebut.

Anda mungkin juga menyukai