20
Algoritma dan Pemrograman

M03a algoritma

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: M03a algoritma

Algoritma dan Pemrograman

Page 2: M03a algoritma

Pengertian – Pengertian

• Tujuan Instuksional Umum“ Mahasiswa mampu mendefinisikan Algoritma dan

Pemrograman serta mengenal berbagai jenis bahasa pemrograman“

• Tujuan Instruksional khusus :– Mengenal asal pengertian algoritma dan pemrograman– Mengenal jenis penulisan logika pemrograman– Mengenal berbagai tata cara penulisan logika – Mampu menyebutkan dan mengelompokan bahasa

pemrograman kedalam tingkatan bahasa pemrograman– Mampu menyebutkan bahasa pemrograman dan

kegunaannya

2

Page 3: M03a algoritma

Pengertian Algoritma dan Pemrograman

• Ilustrasi :

3

Bagaimana caranya agar mobil dan pengemudi sampai di tujuan

Page 4: M03a algoritma

Pengertian Algoritma dan Pemrograman

• Dari gambar ilustrasi – Berapa kemungkinan penyelesaian jalan

yang dilalui ? (buat tanda panah sebagai petunjuk arah)

– Anggap satu kemungkinan yang dipilih, tuliskan tahapan yang harus dilalui

– Dari tahapan yang dibuat apakah menyelesaikan masalah ?

4

Page 5: M03a algoritma

Pengertian Algoritma dan Pemrograman

• Dari pertanyaan yang diajukan, ada suatu hipotesa :– Untuk menyelesaikan suatu permasalahan pasti

harus memiliki alur yang jelas dan tepat.– Dari alur yang dibuat pasti susunan / tahapan

tersusun secara sistematis dan hirarkis– Susunan sistematis dan hirarkis pasti dapat

menyelesaikan masalah tertentu

• Keyakinan yang didapat :– Setiap menyelesaikan masalah harus

menggunakan cara-cara sistematis, terstruktur, dan hirarkis

– Cara-cara tersebut harus bisa dituliskan secara benar dan masuk akal. (Metode Ilmiah)

5

Page 6: M03a algoritma

Pengertian Algoritma dan Pemrograman

6

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 7: M03a algoritma

Pengertian Algoritma dan Pemrograman

• 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.

7

Page 8: M03a algoritma

Pengertian Algoritma dan Pemrograman

8

Urutan logika untuk menyelesaikan masalah

tertentu

Algoritma

Instruksi yang dikenal oleh komputer

Istilah

Diterjemahkan oleh bahasa pemrogramanContoh : PASCAL, C, DELPHI, dllHasil

Page 9: M03a 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

9

Al-Khwārizmī, 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 facts to the digits

calculation method

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

Page 10: M03a 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

10

Page 11: M03a algoritma

Jenis Penulisan Logika Pemrograman

3. Flowcharts (representasi grafik) : representasi algoritma dengan skema atau langkah proses yang ditunjukan dengan berbagai macam bentuk dan dikaitkan dengan arah panah.

11

Page 12: M03a algoritma

Jenis Penulisan Logika PemrogramanBahasa 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

12

Page 13: M03a 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. 13

Page 14: M03a 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 algorithms, • sorting algorithms, • merge algorithms, • numerical algorithms, • graph algorithms, • string algorithms, • computational geometric algorithms, • combinatorial algorithms, • machine learning, • cryptography, data compression algorithms • parsing techniques 14

Page 15: M03a algoritma

Jenis Penulisan Logika Pemrograman

4. Ditinjau dari Kompleksitas:• Algoritma efesien

5. Ditinjau dari Computing Power : • polynomial time ,• primitive recursive functions

15

Page 16: M03a 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. 16

Page 17: M03a algoritma

Bahasa Pemrograman dan Tingkatan

1. High-Level languages : menunjukan level abtraksi tertinggi dari bahasa mesin , bekerja dengan teknik usability, threads, locks, objects, variables, arrays dan aritmetik komplek atau ekspresi boolean.

2. Low-Level Languages : menunjukkan bahasa yang dekat dengan hardware, dikenal dengan bahasa asembly.

Contoh : fib: mov edx, [esp+8+1] cmp edx, 0 ja @f mov eax, 0 ret @@: cmp edx, 2 ja @f mov eax, 1

17

Page 18: M03a algoritma

Bahasa Pemrograman dan Tingkatan• Pengertian level bukan menunjukan lebih tinggi tetapi

menunjukkan kedalaman informasi tentang bagaimana komputer bekerja produktif dengan bahasa yang diberikan.

• Contoh Bahasa :– High Level : PASCAL, C, DELPHI, JAVA, dll– Low Level : Assembler, TASM, MASM, dll

• Model Eksekusi :– Interpreted : Interpreted languages melakukan eksekusi dan pembacaan secar

alangsung, dan tidak ada tahapan kompilasi. – Compiled : menterjemahkan kedalam bentuk executable program sebelum di

run. Terbagi atas :1. Intermediate representations : ketika eksekusi dibuat terlebih dulu

representasi program dalam bentuk bytecode, sehingga ketika kompilasi tidak membaca program sumber kembali

2. Machine code generation : mengkompilasi langusung menjadi bahasa mesin

– Translated : bahasa diterjemahkan kedalam low level programming sehingga eksekusi mengikuti aturan eksekusi bahasa mesin.

18

Page 19: M03a algoritma

Bahasa Pemrograman dan Tingkatan1. Array languages 2 Aspect-oriented languages 3 Assembly languages 4 Authoring languages 5 Command line interface

languages 6 Compiled languages 7 Concurrent languages 8 Curly-bracket languages 9 Dataflow languages 10 Data-oriented languages

19

11 Data-structured languages 12 Declarative languages 13 Esoteric languages 14 Extension languages 15 Fourth-generation languages 16 Functional languages 17 Interactive mode languages 18 Interpreted languages 19 Iterative languages 20 List-based languages – LISPs

22 Logic-based languages 23 Machine languages 24 Macro languages 25 Metaprogramming languages 26 Multiparadigm languages 27 Numerical analysis 28 Non-English-based languages 29 Object-oriented class-based languages

29.1 Multiple dispatch 29.2 Single dispatch

30 Object-oriented prototype-based languages 31 Off-side rule languages 32 Procedural languages 33 Reflective languages 34 Rule-based languages 35 Scripting languages

36 Stack-based languages 37 Synchronous languages 38 Syntax handling languages 39 Visual languages 40 Wirth languages 41 XML-based languages

Page 20: M03a algoritma

Tugas

• Tugas : –Mencari definisi algoritma dan

pemrograman dari berbagai referensi–Mencari jenis bahasa pemrograman dan

mengelompokan kedalam tingkatan bahasa pemrograman serta menyebutkan kegunaannya

– Dikerjakan secara individu

20