hand out 1 s2 algoritma

51

Click here to load reader

Upload: zarafikar

Post on 27-Jun-2015

71 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Hand Out 1 S2 Algoritma

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

Page 2: Hand Out 1 S2 Algoritma

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 ?

Page 3: Hand Out 1 S2 Algoritma

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

Page 4: Hand Out 1 S2 Algoritma

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

Page 5: Hand Out 1 S2 Algoritma

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

Page 6: Hand Out 1 S2 Algoritma

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

Page 7: Hand Out 1 S2 Algoritma

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

Page 8: Hand Out 1 S2 Algoritma

Tahapan Pemecahan Masalah

Algoritma

Program dalamBahasa Tingkat

Tinggi

Program dalamBahasa Mesin

Operasi(Baca, tulis, hitung, perbandingan, dll)

Translasi

Interpretasi oleh CPU

Kompilasi

Page 9: Hand Out 1 S2 Algoritma

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

Page 10: Hand Out 1 S2 Algoritma

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

Page 11: Hand Out 1 S2 Algoritma

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

Page 12: Hand Out 1 S2 Algoritma

Jenis Penulisan Logika Pemrograman4. Ditinjau dari Kompleksitas:

• Algoritma efesien5. Ditinjau dari Computing Power :

• polynomial time ,

• primitive recursive functions

12

Page 13: Hand Out 1 S2 Algoritma

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

Page 14: Hand Out 1 S2 Algoritma

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

Page 15: Hand Out 1 S2 Algoritma

DASAR-DASAR ALGORITMA dan

FLOW CHART

Page 16: Hand Out 1 S2 Algoritma

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

Page 17: Hand Out 1 S2 Algoritma

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.

Page 18: Hand Out 1 S2 Algoritma

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

Page 19: Hand Out 1 S2 Algoritma

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)

Page 20: Hand Out 1 S2 Algoritma

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)

Page 21: Hand Out 1 S2 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

Page 22: Hand Out 1 S2 Algoritma

Flow Chart(2)

• Input

• Processing

• Output (display)

• Decision (untuk mengevaluasi suatu kondisi)

• Procedure/subroutine

Page 23: Hand Out 1 S2 Algoritma

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)

Page 24: Hand Out 1 S2 Algoritma

ATURAN PENULISAN TEKS ALGORITMA

Page 25: Hand Out 1 S2 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

Page 26: Hand Out 1 S2 Algoritma

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 “}”

Page 27: Hand Out 1 S2 Algoritma

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

Page 28: Hand Out 1 S2 Algoritma

Pascal

Page 29: Hand Out 1 S2 Algoritma

C

Page 30: Hand Out 1 S2 Algoritma

TIPE, NAMA, DAN NILAI

Page 31: Hand Out 1 S2 Algoritma

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

Page 32: Hand Out 1 S2 Algoritma

Tipe Data(2)

Empat hal yang harus diperhatikan dalam pendefinisian tipe:

• Nama

• Domain harga

• Konstanta

• Operator

Page 33: Hand Out 1 S2 Algoritma

Tipe Data(3)

Page 34: Hand Out 1 S2 Algoritma

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

Page 35: Hand Out 1 S2 Algoritma

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

Page 36: Hand Out 1 S2 Algoritma

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

Page 37: Hand Out 1 S2 Algoritma

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

Page 38: Hand Out 1 S2 Algoritma

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

Page 39: Hand Out 1 S2 Algoritma

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

Page 40: Hand Out 1 S2 Algoritma

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

Page 41: Hand Out 1 S2 Algoritma

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)

Page 42: Hand Out 1 S2 Algoritma

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.

Page 43: Hand Out 1 S2 Algoritma

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

Page 44: Hand Out 1 S2 Algoritma

Ekspresi (3)

• Ekspresi string

• Ekspresi dengan operator penyambungan/concatenation “+”.

Page 45: Hand Out 1 S2 Algoritma

Menuliskan Nilai ke Piranti Keluaran (monitor/printer)• Dilakukan dengan notasi write

• Contoh: – write (nama1, nama2, …, namaN)

Page 46: Hand Out 1 S2 Algoritma

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)

Page 47: Hand Out 1 S2 Algoritma

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

Page 48: Hand Out 1 S2 Algoritma
Page 49: Hand Out 1 S2 Algoritma
Page 50: Hand Out 1 S2 Algoritma

TRANSALASI Algoritma-C-Pascal

Page 51: Hand Out 1 S2 Algoritma

TranslasiAlgoritma-C-Pascal

Lihat di buku!