Anda di halaman 1dari 58

Algoritma dan Flowchart

Ilmu Komunikasi
Universitas Gunadarma
Dr. Lily Wulandari
Objectives
Setelah menyelesaikan bab ini,
anda diharapkan dapat:
• Mengerti tentang algoritma.
• Membuat algoritma dari suatu permasalahan.
• Mengerti tentang flowchart.
• Membuat flowchart dari suatu
permasalahan.
ALGORITMA
Algoritma
 Adalah inti dari ilmu
komputer.
 Algoritma adalah
urutan langkah-
langkah logis
penyelesaian
masalah yang
disusun secara
sistematis dan logis.
Algoritma

 Kata logis merupakan kata kunci dalam algoritma.


 Algoritma adalah urutan-urutan dari instruksi atau
langkah-langkah untuk menyelesaikan suatu masalah.
 Urutan langkah logis, yang berarti algoritma harus
mengikuti suatu urutan tertentu, tidak boleh melompat-
lompat.
Algoritma
 Alur pemikiran dalam menyelesaikan
suatu pekerjaan yang dituangkan secara
tertulis.
 Alur pikiran, sehingga algoritma
seseorang dapat juga berbeda dari
algoritma orang lain.
 Tertulis, yang artinya dapat berupa
kalimat, gambar, atau tabel tertentu .
Algoritma

 Langkah-langkah dalam
algoritma harus dapat
ditentukan bernilai benar
atau salah.
Algoritma
 Algoritma adalah blueprint dari
program.
 Sebaiknya disusun sebelum membuat
program.
 Kriteria suatu algoritma:
– Ada input dan output
– Efektif dan efisien
– Terstruktur
Algoritma Dalam Kehidupan
 Algoritma adalah jantung ilmu komputer atau
informatika. Banyak cabang ilmu komputer
yang diacu dalam terminologi algoritma.
 Algoritma juga digunakan dalam kehidupan
sehari-hari, contohnya resep makanan. Di
dalam resep makanan terdapat langkah-
langkah yang merupakan algoritma.
Algoritma dalam Kehidupan
Algoritma dalam Kehidupan
Kriteria Algoritma
 Input: algoritma dapat memiliki nol atau
lebih inputan dari luar.
 Output: algoritma harus memiliki
minimal satu buah output keluaran.
 Definiteness(pasti): algoritma memiliki
instruksi-instruksi yang jelas dan tidak
ambigu.
Kriteria Algoritma
 Finiteness (ada batas): algoritma harus
memiliki titik berhenti (stopping role).
 Effectiveness(tepat dan efisien):
algoritma sebisa mungkin harus dapat
dilaksanakan dan efektif. Contoh
instruksi yang tidak efektif adalah: A = A
+ 0 atau A = A * 1
Jenis Proses Algoritma
 Sequence Process: instruksi dikerjakan
secara sekuensial, berurutan.
 Selection Process: instruksi dikerjakan jika
memenuhi kriteria tertentu
 Iteration Process: instruksi dikerjakan selama
memenuhi suatu kondisi tertentu.
 Concurrent Process: beberapa instruksi
dikerjakan secara bersama.
Sifat Algoritma (Umum)
 Tidak menggunakan simbol atau sintaks
dari suatu bahasa pemrograman
 Tidak tergantung pada suatu bahasa
pemrograman
 Notasi-notasinya dapat digunakan untuk
seluruh bahasa manapun
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
Mengupas Kentang untuk Makan Malam
 Ibu Tati mengambil kantong kentang
dari rak
 Ibu Tati mengambil panci dari almari
 Ibu Tati mengupas kentang
 Ibu Tati mengembalikan kantong
kentang dari rak
Contoh Algoritma 2 (lanjt)
Ada hal yang “tergantung”pada sesuatu:
 Ibu Tati mengambil kantong kentang dari rak
 Ibu Tati mengambil panci dari almari

 Lakukan persiapan, gunakan celemek,


pakaian tergantung hari
􀂄Ibu Tati mengupas kentang
􀂄Ibu Tati mengembalikan kantong kentang dari
rak
Kondisi – dari Alg. 2
 Hari Sabtu :
􀂄“Ibu Tati melihat bahwa bajunya tidak
berwarna muda karena itu ia tidak memakai
celemek”(berarti tidak ada aksi memakai
celemek)
 Hari Minggu:

􀂄“Ibu Tati melihat bahwa bajunya berwarna


muda karena itu ia memakai celemek”
Kondisi – dari Alg. 2
 Jadi:
 Ambil kantong kentang dari rak
 Ambil panci dari almari
 Depend on warna baju
 berwarna muda : Pakai celemek
 tidak berwarna muda : Tidak pakai celemek
 Kupas kentang
 Kembalikan kantong kentang ke rak
Kondisi – dari Alg. 2
Karena dapat pesanan, maka kentang yg harus
dikupas 500 buah
􀂄tergantung pada jumlah kentang yang sudah dikupas
􀂇belum cukup : Kupas 1 kentang
􀂇cukup : selesai
Atau:
􀂄while jumlah kentang terkupas belum cukup do
􀂇Kupas 1 kentang
Kondisi – dari Alg. 2
Bisa jadi pada saat mengupas kentang tergantung pada
kentangnya, jika rusak / busuk, buang, tidak dikupas
Jadi:
􀂄Jika jumlah kentang terkupas belum cukup do
􀂇Tergantung pada kondisi kentang
􀂃Busuk: buang dan cari kentang berikutnya, tidak
dihitung
􀂃Tidak Busuk: kupas 1 kentang
Contoh Algoritma 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 4
Algoritma menghitung luas persegi
panjang:
 Masukkan panjang (P)

 Masukkan lebar (L)

 Luas ←P * L

 Tulis Luas
Pseudo Code
 Kode atau tanda yang menyerupai
(pseudo) program atau merupakan
pejelasan cara menyelesaikan suatu
masalah.
 Pseudo-code sering digunakan oleh
manusia untuk menuliskan algoritma
Contoh
Problem:mencari bilangan terbesar dari dua bilangan
yang diinputkan
Contoh Algoritma:
 Masukkan bilangan pertama

 Masukkan bilangan kedua

 Jika bilangan pertama > bilangan kedua maka


kerjakan langkah 4, jika tidak, kerjakan langkah 5.
 Tampilkan bilangan pertama

 Tampilkan bilangan kedua


Contoh
Contoh Pseudo-code:
 Input a

 Input b

 If a > b then kerjakan langkah 4

 print a

 print b
Perbandingan

Algoritma Pseudo-code
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 bilangan IF A > B THEN PRINT A ELSE PRINT
yang terbesar B
Bagian Program
Suatu program pada dasarnya terdiri dari 3
bagian:
 Input: bisa ada, bisa tidak

 Proses

 Output: minimal satu ouput.


Langkah Pembuatan Program
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.
Langkah Pembuatan Program
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.
 Contohnya masalah invers matriks, maka kita dapat membagi
menjadi beberapa modul:
meminta masukkan berupa matriks bujur sangkar
mencari invers matriks
menampilkan hasil kepada pengguna
 Dengan penggunaan modul tersebut program utama akan
menjadi lebih singkat dan mudah dilihat.
Langkah Pembuatan Program
Memilih algoritma
 Pilihlah algoritma yang benar-benar sesuai
dan efisien untuk permasalahan tersebut
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.
Langkah Pembuatan Program
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.
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.
Langkah Pembuatan Program
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
FLOWCHART
Flowchart
 Bagan-bagan yang mempunyai arus yang
menggambarkan langkah-langkah penyelesaian suatu
masalah.
 Merupakan cara penyajian dari suatu algoritma.
 Ada 2 macam Flowchart :
– System Flowchart  urutan proses dalam system
dengan menunjukkan alat media input, output serta
jenis media penyimpanan dalam proses
pengolahan data.
– Program Flowchart  urutan instruksi yang
digambarkan dengan symbol tertentu untuk
memecahkan masalah dalam suatu program.
Flowchart
Definisi:
 Bentuk gambar/diagram yang
mempunyai aliran satu atau dua arah
secara sekuensial
Kegunaan:
 Untuk mendesain program

 Untuk merepresentasikan program


Flowchart
Maka, flowchart harus dapat
merepresentasikan komponen-komponen
dalam bahasa pemrograman
Sebelum pembuatan program
 Mempermudah programmerdalam
menentukan alur logika program
Sesudah pembuatan program
 Menjelaskan alur program kepada orang lain
Simbol-simbol Flowchart
 Flow Direction Symbols (Simbol
penghubung alur)
 Processing Symbols (Simbol proses).
 Input-output Symbols (Simbol input-
output)
Flowchart
Secara garis besar, unsur-unsur pemrograman
adalah Input  Proses Output. Semua
bahasa pemrograman, pasti mempunyai
komponen-komponen sebagai berikut :
 Input (scanf)

 Percabangan (if, switch)

 Perulangan (while, for, for each, loop)

 Output (printf)
Simbol-simbol Flowchart
Simbol-simbol Flowchart – Cont.
Simbol-simbol Flowchart – Cont.
Simbol-simbol Flowchart – Cont.
Simbol-simbol Flowchart – Cont.
Pembuatan Flowchart
 Tidak ada kaidah yang baku.
 Flowchart = gambaran hasil analisa suatu masalah
 Flowchart dapat bervariasi antara satu pemrogram
dengan pemrogram lainnya.
 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.
Pembuatan Flowchart – cont.
Selalu dimulai dengan BEGIN:

Begin

Jangan lupa
menggambar garis

End
Pembuatan Flowchart – cont.
Input / Output Begin

Jangan lupa garis

Input/output

Mungkin anda ingin


berkomunikasi
dengan pemakai
Pembuatan Flowchart – cont.
Proses Begin

Input
Anda dpt melakukan
perhitungan di dlm proses

Proses
Pembuatan Flowchart – cont.

Begin

Input

Anda dapat menampilkan


Proses
hasil di output

Output End
Contoh Flowchart
 Problem:
Menghitung luaspersegi
panjang

 Algoritma

Masukkanpanjang(p)2.Mas
ukkanlebar(l)3.Hitungluas(L)
, yaitupanjangkali
lebar4.Cetakluas(L
Flowchart bilangan ganjil 1 -100
Contoh Flowchart
Exercise
 Bagaimana algoritma untuk menukar isi
dari dua gelas?
 Menghitung usia berdasarkan tahun
(saja) lahir dan tahun (saja) sekarang
􀂄Input: Tahun lahir (tl), Tahun sekarang (ts)
􀂄Proses : Umur = ts –tl
􀂄Output : Cetak Umur
Exercise
 Buatlah flowchart untuk menampilkan deret
bilangan berikut :
1, 1, 2, 3, 5, 8, 13
 Buatlah flowchart untuk menghitung konversi
suhu dari fahrenheit ke celcius dan reamur
dengan nilai fahrenheit diinput.

Anda mungkin juga menyukai