Logika Dan Algoritma
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
|
0 komentar:
Posting Komentar