You are on page 1of 51

Beda Algoritma & Program

• Algoritma
– Urutan langkah-langkah logis penyelesaian masalah yang
disusun secara sistematis
– Urutan logis pengambilan keputusan untuk pemecahan masalah
• Lima ciri penting algoritma
– Selesai dalam jumlah langkah terbatas
– Tidak memiliki arti ganda
– Memiliki nol atau lebih input
– Memiliki nol atau lebih output
– Efektif
• Program
– Perwujudan atau implementasi algoritma yang ditulis dalam
bahasa pemrograman tertentu
Pengertian Algoritma
Bagaimana karateristik komputer ?

Komputer terdiri dari rangkaian elektronik IC, Kawat


Tembaga, mainboard, dll

Terdiri dari ribuan transistor (tergabung dalam IC) yang


berisikan gerbang-gerbang logika (AND,OR, NAND, NOR, dll)

Eksekusi dipicu dari adanya masukan (input) listrik berkisar 5 volt


dan berupa TRUE / FLASE

Aliran data berupa dijit biner 1 dan 0, yang tersusun sesuai instruksi

Instruksi dibuat secara sistematis dan hirarkis, dan masuk akal (sesuai logika)

Question :
Bagaimana agar instruksi dapat dimengerti dan bisa menghasilkan keluaran
(output) sesuai keinginan ?
2
Pengertian Algoritma
• Answer :
– Harus ada instruksi yang dimengerti oleh komputer
– Komputer hanya terdiri dari rangkaian elektronik, karena itu hanya
mengerti nilai 1 dan 0
– Nilai 1 dan 0, dapat berupa rangkaian instruksi jika disusun dengan
susunan yang sistematis dan masuk akal untuk menyelesaikan masalah
tertentu
– Susunan masuk akal dikenal dengan istilah urutan instruksi bahasa
yang dikenal oleh komputer.
– Karena itu pasti komputer punya bahasa, dan kita harus membuat
bahasa yang dimengerti oleh komputer.
– Bahasa tersebut dikenal dengan istilah bahasa pemrograman.
– Program komputer harus dibuat dengan urutan logika yang benar dan
sesuai dengan masalah yang ingin diselesaikan.
3
Pengertian Algoritma dan Pemrograman
Urutan logika untuk Istilah
Algoritma
menyelesaikan masalah tertentu
Diterjemahkan
oleh bahasa
pemrograman
Contoh :
PASCAL, C,
DELPHI, dll

Hasil
Instruksi yang dikenal oleh
komputer

4
Pengertian Algoritma dan Pemrograman
• Simpulan :
– Algoritma : urutan-urutan logis dari suatu pernyataan untuk
menyelesaikan kasus / masalah tertentu
– Pemrograman : proses penterjemahan algoritma kedalam bahasa
yang dimengerti oleh komputer.
• Asal kata algoritma
Al-Khwarizmi, Persian astronomer, and
Mathematician,

the technique of performing basic arithmetic by writing numbers in place value


Algorism form and applying a set of memorized rules and fact to the digits

Algoritmi calculation method

Algorithm a sequence of finite instructions, often used for calculation and data processing

5
Jenis Penulisan Logika Pemrograman

1. Bahasa Natural : digunakan untuk membuat algoritma yang komplek atau


algoritma teknik.
– Contoh :
Buat kotak dengan sama sisi
Tentukan sisi dengan ukuran yang sama panjang

2. Pseudocode : susunan yang padat dan merupakan algoritma informal untuk


deskripsi high-level dengan menggunakan struktur konvensi bahasa pemrograman,
tetapi dalam penulisan tidak memperhatikan pemakaian subrutin (prosedur) ,
deklarasi varabel dan kode sistem khusus.
– Contoh :
if NIM Valid then
Eksekusi transkrip nilai
else tampilkan pesan kesalahan
end if
6
Belajar Memprogram & Belajar
Bahasa Pemrograman
• Belajar memprogram:
pemahaman persoalan, analisis, dan sintesis
Pemecahan Masalah
-Strategi Notasi yang telah
-Metodologi disepakati
-Sistematika

• Belajar Bahasa Pemrograman :


– Belajar memakai suatu bahasa
aturan sintaks (tata bahasa)
Tahapan Pemecahan Masalah
Algoritma
Translasi
Program dalam
Bahasa Tingkat Tinggi

Kompilasi
Program dalam
Bahasa Mesin

Interpretasi oleh CPU


Operasi
(Baca, tulis, hitung,
perbandingan, dll)
Jenis Penulisan Logika Pemrograman
Bahasa Pemrograman : bahasa buatan yang digunakan untuk menuliskan suatu
program yang mengontrol kelakuan dari mesin, seperti komputer.
Contoh : bahasa pemrograman PASCAL

1. var
2. i,j: integer;
3.  
4. begin
5. for i:=1 to row do
6. begin
7. for j:=1 to col do
8. begin
9. if (i=j) then M[i,j] := 1
10. else
11. M[i,j] := 0;
12. end;
13. end;
14. end
9
Jenis Penulisan Logika Pemrograman
• Klasifikasi Algoritma :
1. Ditinjau dari Implementasi :
• Recursion or iteration: A recursive algorithm merupakan algoritma
yang dapat memanggil dirinya sendiri sampai kondisi yang ditentukan
dipenuhi, dikenal dengan functional programming
• Logical: suatu algoritma yang dapat dilihat sebagai deduksi lojik
terkontrol.
• Serial atau parallel atau distributed: algoritma yang biasanya
dieksekusi dengan asumsi satu instruksi pada suatu waktu.
• Deterministic or non-deterministic: algoritma deterministik
menyelesaikan masalah dengan keputusan yang tepat pada setiap
tahapannya, sedangkan algoritma non-deterministic menyelesaikan
masalah dengan perkiraan.
• Exact atau approximate: mencari suatu perkiraan yang bisa
menghampiri solusi yang benar. Biasa digunakan pada deterministik
atau strategi random.

10
Jenis Penulisan Logika Pemrograman
2. Ditinjau dari Paradigma perancangan:
• Divide and conquer
• Dynamic Programming
• The greedy method
• Linear programming
• Reduction
• Search and enumeration
• The probabilistic and heuristic paradigm (Probabilistic Algorithms, Genetic Algorithms,
Heuristic algorithms)
3. Ditinjau dari Kajian Studi :
• Search Algorithm,
• Sorting Algorithm,
• Merge Algorithms,
• Numerical Algorithm,
• Graph Algorithms,
• String Algorithms,
• Computational Geometric Algorithms,
• Combinatorial Algorithms,
• Machine Learning,
• Cryptography, Data Compression algorithms
• Parsing Techniques 11
Jenis Penulisan Logika Pemrograman
4. Ditinjau dari Kompleksitas:
• Algoritma efesien
5. Ditinjau dari Computing Power :
• polynomial time ,
• primitive recursive functions

12
Tata Cara Penulisan Logika
• Yang harus diingat dalam menuliskan logika adalah :
 Domain (masalah utama) yang ingin diselesaikan
 Keteraturan / susunan pernyataan logika yang mengarah pada
penyelesaian masalah
 Penggunaan notasi / lambang / simbol yang digunakan dalam
menterjemahkan suatu logika
• Contoh : Membuat Mie Rebus
 Masalah utama : Mie Rebus (hasil yang akan diperoleh)
 Susunan :
1. Ambil Mie
2. Nyalakan kompor
3. Ambil wadah dan isi air
4. Panaskan air hingga mendidih
5. Masukkan Mie kedalam wadah yang berisi air mendidih
6. Aduk hingga matang
7. Angkat dan sajikan
 Lambang bilangan 1 – 7 merupakan penggunaan lambang untuk langkah
yang dikerjakan. 13
Paradigma Pemrograman
• Prosedural (imperatif)
 Program = Struktur + Data
mis : Pascal, C, Basic
• Object Oriented
 data dan instruksi dibungkus menjadi satu, disebut: kelas,
kelas pada saat run-time disebut objek.
mis : C++, Java
• Fungsional
 konsep pemetaan dan fungsi pada matematika
mis : Matlab
• Deklaratif
 pendefinisian relasi antar individu yang dinyatakan sebagai
predikat
mis : Prolog
DASAR-DASAR
ALGORITMA dan
FLOW CHART
Proses, Instruksi, dan Aksi
• Algoritma merupakan deskripsi urutan
pelaksanaan suatu proses
• Algoritma tersusun oleh sederetan langkah
instruksi yang logis
• Tiap langkah instruksi akan mengerjakan suatu
tindakan (Aksi)
• Bila Aksi dilaksanakan, maka sejumlah operasi
yang bersesuaian akan dikerjakan oleh CPU
Struktur Dasar Algoritma
• Runtunan (sequence)
– aksi-aksi dalam algoritma yang dikerjakan
secara berurutan
– contoh :
A1. Aksi 1 • mula-mula aksi 1 dilakukan
• aksi 2 dilakukan setelah aksi 1
A2. Aksi 2 selesai dilaksanakan
• dst.
A3. Aksi 3
Struktur Dasar Algoritma(2)
• Pemilihan (selection)
– aksi dikerjakan jika kondisi tertentu terpenuhi
– contoh :

IF kondisi THEN IF kondisi1 THEN


aksi Aksi1
ELSE
IF kondisi THEN IF kondisi2 THEN
aksi1 Aksi2
ELSE ELSE
aksi2 Aksi3
(Aksi 3 dilakukan jika kondisi 1 dan 2
tidak terpenuhi)
Struktur Dasar Algoritma (3)
• Pengulangan (repeatition)
– aksi-aksi yang dikerjakan berulang kali
– contoh :
• FOR pencacah pengulangan dari a sampai b DO
Aksi
(aksi dilakukan sebanyak hitungan pencacah pengulangan, yaitu dari a
sampai b yakni sebanyak b-a+1 kali)
• REPEAT
Aksi
UNTIL kondisi
(pengulangan aksi dilakukan sehingga kondisi/persyaratan berhenti
terpenuhi)
• WHILE kondisi DO
Aksi
(selama kondisi/persyaratan pengulangan masih benar, maka aksi
dikerjakan)
Flow Chart
• Flow chart suatu bagan/diagram yang
menggambarkan aliran proses yang dikerjakan
program dari awal sampai akhir.
• Flow chart adalah algoritma yang digambarkan
dengan diagram
• Fungsi dari flow chart adalah mendeskripsikan
urutan pelaksanaan suatu proses (sama dengan
fungsi algoritma)
Penulisan Algoritma
• FLOW CHART
– Flow chart adalah suatu bagan/diagram yang
menggambarkan aliran proses yang dikerjakan suatu
program dari awal sampai akhir
– Flow chart adalah algoritma yang digambarkan
dengan diagram
– Fungsi dari flow chart adalah mendeskripsikan
urutan pelaksanaan suatu proses (sama dengan fungsi
dari algoritma)
• TEKS ALGORITMA
– berisi langkah-langkah penyelesaian masalah yang
ditulis dengan bahasa yang mudah dipahami
Flow Chart(2)
• Input
• Processing
• Output (display)
• Decision (untuk mengevaluasi suatu
kondisi)
• Procedure/subroutine
Flow Chart(2)
• Flow lines
• Terminator (mengawali dan mengakhiri
flow chart)
• On page connector
• Off page connector
• Annotation (memberi komentar atau
keterangan dalam flow chart)
ATURAN PENULISAN
TEKS ALGORITMA
Teks Algoritma
• Teks algoritma berisi langkah-langkah
penyelesaian masalah
• Tidak ada notasi baku tapi sebaiknya
berkorespondensi dengan bahasa pemrograman
umum, supaya mudah ditranslasikan ke dalam
bahasa pemrograman
• Notasi yang digunakan untuk menulis algoritma
disebut notasi algoritmik
Teks Algoritma
• Struktur teks algoritma
– Kepala algoritma
terdiri atas nama algoritma dan penjelasan
(spesifikasi) tentang algoritma tersebut
– Deklarasi
mendefinisikan semua nama (konstanta, peubah, tipe,
prosedur atau fungsi) yang dipakai dalam algoritma
– Deskripsi
Berisi uraian langkah-langkah penyelesaian

Komentar ditulis diantara tanda kurung “{“ dan “}”


Contoh Teks Algoritma
Judul algoritma

spesifikasi algoritma

Kata2 yg biasanya menjadi keyword bhs pemrogram diberi garis bawah


Pascal
C
TIPE, NAMA, DAN
NILAI
Tipe Data
Tipe data terdiri dari tipe:
• Tipe dasar
– Tipe yang dapat langsung dipakai (disediakan oleh
bahasa pemrograman)
– Contoh: boolean, integer, real, char, string (?)
• Tipe bentukan
– Tipe yang didefinisikan sendiri oleh pemrogram
– Tipe yang dibentuk dari tipe dasar atau dari tipe
bentukan lain yang sudah didefinisikan
– Contoh: tipe dasar yang diberi nama tipe baru, record
Tipe Data(2)
Empat hal yang harus diperhatikan dalam
pendefinisian tipe:
• Nama
• Domain harga
• Konstanta
• Operator
Tipe Data(3)
Tipe Bentukan
• Tipe dasar yang diberi nama tipe baru
– Nama baru untuk tipe dasar menggunakan kata kunci type
– Domain nilai, cara menulis konstanta, dan operasi-operasi yang
dapat dijalankan pada tipe baru tersebut tidak berubah, sama
seperti tipe dasarnya.
– Contoh: type BilanganBulat: integer
• Rekaman (record)
– Rekaman disusun atas satu atau lebih field
– Tipe field menyimpan data dan tipe dasar tertentu atau dari tipe
bentukan lain yang sudah didefinisikan sebelumnya
– Nama rekaman ditentukan oleh pemrogram
– Rekaman disebut juga tipe terstruktur
Contoh Record
DEKLARASI
type MataKuliah : record <KodeMK : string, {kode matakuliah}
NamaMK : string, {nama matakuliah}
Nilai : char {indeks nilai}
>

type Mahasiswa : record <NIM : integer, {nomor mhs}


NamaMhs : string, {nama mhs}
MK : array[1..4] of MataKuliah
>

LarikMhs : array[1..100] of Mahasiswa


Nama
• Untuk mengidentifikasikan dan membedakan obyek
• Unik dan tidak boleh sama
• Dalam algoritma nama diberikan pada:
– Variabel
• Tempat penyimpanan data/informasi di memori yang nilainya dapat
diubah selama pelaksanaan program
– Konstanta
• Tempat penyimpanan di memori yang nilainya tidak dapat diubah
selama pelaksanaan program
– Tipe bentukan
• Tipe data baru yang didefinisikan oleh program dari tipe data yang
sudah ada
– Prosedur
• Modul program (sederetan instruksi) yang ditulis terpisah dari badan
program utamadan dapat dipanggil berulang dari program utama
– Fungsi
• Prosedur yang mengembalikan suatu nilai dengan tipe data sederhana
Aturan Penulisan Nama
• Harus dimulai dengan huruf alfabet, tidak boleh dimulai
dengan angka, spasi, atau karakter khusus lainnya.
• Tidak case sensitif (beda dengan bahasa pemrograman)
• Karakter penyusun nama hanya boleh: huruf alfabet,
angka dan “_” (underscore)
• Tidak boleh dipisahkan dengan spasi
• Panjang nama tidak terbatas
• Semua nama yang dipakai harus dideklarasikan dulu
pada bagian deklarasi
Contoh Penamaan
• SALAH
– 6titik {dimulai dg angka}
– nilai ujian {dipisahkan spasi}
– PT-1 {mengandung operator kurang}
– hari! {mengandung karakter khusus}

• BENAR
– titik6 atau titik_6
– nilai_ujian atau nilaiUjian
– PT_1 atau PT1
– hari
Nilai
• Merupakan besaran dari tipe data yang sudah
didefinisikan (tipe dasar maupun tipe bentukan)
• Nilai dapat berupa:
– Isi variabel atau konstanta
– Nilai dari hasil perhitungan
– Nilai yang dihasilkan oleh fungsi
• Nilai yang disimpan di variabel dimanipulasi dengan
cara:
– Mengisikan ke variabel lain yang bertipe sama
– Dipakai untuk perhitungan
– Dituliskan ke piranti keluaran
Nilai(2)
Pengisian nilai ke variabel:
• Pengisian nilai secara langsung(assignment)
– Memasukkan sebuah nilai ke dalam nama variabel
langsung di dalam teks algoritma
– Syaratnya nilai yang diisikan harus bertipe sama
dengan tipe peubah
– Notasi: 
– Contoh:
variabel  konstanta NoMhs  1234
variabel1 variabel2 Nil_prev  Nil_cur
variabel  ekspresi Luas  0.5 * p * l
Nilai(3)
• Pembacaan nilai dari piranti masukan
– Nilai untuk nama variabel dapt diisi dari
piranti masukan, misalnya dari keyboard.
– Dinamakan dengan operasi pembacaan data
– Notasi dalam teks algoritma: read
– Contoh:
• read (nama1, nama2,…namaN)
Ekspresi
• Ekspresi terdiri atas: operand dan operator
• Operand adalah nilai yang dioperasikan dengan
operator tertentu
• Operand dapat berupa konstanta, nama variabel,
nama konstanta, atau hasil suatu fungsi
• Hasil evaluasi dari sebuah ekspresi adalah nilai
di dalam domain yang sesuai dengan tipe
operand yang dipakai, ada tiga macam: ekspresi
aritmetik, ekspresi relasional, ekspresi string.
Ekspresi(2)
• Ekspresi Aritmetika
– Ekspresi yang baik operand dan hasilnya berupa numerik
– (ingat: tingkat prioritas operator)
i. / , div, mod
ii. *
iii.+, -
• Ekspresi relasional
– Ekspresi dengan operator <,≤,>,≥,=,≠, not, and, or, dan xor
– Hasil evaluasi adalah nilai bertipe boolean
– Ekspresi string
Ekspresi (3)
• Ekspresi string
• Ekspresi dengan operator
penyambungan/concatenation “+”.
Menuliskan Nilai ke Piranti
Keluaran (monitor/printer)
• Dilakukan dengan notasi write
• Contoh:
– write (nama1, nama2, …, namaN)
Contoh Algoritma
Algoritma SAPA_SOBAT
{mencetak string Selamat Siang diikuti nama orang. Nama
prang diinputkan dari piranti masukan}

DEKLARASI
const ucapan = ‘Selamat Siang’

namaUser : string

DESKRIPSI
read(namaUser)
write(ucapan + ‘ ‘ + namaUser)
Tata Cara Penulisan Logika
• Diskusi :
 Buat penyelesaikan masalah untuk string sbb: “Anda
belajar Algoritma di S1 Teknik Informatika Unimal”
 Selesaikan dalam 10 Menit
• Penyelesaian :
 Domain : ……………………………………
 Susunan : ……………………………………

47
TRANSALASI
Algoritma-C-Pascal
Translasi
Algoritma-C-Pascal

Lihat di buku!

You might also like