MATERI KULIAH ALGORITMA PEMOGRAMAN
Disusun oleh:
Abdul Ghafur, M.Kom.
FAKULTAS SAINS DAN TEKNOLOGI
PRODI TEKNOLOGI INFORMASI
UNIVERSITAS IBRAHIMY SUKOREJO SITUBONDO
2018
KATA PENGANTAR
Puji syukur kehadirat
Allah subhanahu wata’ala atas Rahmat
dan
HidayahNya Penysun dapat menyelesaikan penyusunan Buku Ajar
Mata Kulialh Logika dan Algoritma ini. Penyusun menyadari,
bahwa tanpa bimbingan dan
bantuan dari berbagai
pihak, sulit rasanya penyusun dapat menyelesaikan penyusunan prangkat pembelajaran ini. Oleh
karena itu penyusun mengucapkan banyak terima kasih kepada:
1. Rektor Universitas Ibrahimy Sukorejo Situbondo.
2. Civitas akademika
Fakultas Sains dan Teknologi Universitas Ibrahimy Sukorejo Situbondo yang telah memberikan kesempatan, dukungan
kepada penyusun Buku Ajar untuk melaksanakan perkuliahan di
Fakultas Sains dan teknologi. Semoga kebaikan dan
bantuan
beliau diberikan balasan
oleh Allah SWT dengan balasan yang terbaik.
3. Rekan-rekan
dosen Fakultas Sains dan Teknologi Universitas Ibrahimy yang turut membantu atas terselesaikannya buku ajar ini, keluarga serta semua
pihak yang selalu memberikan dukungan dan do’a. Semoga
amal baik yang telah diberikan
kepada penyusun mendapatkan balasan yang terbaik dari Allah SWT.
Penyusun menyadari
bahwa buku ajar ini masih jauh dari harapan. Oleh karena itu, saran dan kritik yang konstruktif sangat diharapkan demi penyempurnaan
laporan ini. Akhir kata, semoga
perangkat
pembelajaran ini
dapat
memberikan manfaat, walaupun sekecil dzarrah untuk meningkatkan kualitas pendidikan di Indonesia.
Situbondo, Agustus 2018
Penyusun
Abd. Ghofur, M.Kom.
BAB 1
Pengertian Dasar Logika Dan Algoritma
Sejarah Algoritma
Asal kata Algoritma
berasal
dari
nama
Abu
Ja’far Mohammed
Ibn Musa al-Khowarizmi,
ilmuan
Persia
yang
menulis kitab al
jabr
w’al-muqabala
(rules of restoration and reduction) sekitar tahun 825 M
A. Algoritma
Urutan langkah-langkah untuk memecahkan masalah
Urutan logis pengambilan putusan untuk memecahkan masalah
urutan langkah
logis, berarti
algoritma
harus
mengikuti
suatu
urutan tertentu, tidak boleh melompat-lompat.
Alur pemikiran dalam
menyelesaikan suatu
pekerjaan
yang
dituangkan secara tertulis.
Alur pikiran
yang artinya algoritma
seseorang
dapat berbeda
dari
algoritma orang lain.
tertulis,
yang
artinya
dapat
berupa kalimat, gambar, atau tabel tertentu.
Dalam bidang komputer, algoritma sangat diperlukan
dalam menyelesaikan
berbagai masalah pemrograman, terutama dalam
komputasi numeris.
Tanpa
algoritma
yang
dirancang baik maka
proses pemrograman akan
menjadi salah,
rusak,
atau
lambat dan
tidak efisien.
Note:
Algoritma Di butuhkan untuk memerintah computer mengambil langkah-
langkah tertentu untuk menyelesaikan masalah
Algoritma
Pemrograman
Program
Agar algoritma dapat memerintah (diproses) komputer, maka dirubah
menjadi bentuk program (melalui proses pemrograman).
Penulisan Algoritma :
1. Menggunakan bahasa natural (Bahasa manusia: Indonesia, Inggris)
Kelemahannya
masih
sering
membingungkan (ambigu)
/ sulit dipahami.
2. Menggunakan Flowchart
Baik karena alur algoritma dapat dilihat secara visual, tetapi repot pembuatannya jika algoritma panjang
3. Menggunakan Pseudocode
Sudah dekat
dengan bahasa pemrograman, tetapi sulit
dimengerti
oleh orang yang belum tahu pemrograman
B. Tahap Analisa Algoritma
1. Bagaimana merencanakan algoritma
Dengan Mendefinisikan masalah.
Contoh : Permasalahan menghitung luas lingkaran,
dengan data yang diketahui adalah diameter lingkaran.
Rumus : ∏ . r2 dengan Phi = 3.14 atau 22/7.
2. Bagaimana menyatakan suatu algoritma (menulis algoritma)
Dengan flowchart / diagram alir
Program Flowchart
Yaitu bagan yang menggambarkan urutan logika dari suatu
prosedur pemecahan masalah.
1. Simbol yang digunakan :
2. menunjukkan awal dan akhir dari program
3. memberikan niai awal pada suatu variabel atau counter
4. menunjukkan pengolahan aritmatika dan
pemindahan data
|
5. menunjukkan proses input
atau output
6. untuk
mewakili
operasi perbandingan logika
7. proses yang ditulis sebagai sub
program,
yaitu prosedur/
fungsi
8. penghubung pada halaman
yang sama
9.
enghubung
pada halaman yang berbeda
Contoh :
Atau flowchart yang dibuat dengan program raptor
Dengan psudocode
suatu cara penulisan algoritma agar ide dan logika dari algoritma
dapat disampaikan/diekspresikan
menggunakan gaya bahasa
pemrograman pemrograman tertentu.
Dengan statement program /penggalan program :
Dari algoritama yang telah dibuta dapat diterjemahkan ke dalam
Statemen program C++ sebagai berikut :
1
|
#include
<iostream>
|
||
2
|
|||
3
|
using
namespace std;
|
||
4
|
|||
5
|
int main()
|
||
6
|
{
|
||
7
|
float phi =
3.14;
|
||
8
|
float
Diameter, Radius, Luas_Lingkaran;
|
||
9
|
cout <<
"Masukkan Nilai Diameter : ";
|
||
10
|
cin >>
Diameter;
|
||
11
|
Radius =
Diameter / 2;
|
||
12
|
Luas_Lingkaran = phi * Radius * Radius;
|
||
13
|
cout <<
"Luas
Lingkaran adalah :
|
"
|
<<
|
14
|
Luas_Lingkaran;
|
||
15
|
return 0;
|
}
3. Bagaimana validitas suatu algoritma
4. Bagaimana menganalisa suatu algoritma
5. Bagaimana menguji program dari suatu algoritma
Studi
Kasus :
Buatlah Algoritma untuk memilih bilangan terbesar dari 3 buah bilangan
?
Dengan Bahasa Natural
1. Memasukkan bilangan pertama
2. Memasukkan bilangan kedua
3. Memasukkan bilangan ketiga
4. Ambil bilangan pertama dan set maks
sama
dengan
bilangan
pertama
5. Ambil bilangan kedua dan bandingkan dengan maks
6. Apa bila bilangan kedua lebih besar dari maks, set maks sama
dengan bilangan kedua
7. Ambil blangan ketiga dan bandingan dengan maks
8. Apabila bilangan ketiga lebih besar dari maks, set maks sama
dengan bilangan ketiga
9. Variabel maks berisi bilangan terbesar
10. Tampilkan hasil bilangan terbesar
11. Selesai
Dengan Flowchart
Dengan Pseudo-code
Input (Bilangan_pertama)
Input (Bilangan_kedua)
Input (Bilangan_ketiga) maks bilangan_pertama
if (maks < bilangan_kedua) then maks bilangan_kedua
if (maks < bilangan_ketiga) then maks bilangan_ketiga
output (maks)
End.
Dengan Bahasa Pemrogaraman C++
1 #include <iostream>
2
3 using namespace std;
4
5 int main()
6 {
7 int Bilangan_pertama, Bilangan_kedua,
8 Bilangan_ketiga, maks;
9
10 cout <<
"Masukkan bilangan yang pertama : ";
11 cin
>> Bilangan_pertama;
12 cout <<
"Masukkan bilangan yang kedua : ";
13 cin
>> Bilangan_kedua;
14 cout <<
"Masukkan bilangan ketiga : ";
15 cin
>> Bilangan_ketiga;
16
17 maks
= Bilangan_pertama;
18 if (maks <
Bilangan_kedua) {
19 maks
= Bilangan_kedua;
20 }
21 if
(maks < Bilangan_ketiga) {
22 maks =
Bilangan_ketiga;
23 }
24 cout <<
"Bilangan terbesar adalah : " << maks;
25 return
0;
}
C. Tahap Proses Uji Algoritma
1. Pengujian Tahap Debuging
Untuk mengecek kesalahan program, Baik sintaksis maupun logika.
2. Pengujian tahap profiling.
Untuk menentukan waktu tempuh dan banyak nya memori program yang digunakan.
D.
Analisis Algoritma
Untuk melihat
effisiensi dan
efektifitas dari suatu algoritma, dapat dilihat
dari:
1. Waktu Tempuh dari Suatu Algoritma
2. Jumlah memori yang digunakan
E. Sifat-sifat Algoritma
Aspek Penting Algoritma :
1. Finite
algoritma harus berhenti setelah mengerjakan sejumlah
langkah terbatas
2. Definite setiap langkah
didefinisikan secara tepat, tidak
boleh membingungkan (ambigu)
3. Input
sebuah algoritma
memiliki
nol/lebih input
sebelum
dijalankan
4. Output
algoritma memiliki satu/lebih
output, yang biasanya
bergantung kepada input
5. Effective setiap algoritma diharapkan memiliki sifat efektif. (setiap langkah harus sederhana
dan sehingga dapat dikerjakan dalam waktu yang masuk
akal)
Langkah-langkah yang
membentuk
suatu
algoritma dapat
dibagi menjadi 3 kelompok proses:
1. Sequence Process instruksi
dikerjakan secara berurutan satu
persatu dimulai dari langkah pertama sampai terakhir.
2. Selection Process instruksi pemilihan proses (percabangan),
sehingga apabila
memenuhi persyaratan
tertentu
maka
instruksi
akan
dikerjakan.
Contoh : jika pembayaran tunai diberi diskon 10%
Jika dilakukan secara redit maka diskon 0 %.
(dalam
pernyataan diatas, hanya boleh melakukan 1 instruksi dari 2 alternatif instruksi.
3. Iteration Process suatu instruksi yang dikerjakan berulang-ulang
selama beberapa kali selama masih memenuhi suatu kondisi.
Tugas 1 :
Buatlah algoritma
(dengan bahasa
natural, Flowchart,
pseudocode,
dan program C++):
1. Menampilkan bilangan ganjil dari 1 sampai dengan 10.
2. Menghitung jumlah deret : 1 + 2 + 3 + 4 + .... + N
N = jumlah maksimum
suatu nilai yang dimasukkan.
BAB 2
Konsep Algoritma
KONSEP ALGORITMA
Studi Kasus:
Algoritma TUKAR ISI BEJANA
A
B Diberikan dua buah bejana A dan B,
bejana A berisi larutan berwarna merah, bejana B berisi larutan berwarna biru.
Pertukarkan isi kedua bejana itu sedemikian sehingga bejana A berisi
larutan
berwarna biru dan bejana B berisi larutan berwarna merah.
algoritma :
Tuangkan larutan dari bejana A ke dalam bejana B
Tuangkan larutan dari bejana B ke dalam bejana A.
Apakah cara di atas BENAR ?
Apakah hasil yang didapat sesuai dengan penyelesaian masalah?
Apa
hasil yang didapat ?
Algoritma TUKAR ISI BEJANA di atas tidak menghasilkan pertukaran yang
benar.
Langkah di atas tidak logis, hasil pertukaran yang terjadi adalah percampuran
kedua larutan tersebut.
Penyelesaian :
Untuk mempertukarkan isi duah bejana, diperlukan sebuah bejana tambahan sebagai tempat penampungan sementara, misalnya bejana C.
A
B C Algoritma yang menghasikan pertukaran yang benar sebagai berikut:
1. Tuangkan larutan dari bejana A ke dalam bejana C.
2. Tuangkan larutan dari bejana B ke dalam bejana A.
3. Tuangkan larutan dari bejana C ke dalam bejana B.
TUGAS 2 :
1. Seorang Petani
akan berpergian ke
kota dengan membawa
seekor
kambing, Anjing dan Rumput Yang ketiganya memliki berat yang tidak jauh berbeda, ditengah jalan petani harus menyebrangi
sungai dengan
menggunakan
perahu dan untuk melaluinya petani tersebut tidak
diperbolehkan
membawa sekaligus bawaannya mengingat kapasitas
kekuatan perahu tersebut, dan untuk melaluinya
petani harus membawa satu persatu bawaannya.
Ditanya: berapa kali petani tersebut
harus
melalui sungai dengan memperhatikan bahwa kambing makan rumput,
anjing makan kambing ?.
Buatlah Algoritma Dengan Bahasa Natural dan flowchart dokumen Dari
Cerita di atas!
2. Bagaimana caranya untuk menyeberangkan tiga orang missionaris yang sedang dikejar oleh Tiga orang kanibal ke sisi pulau yang ada diseberangnya
Dengan catatan : Bila misionarisnya Lebih sedikit dari dari kanibal, maka
misionaris tersebut akan dimakannya.
Buatlah Algoritma Dengan Bahasa Natural dan flowchart dokumen Dari
Cerita di atas!
3. Seorang siswa
mendaftar santri
baru pada
bagian registrasi,
setelah menyelesaikan penulisan biodata santri, siswa tersebut di diperkenankan untuk
pindah
ke bagian
seleksi untuk
diuji baca alQur’an, jika
ujian
alQur’an lulus maka siswa tersebut melanjutkan ke bagian asrama untuk
menentukan asrama, jika ujian alqur’an tidak lulus maka siswa tersebut berstatus
waiting list (daftar tunggu ) dan bisa kembali 1 minggu setelahnya.
Dari cerita di atas lakukan analisa dan buatlah :
a. Flowchart Proses
b. Flowchart Dokumen
c. Flowchart dengan program Raptor!
d. Program dengan bahasa C++
No comments:
Post a Comment