Upload
billy-alhamra
View
307
Download
3
Embed Size (px)
DESCRIPTION
Citation preview
Algoritma dan Pemrograman
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
Pengertian Algoritma dan Pemrograman
• Ilustrasi :
3
Bagaimana caranya agar mobil dan pengemudi sampai di tujuan
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
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
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 ?
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
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
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
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
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
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
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
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
Jenis Penulisan Logika Pemrograman
4. Ditinjau dari Kompleksitas:• Algoritma efesien
5. Ditinjau dari Computing Power : • polynomial time ,• primitive recursive functions
15
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
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
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
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
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