hand out 1 s2 algoritma
TRANSCRIPT
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
2
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 ?
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
4
Urutan logika untuk menyelesaikan masalah
tertentu
Algoritma
Instruksi yang dikenal oleh komputer
Istilah
Diterjemahkan oleh bahasa pemrogramanContoh : PASCAL, C, DELPHI, dllHasil
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
5
Al-Khwarizmi, Persian astronomer, and Mathematician,
Algoritmi
Algorism
Algorithm
the technique of performing basic arithmetic by writing numbers in place value form and applying a set of memorized rules and fact to the digits
calculation method
a sequence of finite instructions, often used for calculation and data processing
Jenis Penulisan Logika Pemrograman
1. Bahasa Natural : digunakan untuk membuat algoritma yang komplek atau algoritma teknik.– Contoh :
Buat kotak dengan sama sisiTentukan 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 kesalahanend if
6
Belajar Memprogram & Belajar Bahasa Pemrograman
• Belajar memprogram:pemahaman persoalan, analisis, dan sintesis
• Belajar Bahasa Pemrograman :– Belajar memakai suatu bahasa aturan sintaks (tata bahasa)
Pemecahan Masalah
-Strategi-Metodologi-Sistematika
Notasi yang telah disepakati
Tahapan Pemecahan Masalah
Algoritma
Program dalamBahasa Tingkat
Tinggi
Program dalamBahasa Mesin
Operasi(Baca, tulis, hitung, perbandingan, dll)
Translasi
Interpretasi oleh CPU
Kompilasi
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. var2. i,j: integer;3. 4. begin5. for i:=1 to row do6. begin7. for j:=1 to col do8. begin9. if (i=j) then M[i,j] := 110. else11. 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 Pemrograman2. 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 Pemrograman4. Ditinjau dari Kompleksitas:
• Algoritma efesien5. 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 Mie2. Nyalakan kompor3. Ambil wadah dan isi air 4. Panaskan air hingga mendidih5. Masukkan Mie kedalam wadah yang berisi air
mendidih6. Aduk hingga matang7. Angkat dan sajikan
Lambang bilangan 1 – 7 merupakan penggunaan lambang untuk langkah yang dikerjakan.
13
Paradigma Pemrograman • Prosedural (imperatif)
Program = Struktur + Datamis : 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 matematikamis : Matlab
• Deklaratif pendefinisian relasi antar individu yang dinyatakan sebagai predikatmis : 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)Runtunan (sequence)– aksi-aksi dalam algoritma yang dikerjakan
secara berurutan– contoh :
A1. Aksi 1
A2. Aksi 2
A3. Aksi 3
•mula-mula aksi 1 dilakukan•aksi 2 dilakukan setelah aksi
1 selesai dilaksanakan•dst.
Struktur Dasar Algoritma(2)
• Pemilihan (selection)Pemilihan (selection)– aksi dikerjakan jika kondisi tertentu terpenuhi– contoh :
IF kondisi1 THENAksi1
ELSEIF kondisi2 THEN
Aksi2ELSE
Aksi3(Aksi 3 dilakukan jika kondisi 1 dan 2 tidak terpenuhi)
IF kondisi THEN aksi
IF kondisi THENaksi1
ELSEaksi2
Struktur Dasar Algoritma (3)
• Pengulangan (repeatition)– aksi-aksi yang dikerjakan berulang kali– contoh :
• FOR pencacah pengulangan dari a sampai b DOAksi
(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 DOAksi
(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
– Deklarasimendefinisikan semua nama (konstanta, peubah, tipe, prosedur atau fungsi) yang dipakai dalam algoritma
– DeskripsiBerisi uraian langkah-langkah penyelesaian
Komentar ditulis diantara tanda kurung “{“ dan “}”
Contoh Teks AlgoritmaJudul algoritmaJudul algoritma
spesifikasi algoritmaspesifikasi algoritma
Kata2 yg biasanya menjadi keyword bhs pemrogram diberi garis bawahKata2 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
DEKLARASItype 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, modii. *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}
DEKLARASIconst ucapan = ‘Selamat Siang’
namaUser : string
DESKRIPSIread(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
TranslasiAlgoritma-C-Pascal
Lihat di buku!