Title: Algoritma dan Pemrograman I
1Algoritma dan Pemrograman I
- Agus Nursikuwagus
- Kode AP1-1 (Pengertian-Pengertian)
- Teknik Informatika
- Sekolah Tinggi Teknologi dan Sains Indonesia
2Pengertian Pengertian (AP1-1)
- 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
3Pengertian Algoritma dan Pemrograman
Bagaimana caranya agar mobil dan pengemudi sampai
di tujuan
4Pengertian 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 ?
5Pengertian 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)
6Pengertian Algoritma dan Pemrograman
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 ?
7Pengertian 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.
8Pengertian Algoritma dan Pemrograman
Hasil
9Pengertian 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 form and applying
a set of memorized rules and facts to the digits
algorism
Algoritmi
calculation method
Algorithm
a sequence of finite instructions, often used for
calculation and data processing
10Jenis Penulisan Logika Pemrograman
- Bahasa Natural digunakan untuk membuat
algoritma yang komplek atau algoritma teknik. - Contoh
- Buat kotak dengan sama sisi
- Tentukan sisi dengan ukuran yang sama panjang
- 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
11Jenis Penulisan Logika Pemrograman
- Flowcharts (representasi grafik) representasi
algoritma dengan skema atau langkah proses yang
ditunjukan dengan berbagai macam bentuk dan
dikaitkan dengan arah panah.
12Jenis Penulisan Logika Pemrograman
- Bahasa Pemrograman bahasa buatan yang digunakan
untuk menuliskan suatu program yang mengontrol
kelakuan dari mesin, seperti komputer. - Contoh bahasa pemrograman PASCAL
- var
- i,j integer
-
- begin
- for i1 to row do
- begin
- for j1 to col do
- begin
- if (ij) then Mi,j 1
- else
- Mi,j 0
- end
- end
- end
13Jenis Penulisan Logika Pemrograman
- Klasifikasi Algoritma
- 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.
14Jenis Penulisan Logika Pemrograman
- 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) - 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
15Jenis Penulisan Logika Pemrograman
- Ditinjau dari Kompleksitas
- Algoritma efesien
- Ditinjau dari Computing Power
- polynomial time ,
- primitive recursive functions
16Tata 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
- Ambil Mie
- Nyalakan kompor
- Ambil wadah dan isi air
- Panaskan air hingga mendidih
- Masukkan Mie kedalam wadah yang berisi air
mendidih - Aduk hingga matang
- Angkat dan sajikan
- Lambang bilangan 1 7 merupakan penggunaan
lambang untuk langkah yang dikerjakan.
17Tata Cara Penulisan Logika
- Diskusi
- Buat penyelesaikan masalah untuk Anda belajar
AP1 di ST-INTEN - Selesaikan dalam 10 Menit
- Penyelesaian
- Domain
- Susunan
18Bahasa Pemrograman dan Tingkatan
- 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. - Low-Level Languages menunjukkan bahasa yang
dekat dengan hardware, dikenal dengan bahasa
asembly. - Contoh
- fib mov edx, esp81
- cmp edx, 0
- ja _at_f
- mov eax, 0
- ret
- _at__at_
- cmp edx, 2
- ja _at_f
- mov eax, 1
19Bahasa 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 - Intermediate representations ketika eksekusi
dibuat terlebih dulu representasi program dalam
bentuk bytecode, sehingga ketika kompilasi tidak
membaca program sumber kembali - Machine code generation mengkompilasi
langusung menjadi bahasa mesin - Translated bahasa diterjemahkan kedalam low
level programming sehingga eksekusi mengikuti
aturan eksekusi bahasa mesin.
20Bahasa Pemrograman dan Tingkatan
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
- 1. 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
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
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
21Tugas (Kode AP1-1)
- 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
22Algoritma dan Pemrograman I
- Agus Nursikuwagus
- Kode AP1-2 (Tipe Data dan Notasi Aritmetika)
- Teknik Informatika
- Sekolah Tinggi Teknologi dan Sains Indonesia
23Tipe Data dan Notasi Aritmetika (Kode AP1-2)
- Tujuan Instuksional Umum
- Mahasiswa mampu menyebutkan tipe data dan
kegunaan notasi aritmatika - Tujuan Instruksional khusus
- Mengenal Tipe data ordinal dan tipe bentukan
- Mampu menyebutkan ranah tiap-tiap tipe ordinal
dan tipe bentukan - Mampu menggunakan tipe data untuk berbagai kasus
- Mengenal kegunaan notasi aritmetika dan cara
menggunakannya - Durasi 60 Menit Tatap Muka
- Metode Tutorial dan Diskusi
24Tipe data ordinal dan tipe bentukan
- Data ordinal tipe data yang memiliki ranah yang
dapat dihitung. - Contoh
- Integer -32768 32767
- Real 2.9 x e -39 1.7 x 10 e 38
- Char char(0) char (255)
- Bolean TRUE,FALSE
- String abc,456,10
- Tipe bentukan
- LIST
- Record (rekaman)
- STACK
- FILE
- TREE, dll
- Tipe Array
- Tipe Set (himpunan) memiliki batas bawah 0 dan
batas atas 255 elemen
25Operator
Operator Operation Operand types Result type
Addition integer type integer type
real type real type
- Subtraction integer type integer type
real type real type
Multiplication integer type integer type
real type real type
/ Division integer type real type
real type real type
div Integer division integer type integer type
mod Remainder integer type integer type
26Operator
- String Operator
- Set Operator
Operator Operation Operand types Result type
concatenation string type, Char type, string type
or packed string type
Operator Operation Operand types
Union compatible set types
- Difference compatible set types
Intersection compatible set types
Hasil dari operasi set tergantung dari aturan logika set Hasil dari operasi set tergantung dari aturan logika set
- An ordinal value C is in A B only if C is in A or B.
- An ordinal value C is in A - B only if C is in A and not in B.
- An ordinal value C is in A B only if C is in both A and B.
27Operator
- Boolean Operator
- Logical Operator
Operator Operation Operand types Result type
not negation Boolean Boolean
and logical and Boolean Boolean
or logical or Boolean Boolean
xor logical xor Boolean Boolean
Operator Operation Operand types Result type
not Bitwise negation integer type integer type
and Bitwise and integer type integer type
or Bitwise or integer type integer type
xor Bitwise xor integer type integer type
shl Shift left integer type integer type
shr Shift right integer type integer type
28Operator
Operator Operation Result type Operand types
Equal Boolean compatible simple, pointer, set, string, or packed string types
ltgt Not equal Boolean compatible simple, pointer, set, string, or packed string types
lt Less than Boolean compatible simple, string, packed string types, or PChar
gt Greater than Boolean compatible simple, string, packed string types, or PChar
lt Less or equal Boolean compatible simple, string, packed string types, or PChar
gt Greater or equal Boolean compatible simple, string, or packed string types, or PChar
lt Subset of Boolean compatible set types
gt Superset of Boolean compatible set types
in Member of Boolean left operand any ordinal type T
right operand set whose base is compatible with T.
29Tipe Data Untuk Berbagai Kasus
- Kasus 1
- Definisikan suatu tipe data untuk nilai-nilai
berikut - 0.9899
- Saya Pergi ke ST-INTEN
- 120000
- 12 x 10 7
- (Januari,, Desember)
- X bernilai False, dan Y bernilai TRUE
- Y 10
- Kasus 2
- Gunakan operator yang sudah ada, berapakah
hasilnya - 3 3
- saya dia
- TRUE and False
- 7 div 3
- 8 mod 3
30Tipe Data Untuk Berbagai Kasus
- Kasus 3
- Berapa hasilnya
- X (1,2,3,4,5,6)
- Y (3,5,6,8)
- X Y
- X Y
- X Y
- Berapa hasilnya (TRUE / FALSE)
- A A
- Aku Aku
- 5 ltgt 7
- 4 gt 3
- 4 in 1,2,3,4
31Tugas (Kode AP1-2)
- Tugas
- Membuat contoh ranah tipe data minimal 50 buah.
- Dikerjakan kelompok