1. Algoritma dan Flowchart
HOW TO THINK
DASAR PEMROGRAMAN
by: Ahmad Syauqi Ahsan
Modified : Dian Syafitri
Khasnur Hidjah
Den Askhari
2. Objectives
2
Setelah menyelesaikan bab ini,
anda diharapkan dapat:
Mengerti tentang algoritma.
Membuat algoritma dari suatu permasalahan.
Mengerti tentang flowchart.
Membuat flowchart dari suatu permasalahan.
4. Sistem Komputer
• Software dapat dikelompokkan menjadi:
Operating Programming Aplication
System Language Program
4
5. Tahapan Pembuatan Program
5
Mengerti permasalahan yang akan diselesaikan.
Input layout
Proses-proses
Output layout
Menganalisa penyelesaian masalah.
Membuat algoritma dan flowchart.
Menulis program.
Melakukan testing program selesai.
Membuat dokumentasi
6. 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)
• Tahun 825 M
• Berasal dari Iran
6
7. Definisi Algoritma
7
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)
9. Algoritma dalam bidang Komputer
9
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
10. Manusia - Komputer
10
Pelaksana algoritma adalah Komputer.
Manusia dan komputer berkomunikasi dengan cara:
manusia memberikan perintah-perintah kepada komputer
berupa instruksi-instruksi yang disebut program.
Alat yang digunakan untuk membuat program tersebut
adalah bahasa pemrograman.
Bahasa pemrograman sangat bermacam-macam: C, C++,
Pascal, Java, C#, Basic, Perl, PHP, ASP, JSP, J#, J++ dan
masih banyak bahasa lainnya. Dari berbagai bahasa
pemrograman cara memberikan instruksinya berbeda-beda
namun bertujuan menghasilkan output yang sama
11. Tingkat Bhs Pemrograman
11
Bahasa tingkat rendah (mesin) :
Assembler
Bahasa tingkat tinggi (bahasa
manusia)
Semuabahasa pemrograman selain
assembler
12. Berdasarkan Platform BP dibagi menjadi
12
Pemrograman Desktop : Pascal,
delphi, VB, Java (J2SE), Fortran dll
Pemrograman Mobile : Java (J2ME),
Flash.
Pemrograman Web : PHP, JSP,
Javascript, XML, HTML, Ajax, CSS dll
Pemrograman Network : Delphi, VD,
JAva, PHP.
13. Kriteria Algoritma
(Donald E. Knuth)
13
Input: algoritma dapat memiliki nol atau lebih inputan
dari luar.
Output: algoritma harus memiliki minimal satu buah
output keluaran.
Definiteness (pasti): algoritma memiliki instruksi-
instruksi yang jelas dan tidak ambigu.
Finiteness (ada batas): algoritma harus memiliki titik
berhenti (stopping role).
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
Namun ada beberapa program yang memang dirancang untuk
unterminatable: contoh Sistem Operasi
14. Struktur Algoritma
Bagian Kepala (Header)
memuat nama dan informasi tentang algoritma yang dibuat
Bagian Deklarasi/Definisi Variabel
memuat definisi tentang nama variabel, konstanta, prosedur,
fungsi, tipe data yang digunakan
Bagian Deskripsi/Rincian Langkah
memuat langkah-langkah penyelesaian masalah
15. Contoh Algoritma
Algoritma Luas Lingkaran Algoritma Luas Lingkaran
{menghitung luas lingkaran apabila jari- {menghitung luas lingkaran apabila
jarinya diketahui} jari-jarinya diketahui}
Deklarasi Deklarasi
1.Deklarasi phi = 3.14 {Definisi nama tetapan}
2.Deklarasi jari-jari, luas; const phi = 3.14;
{Definisi nama variabel}
Deskripsi
real jari-jari, luas;
3.Input jari-jari
Deskripsi
4.Hitung luas = phi * jari-jari * jari- read(jari-jari);
jari luas = phi * jari-jari * jari-jari
5.Cetak luas; write(luas);
16. Flowchart
16
Bagan-bagan yang mempunyai arus yang
menggambarkan langkah-langkah penyelesaian
suatu masalah.
Merupakan cara penyajian dari suatu algoritma.
Ada 2 macam Flowchart:
System Flowchart Flowchart yang menggambarkan
prosedur dari sebuah proses pengolahan data.
Program Flowchart urutan instruksi yang
digambarkan dengan symbol tertentu untuk
memecahkan masalah dalam suatu program.
19. Contoh Flowchart System
D a ta
ja w a ba n
u jia n
K o reksi
D a fta r K o r e ks i F ile
D a ta u ta m a T a be l S is w a
ujia n
P e r ik s a
U jia n
L ap oran
F ile
H a s il
s is w a
U jia n
lu lu s
19
21. Contoh Program Flowchart
S ta r t
P r in t J u d u l
R EAD
D a ta
Ya
A k h ir
E nd
f ile ?
T id a k
Ya P R IN T
K o d e = "P " N a m a , A la m a t
"P e re m p u a n "
T id a k
21
22. Pembuatan Flowchart
22
Tidak ada kaidah yang baku.
Flowchart = gambaran hasil analisa suatu masalah
Flowchart dapat bervariasi antara satu
pemrogram dengan pemrogram lainnya.
Secara garis besar ada 3 bagian utama:
Input
Proses
Output
23. Pembuatan Flowchart - continued
23
Hindari pengulangan proses yang tidak perlu dan
logika yang berbelit sehingga jalannya proses
menjadi singkat.
Jalannya proses digambarkan dari atas ke bawah
dan diberikan tanda panah untuk memperjelas.
Sebuah flowchart diawali dari satu titik START
dan diakhiri dengan END.
24. Contoh Flowchart
24
1. Mulai
2. Buat variabel X dan X2
3. Masukkan nilai X
4. Hitung X2 = X*X
5. Cetak X2
6. Pertanyaan Kondisi :
Hitung Lagi?
7. Jika Ya mengulang langkah 2
8. Jika Tidak selesai
25. Again Another Example
Mulai 1. Mulai
2. Masukkan nilai A dan B
Input A,B
3. Pertanyaan seleksi :
Y
apakah A>B
A>B? Cetak A
4. Jika Benar Cetak A
N
Cetak B 5. Jika Salah Cetak B
6. Selesai
Selesai