ALGORITMA
Seziaji Supriyanto, S.Pd
By :
A71_5 yahoo.com
DEFINISI ALGORITMA
• Urutan langkah-langkah logis
penyelesaian masalah yang disusun
secara sistematis
• Kata logis disini berarti sesuai dengan
logika manusia
• Untuk menjadi sebuah algoritma, urutan
langkah yang di tempuh untuk
menyelesaikan masalah harus
memberikan hasil yang benar.
SEJARAH ALGORITMA
Abu Ja’far Muhammad Ibnu Musa Al Khuwarizmi adalah
seorang penulis buku Arab yang berjudul Kitab Al Jabar Wal
Muqabala (Buku Pemugaran dan Pengurangan). Kata Al
Khuwarizmi di baca orang Barat menjadi Algorism.
Kata Algorism berarti proses menghitung dengan angka Arab.
Seseorang dikatakan algorist jika orang tersebut menggunakan
angka Arab.
Kata Algorism lambat laun berubah menjadi algorithm
disebabkan kata algorism sering di kelirukan dengan kata
arithmetic sehingga akhiran –sm berubah menjadi –thm. Kata
algorithm diserap kedalam bahasa Indonesia menjadi algoritma
Permasalahan Penyelesaian
Hasil yang
diinginkan
LOGIS
Ciri-Ciri Algoritma
1. Memiliki Input
2. Memiliki Proses
3. Menghasilkan Output
4. Menggunakan instruksi yang tidak ambigu
5. Harus memiliki stopping rule
Sifat Algoritma
1. Tidak menggunakan simbol ataupun sintaks
dari bahasa pemrograman
2. Penulisannya tergantung dengan bahasa
pemrograman
3. Notasinya dapat dipergunakan untuk semua
bahasa pemrograman
Penulisan Algoritma
1. Bahasa Natural
 Bahasa formal yang dipergunakan oleh manusia
 Bersifat terstruktur
 SE: Structured English
 BIT: Bahasa Indonesia Terstruktur
1. Psuedocode
 Psuedo: mirip, menyerupai, seolah-olah
 Code: baris program
 Psuedocode: instruksi yang menyerupai baris program
1. Flowchart
 Suatu bentuk diagram yang memiliki aliran satu atau dua arah secara
sekuensial
Contoh:
Menghitung Luas Segitiga
Luas sebuah segitiga didapatkan dengan
mengalikan panjang alas dengan tingginya
kemudian hasilnya dibagi dengan dua
BIT - Bahasa Indonesia Terstruktur
1. Masukan nilai Alas
2. Masukan nilai Tinggi
3. Hitung Luas dengan Alas kali Tinggi kemudian
dibagi 2
4. Tampilkan hasil perhitungan Luas
5. Selesai
Pseudocode
Algoritma Perhitungan Luas Segitiga
Input : Alas, Tinggi
Output : Luas Segitiga
Alas  Baca a
Tinggi  Baca t
Luas  (Alas x Tinggi) / 2
Tampilkan Luas
Mulai
Masukan a
Masukan t
L = (a * t) / 2
Cetak L
Selesai
Flowchart
CONTOH ALGORITMA
Ada 2 buah gelas. Satu berisi teh dan satunya berisi
kopi. Bagaimana caranya menukar isi masing-
masing gelas ?
TEH KOPI
ALGORITMANYA
Siapkan gelas cadangan X
X
TEH
TEH
KOPI
X
X
KOPI
Tuangkan teh kedalam
gelas cadangan X
Tuangkan kopi kedalam
gelas teh (yang telah
kosong)
Tuangkan teh (dari gelas
cadangan kedalam gelas
kopi.
Contoh Algoritma 1
Mengirim surat kepada teman:
1. Tulis surat pada secarik kertas surat.
2. Ambil sampul surat.
3. Masukkan surat ke dalam sampul.
4. Tutup sampul surat menggunakan perekat.
5. Jika kita ingat alamat teman tersebut, maka
tulis alamat pada sampul surat.
6. Jika tidak ingat, lihat buku alamat, kemudian
tulis alamat pada sampul surat.
7. Tempel perangko pada surat.
8. Bawa surat ke kantor pos untuk diposkan.
Contoh Algoritma 2
Mencari akar bulat positif dari bilangan
bulat (integer) positif a:
• Masukkan bilangan bulat positif a
• Berikan harga awal x sama dengan 1
• Hitung y sebesar x * x
• Jika y sama dengan a maka cetak x
sebagai akar dari a. Selesai
• Tambah nilai x dengan 1
• Pergi ke langkah 3.
Menentukan apakah suatu bilangan merupakan
bilangan ganjil atau bilangan genap.
• Masukkan sebuah bilangan sembarang
• Bagi bilangan tersebut dengan bilangan 2
• Hitung sisa hasil bagi pada langkah 2.
• 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.
Contoh Algoritma 3
STRUKTUR DASAR ALGORITMA
 Algoritma berisi langkah2 proses
penyelesaian masalah
 Langkah2 proses penyelesaian masalah
tersebut dapat membentk konstruksi suatu
algoritma, langkah2 tersebut adalah :
1. Runtunan aksi
2. Pemilihan aksi
3. Pengulangan aksi
1. RUNTUNAN AKSI
Sebuah runtunan terdpt satu atau lebih
pernytaan, setiap pernyataan dikerjakan
secara berurutan sesuai penulisannya
Sebuah instruksi dikerjakan setelah instruksi
sebelumnya telah dilaksanakan
Urutan instruksi menentukan keadaan akhir
suatu algoritma
Bila urutan algoritma dirubah, maka hasil
akhir mungkin juga berubah
Runtunan yg mempunyai satu/lebih
pernyaaan disbt penytaan gabungan
Contoh:
Program tukar_isi
Diberikan 2 buah ember A & B berisi air berwarna
merah, ember B berisi air berwarna biru. pertukarkan
kedua isi ember tersbt shg ember A berisi air berwrna
biru & ember B berisi air berwana merah
Algoritma :
1. Tuangkan air dari ember A kedlm ember C
2. Tuangkan air dari ember B kedlm ember A
3. Tuangkan air dari ember C kedlm ember B
2. PEMILIHAN
Adaklanya sebuah aksi dikerjakan jika kondisi
dipenuhi
Misal: jika lampu traffic light berwarna merah,
maka kendaraan harus berhenti,maka
pernyataan adalah:
jika lampu traffic light berwarna merah, maka
berhenti
Pernyataan tersebut disebut penyataan .
Pemilihan (selection-stantement )atau
pernyataan kondisional
Bentuk umum selection statement:
Kondisi: pernyataan yg dpt bernilai benar-
salah, aksi setelah then dilakukan hanya jika
kondisi benar
If & then adalah kaca kunci (keyword) u/
struktur pemilihan
Contoh :
if x habis dibagi 2 then
tulis x adalah bilangan genap
If kondisi then
aksi
Bentuk lain statent condisional
a.
else “kalau tdk”. Bila kondisi benar,maka aksi1
yg dikerjakan, kalau tdk aksi2 dikerjakan.
contoh:
if lampu A nyala then
tekan tombol merah
else
tekan tombol biru
if kondisi then
aksi1
Else
aksi2
b.nested-if =pemilihan bersarang adalah apabila
pemilihan aksi yg dilakukan lebih dr 2 buah,
maka struktur pemilihanya menjadi rumit.
if kondisi1 then
aksi1
Else
if kondisi2 then
aksi2
else
aksi3
Contoh :
if lampu traffic light berwarna merah then
berhenti
else
if lampu traffic light berwarna kuning then
jalan hati-hati
else
jalan terus
Dlm state.kondisi dikenal adanya ‘indentasi’
yaitu: pengg.rongga kosong yg membuat
algoritma menjd mudah dibaca.
Contoh:tanpa indentasi
if lampu traffic light berwarna merah then
berhenti
Else if lampu traffic light berwarna kuning then
jalan hati-hati else
jalan terus
Penulisan algoritma sangat dianjurkan u/
membuat indentasi, agar algoritma mudah
dibaca.
Kelebihan struktur pemilihan terletak pd
kemampuannya yg memungkinkan pemroses
mengikuti jalur aksi yg berbeda berdasarkan
kondisi yg ada.
3.PENGULANGAN
Salah satu kelebihan komputer ad/ kemampuannya u/
melakukan perkerjaan secara berulang-ulang
Contoh:
program menulis_kalimat_500_kali
menuliskan kalimat ‘algoritma adalah langkah logis penyelesaian masalah’
sebanyak 500 kali
Algoritma:
1. tulis ‘algoritma adalah langkah logis penyelesaian masalah’
2. tulis ‘algoritma adalah langkah logis penyelesaian masalah
3. tulis ‘algoritma adalah langkah logis penyelesaian masalah
.
.
.
500
untuk mengtasi hal tersbt dpt digunakan
struktr pengulangan for-do, sehingga
algoritmanya:
program menulis_kalimat_500_kali
menuliskan kalimat ‘algoritma adalah langkah logis
penyelesaian masalah’ sebanyak 500 kali
Algoritma:
for i dari 1 sampai 50 do
tulis ‘algoritma adalah langkah logis penyelesaian
masalah’
i adalah pencacah pengulangan yg mencacah
1 s/d 500
Bentuk2 pengulangan:
1. For pencacah pengulangan dr 1 s/d N
do aksi
2. Repeat-until=ulangi-sampai: proses pengulangan akan berhenti jika
kondisi terpenuhi
3 While-do=selama-lakukan= proses pengulangan akan berhenti jika
kondisi salah
Repeat
Aksi
Until
kondisi
While
kondisi
do
Aksi
STRUKTUR TEKS ALGORITMA
Ada 3 bagian struktur suatu algoritma,
yaitu :
1. Bagian Judul (header)
2. Bagian Deklarasi
3. Bagian Algoritma
1. Bagian judul / header
• Memuat nama program dan
penjelasan(spesifkasi) tentang program
• Nama program ditulis singkat, tetapi hrs
menggambarkan apa yg dilakukan algoritma
• Algoritma yg dibuat harus sesuai dgn
spesifikasi masalah yang diberikan
Contoh:
PROGRAM luas_lingkaran
{program untuk menghitung luas lingkaran”}
2. Bagian Deklarasi
• Mengumumkan semua nama yg akan
dipakai, termasuk nama tipenya
• Nama tersbut berupa:konstanta,variabel,tipe,
prosedur dan fungsi
• Semua nama tersbt harus dideklarasikan
sebelum digunakan
Contoh:
• DEKLARASI
{nama konstanta}
const N=10 {jumlah data}
const phi=3.14 {nilai phi}
{nama variabel}
jari_jari,luas:real
{nama tipe}
type titik:record {koord.titik dibidang kartesian}
< x:integer, {absis}
y:integer> {ordinat}
Aturan pemberian ‘nama’ dalam notasi
algoritmik:
1. tidak boleh mengandung spasi, tanda baca
dan operasi matematika
2. Karakter garis bawah (“_”) dpt digunakan
untuk menggantikan spasi
3. Tidak membedakan huruf kecil dan huruf
besar
(bahasa pemrograman case sensitif seperti
bahasa C menganggap huruf kecil dan besar
adalah 2 karakter yang berbeda)
3. Bagian Algortima
• Bagian ini merupakan inti dari suatu program
• Berisi deskripsi langkah2 penyelesain masalah
berupa pernyataan, yg ditulis dalam suatu
notasi
• Misal write untuk mencetak data/informasi,
read untuk membaca data,dsb
• Setiap pernyataan dlm algoritma dibaca dari
atas ke bawah
• Algoritma dieksekusi berdasarkan urutan
pernyataan
Contoh :
Algoritma :
Read (panjang,lebar)
Luas ←panjang*lebar
Write (luas)
Struktur teks Agoritma :
PROGRAM nama_program
penjelasan tentang algoritma yg beisi uraian singkat mengenai
masalah yg akan diselesaikan
DEKLARASI
Semua nama yg dipakai, nama tipe,konstanta,var,prosedur,dan
fungsi diumumkan disini
ALGORITMA
Semua langkah/aksi algoritma dituliskan disini
Contoh:
PROGRAM luas_lingkaran
{menghitung luas lingkaran apabila jari-jari lingkaran sudah diberikan}
DEKLARASI
{Nama Konstanta}
const N =10
const phi=3.14 {nilai phi}
{Nama variabel}
jari_jari, luas:real
ALGORITMA:
READ (jari_jari)
LUAS Phi *jari_jari*jari_jari
Write (luas)
KONSEP PEMROGRAMAN
• Variabel
• Konstanta
• Tipe Data
Variabel
• Variabel adalah tempat penyimpanan data sementara di
memori yang isinya dapat diubah.
• Setiap variabel memiliki nama, tipe data, dan nilai.
• Jenis data yang dapat ditampung suatu variabel harus
mengikuti aturan penamaan identifier.
• Harus dideklarasikan terlebih dahulu sebelum digunakan
• Contoh :
int alas, tinggi
Variabel
Tipe data
Nama Variabel
• Syarat-syarat penulisan nama variabel adalah :
– Harus dimulai dengan huruf alfabet.
– Case sensitive (huruf besar dan kecil
dibedakan).
– Karakter penyusun variabel hanya boleh
huruf alfabet, angka dan garis bawah.
– Tidak boleh menggunakan spasi.
• Nama variabel sebaiknya mencerminkan nilai
yang dikandungnya.
Konsep Variabel
• Variabel hanya menyimpan data secara
sementara.
• Nilai variabel dapat berubah.
• Variabel hanya dapat menyimpan satu data.
• Nilai suatu variabel adalah nilai yang terakhir.
• Pendefenisian variabel dapat digabung atau
dipisah sepanjang memiliki tipe data yang
sama
Konstanta
• Sebuah variabel dengan tipe data tertentu dan
memiliki nilai data yang akan selalu tetap dalam
program
contoh :
const_phi=3.14;
• Konstanta yang dikenal dalam program C berupa :
1. Integer constant; contoh : -5 0 125 010 0xF1
2. Floating-point constant; contoh : 3.14
3. Character constant; contoh : ´C´ ´1´ ´$´
4. String constant; contoh : ´UNM´
5. Escape sequence; contoh : n t ’’
Konstanta
• Integer constant adalah sebuah bilangan bulat.
Integer constant dapat berupa bilangan basis 10
(desimal), basis 8(oktal),atau basis 16
(heksadesimal). Konstanta oktal diawali dengan
bilangan nol.
• Floating-point constant adalah sebuah bilangan
pecahan atau desimal. Tanda desimal dalam bahasa
C adalah titik. Antara angka ratusan dan ribuan atau
antara angka ratusan ribuan dengan jutaan tidak
boleh diberi tanda pemisah.
• Character constant adalah sebuah karakter ASCII.
Karakter ini diapit tanda petik tunggal.
• String constant adalah kumpulan karakter ASCII.
Kumpulan ini diapit oleh tanda petik ganda.
Konstanta
• Escape Sequence adalah karakter yang diawali
dengan backslash (garis miring terbalik). Setiap
escape sequence mempunyai makna tertentu.
contoh : n berarti ganti baris,  karakter miring ke
kiri dst.
• Const modifier adalah pemberian nama pada suatu
nilai konstanta. Hal ini dilakukan untuk mencegah
kesalahan ketikan yang berulang.
contoh : const float pi=3.1415926;
Tipe Data
• Tipe Sederhana (simple type)
o Int , Bool, Char
o Tipe Float
• Tipe String
o Operasi String
• Tipe terstruktur (structured type)
o Array, Struct
Tipe Data Sederhana (Simple Type)
Type Batas Nilai Format
Unsigned int 0...65535 Signed 16 bit
Short Int -128...127 Signed 16 bit
Int -32768...32767 Signed 16 bit
Unsigned long 0...4294967295 Signed 32 bit
Long -
2147483648...214748364
7
Signed 32 bit
1. Tipe Int
Tipe data yang nilainya tidak memiliki titik
desimal
Tipe Batas Nilai Format
Float 3.4E-38... 3.4E+38 Unsigned 32 bit
Double 1.7E-308...1.7E+308 Unsigned 64 bit
Long double 3.4E-4932...1.1E+4932 Unsigned 80 bit
2. Type Float
Tipe data yang nilainya merupakan pecahan
(memiliki titik desimal)
Input NOT( ! ) AND (&&) OR (||)
A B C !A !B !C A&&B&&C A||B||C
0 0 0 1 1 1 0 0
0 0 1 1 1 0 0 1
0 1 0 1 0 1 0 1
0 1 1 1 0 0 0 1
1 0 0 0 1 1 0 1
1 0 1 0 1 0 0 1
1 1 0 0 0 1 0 1
1 1 1 0 0 0 1 1
3. Tipe Boolean
Nilai pengambilan suatu keputusan pada
program, tipe ini mempunyai 2 nilai yaitu benar (T)
atau salah (F). Operator yang digunakan adalah AND,
OR, dan NOT.
4. Tipe Character
digunakan untuk menampung data sebuah karakter.
Untuk menuliskan tipe char, karakter perlu ditulis di dalam tanda petik
tunggal ( ´ )
Contoh :
´A´ berarti karakter berupa huruf A
´1´ berarti karakter berupa angka 1
´*´ berarti karakter simbol *
Bentuk umum penulisan tipe data ini adalah :
tipe_data pengenal [panjang];
pengenal = nama variabel
panjang = bilangan bulat yang menunjukkan jumlah karakter
Contoh :
char_nama[15];
5. Tipe String
Merupakan sekumpulan dari beberapa karakter,
yang banyaknya berubah-ubah sesuai dengan
kebutuhan, besarnya 1 s/d 255 karakter.
Pemberian nilai string diapit dengan tanda petik
ganda (´´).
51
Flowchart
• Bagan-bagan yang mempunyai arus
• Menggambarkan langkah-langkah
penyelesaian suatu masalah
• Merupakan salah satu cara penyajian
algoritma
52
Tujuan
• Menggambarkan suatu tahapan
penyelesaian masalah
• Secara sederhana, terurai, rapi dan jelas
• Menggunakan simbol-simbol standar
53
Model / Jenis Flowchart
• System Flowchart
• Program Flowchart
54
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
55
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
56
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
57
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
58
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
59
Processing Symbols
• Simbol keying operation
– Menyatakan segala 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
60
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
61
Output SymbOlS
• Simbol document
– Mencetak keluaran dalam bentuk
dokumen (melalui printer)
• Simbol display
– Mencetak keluaran dalam layar
monitor
62
KaIdah pembuatan
FlOwchart
Start
Input
Proses
Output
End
63
pengOlahan data
START
READ
HABIS ?
PROCESS
WRITE
END
Tidak
Ya
64
Input lebar
Contoh 1
Start
End
Input panjang
Luas  panjang * lebar
Print Luas
STUDI KASUS 1
65
Buatlah flowchart ( Diagram Alur ) Jika terdapat 2
(dua) bilangan desimal, dimana jika salah satu dari
bilangan tersebut lebih besar maka akan tercetak
bilangan yang besar, jika tidak maka cetak bilangan
yang terkecil.
66
Start
Read A
Read B
A > B
Cetak A
Cetak B
End
Y
T
STUDI KASUS 2
67
Pensil dapat di beli secara satuan dan lusinan
Harga satuan pensil adalah Rp. 1.000, sedangkan harga selusin
pensil Rp. 5.000. Buatlah diagram alur untuk harga pembelian X
buah pensil.
Penjelasan :
Jika kita beli 15 buah pensil dengan harga satuan maka harus
membayar Rp. 15.000 , sedangkan jika kita membayar dengan 1
lusin serta 3 buah buah sisanya maka kita harus membayar Rp.
8.000
68
Cetak P
Baca X
L  INT (X/12)
S  X – L * 12
P  5000 * L + 1000* S
End
STUDI KASUS 3
69
Buatlah flowchart ( diagram alur ) jika kita
mempunyai s detik diubah menjadi x jam y
menit dan z detik
70
START
BACA S
X  INT (S/3600)
A  S – 3600 * X
Y  INT (A/60)
A
A
Z  A – 60 * Y
CETAK
X, Y, Z
END
STUDI KASUS 4
71
Buatlah flowchart (bagan alur) untuk pembelian buku.
Jika kita membeli buku dalam jumlah besar, maka penerbit
akan memberikan rabat (discount) dengan ketentuan sebagai
berikut :
1.Pembelian kurang dari 10 buku, maka tidak ada rabat.
2.Pembelian 10 buku sampai 29 buku, rabat 10 %.
3.Pembelian 30 buku ke atas, rabat 20 %
72
MULAI
BACA X
X <
10 ?
H  0.8*5000*X
CETAK H
SELESAI
X <
30 ?
H  5000*X
H  0.9*5000*X
ya
tidak
tidak
ya
LOOPING / PERULANGAN
73
(1) Variabel A diberi harga 1
(2) Variabel A Berubah menjadi
2
(3) Variabel B diberi harga sebesar
harga A DIKALIKAN HARGA A
(4) Variabel B di dicetak (jadi tercetak
4).
Kemudian kembali ke (2) , (3), (4) dan
kembali lagi ke (2) begitu seterusnya
A  1
A  A + 1
B  A * A
CETAK B
( 1 )
( 2 )
( 3 )
( 4 )
HASILNYA  4,9,16, ……
74
BUATLAH DIAGRAM ALUR UNTUK
MENCETAK KUADRAT BILANGAN –
BILANGAN 1 SAMPAI DENGAN 10
55
75
MULAI
A  1
A >
10 ?
SELESAI
B  A * A
CETAK B
A  A+1
Y
T
QUIZ
76
1. BUAT FLOWCHART
DENGAN OUTPUT
2,4,6,8,10
2. 110 or 97
207 xor 102
315 and 221
STUDI K
ASUS
6
77
Buatlah diagram alur untuk mencetak
suku barisan. Dengan suku pertama 3
dan beda 4 sampai suku yang harganya
tidak melebihi 100.
78
start
S  3
B  4
S > 100
Cetak S
S S+B
end
Y
T
STUDI KASUS
7
79
Mulai
CETAK A
CETAK B
A
A
C > 50
CETAK C
A  0
A  B
B  C
B 1
C  A+B
Selesai
Y
T
PSEUDO-CODE
80
Kode atau tanda yang menyerupai
(pseudo) atau merupakan pejelasan
cara menyelesaikan suatu masalah.
Pseudo-code sering digunakan oleh
manusia untuk menuliskan algoritma.
STUDI KASUS 7
81
Mencari bilangan terbesar dari
dua bilangan yang diinputkan
Pseudo-code:
82
1. Masukkan bilangan pertama
2. Masukkan bilangan kedua
3. Jika bilangan pertama > bilangan kedua maka
kerjakan langkah 4, jika tidak, kerjakan langkah 5.
4. Tampilkan bilangan pertama
5. Tampilkan bilangan kedua
Algoritma
83
1. Masukkan bilangan pertama (a)
2. Masukkan bilangan kedua (b)
3. if a > b then kerjakan langkah 4
4. print a
5. print b
CONTOH LAIN PEUDO-CODE & ALGORITMA
84
Pseudo-code Algoritma
Nilai A ditambah dengan 5 A  A + 5
Cetak nilai A bila lebih besar dari
10
If A > 10 THEN PRINT A
Dari dua bilangan A dan B, cari
bilanan yang terbesar
IF A > B THEN PRINT A ELSE
PRINT B
LANGKAH MEMBUAT PROGRAM KOMPUTER
85
1. Mendefinisikan masalah
Ini merupakan langkah pertama yang sering dilupakan orang. Menurut hukum
Murphy (oleh Henry Ledgard):
“Semakin cepat menulis program, akan semakin
lama kita dapat menyelesaikannya”.
Hal tersebut berlaku untuk permasalahan yang kompleks. Tentukan masalahnya,
apa saja yang harus dipecahkan dengan menggunakan komputer, dan apa
inputan serta outputnya.
86
2. Menemukan solusi
Setelah masalah didefinisikan, maka langkah berikutnya adalah menentukan
solusi. Jika masalah terlalu kompleks, maka ada baiknya masalah tersebut
dipecah menjadi modul-modul kecil agar lebih mudah diselesaikan.
3. Memilih algoritma
Pilihlah algoritma yang benar-benar sesuai dan efisien untuk permasalahan
tersebut.
4. Menulis program
Pilihlah bahasa yang mudah dipelajari, mudah digunakan, dan lebih baik lagi
jika sudah dikuasai, memiliki tingkat kompatibilitas tinggi dengan perangkat
keras dan platform lainnya.
. 5. Menguji program
Setelah program jadi, silahkan uji program tersebut dengan segala macam
kemungkinan yang ada, termasuk error-handlingnya sehingga program
tersebut akan benar-benar handal dan layak digunakan
87
6. Menulis dokumentasi
Menulis dokumentasi sangat penting agar pada suatu saat jika kita akan
melakukan perubahan atau membaca source code yang sudah kita tulis dapat
kita ingat-ingat lagi dan kita akan mudah membacanya. Caranya adalah dengan
menuliskan komentar-komentar kecil tentang apa maksud kode tersebut, untuk
apa, variabel apa saja yang digunakan, untuk apa, dan parameter-parameter
yang ada pada suatu prosedur dan fungsi.
7. Merawat program
Program yang sudah jadi perlu dirawat untuk mencegah munculnya bug yang
sebelumnya tidak terdeteksi. Atau mungkin juga pengguna membutuhkan
fasilitas baru yang dulu tidak ada.
BASIC
(BEGINNER’S ALL-PURPOSE SYMBOLIC INSTRUCTION CODE)
88
Bahasa pemrograman BASIC merupakan
bahasa pemrograman yang cukup sesuai bagi
pemula. Namun sungguhpun demikian bahasa
tersebut cukup baik untuk dipergunakan
memecahkan berbagai masalah mulai dari yang
paling sederhana sampai dengan yang rumit.
Contoh
89
10 LET A = 4
20 LET B = 5
30 LET C = A + B
40 PRINT C
50 END
RUN
BASIC ALGORITMA
10 A = 4
20 B = 5
30 C = A + B
40 PRINT C
90
LATIHAN
10 A = 4
11 B = 5
12 C = A + B
13 D = A – B
14 PRINT C
15 PRINT D
10 DATA 3,7
11 READ A,B
12 A = A + 1
13 PRINT A
14 A = A + 1
15 PRINT A
16 A = A + B
17 PRINT A
STATEMEN FOR - TO
91
START
K = N*N
FOR N = 1
TO 4
NEXT N
CETAK K
END
92
10 READ DATA A, B
20 C = (A+B)/2
30 PRINT C
40 PRINT B
10 X = 1
20 PRINT X
30 IF X = 5 THEN 60
40 X= X+1
50 GO TO 20
60 END
Harga 1 kg jeruk untuk pembelian 5 kg atau lebih rp. 6.000 dan
kurang dari 5 kg adalah Rp. 7.000. buat diagram alur dan lengkapi
algoritma di bawah ini
10 Data ……
20 Read N
30 IF N < 5 THEN 60
40 ………..
50 GO TO 70
60 ……….
70 Print B
80 end
LATIHAN
93
1.BUATLAH ALGORITMA DENGAN
OUTPUT 4,6,8,10,12
2.BUATLAH ALGORITMA & FLOWCHART
UNTUK MENGHITUNG NILAI RATA2
MAHASISWA, JIKA NILAI RATA2 2
MATAKULIAH LEBIH BESAR DARI 75
MAKA MAHASISWA TERSEBUT “LULUS”,
JIKA TIDAK MAHASISWA TERSEBUT
“GAGAL”

Hand out Algoritma Pemrograman

  • 1.
  • 2.
    DEFINISI ALGORITMA • Urutanlangkah-langkah logis penyelesaian masalah yang disusun secara sistematis • Kata logis disini berarti sesuai dengan logika manusia • Untuk menjadi sebuah algoritma, urutan langkah yang di tempuh untuk menyelesaikan masalah harus memberikan hasil yang benar.
  • 3.
    SEJARAH ALGORITMA Abu Ja’farMuhammad Ibnu Musa Al Khuwarizmi adalah seorang penulis buku Arab yang berjudul Kitab Al Jabar Wal Muqabala (Buku Pemugaran dan Pengurangan). Kata Al Khuwarizmi di baca orang Barat menjadi Algorism. Kata Algorism berarti proses menghitung dengan angka Arab. Seseorang dikatakan algorist jika orang tersebut menggunakan angka Arab. Kata Algorism lambat laun berubah menjadi algorithm disebabkan kata algorism sering di kelirukan dengan kata arithmetic sehingga akhiran –sm berubah menjadi –thm. Kata algorithm diserap kedalam bahasa Indonesia menjadi algoritma
  • 4.
  • 5.
    Ciri-Ciri Algoritma 1. MemilikiInput 2. Memiliki Proses 3. Menghasilkan Output 4. Menggunakan instruksi yang tidak ambigu 5. Harus memiliki stopping rule
  • 6.
    Sifat Algoritma 1. Tidakmenggunakan simbol ataupun sintaks dari bahasa pemrograman 2. Penulisannya tergantung dengan bahasa pemrograman 3. Notasinya dapat dipergunakan untuk semua bahasa pemrograman
  • 7.
    Penulisan Algoritma 1. BahasaNatural  Bahasa formal yang dipergunakan oleh manusia  Bersifat terstruktur  SE: Structured English  BIT: Bahasa Indonesia Terstruktur 1. Psuedocode  Psuedo: mirip, menyerupai, seolah-olah  Code: baris program  Psuedocode: instruksi yang menyerupai baris program 1. Flowchart  Suatu bentuk diagram yang memiliki aliran satu atau dua arah secara sekuensial
  • 8.
    Contoh: Menghitung Luas Segitiga Luassebuah segitiga didapatkan dengan mengalikan panjang alas dengan tingginya kemudian hasilnya dibagi dengan dua
  • 9.
    BIT - BahasaIndonesia Terstruktur 1. Masukan nilai Alas 2. Masukan nilai Tinggi 3. Hitung Luas dengan Alas kali Tinggi kemudian dibagi 2 4. Tampilkan hasil perhitungan Luas 5. Selesai
  • 10.
    Pseudocode Algoritma Perhitungan LuasSegitiga Input : Alas, Tinggi Output : Luas Segitiga Alas  Baca a Tinggi  Baca t Luas  (Alas x Tinggi) / 2 Tampilkan Luas
  • 11.
    Mulai Masukan a Masukan t L= (a * t) / 2 Cetak L Selesai Flowchart
  • 12.
    CONTOH ALGORITMA Ada 2buah gelas. Satu berisi teh dan satunya berisi kopi. Bagaimana caranya menukar isi masing- masing gelas ? TEH KOPI
  • 13.
    ALGORITMANYA Siapkan gelas cadanganX X TEH TEH KOPI X X KOPI Tuangkan teh kedalam gelas cadangan X Tuangkan kopi kedalam gelas teh (yang telah kosong) Tuangkan teh (dari gelas cadangan kedalam gelas kopi.
  • 14.
    Contoh Algoritma 1 Mengirimsurat kepada teman: 1. Tulis surat pada secarik kertas surat. 2. Ambil sampul surat. 3. Masukkan surat ke dalam sampul. 4. Tutup sampul surat menggunakan perekat. 5. Jika kita ingat alamat teman tersebut, maka tulis alamat pada sampul surat. 6. Jika tidak ingat, lihat buku alamat, kemudian tulis alamat pada sampul surat. 7. Tempel perangko pada surat. 8. Bawa surat ke kantor pos untuk diposkan.
  • 15.
    Contoh Algoritma 2 Mencariakar bulat positif dari bilangan bulat (integer) positif a: • Masukkan bilangan bulat positif a • Berikan harga awal x sama dengan 1 • Hitung y sebesar x * x • Jika y sama dengan a maka cetak x sebagai akar dari a. Selesai • Tambah nilai x dengan 1 • Pergi ke langkah 3.
  • 16.
    Menentukan apakah suatubilangan merupakan bilangan ganjil atau bilangan genap. • Masukkan sebuah bilangan sembarang • Bagi bilangan tersebut dengan bilangan 2 • Hitung sisa hasil bagi pada langkah 2. • 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. Contoh Algoritma 3
  • 17.
    STRUKTUR DASAR ALGORITMA Algoritma berisi langkah2 proses penyelesaian masalah  Langkah2 proses penyelesaian masalah tersebut dapat membentk konstruksi suatu algoritma, langkah2 tersebut adalah : 1. Runtunan aksi 2. Pemilihan aksi 3. Pengulangan aksi
  • 18.
    1. RUNTUNAN AKSI Sebuahruntunan terdpt satu atau lebih pernytaan, setiap pernyataan dikerjakan secara berurutan sesuai penulisannya Sebuah instruksi dikerjakan setelah instruksi sebelumnya telah dilaksanakan Urutan instruksi menentukan keadaan akhir suatu algoritma Bila urutan algoritma dirubah, maka hasil akhir mungkin juga berubah Runtunan yg mempunyai satu/lebih pernyaaan disbt penytaan gabungan
  • 19.
    Contoh: Program tukar_isi Diberikan 2buah ember A & B berisi air berwarna merah, ember B berisi air berwarna biru. pertukarkan kedua isi ember tersbt shg ember A berisi air berwrna biru & ember B berisi air berwana merah Algoritma : 1. Tuangkan air dari ember A kedlm ember C 2. Tuangkan air dari ember B kedlm ember A 3. Tuangkan air dari ember C kedlm ember B
  • 20.
    2. PEMILIHAN Adaklanya sebuahaksi dikerjakan jika kondisi dipenuhi Misal: jika lampu traffic light berwarna merah, maka kendaraan harus berhenti,maka pernyataan adalah: jika lampu traffic light berwarna merah, maka berhenti Pernyataan tersebut disebut penyataan . Pemilihan (selection-stantement )atau pernyataan kondisional
  • 21.
    Bentuk umum selectionstatement: Kondisi: pernyataan yg dpt bernilai benar- salah, aksi setelah then dilakukan hanya jika kondisi benar If & then adalah kaca kunci (keyword) u/ struktur pemilihan Contoh : if x habis dibagi 2 then tulis x adalah bilangan genap If kondisi then aksi
  • 22.
    Bentuk lain statentcondisional a. else “kalau tdk”. Bila kondisi benar,maka aksi1 yg dikerjakan, kalau tdk aksi2 dikerjakan. contoh: if lampu A nyala then tekan tombol merah else tekan tombol biru if kondisi then aksi1 Else aksi2
  • 23.
    b.nested-if =pemilihan bersarangadalah apabila pemilihan aksi yg dilakukan lebih dr 2 buah, maka struktur pemilihanya menjadi rumit. if kondisi1 then aksi1 Else if kondisi2 then aksi2 else aksi3
  • 24.
    Contoh : if lamputraffic light berwarna merah then berhenti else if lampu traffic light berwarna kuning then jalan hati-hati else jalan terus Dlm state.kondisi dikenal adanya ‘indentasi’ yaitu: pengg.rongga kosong yg membuat algoritma menjd mudah dibaca.
  • 25.
    Contoh:tanpa indentasi if lamputraffic light berwarna merah then berhenti Else if lampu traffic light berwarna kuning then jalan hati-hati else jalan terus Penulisan algoritma sangat dianjurkan u/ membuat indentasi, agar algoritma mudah dibaca. Kelebihan struktur pemilihan terletak pd kemampuannya yg memungkinkan pemroses mengikuti jalur aksi yg berbeda berdasarkan kondisi yg ada.
  • 26.
    3.PENGULANGAN Salah satu kelebihankomputer ad/ kemampuannya u/ melakukan perkerjaan secara berulang-ulang Contoh: program menulis_kalimat_500_kali menuliskan kalimat ‘algoritma adalah langkah logis penyelesaian masalah’ sebanyak 500 kali Algoritma: 1. tulis ‘algoritma adalah langkah logis penyelesaian masalah’ 2. tulis ‘algoritma adalah langkah logis penyelesaian masalah 3. tulis ‘algoritma adalah langkah logis penyelesaian masalah . . . 500
  • 27.
    untuk mengtasi haltersbt dpt digunakan struktr pengulangan for-do, sehingga algoritmanya: program menulis_kalimat_500_kali menuliskan kalimat ‘algoritma adalah langkah logis penyelesaian masalah’ sebanyak 500 kali Algoritma: for i dari 1 sampai 50 do tulis ‘algoritma adalah langkah logis penyelesaian masalah’ i adalah pencacah pengulangan yg mencacah 1 s/d 500
  • 28.
    Bentuk2 pengulangan: 1. Forpencacah pengulangan dr 1 s/d N do aksi 2. Repeat-until=ulangi-sampai: proses pengulangan akan berhenti jika kondisi terpenuhi 3 While-do=selama-lakukan= proses pengulangan akan berhenti jika kondisi salah Repeat Aksi Until kondisi While kondisi do Aksi
  • 29.
    STRUKTUR TEKS ALGORITMA Ada3 bagian struktur suatu algoritma, yaitu : 1. Bagian Judul (header) 2. Bagian Deklarasi 3. Bagian Algoritma
  • 30.
    1. Bagian judul/ header • Memuat nama program dan penjelasan(spesifkasi) tentang program • Nama program ditulis singkat, tetapi hrs menggambarkan apa yg dilakukan algoritma • Algoritma yg dibuat harus sesuai dgn spesifikasi masalah yang diberikan Contoh: PROGRAM luas_lingkaran {program untuk menghitung luas lingkaran”}
  • 31.
    2. Bagian Deklarasi •Mengumumkan semua nama yg akan dipakai, termasuk nama tipenya • Nama tersbut berupa:konstanta,variabel,tipe, prosedur dan fungsi • Semua nama tersbt harus dideklarasikan sebelum digunakan
  • 32.
    Contoh: • DEKLARASI {nama konstanta} constN=10 {jumlah data} const phi=3.14 {nilai phi} {nama variabel} jari_jari,luas:real {nama tipe} type titik:record {koord.titik dibidang kartesian} < x:integer, {absis} y:integer> {ordinat}
  • 33.
    Aturan pemberian ‘nama’dalam notasi algoritmik: 1. tidak boleh mengandung spasi, tanda baca dan operasi matematika 2. Karakter garis bawah (“_”) dpt digunakan untuk menggantikan spasi 3. Tidak membedakan huruf kecil dan huruf besar (bahasa pemrograman case sensitif seperti bahasa C menganggap huruf kecil dan besar adalah 2 karakter yang berbeda)
  • 34.
    3. Bagian Algortima •Bagian ini merupakan inti dari suatu program • Berisi deskripsi langkah2 penyelesain masalah berupa pernyataan, yg ditulis dalam suatu notasi • Misal write untuk mencetak data/informasi, read untuk membaca data,dsb • Setiap pernyataan dlm algoritma dibaca dari atas ke bawah • Algoritma dieksekusi berdasarkan urutan pernyataan
  • 35.
    Contoh : Algoritma : Read(panjang,lebar) Luas ←panjang*lebar Write (luas)
  • 36.
    Struktur teks Agoritma: PROGRAM nama_program penjelasan tentang algoritma yg beisi uraian singkat mengenai masalah yg akan diselesaikan DEKLARASI Semua nama yg dipakai, nama tipe,konstanta,var,prosedur,dan fungsi diumumkan disini ALGORITMA Semua langkah/aksi algoritma dituliskan disini
  • 37.
    Contoh: PROGRAM luas_lingkaran {menghitung luaslingkaran apabila jari-jari lingkaran sudah diberikan} DEKLARASI {Nama Konstanta} const N =10 const phi=3.14 {nilai phi} {Nama variabel} jari_jari, luas:real ALGORITMA: READ (jari_jari) LUAS Phi *jari_jari*jari_jari Write (luas)
  • 38.
    KONSEP PEMROGRAMAN • Variabel •Konstanta • Tipe Data
  • 39.
    Variabel • Variabel adalahtempat penyimpanan data sementara di memori yang isinya dapat diubah. • Setiap variabel memiliki nama, tipe data, dan nilai. • Jenis data yang dapat ditampung suatu variabel harus mengikuti aturan penamaan identifier. • Harus dideklarasikan terlebih dahulu sebelum digunakan • Contoh : int alas, tinggi Variabel Tipe data
  • 40.
    Nama Variabel • Syarat-syaratpenulisan nama variabel adalah : – Harus dimulai dengan huruf alfabet. – Case sensitive (huruf besar dan kecil dibedakan). – Karakter penyusun variabel hanya boleh huruf alfabet, angka dan garis bawah. – Tidak boleh menggunakan spasi. • Nama variabel sebaiknya mencerminkan nilai yang dikandungnya.
  • 41.
    Konsep Variabel • Variabelhanya menyimpan data secara sementara. • Nilai variabel dapat berubah. • Variabel hanya dapat menyimpan satu data. • Nilai suatu variabel adalah nilai yang terakhir. • Pendefenisian variabel dapat digabung atau dipisah sepanjang memiliki tipe data yang sama
  • 42.
    Konstanta • Sebuah variabeldengan tipe data tertentu dan memiliki nilai data yang akan selalu tetap dalam program contoh : const_phi=3.14; • Konstanta yang dikenal dalam program C berupa : 1. Integer constant; contoh : -5 0 125 010 0xF1 2. Floating-point constant; contoh : 3.14 3. Character constant; contoh : ´C´ ´1´ ´$´ 4. String constant; contoh : ´UNM´ 5. Escape sequence; contoh : n t ’’
  • 43.
    Konstanta • Integer constantadalah sebuah bilangan bulat. Integer constant dapat berupa bilangan basis 10 (desimal), basis 8(oktal),atau basis 16 (heksadesimal). Konstanta oktal diawali dengan bilangan nol. • Floating-point constant adalah sebuah bilangan pecahan atau desimal. Tanda desimal dalam bahasa C adalah titik. Antara angka ratusan dan ribuan atau antara angka ratusan ribuan dengan jutaan tidak boleh diberi tanda pemisah. • Character constant adalah sebuah karakter ASCII. Karakter ini diapit tanda petik tunggal. • String constant adalah kumpulan karakter ASCII. Kumpulan ini diapit oleh tanda petik ganda.
  • 44.
    Konstanta • Escape Sequenceadalah karakter yang diawali dengan backslash (garis miring terbalik). Setiap escape sequence mempunyai makna tertentu. contoh : n berarti ganti baris, karakter miring ke kiri dst. • Const modifier adalah pemberian nama pada suatu nilai konstanta. Hal ini dilakukan untuk mencegah kesalahan ketikan yang berulang. contoh : const float pi=3.1415926;
  • 45.
    Tipe Data • TipeSederhana (simple type) o Int , Bool, Char o Tipe Float • Tipe String o Operasi String • Tipe terstruktur (structured type) o Array, Struct
  • 46.
    Tipe Data Sederhana(Simple Type) Type Batas Nilai Format Unsigned int 0...65535 Signed 16 bit Short Int -128...127 Signed 16 bit Int -32768...32767 Signed 16 bit Unsigned long 0...4294967295 Signed 32 bit Long - 2147483648...214748364 7 Signed 32 bit 1. Tipe Int Tipe data yang nilainya tidak memiliki titik desimal
  • 47.
    Tipe Batas NilaiFormat Float 3.4E-38... 3.4E+38 Unsigned 32 bit Double 1.7E-308...1.7E+308 Unsigned 64 bit Long double 3.4E-4932...1.1E+4932 Unsigned 80 bit 2. Type Float Tipe data yang nilainya merupakan pecahan (memiliki titik desimal)
  • 48.
    Input NOT( !) AND (&&) OR (||) A B C !A !B !C A&&B&&C A||B||C 0 0 0 1 1 1 0 0 0 0 1 1 1 0 0 1 0 1 0 1 0 1 0 1 0 1 1 1 0 0 0 1 1 0 0 0 1 1 0 1 1 0 1 0 1 0 0 1 1 1 0 0 0 1 0 1 1 1 1 0 0 0 1 1 3. Tipe Boolean Nilai pengambilan suatu keputusan pada program, tipe ini mempunyai 2 nilai yaitu benar (T) atau salah (F). Operator yang digunakan adalah AND, OR, dan NOT.
  • 49.
    4. Tipe Character digunakanuntuk menampung data sebuah karakter. Untuk menuliskan tipe char, karakter perlu ditulis di dalam tanda petik tunggal ( ´ ) Contoh : ´A´ berarti karakter berupa huruf A ´1´ berarti karakter berupa angka 1 ´*´ berarti karakter simbol * Bentuk umum penulisan tipe data ini adalah : tipe_data pengenal [panjang]; pengenal = nama variabel panjang = bilangan bulat yang menunjukkan jumlah karakter Contoh : char_nama[15];
  • 50.
    5. Tipe String Merupakansekumpulan dari beberapa karakter, yang banyaknya berubah-ubah sesuai dengan kebutuhan, besarnya 1 s/d 255 karakter. Pemberian nilai string diapit dengan tanda petik ganda (´´).
  • 51.
    51 Flowchart • Bagan-bagan yangmempunyai arus • Menggambarkan langkah-langkah penyelesaian suatu masalah • Merupakan salah satu cara penyajian algoritma
  • 52.
    52 Tujuan • Menggambarkan suatutahapan penyelesaian masalah • Secara sederhana, terurai, rapi dan jelas • Menggunakan simbol-simbol standar
  • 53.
    53 Model / JenisFlowchart • System Flowchart • Program Flowchart
  • 54.
    54 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
  • 55.
    55 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
  • 56.
    56 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
  • 57.
    57 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
  • 58.
    58 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
  • 59.
    59 Processing Symbols • Simbolkeying operation – Menyatakan segala 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
  • 60.
    60 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
  • 61.
    61 Output SymbOlS • Simboldocument – Mencetak keluaran dalam bentuk dokumen (melalui printer) • Simbol display – Mencetak keluaran dalam layar monitor
  • 62.
  • 63.
  • 64.
    64 Input lebar Contoh 1 Start End Inputpanjang Luas  panjang * lebar Print Luas
  • 65.
    STUDI KASUS 1 65 Buatlahflowchart ( Diagram Alur ) Jika terdapat 2 (dua) bilangan desimal, dimana jika salah satu dari bilangan tersebut lebih besar maka akan tercetak bilangan yang besar, jika tidak maka cetak bilangan yang terkecil.
  • 66.
    66 Start Read A Read B A> B Cetak A Cetak B End Y T
  • 67.
    STUDI KASUS 2 67 Pensildapat di beli secara satuan dan lusinan Harga satuan pensil adalah Rp. 1.000, sedangkan harga selusin pensil Rp. 5.000. Buatlah diagram alur untuk harga pembelian X buah pensil. Penjelasan : Jika kita beli 15 buah pensil dengan harga satuan maka harus membayar Rp. 15.000 , sedangkan jika kita membayar dengan 1 lusin serta 3 buah buah sisanya maka kita harus membayar Rp. 8.000
  • 68.
    68 Cetak P Baca X L INT (X/12) S  X – L * 12 P  5000 * L + 1000* S End
  • 69.
    STUDI KASUS 3 69 Buatlahflowchart ( diagram alur ) jika kita mempunyai s detik diubah menjadi x jam y menit dan z detik
  • 70.
    70 START BACA S X INT (S/3600) A  S – 3600 * X Y  INT (A/60) A A Z  A – 60 * Y CETAK X, Y, Z END
  • 71.
    STUDI KASUS 4 71 Buatlahflowchart (bagan alur) untuk pembelian buku. Jika kita membeli buku dalam jumlah besar, maka penerbit akan memberikan rabat (discount) dengan ketentuan sebagai berikut : 1.Pembelian kurang dari 10 buku, maka tidak ada rabat. 2.Pembelian 10 buku sampai 29 buku, rabat 10 %. 3.Pembelian 30 buku ke atas, rabat 20 %
  • 72.
    72 MULAI BACA X X < 10? H  0.8*5000*X CETAK H SELESAI X < 30 ? H  5000*X H  0.9*5000*X ya tidak tidak ya
  • 73.
    LOOPING / PERULANGAN 73 (1)Variabel A diberi harga 1 (2) Variabel A Berubah menjadi 2 (3) Variabel B diberi harga sebesar harga A DIKALIKAN HARGA A (4) Variabel B di dicetak (jadi tercetak 4). Kemudian kembali ke (2) , (3), (4) dan kembali lagi ke (2) begitu seterusnya A  1 A  A + 1 B  A * A CETAK B ( 1 ) ( 2 ) ( 3 ) ( 4 ) HASILNYA  4,9,16, ……
  • 74.
    74 BUATLAH DIAGRAM ALURUNTUK MENCETAK KUADRAT BILANGAN – BILANGAN 1 SAMPAI DENGAN 10 55
  • 75.
    75 MULAI A  1 A> 10 ? SELESAI B  A * A CETAK B A  A+1 Y T
  • 76.
    QUIZ 76 1. BUAT FLOWCHART DENGANOUTPUT 2,4,6,8,10 2. 110 or 97 207 xor 102 315 and 221
  • 77.
    STUDI K ASUS 6 77 Buatlah diagramalur untuk mencetak suku barisan. Dengan suku pertama 3 dan beda 4 sampai suku yang harganya tidak melebihi 100.
  • 78.
    78 start S  3 B 4 S > 100 Cetak S S S+B end Y T
  • 79.
    STUDI KASUS 7 79 Mulai CETAK A CETAKB A A C > 50 CETAK C A  0 A  B B  C B 1 C  A+B Selesai Y T
  • 80.
    PSEUDO-CODE 80 Kode atau tandayang menyerupai (pseudo) atau merupakan pejelasan cara menyelesaikan suatu masalah. Pseudo-code sering digunakan oleh manusia untuk menuliskan algoritma.
  • 81.
    STUDI KASUS 7 81 Mencaribilangan terbesar dari dua bilangan yang diinputkan
  • 82.
    Pseudo-code: 82 1. Masukkan bilanganpertama 2. Masukkan bilangan kedua 3. Jika bilangan pertama > bilangan kedua maka kerjakan langkah 4, jika tidak, kerjakan langkah 5. 4. Tampilkan bilangan pertama 5. Tampilkan bilangan kedua
  • 83.
    Algoritma 83 1. Masukkan bilanganpertama (a) 2. Masukkan bilangan kedua (b) 3. if a > b then kerjakan langkah 4 4. print a 5. print b
  • 84.
    CONTOH LAIN PEUDO-CODE& ALGORITMA 84 Pseudo-code Algoritma Nilai A ditambah dengan 5 A  A + 5 Cetak nilai A bila lebih besar dari 10 If A > 10 THEN PRINT A Dari dua bilangan A dan B, cari bilanan yang terbesar IF A > B THEN PRINT A ELSE PRINT B
  • 85.
    LANGKAH MEMBUAT PROGRAMKOMPUTER 85 1. Mendefinisikan masalah Ini merupakan langkah pertama yang sering dilupakan orang. Menurut hukum Murphy (oleh Henry Ledgard): “Semakin cepat menulis program, akan semakin lama kita dapat menyelesaikannya”. Hal tersebut berlaku untuk permasalahan yang kompleks. Tentukan masalahnya, apa saja yang harus dipecahkan dengan menggunakan komputer, dan apa inputan serta outputnya.
  • 86.
    86 2. Menemukan solusi Setelahmasalah didefinisikan, maka langkah berikutnya adalah menentukan solusi. Jika masalah terlalu kompleks, maka ada baiknya masalah tersebut dipecah menjadi modul-modul kecil agar lebih mudah diselesaikan. 3. Memilih algoritma Pilihlah algoritma yang benar-benar sesuai dan efisien untuk permasalahan tersebut. 4. Menulis program Pilihlah bahasa yang mudah dipelajari, mudah digunakan, dan lebih baik lagi jika sudah dikuasai, memiliki tingkat kompatibilitas tinggi dengan perangkat keras dan platform lainnya. . 5. Menguji program Setelah program jadi, silahkan uji program tersebut dengan segala macam kemungkinan yang ada, termasuk error-handlingnya sehingga program tersebut akan benar-benar handal dan layak digunakan
  • 87.
    87 6. Menulis dokumentasi Menulisdokumentasi sangat penting agar pada suatu saat jika kita akan melakukan perubahan atau membaca source code yang sudah kita tulis dapat kita ingat-ingat lagi dan kita akan mudah membacanya. Caranya adalah dengan menuliskan komentar-komentar kecil tentang apa maksud kode tersebut, untuk apa, variabel apa saja yang digunakan, untuk apa, dan parameter-parameter yang ada pada suatu prosedur dan fungsi. 7. Merawat program Program yang sudah jadi perlu dirawat untuk mencegah munculnya bug yang sebelumnya tidak terdeteksi. Atau mungkin juga pengguna membutuhkan fasilitas baru yang dulu tidak ada.
  • 88.
    BASIC (BEGINNER’S ALL-PURPOSE SYMBOLICINSTRUCTION CODE) 88 Bahasa pemrograman BASIC merupakan bahasa pemrograman yang cukup sesuai bagi pemula. Namun sungguhpun demikian bahasa tersebut cukup baik untuk dipergunakan memecahkan berbagai masalah mulai dari yang paling sederhana sampai dengan yang rumit.
  • 89.
    Contoh 89 10 LET A= 4 20 LET B = 5 30 LET C = A + B 40 PRINT C 50 END RUN BASIC ALGORITMA 10 A = 4 20 B = 5 30 C = A + B 40 PRINT C
  • 90.
    90 LATIHAN 10 A =4 11 B = 5 12 C = A + B 13 D = A – B 14 PRINT C 15 PRINT D 10 DATA 3,7 11 READ A,B 12 A = A + 1 13 PRINT A 14 A = A + 1 15 PRINT A 16 A = A + B 17 PRINT A
  • 91.
    STATEMEN FOR -TO 91 START K = N*N FOR N = 1 TO 4 NEXT N CETAK K END
  • 92.
    92 10 READ DATAA, B 20 C = (A+B)/2 30 PRINT C 40 PRINT B 10 X = 1 20 PRINT X 30 IF X = 5 THEN 60 40 X= X+1 50 GO TO 20 60 END Harga 1 kg jeruk untuk pembelian 5 kg atau lebih rp. 6.000 dan kurang dari 5 kg adalah Rp. 7.000. buat diagram alur dan lengkapi algoritma di bawah ini 10 Data …… 20 Read N 30 IF N < 5 THEN 60 40 ……….. 50 GO TO 70 60 ………. 70 Print B 80 end
  • 93.
    LATIHAN 93 1.BUATLAH ALGORITMA DENGAN OUTPUT4,6,8,10,12 2.BUATLAH ALGORITMA & FLOWCHART UNTUK MENGHITUNG NILAI RATA2 MAHASISWA, JIKA NILAI RATA2 2 MATAKULIAH LEBIH BESAR DARI 75 MAKA MAHASISWA TERSEBUT “LULUS”, JIKA TIDAK MAHASISWA TERSEBUT “GAGAL”