Algoritma dan
Pemrograman 1
LailyHermawanti, S.T., M.Kom
No Hp: 08562773160
Email: lailyahermawanti18@gmail.com
Bab 2
Cara Penulisan Algoritma dalam Bahasa
Natural, Flowchart, dan Pseudo Code
Algoritma dalam
Bahasa Natural
NOTASI PENULISAN
Dibagi menjadi 3 cara, yaitu :
• Notasi yang dinyatakan dalam kalimat
Natural/Deskriptif
• Notasi yang dinyatakan dalam flow chart
• Notasi yang dinyatakan dengan pseudo code
Penulisan Algoritma
1. Dalam bahasa natural (Bahasa Indonesia, Bahasa Inggris,
dan bahasa manusia lainnya)
– Tapi sering membingungkan (ambiguous)
2. Menggunakan flow chart (diagram alir)
– Bagus secara visual akan tetapi repot kalau algoritmanya panjang
3. Menggunakan pseudo-code
– Sudah lebih dekat ke bahasa pemrograman, namun sulit
dimengerti oleh orang yang tidak mengerti pemrograman
2004 EL 2001 - Algoritma v.1.2 5
Contoh
Algoritma Dalam Bahasa Natural
1. Ambil bilangan pertama dan set maks sama dengan
bilangan pertama
2. Ambil bilangan kedua dan bandingkan dengan
maks
3. Apa bila bilangan kedua lebih besar dari maks, set
maks sama dengan bilangan kedua
4. Ambil blangan ketiga dan bandingan dengan maks
5. Apabila bilangan ketiga lebih besar dari maks, set
maks sama dengan bilangan ketiga
6. Variabel maks berisi bilangan terbesar. Tayangkan
hasilnya
Notasi yang dinyatakan dalam kalimat
deskriptif
• Deskripsi setiap langkah dijelaskan dengan
bahasa yang jelas
• Cocok untuk algoritma yang pendek
• Relatif sulit untuk dikonversi ke bahasa
pemrograman
Notasi yang dinyatakan dalam kalimat
deskriptif (lanjut)
• Contoh :
Algoritma Bilangan Maksimum
Diberikan tiga buah bilangan bulat. Carilah bilangan bulat maksimum diantara
ketiga bilangan tersebut.
Deskripsi :
– Mulai
– baca bilangan 1
– baca bilangan 2
– bandingkan bilangan 1 dan bilangan 2, kita ambil yang lebih besar, jika kedua
bilangan tersebut sama besar, dapat kita ambil bilangan 1, dan sebut bilangan
tersebut MAX
– baca bilangan 3
– bandingkan MAX dengan bilangan 3, dan pilih yang lebih besar, jika keduanya
sama besar, pilih MAX dan sebut bilangan tersebut MAX.
– keluarkan sebagai output MAX
– selesai
Flowchart (Diagram Alur)
9
Flow Chart
• flow chart (diagram alir)
– (menggambarkan urutan langkah-langkah
kegiatan /program mulai dari awal sampai akhir
dengan menggunakan simbol atau gambar
tertentu.)
• Kegunaan : mendesain dan mempresentasikan
program
Flowchart adalah gambaran dalam bentuk
diagram alir dari algoritma-algoritma dalam
suatu program, yang menyatakan arah alur
program tersebut.
11
FLOWCHART
• Flowchart lebih baik dibandingkan pseudocode
• Merupakan gambaran dalam bentuk diagram alir dari
algoritma-algoritma dalam suatu program yang menyatakan
arah alur program tersebut
• Disajikan dalam bentuk grafik/gambar
• Dapat membantu programmer maupun orang lain dalam
memahami alur program (apa saja input, proses dan output
dari program)
• Representasi visual, karena itu lebih mudah dipahami
• Jumlah simbol yang digunakan sedikit, karena itu lebih
sederhana dan lebih mudah dipelajari
Flowchart
• bagan yang menggambarkan urutan instruksi
untuk proses dengan komputer dan hubungan
antara suatu proses dengan proses lainnya
dengan menggunakan simbol
• tidak digunakan untuk menggambarkan
urutan langkah untuk memecahkan masalah,
tetapi hanya untuk menggambarkan prosedur
dalam sistem yang dibentuk
-Alpro 2009- 13
Flowchart
• Bagan-bagan yang mempunyai arus
• Menggambarkan langkah-langkah
penyelesaian suatu masalah
• Merupakan salah satu cara penyajian
algoritma
14
Tujuan
• Menggambarkan suatu tahapan penyelesaian
masalah
• Secara sederhana, terurai, rapi dan jelas
• Menggunakan simbol-simbol standar
15
Model / Jenis Flowchart
• System Flowchart
• Program Flowchart
16
System Flowchart
• Menggambarkan suatu sistem peralatan komputer
yang digunakan dalam proses pengolahan data serta
hubungan antar peralatan tersebut
• Tidak digunakan untuk menggambarkan urutan
langkah untuk memecahkan masalah
• Hanya untuk menggambarkan prosedur dalam sistem
yang dibentuk
17
Program Flowchart
• Menggambarkan urutan logika dari suatu
prosedur pemecahan masalah
• Dua jenis metode penggambaran program
flowchart :
– Conceptual flowchart, menggambarkan alur
pemecahan masalah secara global
– Detail flowchart, menggambarkan alur
pemecahan masalah secara rinci
18
Simbol-simbol Flowchart
• Flow direction symbols
– Digunakan untuk menghubungkan simbol satu dengan
yang lain
– Disebut juga connecting line
• Processing symbols
– Menunjukan jenis operasi pengolahan dalam suatu proses
/ prosedur
• Input / Output symbols
– Menunjukkan jenis peralatan yang digunakan sebagai
media input atau output
19
Flow Direction Symbols
• Simbol arus / flow
– Menyatakan jalannya arus suatu proses
• Simbol communication link
– Menyatakan transmisi data dari satu lokasi ke lokasi lain
• Simbol connector
– Menyatakan sambungan dari proses ke proses lainnya
dalam halaman yang sama
• Simbol offline connector
– Menyatakan sambungan dari proses ke proses lainnya
dalam halaman yang berbeda
20
Processing Symbols
• Simbol process
– Menyatakan suatu tindakan (proses) yang dilakukan
oleh komputer
• Simbol manual
– Menyatakan suatu tindakan (proses) yang tidak
dilakukan oleh komputer
• Simbol decision
– Menujukkan suatu kondisi tertentu yang akan
menghasilkan dua kemungkinan jawaban : ya / tidak
• Simbol predefined process
– Menyatakan penyediaan tempat penyimpanan suatu
pengolahan untuk memberi harga awal
• Simbol terminal
– Menyatakan permulaan atau akhir suatu program
21
Processing Symbols
• Simbol keying operation
– Menyatakan segal jenis operasi yang
diproses dengan menggunakan suatu
mesin yang mempunyai keyboard
• Simbol offline-storage
– Menunjukkan bahwa data dalam simbol
ini akan disimpan ke suatu media tertentu
• Simbol manual input
– Memasukkan data secara manual dengan
menggunakan online keyboard
22
Input / Output Symbols
• Simbol input/output
– Menyatakan proses input atau output tanpa
tergantung jenis peralatannya
• Simbol punched card
– Menyatakan input berasal dari kartu atau
output ditulis ke kartu
• Simbol magnetic tape
– Menyatakan input berasal dari pita magnetis
atau output disimpan ke pita magnetis
• Simbol disk storage
– Menyatakan input berasal dari dari disk atau
output disimpan ke disk
23
Input / Output Symbols
• Simbol document
– Mencetak keluaran dalam bentuk
dokumen (melalui printer)
• Simbol display
– Mencetak keluaran dalam layar
monitor
24
Lambang Flowchart
Terminator (mulai/selesai)
Input/output
Proses
Decision (percabangan)
Data Flow (Aliran data)
Preparation (pemberian nilai awal suatu
variabel)
Call (memanggil prosedur/fungsi)
Connector (di halaman yg sama
Connector ( di halaman lain)
Berikut adalah beberapa simbol yang digunakan dalam menggambar suatu
flowchart :
26
SIMBOL NAMA FUNGSI
TERMINATOR Permulaan/akhir program
GARIS ALIR
(FLOW LINE)
Arah aliran program
PREPARATION Proses inisialisasi/pemberian harga awal
PROSES Proses perhitungan/proses pengolahan data
INPUT/OUTPUT DATA
Proses input/output data, parameter,
informasi
PREDEFINED PROCESS
(SUB PROGRAM)
Permulaan sub program/proses menjalankan
sub program
DECISION
Perbandingan pernyataan, penyeleksian
data yang memberikan pilihan untuk langkah
selanjutnya
ON PAGE CONNECTOR
Penghubung bagian-bagian flowchart yang
berada pada satu halaman
OFF PAGE CONNECTOR
Penghubung bagian-bagian flowchart yang
berada pada halaman berbeda
Pengolahan data
27
START
READ
HABIS ?
PROCESS
WRITE
END
Tidak
Ya
Menghitung luas persegi panjang
28
Input lebar
Start
End
Input panjang
Luas  panjang * lebar
Print Luas
Notasi yang dinyatakan dalam
flow chart
• Sama halnya dengan notasi deskriptif, notasi
ini cocok untuk algoritma yang pendek
• Relatif sulit untuk dikonversi ke bahasa
pemrograman
Pembuatan Flowchart
• 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
Pembuatan Flowchart – cont.
• 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.
Contoh 1 Flowchart
Contoh 2 Flowchart
Exercise
1. Buatlah algoritma untuk menghitung luas dan keliling
lingkaran. Dengan masukan berupa jari-jari.
2. Buatlah flowchart dari algoritma pada soal no 1 diatas.
3. Buatlah algoritma untuk mengecek bilangan di antara 2 bilangan
masukan, apakah sama ataukah lebih besar salah satunya, dan
tampilkan hasilnya.
4. Buatlah flowchart dari algoritma pada soal no 3 diatas.
Notasi yang dinyatakan dalam flowchart
(lanjut)
• Contoh :
Algoritma Bilangan Maksimum
Diberikan tiga buah bilangan bulat.
Carilah bilangan bulat maksimum
diantara ketiga bilangan tersebut.
Deskripsi :
Algoritma dengan Flowchart
Maks = bilangan pertama
Maks <
bilangan kedua
Maks = bilangan kedua
Maks <
bilangan ketiga
Maks = bilangan ketiga
Ya
Ya
Selesai
Mulai
Tidak
Tidak
Mulai
Inputkan nilai
(tugas,uts,uas)
NA = 25%tg+25%uts+50%uas
NA>60 Gagal
Lulus
Selesai
40
Start
d = b^2 – 4ac
d < 0
Cetak Pesan
“Akar imajiner”
x1=(-b+sqrt(d))/2a
x2 =(-b-sqrt(d))/2a
Stop
Y
T
Masukkan
a,b,c
Cetak x1,x2
Notasi yang dinyatakan dengan pseudo
code
• Notasi yang menyerupai bahasa pemrograman
tingkat tinggi
• Kemudahan mengkonversinya (mentranslasi
ke notasi bahasa pemrograman)
• Intinya, Pseudo code adlh campuran antara
bahasa alami dengan bahasa pemrograman
Notasi yang dinyatakan dalam pseudo
code(lanjut)
• Contoh :
Algoritma Bilangan Maksimum
Diberikan tiga buah bilangan bulat. Carilah bilangan bulat maksimum diantara
ketiga bilangan tersebut.
Deklarasi :
– Bil1,Bil2,Bil3 : integer {bilangan yang dicari maksimumnya}
– MAX : integer {variabel bantu}
Deskripsi :
– Read (Bil1,Bil2)
– If Bil1 >= Bil2 then
– Bil1 = MAX
– Else Bil2 = MAX
– Read (Bil3)
– If Bil3 >= MAX then
– Bil3 = MAX
– Write (MAX)
Algoritma dengan pseudo-code
maks ← bilangan pertama
if (maks < bilangan kedua)
maks ← bilangan kedua
if (maks < bilangan ketiga)
maks ← bilangan ketiga
2004 EL 2001 - Algoritma v.1.2 43
Algoritma dengan pseudo-code
maks ← bilangan pertama
if (maks < bilangan kedua)
maks ← bilangan kedua
if (maks < bilangan ketiga)
maks ← bilangan ketiga
Ad.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.
– Dengan flowchart /
diagram alir
Program Flowchart,
yaitu bagan yang
menggambar-kan
urutan logika dari
suatu prosedur
pemecahan masalah.
Start
Phi = 3.14
Input
(diameter)
Radius = diameter/2
Luas = phi * radius * radius
Output
Luas
Stop
Ad.2.Bagaimana menyatakan suatu algoritma
(menulis algoritma)
– Dengan psudocode
Suatu cara penulisan algoritma agar ide dan
logika dari algoritma dapat
disampaikan/diekspresikan menggunakan gaya
bahasa pemrograman tertentu.
Phi  3.14
Input (diameter)
Radius  diameter / 2
Luar  phi * radius * radius
Output (Luas)
End
Penulisan Algoritma dalam
Bahasa Natural, Flowchart,
Pseudo Code
Buat sebuah algoritma untuk memilih bilangan terkecil dari 3
buah bilangan
• Algoritma Dalam Bahasa Natural
1. Ambil bilangan pertama dan set kecil sama dengan
bilangan pertama
2. Ambil bilangan kedua dan bandingkan dengan
kecil
3. Apa bila bilangan kedua lebih kecil dari kecil, set
kecil sama dengan bilangan kedua
4. Ambil blangan ketiga dan bandingan dengan kecil
5. Apabila bilangan ketiga lebih kecil dari kecil, set
kecil sama dengan bilangan ketiga
6. Variabel kecil berisi bilangan terkecil. 7.Tayangkan
hasilnya.
Algoritma dengan pseudo-code
kecil  bilangan pertama
if ( bilangan kedua < kecil)
kecil  bilangan kedua
if ( bilangan ketiga < kecil)
kecil  bilangan ketiga
Ouput(kecil)
Hal yang harus dipenuhi dalam membuat
algoritma
• Input : data yang harus diberikan pada
komputer
• Output: informasi yang akan diperoleh dari
komputer
• Logika: Merencanakan proses program. Terdiri
dari sejumlah instruksi yang mengubah input
menjadi output yang diinginkan.
Aspek Penting dari Algoritma
1. Finiteness
• Algoritma harus berhenti after a finite number of steps
2. Definiteness
• Setiap langkah harus didefinisikan secara tepat, tidak boleh
membingungkan (ambiguous)
3. Input
• Sebuah algoritma memiliki nol atau lebih input yang diberikan
kepada algoritma sebelum dijalankan
4. Output
• Sebuah algoritma memiliki satu atau lebih output, yang biasanya
bergantung kepada input
5. Effectiveness
• Setiap algoritma diharapkan miliki sifat efektif
Struktur Dasar Algoritma
• Runtunan (sequence)
• Pemilihan (selection)
• Pengulangan (repetition)
Runtunan
• Sebuah runtunan terdiri dari satu atau lebih instruksi
• Tiap instruksi dikerjakan berurutan
• Urutan instruksi menentukan keadaan akhir
algoritma
• Contoh
A1
A2
A3
A4
A5
Algoritma TUKAR_ISI_BEJANA
• Diberikan dua buah bejana, A dan B; bejana A
berisi larutan merah, bejana B berisi larutan biru.
Pertukarkan isi kedua bejana itu sehingga bejana A
berisi larutan biru dan bejana B berisi larutan
merah
• DESKRIPSI
1. Tuangkan larutan dari bejana A ke bejana X
2. Tuangkan larutan dari bejana B ke bejana A
3. Tuangkan larutan dari bejana C ke bejana B
• Hasil akhir
– Bejana A berisi larutan dari bejana B semula
– Bejana B berisi larutan dari bejana A semula
Algoritma TUKAR_ISI_BEJANA
• Misal urutan diubah menjadi
1. Tuangkan larutan dari bejana B ke bejana A
2. Tuangkan larutan dari bejana A ke bejana X
3. Tuangkan larutan dari bejana C ke bejana B
• Hasil akhir menjadi
– Bejana A kosong
– Bejana B berisi campuran larutan dari bejana A
dan bejana semula B
Pemilihan
• Adakalanya instruksi dikerjakan jika kondisi
tertentu terpenuhi
• Contoh
– Jika data ke-j lebih kecil dari min, maka isikan data
ke-j sebagai min yang baru
• Dapat ditulis
if kondisi then
aksi
Pemilihan
• Memilih salah satu tergantung dari nilai kondisinya
if kondisi then
aksi 1
else
aksi 2
Contoh
if x>y then
tulis x sebagai bilangan terbesar
else
tulis y sebagai bilangan terbesar
Teks Algoritma
• Sub Pokok Bahasan
– Pendahuluan
– Judul Algoritma
– Deklarasi
– Deskripsi
– Pengisian Nilai
• Setiap orang punya pola pikir yang berbeda, karena
itu akan menghasilkan algoritma yang berbeda
• Algoritma dikatakan benar apabila dapat
memecahkan masalah
• Perlu dipertimbangkan masalah efisiensi dalam
penyusunan algoritma
• Pemilihan rute jalan, misalnya :
– Beberapa rute mungkin akan menghasilkan tujuan yang
sama
– Ada rute yang lebih efisien dibanding rute lainnya
– Sebaiknya yang diambil adalah rute terpendek
• PEmrograman : aktifitas yg dilakukan dengan
membat intruksi untuk menyelesaikan permasalahan
yg dimenegeti oleh komputer
• Program : coding, hasil pemrograman
• Bahasa Pemrograman : Bahasa program yang
digunakan untuk membuat urutan instruksi yg
dimengerti oleh komputer.
• Pemrograman (programer) : orang yg membuat
program komputer.
Aspek Penting dari Algoritma
1. Finiteness
• Algoritma harus berhenti after a finite number of
steps
2. Definiteness
• Setiap langkah harus didefinisikan secara tepat,
tidak boleh membingungkan (ambiguous)
3. Input
• Sebuah algoritma memiliki nol atau lebih input
yang diberikan kepada algoritma sebelum dijalankan
4. Output
• Sebuah algoritma memiliki satu atau lebih output,
yang biasanya bergantung kepada input
5. Effectiveness
• Setiap algoritma diharapkan miliki sifat efektif
beberapa langkah umum dalam pembuatan suatu program yaitu
• Mendefinisikan masalah
– mendefinisikan permasalahan. langkah ini harus dilakukan untuk
menentukan masalah yang ada serta ditentukan pula input dan output
program
• Mencari solusinya
– Bila untuk mendapatkan solusi harus melalui langkah yang terlalu
rumit dapat dilakukan pembagian masalah dalam beberapa modul-
modul kecil agar mudah untuk dikerjakan. Lalu modul-modul kecil
tersebut digabungkan menjadi satu untuk dapat menentukan solusi.
• Menentukan algoritma
• Menulis program
• Menguji program
• Mendokumentasikan program
• Merawat program
Pendahuluan
• Teks algoritma yang dimaksud di sini adalah teks pseudocode
yang dianggap perlu untuk menjembatani keragaman dan
kompleksitas bahasa sehingga dapat dilakukan “abstraksi”
• Teks ini lebih berorientasi kepada detail design dibandingkan
coding (merupakan rancangan secara prosedural yang
selanjutnya dengan mudah dapat ditranslasi menjadi salah
satu program dalam bahasa tertentu)
• Contoh bahasa pemrograman yang digunakan adalah Bahasa
Pascal. Jadi dalam pembahasan berikutnya, translasi teks
Algoritma adalah ke dalam teks program Bahasa Pascal.
Pendahuluan
• Bagian-bagian (blok) dalam teks algoritma:
– JUDUL (header) algoritma
– DEKLARASI algoritma
– DESKRIPSI algoritma
Keterangan:
– Pasangan tanda kurung kurawal (‘{‘ dan ‘}’) digunakan untuk
memberikan komentar (untuk memperjelas maksud teks yang
dituliskan).
Judul Algoritma
• Terdiri dari nama dan penjelasan (spesifikasi) algoritma.
• Nama yang digunakan sebaiknya singkat (namun cukup informatif).
• Biasanya di bawah nama diberi spesifikasi algoritma. Algoritma yang akan
ditulis nantinya harus sesuai dengan spesifikasi yang didefinisikan.
Deklarasi
• Merupakan tempat untuk mendefinisikan berbagai macam nama, yaitu:
– nama tipe
– nama konstanta
– nama peubah (nama variabel)
– nama fungsi, sekaligus spesifikasinya
– nama prosedur, sekaligus spesifikasinya
• Semua nama tersebut baru dapat digunakan jika telah didefinisikan di
dalam DEKLARASI. Penulisan sekumpulan nama dalam DEKLARASI
sebaiknya dikelompokkan menurut jenis nama tersebut.
• Ketentuan-ketentuan dalam pendefinisian nama-nama:
– nama peubah belum terdefinisi harganya ketika didefinisikan.
– Pendefinisian konstanta sekaligus juga memberikan harganya.
– pendefinisian nama fungsi sekaligus juga dengan domain dan range serta
spesifikasinya.
– Pendefinisian nama prosedur sekaligus juga dengan pendefinisian parameter
(jika ada) dan spesifikasi prosedur (kondisi awal, kondisi akhir dan proses yang
dilakukan).
Deklarasi
DEKLARASI
{ Nama tipe, hanya untuk tipe yang bukan tipe dasar }
type Titik : <X:real,Y:real> { koordinat pada sumbu kartesian }
{ Nama konstanta, harus menyebutkan nilai }
const phi = 3.14
{ Nama peubah (variabel), menyebutkan tipe }
P : Titik { Titik dalam derajat kartesian }
jmlh : integer { Jumlah suatu elemen }
ketemu : boolean { Keadaan hasil pencarian }
{ Spesifikasi Fungsi, menyebutkan nama fungsi, domain dan range }
function Konversi_Real_Ke_Integer(input i:real)→integer
{ Mengkonversi harga i yang bertipe real menjadi harga ekivalen yang
bertipe integer }
{ Spesifikasi Prosedur, menyebutkan nama, parameter, kondisi awal, kondisi
akhir dan proses }
procedure Tukar(input/output A:integer, input/output B:integer)
{ Kondisi awal : A dan B terdefinisi, A=a dan B=b }
{ Kondisi akhir : A=b dan B=a }
{ Proses : Mempertukarkan nilai A dan B }
Deskripsi
• Merupakan bagian inti dari algoritma.
• Komponen di dalam teks algoritma dapat berupa:
– Instruksi dasar seperti input/output, assignment
– Urutan (sequence)
– Pemilihan
– Pengulangan
Pengisian nilai ke dalam Nama Peubah
• Pengisian Nilai secara langsung
• Pembacaan Nilai dari Piranti Masukan
Pengisian Nilai secara langsung
• Pengisian nilai secara langsung (assignment) adalah
memasukkan nilai ke dalam nama peubah langsung didalam
teks algoritma
• Notasi pengisian secara langsung : ←
• Nilai yang diberikan kepada peubah dapat berupa tetapan,
nilai peubah lain atau nilai sebuah ekspresi. Nilai tersebut
harus bertipe sama dengan tipe peubah
peubah ← tetapan {nilai tetapan diisikan ke dalam peubah}
peubah1 ← peubah2 {nilai peubah2 disalin kedalam peubah1}
peubah ← ekspresi {hasil perhitungan diisikan ke dalam peubah}
Pengisian Nilai secara langsung
CONTOH
k ←5
jarak ←0.03
ketemu ←false
NamaKota ←’Solo’
{Mengisi J dengan jam 6:12:39}
J.hh ←6
J.mm ←12
J.ss ←39
jarak ←78.90
NamaKota ←’MEDAN’
Pengisian Nilai secara langsung
• Berapakah nilai M dan P setelah runtunan
penugasan dibawah ini selesai dilaksanakan
oleh? Andaikan M dan P bertipe integer
M ← 16
P ← M*2
M ← P + 100
P ← P + M
Pembacaan Nilai dari Piranti Masukan
• Nilai untuk peubah dapat diisi dari piranti masukan
• Dinamakan operasi pembacaan data
• Dalam algoritma, dilakukan dengan notasi read
Notasi algoritmik untuk pembacaan nilai dari piranti masukan
read (nama1, nama2, . . . namaN)
Pembacaan Nilai dari Piranti Masukan
CONTOH :
read(M)
read(a1, a2, a3)
read(nama_kota)
read(nama_mhs,NRP,nilai)
read(P.x,P.y)
Ekspresi Aritmatik
• Misal deklarasi sebagai berikut :
a, b, c : real
d : integer
i, j , k : integer
Misal ekspresi
a * b
– hasil ekspresi adalah real
– a dan b adalah operand, * adalah operator
– Bila disimpan ke peubah, maka tipe peubah harus sama dengan tipe
hasil
– c ← a * b (benar)
– d ← a * b (salah)
Ekspresi
• Terdiri dari operand dan operator
• Operand adalah nilai yang dioperasikan
dengan operator tertentu
• Operand dapat berupa tetapan, nama
peubah, nama tetapan, atau hasil dari suatu
fungsi
• Ada 3 macam ekspresi : ekspresi aritmatik,
ekspresi relasional dan ekspresi string
Ekspresi Relasional
• Adalah ekspresi dengan operator <,≤,>,≥,= dan
≠, not,and, or dan xor
• Misal didefinisikan deklarasi berikut
DEKLARASI
ketemu, besar : boolean
x,y : integer
misal ketemu bernilai false, ada bernilai true, x bernilai 8 dan y bernilai
12. Maka :
not ada (hasil : false)
ada and true (hasil : true)
x < 5 (hasil : false)
ada or (x = y) (hasil : true)
Ekspresi String
• Ekspresi string adalah ekspresi dengan
operator “+” (operator penyambungan
/concatenation)
DEKLARASI
kar : char
s : string
s ← s+kar
Menuliskan Nilai ke Piranti Keluaran
• Nilai yang disimpan di memori dapat
ditampilkan ke piranti keluaran(misal layar
monitor)
• Instruksi penulisan dengan notasi write
write(nama1,nama2, …, namaN)
write(tetapan)
write(nama, tetapan, ekspresi)
write(ekspresi)
Bahan Bacaan
• Rinaldi Munir, Algoritma dan Pemrograman dalam
Bahasa Pascal dan C, Penerbit Informatika Bandung
• Antony Pranata, Algoritma dan Pemrograman
Latihan 2
Buatlah suatu algoritma untuk proses
aktivitas yang anda kerjakan dari pagi
hingga malam hari
Contoh Algoritma 2
• Algoritma untuk menentukan apakah suatu
bilangan merupakan bilangan ganjil atau
bilangan genap.
• Algoritmanya :
a. Masukkan bilangan yang akan ditentukan
b. Bagi bilangan dengan bilangan 2
c. Hitung sisa hasil bagi pada langkah b.
d. 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.
Latihan 3
• Buat algoritma mengurutkan 3 bilangan acak!
Simbol Algoritma (Flowchart):
Proses/kegiatan pemrosesan input
IO
Garis Alir
Pencabangan/Pemeriksaan kondisi
Terminator/Start or
End
Konektor/Penghubung Next Page
Flowchart dan Pseudocode
Struktur Dasar Algoritma
• Runtunan (Sequence)
• Pemilihan (Selection)
• Pengulangan(Repetition)
-Alpro 2009- 93
Flowchart
Terminator
Input/Output
Proses
Condisional / Decision
-Alpro 2009- 94
Flowchart (cont’)
Preparation
Arrow
Connector (on page)
Connector (off page)
Display
-Alpro 2009- 95
Flowchart (cont’)
• Keuntungan :
lebih mudah dilihat dan dipahami
• Kelemahan :
jika digunakan untuk menggambarkan proses
atau algoritma untuk skala kasus yang besar,
maka akan dibutuhkan banyak kertas
-Alpro 2009- 96
Kasus
• Pemimpin sebuah perusahaan otomotif perlu
menentukan besarnya bonus yang akan diberikan
kepada para pegawainya yang bekerja sebagai
account executive. Jika terdapat pegawai yang dalam
bulan ini telah menjual mobil lebih dari dua unit,
maka akan mendapatkan bonus sebesar Rp
1.000.000,- kemudian pegawai yang bisa menjual
mobil tepat dua buah maka, akan mendapatkan
bonus Rp 500.000,- namun jika pegawai yang dalam
bulan ini penjualannya kurang dari dua unit maka,
pegawai tersebut tidak mendapatkan bonus.
-Alpro 2009- 97
Pseudocode
• Diarahkan untuk menyerupai aturan penulisan
bahasa pemrograman tertentu
-Alpro 2009- 98
Pseudocode
-Alpro 2009- 99
Judul
Kamus
Algoritma
Judul
• Tidak diawali dengan angka atau karakter lain
selain alphabet
• Tidak terdapat karakter spasi atau karakter
selain alphabet kecuali karakter underscore ‘_’
(sebagai pengganti karakter spasi)
• Mana yang benar ?
– Algoritma berhitung;
– Algoritma konversi suhu;
– Algoritma hitungan_pajak;
– Algoritma 2bilangan;
– Algoritma *kecil;
-Alpro 100
Kamus
• digunakan sebagai tempat untuk
mencantumkan variabel, konstanta, dan
record
• Hal-hal yang dideklarasikan pada bagian ini
digunakan sebagai ‘reservasi’ alokasi memory
untuk penyimpanan data dan akan digunakan
selama program bekerja
-Alpro 2009- 101
Algoritma
• digunakan untuk meletakkan semua algoritma
atau kode-kode program
• Diawali dengan ‘BEGIN’ dan diakhiri dengan
‘END’
-Alpro 2009- 102
Pemilihan (Selection)
-Alpro 2009- 103
If kondisi then
aksi
endIf
If kondisi then
aksi1
else
aksi2
endIf
Contoh (Pemilihan) :
-Alpro 2009- 104
If A>B then Max A endIf
If B>A then Max B endIf
If A>B then Max A
Else Max B
endIf
Pengulangan (Repetition)
-Alpro 2009- 105
for var  awal to akhir do
aksi
Endfor
repeat
aksi
until kondisi_stop
while kondisi_ulang do
aksi
endwhile
Contoh (Pengulangan) :
-Alpro 2009- 106
For i  1 to 5 do
output(“Algoritma dan Pemrograman”)
EndFor
i1
Repeat
output(“Algoritma dan Pemrograman”)
ii+1
Until (i>5)
i1
While (i<=5) do
output(“Algoritma dan Pemrograman”)
ii+1
endwhile
Input dan Output
-Alpro 2009- 107
Algoritma Masukkan_data
Kamus data
x : integer
BEGIN
input(x) /*x adalah variabel penampung nilai*/
END.
Algoritma Masukkan_nilai
Kamus data
x : integer
BEGIN
x  5 /*panah ke kiri arah masuknya nilai*/
END.
Input dan Output
-Alpro 2009- 108
Algoritma Tampilan
Kamus data
x : integer
BEGIN
output(x) /*x adalah variabel yang berisi nilai*/
END.
MASALAH / IDEA PEMECAHAN SOLUSI / HASIL
Algoritma Source
Code
Executable
Code
Tahap Pengembangan Pogram
Algoritma Pemrograman IC - Bab 1 110
Mulai
Batasan Masalah
Pengembangan
Model
Rancangan
Algoritma
Perbaikan
Algoritma
Pemrograman
Pengujian
Pembetulan Analisa
Dokumentasi
Selesai
111
DEFINISI
MASALAH
MEMBUAT
MODEL
RANCANG
ALGORITMA
TULIS PROGRAM
COMPILE
Sintak Err
Executable code:
=> Run
Output Err
DOKUMEN TASI
Y
Y
T
T
112
DEFINISI
MASALAH
MEMBUAT
MODEL
RANCANG
ALGORITMA
TULIS PROGRAM
COMPILE
Sintak Err
Executable code:
=> Run
Output Err
DOKUMEN TASI
Masalah:
Tentukan akar-akar dari suatu persamaan
kwadrat.
Definisi:
Persamaan kwadrat : ax^2 + bx + c = 0
Data yg diperlukan :
Nilai dari a, b dan c : tipe real
113
DEFINISI
MASALAH
MEMBUAT
MODEL
RANCANG
ALGORITMA
TULIS PROGRAM
COMPILE
Sintak Err
Executable code:
=> Run
Output Err
DOKUMEN TASI
Model Matematika :
Rumus ABC
x1 = (-b + sqrt(b^2 - 4ac))/2a
x2 = (-b – sqrt(b^2 - 4ac))/2a
114
Start
d = b^2 – 4ac
d < 0
Masukkan a,b,c
Cetak Pesan
“Akar imajiner”
x1=(-b+sqrt(d))/2a
x2 =(-b-sqrt(d))/2a
Cetak : x1, x2
Stop
Y
T
TULIS PROGRAM
COMPILE
Sintak Err
Executable code:
=> Run
Output Err
DOKUMEN TASI
DEFINISI
MASALAH
MEMBUAT
MODEL
RANCANG
ALGORITMA
115
DEFINISI
MASALAH
MEMBUAT
MODEL
RANCANG
ALGORITMA
TULIS PROGRAM
COMPILE
Sintak Err
Executable code:
=> Run
Output Err
DOKUMEN TASI
116
DEFINISI
MASALAH
MEMBUAT
MODEL
RANCANG
ALGORITMA
TULIS PROGRAM
COMPILE
Sintak Err
Executable code:
=> Run
Output Err
DOKUMEN TASI
117
DEFINISI
MASALAH
MEMBUAT
MODEL
RANCANG
ALGORITMA
TULIS PROGRAM
COMPILE
Sintak Err
Executable code:
=> Run
Output Err
DOKUMEN TASI
118
DEFINISI
MASALAH
MEMBUAT
MODEL
RANCANG
ALGORITMA
TULIS PROGRAM
COMPILE
Sintak Err
Executable code:
=> Run
Output Err
DOKUMEN TASI
119
DEFINISI
MASALAH
MEMBUAT
MODEL
RANCANG
ALGORITMA
TULIS PROGRAM
COMPILE
Sintak Err
Executable code:
=> Run
Output Err
DOKUMEN TASI
120
DEFINISI
MASALAH
MEMBUAT
MODEL
RANCANG
ALGORITMA
TULIS PROGRAM
COMPILE
Sintak Err
Executable code:
=> Run
Output Err
DOKUMEN TASI
 Algoritma bisa dibuat dengan:
– Teknik tulisan seperti : Structure english dan
Pseudocode.
– Teknik visual seperti : Flow chart.
121
• Outline dari sebuah program komputer
• Ditulis dalam bahasa Inggris atau Indonesia
sederhana
• Kata kunci (keyword) digunakan untuk menjelaskan
struktur kendali (misalnya: “jika”, “ulangi”,
“sampai”,”if”,”repeat”, “until”)
122
Tujuh operasi dasar komputer:
1. Membaca data (Input)
2. Menampilkan data (Output)
3. Melakukan perhitungan aritmetika (Compute)
4. Memberikan nilai ke suatu identifier (Store)
5. Membandingkan dan Memilih (Compare)
6. Melakukan pengulangan (Loop)
7. Procedure dan atau Function
123
• Sewaktu komputer menerima informasi atau input,
maka statement yang biasa digunakan adalah
“Read”, “Get”, “Baca” ,”Input” atau “KeyIn”
• Contoh:
Read Bilangan
Get kode_pajak
Baca nama_mahasiswa
124
• Sewaktu komputer menampilkan informasi ataupun
output, maka statement yang biasa digunakan
adalah “Print”, “Write”, “Put”, “Output”, “Display”
ataupun “Cetak”
• Contoh:
Print “Universitas Bina Nusantara”
Cetak “Metode Perancangan Program”
Output Total
125
 Untuk melakukan operasi aritmetika digunakan
pseudocode berikut:
+ untuk penjumlahan (add)
- Untuk pengurangan (subtract)
* Untuk perkalian (multiply)
/ Untuk pembagian (divide)
() Untuk kurung
 Statement “Compute”, “Calculate” ataupun “Hitung”
juga dapat digunakan.
 Contoh:
Add number to total
Total = Total + number
126
 Ada tiga cara untuk memberikan nilai ke dalam variabel :
– Memberikan nilai awal, menggunakan statement
“Initialize” atau “Set”
– Memberikan nilai sebagai hasil dari suatu proses, maka
tanda “=“ digunakan
– Untuk menyimpan suatu nilai maka statement “Save” atau
“Store” digunakan
 Contoh:
Set Counter to 0
Total = Harga * Jumlah
127
• Salah satu operasi terpenting yang dapat dilakukan
komputer adalah membandingkan dan memilih salah
satu alternatif solusi.
• Keyword yang digunakan : “IF”, “THEN” dan “ELSE”
• Contoh
IF Pilih=‘1’ THEN
Discount = 0.1 * harga
ELSE
Discount = 0.2 * harga
ENDIF
128
• Jika ada beberapa perintah yang harus diulang, maka
dapat digunakan keyword “DOWHILE” dan “ENDDO”.
• Contoh
DOWHILE bil < 10
cetak bil
bil = bil +1
ENDDO
129
Algoritma Menggunakan Kalkulator
Mulai
Nyalakan kalkulator
Kosongkan Kalkulator
Ulangi
Input harga
Tekan tombol Plus (+)
Sampai semua harga diinput
Tampilkan total harga
Matikan kalkulator
Selesai
130
Algoritma Berangkat Kuliah
Mulai
Bangun dari tempat tidur
Mandi Pagi
Sarapan Pagi
Pergi Ke Kampus
Cari Ruang Kuliah
Masuk kelas untuk Kuliah
Selesai
131
Algoritma Sarapan Pagi
Mulai
Ambil piring
Masukkan nasi dan lauk dalam piring
Ambil sendok dan garpu
Ulangi
Angkat sendok dan garpu
Ambil nasi dan lauk
Suapkan ke dalam mulut
Taruh sendok dan garpu
Kunyah
Sampai (nasi dan lauk habis) ATAU kekenyangan
Bereskan piring, sendok dan garpu
Selesai
132
133
Terminator
Proses
Pemilihan
Input/Output
Dokumen
Pengulangan
Arah
Konektor antar
halaman
Konektor
• Mempunyai logika yang tepat untuk memecahkan
masalah.
• Menghasilkan output yang benar dalam waktu yang
singkat.
• Ditulis dengan bahasa baku terstruktur sehingga tidak
menimbulkan arti ganda.
• Ditulis dengan format baku sehingga mudah
diimplementasikan kedalam bahasa pemrograman.
• Semua operasi didefinisikan dengan jelas dan berakhir
sesudah sejumlah langkah.
134
• Pemrograman terstruktur merupakan pola
penyusunan program komputer hanya dengan
menggunakan tiga struktur kontrol yaitu:
1. Sequence
2. Selection
3. Repetition
135
• Sequence merupakan urutan pengerjaan dari
perintah/statement pertama sampai dengan
perintah/statement terakhir.
• Umumnya bahasa pemrograman mempunyai
sequence (urutan pengerjaan dari perintah /
statement ) mulai dari atas ke bawah dan dari kiri ke
kanan.
• Top-down
136
Contoh Sequence
 Contoh:
Cetak “Jumlah Mahasiswa”
Set Jumlah to 49
Cetak “Tambahan mahasiswa baru”
Baca mhs_baru
Jumlah = Jumlah + mhs_baru
Cetak “Jumlah Mahasiswa”
Cetak jumlah
 Penjelasan
– Urutan pengerjaan adalah mulai dari urutan pertama sampai dengan
urutan terakhir, jika mhs_baru diisi dengan 2, maka jumlah yang
tercetak adalah 51
137
• Struktur Kontrol Selection adalah penggambaran
sebuah kondisi dan pilihan diantara dua aksi.
• Statement Pertama akan dikerjakan jika kondisi
bernilai benar, jika tidak maka akan mengerjakan
perintah setelah keyword “else” (jika ada).
138
Belajar Memprogram
• belajar bahasa pemrograman
• belajar tentang strategi pemecahan masalah,
metodologi dan sistematika pemecahan
masalah kemudian menuliskannya dalam
notasi yang disepakati bersama
• bersifat pemahaman persoalan, analisis dan
sintesis
• titik berat : designer program
-Alpro 2009- 139
Belajar Bahasa Pemrograman
• belajar memakai suatu bahasa pemrograman,
aturan sintaks, tatacara untuk memanfaatkan
instruksi yang spesifik untuk setiap bahasa
• titik berat : coder
-Alpro 2009- 140
Syarat Program yang Baik
1. benar
2. berlaku umum untuk beragam data (valid)
3. mudah dibaca
4. mudah dimodifikasi dan dikembangkan
5. efisiensi dalam penggunaan ruang dan
waktu (kompleksitas rendah)
-Alpro 2009- 141
Contoh Selection
 Contoh :
IF Hari=1 THEN
Cetak “Senin”
ELSE
Cetak “Bukan hari Senin”
 Penjelasan
– Tulisan “Senin” akan ditampilkan jika Hari bernilai 1, jika
tidak maka tulisan “Bukan hari Senin” yang akan
ditampilkan
142
• Beberapa statement / perintah dapat diulang dengan
menggunakan struktur kontrol repetition.
• Statement / perintah akan tetap diulang selama
kondisi perulangan memenuhi (jika menggunakan
DOWHILE – ENDDO)
143
Contoh Repetition
 Contoh:
Bintang = 0
DOWHILE bintang < 5
Cetak bintang
bintang = bintang + 1
ENDDO
 Penjelasan:
– Pertama kali bintang akan diisi dengan 0, setelah itu isi dari
bintang akan dicetak sebanyak lima kali, sehingga tampilannya
akan sebagai berikut:
0 1 2 3 4
144
1. Buatlah algoritma menggunakan pseudocode untuk
menghitung luas persegi panjang
2. Buatlah algoritma menggunakan pseudocode untuk
mengubah jam dan menit yang diinput ke dalam
satuan detik.
3. Buatlah algoritma menggunakan pseudocode untuk
menentukan apakah bilangan yang diinput adalah
bilangan ganjil atau bilangan genap.
145
4. Buatlah algoritma menggunakan pseudocode untuk
menghitung luas lingkaran.
5. Buatlah algoritma menggunakan pseudocode untuk
menginput 3 buah bilangan, kemudian tentukan
bilangan terbesar, terkecil dan rata-ratanya.
146
SEKIAN
TERIMA KASIH

Algoritma Pemrograman

  • 1.
    Algoritma dan Pemrograman 1 LailyHermawanti,S.T., M.Kom No Hp: 08562773160 Email: lailyahermawanti18@gmail.com
  • 2.
    Bab 2 Cara PenulisanAlgoritma dalam Bahasa Natural, Flowchart, dan Pseudo Code
  • 3.
  • 4.
    NOTASI PENULISAN Dibagi menjadi3 cara, yaitu : • Notasi yang dinyatakan dalam kalimat Natural/Deskriptif • Notasi yang dinyatakan dalam flow chart • Notasi yang dinyatakan dengan pseudo code
  • 5.
    Penulisan Algoritma 1. Dalambahasa natural (Bahasa Indonesia, Bahasa Inggris, dan bahasa manusia lainnya) – Tapi sering membingungkan (ambiguous) 2. Menggunakan flow chart (diagram alir) – Bagus secara visual akan tetapi repot kalau algoritmanya panjang 3. Menggunakan pseudo-code – Sudah lebih dekat ke bahasa pemrograman, namun sulit dimengerti oleh orang yang tidak mengerti pemrograman 2004 EL 2001 - Algoritma v.1.2 5
  • 6.
    Contoh Algoritma Dalam BahasaNatural 1. Ambil bilangan pertama dan set maks sama dengan bilangan pertama 2. Ambil bilangan kedua dan bandingkan dengan maks 3. Apa bila bilangan kedua lebih besar dari maks, set maks sama dengan bilangan kedua 4. Ambil blangan ketiga dan bandingan dengan maks 5. Apabila bilangan ketiga lebih besar dari maks, set maks sama dengan bilangan ketiga 6. Variabel maks berisi bilangan terbesar. Tayangkan hasilnya
  • 7.
    Notasi yang dinyatakandalam kalimat deskriptif • Deskripsi setiap langkah dijelaskan dengan bahasa yang jelas • Cocok untuk algoritma yang pendek • Relatif sulit untuk dikonversi ke bahasa pemrograman
  • 8.
    Notasi yang dinyatakandalam kalimat deskriptif (lanjut) • Contoh : Algoritma Bilangan Maksimum Diberikan tiga buah bilangan bulat. Carilah bilangan bulat maksimum diantara ketiga bilangan tersebut. Deskripsi : – Mulai – baca bilangan 1 – baca bilangan 2 – bandingkan bilangan 1 dan bilangan 2, kita ambil yang lebih besar, jika kedua bilangan tersebut sama besar, dapat kita ambil bilangan 1, dan sebut bilangan tersebut MAX – baca bilangan 3 – bandingkan MAX dengan bilangan 3, dan pilih yang lebih besar, jika keduanya sama besar, pilih MAX dan sebut bilangan tersebut MAX. – keluarkan sebagai output MAX – selesai
  • 9.
  • 10.
    Flow Chart • flowchart (diagram alir) – (menggambarkan urutan langkah-langkah kegiatan /program mulai dari awal sampai akhir dengan menggunakan simbol atau gambar tertentu.) • Kegunaan : mendesain dan mempresentasikan program
  • 11.
    Flowchart adalah gambarandalam bentuk diagram alir dari algoritma-algoritma dalam suatu program, yang menyatakan arah alur program tersebut. 11
  • 12.
    FLOWCHART • Flowchart lebihbaik dibandingkan pseudocode • Merupakan gambaran dalam bentuk diagram alir dari algoritma-algoritma dalam suatu program yang menyatakan arah alur program tersebut • Disajikan dalam bentuk grafik/gambar • Dapat membantu programmer maupun orang lain dalam memahami alur program (apa saja input, proses dan output dari program) • Representasi visual, karena itu lebih mudah dipahami • Jumlah simbol yang digunakan sedikit, karena itu lebih sederhana dan lebih mudah dipelajari
  • 13.
    Flowchart • bagan yangmenggambarkan urutan instruksi untuk proses dengan komputer dan hubungan antara suatu proses dengan proses lainnya dengan menggunakan simbol • tidak digunakan untuk menggambarkan urutan langkah untuk memecahkan masalah, tetapi hanya untuk menggambarkan prosedur dalam sistem yang dibentuk -Alpro 2009- 13
  • 14.
    Flowchart • Bagan-bagan yangmempunyai arus • Menggambarkan langkah-langkah penyelesaian suatu masalah • Merupakan salah satu cara penyajian algoritma 14
  • 15.
    Tujuan • Menggambarkan suatutahapan penyelesaian masalah • Secara sederhana, terurai, rapi dan jelas • Menggunakan simbol-simbol standar 15
  • 16.
    Model / JenisFlowchart • System Flowchart • Program Flowchart 16
  • 17.
    System Flowchart • Menggambarkansuatu sistem peralatan komputer yang digunakan dalam proses pengolahan data serta hubungan antar peralatan tersebut • Tidak digunakan untuk menggambarkan urutan langkah untuk memecahkan masalah • Hanya untuk menggambarkan prosedur dalam sistem yang dibentuk 17
  • 18.
    Program Flowchart • Menggambarkanurutan logika dari suatu prosedur pemecahan masalah • Dua jenis metode penggambaran program flowchart : – Conceptual flowchart, menggambarkan alur pemecahan masalah secara global – Detail flowchart, menggambarkan alur pemecahan masalah secara rinci 18
  • 19.
    Simbol-simbol Flowchart • Flowdirection symbols – Digunakan untuk menghubungkan simbol satu dengan yang lain – Disebut juga connecting line • Processing symbols – Menunjukan jenis operasi pengolahan dalam suatu proses / prosedur • Input / Output symbols – Menunjukkan jenis peralatan yang digunakan sebagai media input atau output 19
  • 20.
    Flow Direction Symbols •Simbol arus / flow – Menyatakan jalannya arus suatu proses • Simbol communication link – Menyatakan transmisi data dari satu lokasi ke lokasi lain • Simbol connector – Menyatakan sambungan dari proses ke proses lainnya dalam halaman yang sama • Simbol offline connector – Menyatakan sambungan dari proses ke proses lainnya dalam halaman yang berbeda 20
  • 21.
    Processing Symbols • Simbolprocess – Menyatakan suatu tindakan (proses) yang dilakukan oleh komputer • Simbol manual – Menyatakan suatu tindakan (proses) yang tidak dilakukan oleh komputer • Simbol decision – Menujukkan suatu kondisi tertentu yang akan menghasilkan dua kemungkinan jawaban : ya / tidak • Simbol predefined process – Menyatakan penyediaan tempat penyimpanan suatu pengolahan untuk memberi harga awal • Simbol terminal – Menyatakan permulaan atau akhir suatu program 21
  • 22.
    Processing Symbols • Simbolkeying operation – Menyatakan segal jenis operasi yang diproses dengan menggunakan suatu mesin yang mempunyai keyboard • Simbol offline-storage – Menunjukkan bahwa data dalam simbol ini akan disimpan ke suatu media tertentu • Simbol manual input – Memasukkan data secara manual dengan menggunakan online keyboard 22
  • 23.
    Input / OutputSymbols • Simbol input/output – Menyatakan proses input atau output tanpa tergantung jenis peralatannya • Simbol punched card – Menyatakan input berasal dari kartu atau output ditulis ke kartu • Simbol magnetic tape – Menyatakan input berasal dari pita magnetis atau output disimpan ke pita magnetis • Simbol disk storage – Menyatakan input berasal dari dari disk atau output disimpan ke disk 23
  • 24.
    Input / OutputSymbols • Simbol document – Mencetak keluaran dalam bentuk dokumen (melalui printer) • Simbol display – Mencetak keluaran dalam layar monitor 24
  • 25.
    Lambang Flowchart Terminator (mulai/selesai) Input/output Proses Decision(percabangan) Data Flow (Aliran data) Preparation (pemberian nilai awal suatu variabel) Call (memanggil prosedur/fungsi) Connector (di halaman yg sama Connector ( di halaman lain)
  • 26.
    Berikut adalah beberapasimbol yang digunakan dalam menggambar suatu flowchart : 26 SIMBOL NAMA FUNGSI TERMINATOR Permulaan/akhir program GARIS ALIR (FLOW LINE) Arah aliran program PREPARATION Proses inisialisasi/pemberian harga awal PROSES Proses perhitungan/proses pengolahan data INPUT/OUTPUT DATA Proses input/output data, parameter, informasi PREDEFINED PROCESS (SUB PROGRAM) Permulaan sub program/proses menjalankan sub program DECISION Perbandingan pernyataan, penyeleksian data yang memberikan pilihan untuk langkah selanjutnya ON PAGE CONNECTOR Penghubung bagian-bagian flowchart yang berada pada satu halaman OFF PAGE CONNECTOR Penghubung bagian-bagian flowchart yang berada pada halaman berbeda
  • 27.
  • 28.
    Menghitung luas persegipanjang 28 Input lebar Start End Input panjang Luas  panjang * lebar Print Luas
  • 29.
    Notasi yang dinyatakandalam flow chart • Sama halnya dengan notasi deskriptif, notasi ini cocok untuk algoritma yang pendek • Relatif sulit untuk dikonversi ke bahasa pemrograman
  • 30.
    Pembuatan Flowchart • Tidakada 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
  • 31.
    Pembuatan Flowchart –cont. • 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.
  • 32.
  • 33.
  • 34.
    Exercise 1. Buatlah algoritmauntuk menghitung luas dan keliling lingkaran. Dengan masukan berupa jari-jari. 2. Buatlah flowchart dari algoritma pada soal no 1 diatas. 3. Buatlah algoritma untuk mengecek bilangan di antara 2 bilangan masukan, apakah sama ataukah lebih besar salah satunya, dan tampilkan hasilnya. 4. Buatlah flowchart dari algoritma pada soal no 3 diatas.
  • 35.
    Notasi yang dinyatakandalam flowchart (lanjut) • Contoh : Algoritma Bilangan Maksimum Diberikan tiga buah bilangan bulat. Carilah bilangan bulat maksimum diantara ketiga bilangan tersebut. Deskripsi :
  • 38.
    Algoritma dengan Flowchart Maks= bilangan pertama Maks < bilangan kedua Maks = bilangan kedua Maks < bilangan ketiga Maks = bilangan ketiga Ya Ya Selesai Mulai Tidak Tidak
  • 39.
    Mulai Inputkan nilai (tugas,uts,uas) NA =25%tg+25%uts+50%uas NA>60 Gagal Lulus Selesai
  • 40.
    40 Start d = b^2– 4ac d < 0 Cetak Pesan “Akar imajiner” x1=(-b+sqrt(d))/2a x2 =(-b-sqrt(d))/2a Stop Y T Masukkan a,b,c Cetak x1,x2
  • 41.
    Notasi yang dinyatakandengan pseudo code • Notasi yang menyerupai bahasa pemrograman tingkat tinggi • Kemudahan mengkonversinya (mentranslasi ke notasi bahasa pemrograman) • Intinya, Pseudo code adlh campuran antara bahasa alami dengan bahasa pemrograman
  • 42.
    Notasi yang dinyatakandalam pseudo code(lanjut) • Contoh : Algoritma Bilangan Maksimum Diberikan tiga buah bilangan bulat. Carilah bilangan bulat maksimum diantara ketiga bilangan tersebut. Deklarasi : – Bil1,Bil2,Bil3 : integer {bilangan yang dicari maksimumnya} – MAX : integer {variabel bantu} Deskripsi : – Read (Bil1,Bil2) – If Bil1 >= Bil2 then – Bil1 = MAX – Else Bil2 = MAX – Read (Bil3) – If Bil3 >= MAX then – Bil3 = MAX – Write (MAX)
  • 43.
    Algoritma dengan pseudo-code maks← bilangan pertama if (maks < bilangan kedua) maks ← bilangan kedua if (maks < bilangan ketiga) maks ← bilangan ketiga 2004 EL 2001 - Algoritma v.1.2 43
  • 44.
    Algoritma dengan pseudo-code maks← bilangan pertama if (maks < bilangan kedua) maks ← bilangan kedua if (maks < bilangan ketiga) maks ← bilangan ketiga
  • 45.
    Ad.1.Bagaimana merencanakan algoritma DenganMendefinisikan masalah. Contoh : Permasalahan menghitung luas lingkaran, dengan data yang diketahui adalah diameter lingkaran. Rumus : ∏ . r2 dengan Phi = 3.14 atau 22/7.
  • 46.
    – Dengan flowchart/ diagram alir Program Flowchart, yaitu bagan yang menggambar-kan urutan logika dari suatu prosedur pemecahan masalah. Start Phi = 3.14 Input (diameter) Radius = diameter/2 Luas = phi * radius * radius Output Luas Stop
  • 47.
    Ad.2.Bagaimana menyatakan suatualgoritma (menulis algoritma) – Dengan psudocode Suatu cara penulisan algoritma agar ide dan logika dari algoritma dapat disampaikan/diekspresikan menggunakan gaya bahasa pemrograman tertentu. Phi  3.14 Input (diameter) Radius  diameter / 2 Luar  phi * radius * radius Output (Luas) End
  • 48.
    Penulisan Algoritma dalam BahasaNatural, Flowchart, Pseudo Code
  • 49.
    Buat sebuah algoritmauntuk memilih bilangan terkecil dari 3 buah bilangan • Algoritma Dalam Bahasa Natural 1. Ambil bilangan pertama dan set kecil sama dengan bilangan pertama 2. Ambil bilangan kedua dan bandingkan dengan kecil 3. Apa bila bilangan kedua lebih kecil dari kecil, set kecil sama dengan bilangan kedua 4. Ambil blangan ketiga dan bandingan dengan kecil 5. Apabila bilangan ketiga lebih kecil dari kecil, set kecil sama dengan bilangan ketiga 6. Variabel kecil berisi bilangan terkecil. 7.Tayangkan hasilnya.
  • 51.
    Algoritma dengan pseudo-code kecil bilangan pertama if ( bilangan kedua < kecil) kecil  bilangan kedua if ( bilangan ketiga < kecil) kecil  bilangan ketiga Ouput(kecil)
  • 52.
    Hal yang harusdipenuhi dalam membuat algoritma • Input : data yang harus diberikan pada komputer • Output: informasi yang akan diperoleh dari komputer • Logika: Merencanakan proses program. Terdiri dari sejumlah instruksi yang mengubah input menjadi output yang diinginkan.
  • 53.
    Aspek Penting dariAlgoritma 1. Finiteness • Algoritma harus berhenti after a finite number of steps 2. Definiteness • Setiap langkah harus didefinisikan secara tepat, tidak boleh membingungkan (ambiguous) 3. Input • Sebuah algoritma memiliki nol atau lebih input yang diberikan kepada algoritma sebelum dijalankan 4. Output • Sebuah algoritma memiliki satu atau lebih output, yang biasanya bergantung kepada input 5. Effectiveness • Setiap algoritma diharapkan miliki sifat efektif
  • 54.
    Struktur Dasar Algoritma •Runtunan (sequence) • Pemilihan (selection) • Pengulangan (repetition)
  • 55.
    Runtunan • Sebuah runtunanterdiri dari satu atau lebih instruksi • Tiap instruksi dikerjakan berurutan • Urutan instruksi menentukan keadaan akhir algoritma • Contoh A1 A2 A3 A4 A5
  • 56.
    Algoritma TUKAR_ISI_BEJANA • Diberikandua buah bejana, A dan B; bejana A berisi larutan merah, bejana B berisi larutan biru. Pertukarkan isi kedua bejana itu sehingga bejana A berisi larutan biru dan bejana B berisi larutan merah • DESKRIPSI 1. Tuangkan larutan dari bejana A ke bejana X 2. Tuangkan larutan dari bejana B ke bejana A 3. Tuangkan larutan dari bejana C ke bejana B • Hasil akhir – Bejana A berisi larutan dari bejana B semula – Bejana B berisi larutan dari bejana A semula
  • 57.
    Algoritma TUKAR_ISI_BEJANA • Misalurutan diubah menjadi 1. Tuangkan larutan dari bejana B ke bejana A 2. Tuangkan larutan dari bejana A ke bejana X 3. Tuangkan larutan dari bejana C ke bejana B • Hasil akhir menjadi – Bejana A kosong – Bejana B berisi campuran larutan dari bejana A dan bejana semula B
  • 58.
    Pemilihan • Adakalanya instruksidikerjakan jika kondisi tertentu terpenuhi • Contoh – Jika data ke-j lebih kecil dari min, maka isikan data ke-j sebagai min yang baru • Dapat ditulis if kondisi then aksi
  • 59.
    Pemilihan • Memilih salahsatu tergantung dari nilai kondisinya if kondisi then aksi 1 else aksi 2 Contoh if x>y then tulis x sebagai bilangan terbesar else tulis y sebagai bilangan terbesar
  • 60.
    Teks Algoritma • SubPokok Bahasan – Pendahuluan – Judul Algoritma – Deklarasi – Deskripsi – Pengisian Nilai
  • 61.
    • Setiap orangpunya pola pikir yang berbeda, karena itu akan menghasilkan algoritma yang berbeda • Algoritma dikatakan benar apabila dapat memecahkan masalah • Perlu dipertimbangkan masalah efisiensi dalam penyusunan algoritma • Pemilihan rute jalan, misalnya : – Beberapa rute mungkin akan menghasilkan tujuan yang sama – Ada rute yang lebih efisien dibanding rute lainnya – Sebaiknya yang diambil adalah rute terpendek
  • 62.
    • PEmrograman :aktifitas yg dilakukan dengan membat intruksi untuk menyelesaikan permasalahan yg dimenegeti oleh komputer • Program : coding, hasil pemrograman • Bahasa Pemrograman : Bahasa program yang digunakan untuk membuat urutan instruksi yg dimengerti oleh komputer. • Pemrograman (programer) : orang yg membuat program komputer.
  • 63.
    Aspek Penting dariAlgoritma 1. Finiteness • Algoritma harus berhenti after a finite number of steps 2. Definiteness • Setiap langkah harus didefinisikan secara tepat, tidak boleh membingungkan (ambiguous) 3. Input • Sebuah algoritma memiliki nol atau lebih input yang diberikan kepada algoritma sebelum dijalankan 4. Output • Sebuah algoritma memiliki satu atau lebih output, yang biasanya bergantung kepada input 5. Effectiveness • Setiap algoritma diharapkan miliki sifat efektif
  • 64.
    beberapa langkah umumdalam pembuatan suatu program yaitu • Mendefinisikan masalah – mendefinisikan permasalahan. langkah ini harus dilakukan untuk menentukan masalah yang ada serta ditentukan pula input dan output program • Mencari solusinya – Bila untuk mendapatkan solusi harus melalui langkah yang terlalu rumit dapat dilakukan pembagian masalah dalam beberapa modul- modul kecil agar mudah untuk dikerjakan. Lalu modul-modul kecil tersebut digabungkan menjadi satu untuk dapat menentukan solusi. • Menentukan algoritma • Menulis program • Menguji program • Mendokumentasikan program • Merawat program
  • 65.
    Pendahuluan • Teks algoritmayang dimaksud di sini adalah teks pseudocode yang dianggap perlu untuk menjembatani keragaman dan kompleksitas bahasa sehingga dapat dilakukan “abstraksi” • Teks ini lebih berorientasi kepada detail design dibandingkan coding (merupakan rancangan secara prosedural yang selanjutnya dengan mudah dapat ditranslasi menjadi salah satu program dalam bahasa tertentu) • Contoh bahasa pemrograman yang digunakan adalah Bahasa Pascal. Jadi dalam pembahasan berikutnya, translasi teks Algoritma adalah ke dalam teks program Bahasa Pascal.
  • 66.
    Pendahuluan • Bagian-bagian (blok)dalam teks algoritma: – JUDUL (header) algoritma – DEKLARASI algoritma – DESKRIPSI algoritma Keterangan: – Pasangan tanda kurung kurawal (‘{‘ dan ‘}’) digunakan untuk memberikan komentar (untuk memperjelas maksud teks yang dituliskan).
  • 67.
    Judul Algoritma • Terdiridari nama dan penjelasan (spesifikasi) algoritma. • Nama yang digunakan sebaiknya singkat (namun cukup informatif). • Biasanya di bawah nama diberi spesifikasi algoritma. Algoritma yang akan ditulis nantinya harus sesuai dengan spesifikasi yang didefinisikan.
  • 68.
    Deklarasi • Merupakan tempatuntuk mendefinisikan berbagai macam nama, yaitu: – nama tipe – nama konstanta – nama peubah (nama variabel) – nama fungsi, sekaligus spesifikasinya – nama prosedur, sekaligus spesifikasinya • Semua nama tersebut baru dapat digunakan jika telah didefinisikan di dalam DEKLARASI. Penulisan sekumpulan nama dalam DEKLARASI sebaiknya dikelompokkan menurut jenis nama tersebut. • Ketentuan-ketentuan dalam pendefinisian nama-nama: – nama peubah belum terdefinisi harganya ketika didefinisikan. – Pendefinisian konstanta sekaligus juga memberikan harganya. – pendefinisian nama fungsi sekaligus juga dengan domain dan range serta spesifikasinya. – Pendefinisian nama prosedur sekaligus juga dengan pendefinisian parameter (jika ada) dan spesifikasi prosedur (kondisi awal, kondisi akhir dan proses yang dilakukan).
  • 69.
    Deklarasi DEKLARASI { Nama tipe,hanya untuk tipe yang bukan tipe dasar } type Titik : <X:real,Y:real> { koordinat pada sumbu kartesian } { Nama konstanta, harus menyebutkan nilai } const phi = 3.14 { Nama peubah (variabel), menyebutkan tipe } P : Titik { Titik dalam derajat kartesian } jmlh : integer { Jumlah suatu elemen } ketemu : boolean { Keadaan hasil pencarian } { Spesifikasi Fungsi, menyebutkan nama fungsi, domain dan range } function Konversi_Real_Ke_Integer(input i:real)→integer { Mengkonversi harga i yang bertipe real menjadi harga ekivalen yang bertipe integer } { Spesifikasi Prosedur, menyebutkan nama, parameter, kondisi awal, kondisi akhir dan proses } procedure Tukar(input/output A:integer, input/output B:integer) { Kondisi awal : A dan B terdefinisi, A=a dan B=b } { Kondisi akhir : A=b dan B=a } { Proses : Mempertukarkan nilai A dan B }
  • 70.
    Deskripsi • Merupakan bagianinti dari algoritma. • Komponen di dalam teks algoritma dapat berupa: – Instruksi dasar seperti input/output, assignment – Urutan (sequence) – Pemilihan – Pengulangan
  • 71.
    Pengisian nilai kedalam Nama Peubah • Pengisian Nilai secara langsung • Pembacaan Nilai dari Piranti Masukan
  • 72.
    Pengisian Nilai secaralangsung • Pengisian nilai secara langsung (assignment) adalah memasukkan nilai ke dalam nama peubah langsung didalam teks algoritma • Notasi pengisian secara langsung : ← • Nilai yang diberikan kepada peubah dapat berupa tetapan, nilai peubah lain atau nilai sebuah ekspresi. Nilai tersebut harus bertipe sama dengan tipe peubah peubah ← tetapan {nilai tetapan diisikan ke dalam peubah} peubah1 ← peubah2 {nilai peubah2 disalin kedalam peubah1} peubah ← ekspresi {hasil perhitungan diisikan ke dalam peubah}
  • 73.
    Pengisian Nilai secaralangsung CONTOH k ←5 jarak ←0.03 ketemu ←false NamaKota ←’Solo’ {Mengisi J dengan jam 6:12:39} J.hh ←6 J.mm ←12 J.ss ←39 jarak ←78.90 NamaKota ←’MEDAN’
  • 74.
    Pengisian Nilai secaralangsung • Berapakah nilai M dan P setelah runtunan penugasan dibawah ini selesai dilaksanakan oleh? Andaikan M dan P bertipe integer M ← 16 P ← M*2 M ← P + 100 P ← P + M
  • 75.
    Pembacaan Nilai dariPiranti Masukan • Nilai untuk peubah dapat diisi dari piranti masukan • Dinamakan operasi pembacaan data • Dalam algoritma, dilakukan dengan notasi read Notasi algoritmik untuk pembacaan nilai dari piranti masukan read (nama1, nama2, . . . namaN)
  • 76.
    Pembacaan Nilai dariPiranti Masukan CONTOH : read(M) read(a1, a2, a3) read(nama_kota) read(nama_mhs,NRP,nilai) read(P.x,P.y)
  • 77.
    Ekspresi Aritmatik • Misaldeklarasi sebagai berikut : a, b, c : real d : integer i, j , k : integer Misal ekspresi a * b – hasil ekspresi adalah real – a dan b adalah operand, * adalah operator – Bila disimpan ke peubah, maka tipe peubah harus sama dengan tipe hasil – c ← a * b (benar) – d ← a * b (salah)
  • 78.
    Ekspresi • Terdiri darioperand dan operator • Operand adalah nilai yang dioperasikan dengan operator tertentu • Operand dapat berupa tetapan, nama peubah, nama tetapan, atau hasil dari suatu fungsi • Ada 3 macam ekspresi : ekspresi aritmatik, ekspresi relasional dan ekspresi string
  • 79.
    Ekspresi Relasional • Adalahekspresi dengan operator <,≤,>,≥,= dan ≠, not,and, or dan xor • Misal didefinisikan deklarasi berikut DEKLARASI ketemu, besar : boolean x,y : integer misal ketemu bernilai false, ada bernilai true, x bernilai 8 dan y bernilai 12. Maka : not ada (hasil : false) ada and true (hasil : true) x < 5 (hasil : false) ada or (x = y) (hasil : true)
  • 80.
    Ekspresi String • Ekspresistring adalah ekspresi dengan operator “+” (operator penyambungan /concatenation) DEKLARASI kar : char s : string s ← s+kar
  • 81.
    Menuliskan Nilai kePiranti Keluaran • Nilai yang disimpan di memori dapat ditampilkan ke piranti keluaran(misal layar monitor) • Instruksi penulisan dengan notasi write write(nama1,nama2, …, namaN) write(tetapan) write(nama, tetapan, ekspresi) write(ekspresi)
  • 82.
    Bahan Bacaan • RinaldiMunir, Algoritma dan Pemrograman dalam Bahasa Pascal dan C, Penerbit Informatika Bandung • Antony Pranata, Algoritma dan Pemrograman
  • 83.
    Latihan 2 Buatlah suatualgoritma untuk proses aktivitas yang anda kerjakan dari pagi hingga malam hari
  • 84.
    Contoh Algoritma 2 •Algoritma untuk menentukan apakah suatu bilangan merupakan bilangan ganjil atau bilangan genap. • Algoritmanya : a. Masukkan bilangan yang akan ditentukan b. Bagi bilangan dengan bilangan 2 c. Hitung sisa hasil bagi pada langkah b. d. 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.
  • 85.
    Latihan 3 • Buatalgoritma mengurutkan 3 bilangan acak!
  • 87.
    Simbol Algoritma (Flowchart): Proses/kegiatanpemrosesan input IO Garis Alir Pencabangan/Pemeriksaan kondisi Terminator/Start or End Konektor/Penghubung Next Page
  • 92.
  • 93.
    Struktur Dasar Algoritma •Runtunan (Sequence) • Pemilihan (Selection) • Pengulangan(Repetition) -Alpro 2009- 93
  • 94.
  • 95.
    Flowchart (cont’) Preparation Arrow Connector (onpage) Connector (off page) Display -Alpro 2009- 95
  • 96.
    Flowchart (cont’) • Keuntungan: lebih mudah dilihat dan dipahami • Kelemahan : jika digunakan untuk menggambarkan proses atau algoritma untuk skala kasus yang besar, maka akan dibutuhkan banyak kertas -Alpro 2009- 96
  • 97.
    Kasus • Pemimpin sebuahperusahaan otomotif perlu menentukan besarnya bonus yang akan diberikan kepada para pegawainya yang bekerja sebagai account executive. Jika terdapat pegawai yang dalam bulan ini telah menjual mobil lebih dari dua unit, maka akan mendapatkan bonus sebesar Rp 1.000.000,- kemudian pegawai yang bisa menjual mobil tepat dua buah maka, akan mendapatkan bonus Rp 500.000,- namun jika pegawai yang dalam bulan ini penjualannya kurang dari dua unit maka, pegawai tersebut tidak mendapatkan bonus. -Alpro 2009- 97
  • 98.
    Pseudocode • Diarahkan untukmenyerupai aturan penulisan bahasa pemrograman tertentu -Alpro 2009- 98
  • 99.
  • 100.
    Judul • Tidak diawalidengan angka atau karakter lain selain alphabet • Tidak terdapat karakter spasi atau karakter selain alphabet kecuali karakter underscore ‘_’ (sebagai pengganti karakter spasi) • Mana yang benar ? – Algoritma berhitung; – Algoritma konversi suhu; – Algoritma hitungan_pajak; – Algoritma 2bilangan; – Algoritma *kecil; -Alpro 100
  • 101.
    Kamus • digunakan sebagaitempat untuk mencantumkan variabel, konstanta, dan record • Hal-hal yang dideklarasikan pada bagian ini digunakan sebagai ‘reservasi’ alokasi memory untuk penyimpanan data dan akan digunakan selama program bekerja -Alpro 2009- 101
  • 102.
    Algoritma • digunakan untukmeletakkan semua algoritma atau kode-kode program • Diawali dengan ‘BEGIN’ dan diakhiri dengan ‘END’ -Alpro 2009- 102
  • 103.
    Pemilihan (Selection) -Alpro 2009-103 If kondisi then aksi endIf If kondisi then aksi1 else aksi2 endIf
  • 104.
    Contoh (Pemilihan) : -Alpro2009- 104 If A>B then Max A endIf If B>A then Max B endIf If A>B then Max A Else Max B endIf
  • 105.
    Pengulangan (Repetition) -Alpro 2009-105 for var  awal to akhir do aksi Endfor repeat aksi until kondisi_stop while kondisi_ulang do aksi endwhile
  • 106.
    Contoh (Pengulangan) : -Alpro2009- 106 For i  1 to 5 do output(“Algoritma dan Pemrograman”) EndFor i1 Repeat output(“Algoritma dan Pemrograman”) ii+1 Until (i>5) i1 While (i<=5) do output(“Algoritma dan Pemrograman”) ii+1 endwhile
  • 107.
    Input dan Output -Alpro2009- 107 Algoritma Masukkan_data Kamus data x : integer BEGIN input(x) /*x adalah variabel penampung nilai*/ END. Algoritma Masukkan_nilai Kamus data x : integer BEGIN x  5 /*panah ke kiri arah masuknya nilai*/ END.
  • 108.
    Input dan Output -Alpro2009- 108 Algoritma Tampilan Kamus data x : integer BEGIN output(x) /*x adalah variabel yang berisi nilai*/ END.
  • 109.
    MASALAH / IDEAPEMECAHAN SOLUSI / HASIL Algoritma Source Code Executable Code
  • 110.
    Tahap Pengembangan Pogram AlgoritmaPemrograman IC - Bab 1 110 Mulai Batasan Masalah Pengembangan Model Rancangan Algoritma Perbaikan Algoritma Pemrograman Pengujian Pembetulan Analisa Dokumentasi Selesai
  • 111.
  • 112.
    112 DEFINISI MASALAH MEMBUAT MODEL RANCANG ALGORITMA TULIS PROGRAM COMPILE Sintak Err Executablecode: => Run Output Err DOKUMEN TASI Masalah: Tentukan akar-akar dari suatu persamaan kwadrat. Definisi: Persamaan kwadrat : ax^2 + bx + c = 0 Data yg diperlukan : Nilai dari a, b dan c : tipe real
  • 113.
    113 DEFINISI MASALAH MEMBUAT MODEL RANCANG ALGORITMA TULIS PROGRAM COMPILE Sintak Err Executablecode: => Run Output Err DOKUMEN TASI Model Matematika : Rumus ABC x1 = (-b + sqrt(b^2 - 4ac))/2a x2 = (-b – sqrt(b^2 - 4ac))/2a
  • 114.
    114 Start d = b^2– 4ac d < 0 Masukkan a,b,c Cetak Pesan “Akar imajiner” x1=(-b+sqrt(d))/2a x2 =(-b-sqrt(d))/2a Cetak : x1, x2 Stop Y T TULIS PROGRAM COMPILE Sintak Err Executable code: => Run Output Err DOKUMEN TASI DEFINISI MASALAH MEMBUAT MODEL RANCANG ALGORITMA
  • 115.
  • 116.
  • 117.
  • 118.
  • 119.
  • 120.
  • 121.
     Algoritma bisadibuat dengan: – Teknik tulisan seperti : Structure english dan Pseudocode. – Teknik visual seperti : Flow chart. 121
  • 122.
    • Outline darisebuah program komputer • Ditulis dalam bahasa Inggris atau Indonesia sederhana • Kata kunci (keyword) digunakan untuk menjelaskan struktur kendali (misalnya: “jika”, “ulangi”, “sampai”,”if”,”repeat”, “until”) 122
  • 123.
    Tujuh operasi dasarkomputer: 1. Membaca data (Input) 2. Menampilkan data (Output) 3. Melakukan perhitungan aritmetika (Compute) 4. Memberikan nilai ke suatu identifier (Store) 5. Membandingkan dan Memilih (Compare) 6. Melakukan pengulangan (Loop) 7. Procedure dan atau Function 123
  • 124.
    • Sewaktu komputermenerima informasi atau input, maka statement yang biasa digunakan adalah “Read”, “Get”, “Baca” ,”Input” atau “KeyIn” • Contoh: Read Bilangan Get kode_pajak Baca nama_mahasiswa 124
  • 125.
    • Sewaktu komputermenampilkan informasi ataupun output, maka statement yang biasa digunakan adalah “Print”, “Write”, “Put”, “Output”, “Display” ataupun “Cetak” • Contoh: Print “Universitas Bina Nusantara” Cetak “Metode Perancangan Program” Output Total 125
  • 126.
     Untuk melakukanoperasi aritmetika digunakan pseudocode berikut: + untuk penjumlahan (add) - Untuk pengurangan (subtract) * Untuk perkalian (multiply) / Untuk pembagian (divide) () Untuk kurung  Statement “Compute”, “Calculate” ataupun “Hitung” juga dapat digunakan.  Contoh: Add number to total Total = Total + number 126
  • 127.
     Ada tigacara untuk memberikan nilai ke dalam variabel : – Memberikan nilai awal, menggunakan statement “Initialize” atau “Set” – Memberikan nilai sebagai hasil dari suatu proses, maka tanda “=“ digunakan – Untuk menyimpan suatu nilai maka statement “Save” atau “Store” digunakan  Contoh: Set Counter to 0 Total = Harga * Jumlah 127
  • 128.
    • Salah satuoperasi terpenting yang dapat dilakukan komputer adalah membandingkan dan memilih salah satu alternatif solusi. • Keyword yang digunakan : “IF”, “THEN” dan “ELSE” • Contoh IF Pilih=‘1’ THEN Discount = 0.1 * harga ELSE Discount = 0.2 * harga ENDIF 128
  • 129.
    • Jika adabeberapa perintah yang harus diulang, maka dapat digunakan keyword “DOWHILE” dan “ENDDO”. • Contoh DOWHILE bil < 10 cetak bil bil = bil +1 ENDDO 129
  • 130.
    Algoritma Menggunakan Kalkulator Mulai Nyalakankalkulator Kosongkan Kalkulator Ulangi Input harga Tekan tombol Plus (+) Sampai semua harga diinput Tampilkan total harga Matikan kalkulator Selesai 130
  • 131.
    Algoritma Berangkat Kuliah Mulai Bangundari tempat tidur Mandi Pagi Sarapan Pagi Pergi Ke Kampus Cari Ruang Kuliah Masuk kelas untuk Kuliah Selesai 131
  • 132.
    Algoritma Sarapan Pagi Mulai Ambilpiring Masukkan nasi dan lauk dalam piring Ambil sendok dan garpu Ulangi Angkat sendok dan garpu Ambil nasi dan lauk Suapkan ke dalam mulut Taruh sendok dan garpu Kunyah Sampai (nasi dan lauk habis) ATAU kekenyangan Bereskan piring, sendok dan garpu Selesai 132
  • 133.
  • 134.
    • Mempunyai logikayang tepat untuk memecahkan masalah. • Menghasilkan output yang benar dalam waktu yang singkat. • Ditulis dengan bahasa baku terstruktur sehingga tidak menimbulkan arti ganda. • Ditulis dengan format baku sehingga mudah diimplementasikan kedalam bahasa pemrograman. • Semua operasi didefinisikan dengan jelas dan berakhir sesudah sejumlah langkah. 134
  • 135.
    • Pemrograman terstrukturmerupakan pola penyusunan program komputer hanya dengan menggunakan tiga struktur kontrol yaitu: 1. Sequence 2. Selection 3. Repetition 135
  • 136.
    • Sequence merupakanurutan pengerjaan dari perintah/statement pertama sampai dengan perintah/statement terakhir. • Umumnya bahasa pemrograman mempunyai sequence (urutan pengerjaan dari perintah / statement ) mulai dari atas ke bawah dan dari kiri ke kanan. • Top-down 136
  • 137.
    Contoh Sequence  Contoh: Cetak“Jumlah Mahasiswa” Set Jumlah to 49 Cetak “Tambahan mahasiswa baru” Baca mhs_baru Jumlah = Jumlah + mhs_baru Cetak “Jumlah Mahasiswa” Cetak jumlah  Penjelasan – Urutan pengerjaan adalah mulai dari urutan pertama sampai dengan urutan terakhir, jika mhs_baru diisi dengan 2, maka jumlah yang tercetak adalah 51 137
  • 138.
    • Struktur KontrolSelection adalah penggambaran sebuah kondisi dan pilihan diantara dua aksi. • Statement Pertama akan dikerjakan jika kondisi bernilai benar, jika tidak maka akan mengerjakan perintah setelah keyword “else” (jika ada). 138
  • 139.
    Belajar Memprogram • belajarbahasa pemrograman • belajar tentang strategi pemecahan masalah, metodologi dan sistematika pemecahan masalah kemudian menuliskannya dalam notasi yang disepakati bersama • bersifat pemahaman persoalan, analisis dan sintesis • titik berat : designer program -Alpro 2009- 139
  • 140.
    Belajar Bahasa Pemrograman •belajar memakai suatu bahasa pemrograman, aturan sintaks, tatacara untuk memanfaatkan instruksi yang spesifik untuk setiap bahasa • titik berat : coder -Alpro 2009- 140
  • 141.
    Syarat Program yangBaik 1. benar 2. berlaku umum untuk beragam data (valid) 3. mudah dibaca 4. mudah dimodifikasi dan dikembangkan 5. efisiensi dalam penggunaan ruang dan waktu (kompleksitas rendah) -Alpro 2009- 141
  • 142.
    Contoh Selection  Contoh: IF Hari=1 THEN Cetak “Senin” ELSE Cetak “Bukan hari Senin”  Penjelasan – Tulisan “Senin” akan ditampilkan jika Hari bernilai 1, jika tidak maka tulisan “Bukan hari Senin” yang akan ditampilkan 142
  • 143.
    • Beberapa statement/ perintah dapat diulang dengan menggunakan struktur kontrol repetition. • Statement / perintah akan tetap diulang selama kondisi perulangan memenuhi (jika menggunakan DOWHILE – ENDDO) 143
  • 144.
    Contoh Repetition  Contoh: Bintang= 0 DOWHILE bintang < 5 Cetak bintang bintang = bintang + 1 ENDDO  Penjelasan: – Pertama kali bintang akan diisi dengan 0, setelah itu isi dari bintang akan dicetak sebanyak lima kali, sehingga tampilannya akan sebagai berikut: 0 1 2 3 4 144
  • 145.
    1. Buatlah algoritmamenggunakan pseudocode untuk menghitung luas persegi panjang 2. Buatlah algoritma menggunakan pseudocode untuk mengubah jam dan menit yang diinput ke dalam satuan detik. 3. Buatlah algoritma menggunakan pseudocode untuk menentukan apakah bilangan yang diinput adalah bilangan ganjil atau bilangan genap. 145
  • 146.
    4. Buatlah algoritmamenggunakan pseudocode untuk menghitung luas lingkaran. 5. Buatlah algoritma menggunakan pseudocode untuk menginput 3 buah bilangan, kemudian tentukan bilangan terbesar, terkecil dan rata-ratanya. 146
  • 147.