|
|
|
|
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
|
||||
|
|
, berarti algoritma harus mengikuti suatu
|
|||
è
|
|
|
|||
urutan tertentu, tidak
boleh melompat-lompat.
|
|||||
|
tan langkah
|
logis
|
|
|
|
|
Alur pemikiran
dalam menyelesaikan suatu
pekerjaan yang
|
||||
|
dituangkan
secara tertulis.
|
seseorang dapat berbeda dari
|
|||
|
Alur pikiran yang artinya algoritma
|
||||
|
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
|
||||
Note:
|
proses pemrograman akan menjadi salah, rusak, atau lambat dan
|
||||
tidak
efisien.
|
|
memerintah
computer mengambil langkah-
|
|||
Algoritma Di butuhkan
untuk
|
|||||
langkah tertentu untuk
menyelesaikan masalah
|
|||||
lgoritma à Pemrograman à Program
|
|
||||
Agar algoritma dapat
memerintah (diproses) komputer, maka dirubah
|
|||||
menjadi bentuk program
(melalui proses pemrograman).
|
|||||
1.
|
Menggunakan bahasa natural (Bahasa manusia: Indonesia, Inggris)
|
||||
Penulisan Algoritma :
|
masih
|
|
sering membingungkan (ambigu)
/ sulit
|
||
|
Kelemahannya
|
|
|||
2.
|
dipahami.
|
|
|
|
|
Menggunakan
Flowchart
|
- 1
|
|
|||
Logika dan Algoritma
Pemrograman
|
|
Fak. Saintek Universitas Ibrahimy
|
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,
denganRumus :data∏. ryang2dengandiketahuiPhi=adalah3.14ataudiameter22/7. lingkaran.
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. p enghubung pada halaman
yang berbeda
Logika dan Algoritma Pemrograman - 2 Fak. Saintek Universitas
Ibrahimy

Atau flowchart yang dibuat dengan program raptor

Dengan
psudocode

Logika dan Algoritma Pemrograman - 3 Fak. Saintek Universitas
Ibrahimy
suatu cara penulisan algoritma agar ide dan logika dari algoritma
dapat disampaikan/diekspresikan menggunakan gaya bahasa pemrograman pemrograman
tertentu.

Dengan
statement program /penggalan program :
StatDariemenalgoritamaprogramyangC++telahsebagaidibutaberikutdapat:
diterjemahkan ke dalam







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
BuatlahStudiKasusAlgoritma: untuk memilih bilangan
terbesar dari 3 buah bilangan
?
§
Dengan1.MemasukkanBahasaNaturalbilangan 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
Logika dan Algoritma Pemrograman - 4 Fak. Saintek Universitas
Ibrahimy
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)
Logika dan Algoritma Pemrograman - 5 Fak. Saintek Universitas
Ibrahimy
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
Logika dan Algoritma Pemrograman -
6 Fak. Saintek Universitas
Ibrahimy
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
|
|||||
2.
|
langkah
terbatas
|
|
|
|
|
|
|||
Definite
|
|
à
|
setiap
langkah didefinisikan secara tepat,
tidak boleh
|
||||||
|
membingungkan (ambigu)
|
|
|
||||||
3.
|
Input
|
|
à
|
sebuah
|
algoritma
|
memiliki nol/lebih
input sebelum
|
|||
|
|
||||||||
4.
|
dijalankan
|
algoritma memiliki
satu/lebih output, yang
biasanya
|
|||||||
Output
|
|
à
|
|||||||
|
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
|
|||||||||
1.
|
Sequence Process
|
à
|
instruksi dikerjakan secara berurutan satu
|
||||||
menjadi 3 k
lompok proses:
|
|
|
|||||||
|
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
|
||||||
3.
|
instruksi dari 2 alternatif instruksi.
|
||||||||
Iteration Process
|
suatu
instruksi yang dikerjakan berulang-ulang
|
||||||||
Tugas 1 :selama beberapa kali selama masih memenuhi
suatu kondisi.
|
|||||||||
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.
|
||||||||
Logika dan
Algoritma Pemrograman
|
|
- 7
|
|
Fak. Saintek Universitas Ibrahimy
|

KONSEP ALGORITMA
Studi Kasus:
BAB 2
Konsep Algoritma
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 ?
ApaApakahhasilhasilyangyangdidapatdidapat? sesuai dengan penyelesaian
masalah?
benarLangkah. di atas
tidak logis, hasil pertukaran yang terjadi adalah percampuran kedua larutan
tersebut.

Penyelesaian :



Logika dan Algoritma Pemrograman - 8 Fak. Saintek Universitas
Ibrahimy
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 menyelesaikan untuk pindah
mendaftar
santri baru pada bagian registrasi, setelah penulisan biodata santri, siswa
tersebut di diperkenankan ke bagian seleksi untuk diuji baca alQur’an, jika
ujian
Logika dan Algoritma Pemrograman -
9 Fak. Saintek Universitas
Ibrahimy
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.
a.DariFlowchartceritadiProsesataslakukan
analisa dan buatlah :
b.
Flowchart Dokumen
d.c.
FlowchartProgramdengandenganbahasaprogramC++Raptor!
0 komentar:
Posting Komentar