Uploaded by User98773

ALGORITMA

advertisement
Algoritma dan
Pemrograman I
PENGERTIAN
Pengertian – 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
2
Pengertian Algoritma dan Pemrograman
• Ilustrasi :
Bagaimana
caranya agar
mobil dan
pengemudi
sampai di tujuan
3
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
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 ?
6
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
Urutan logika untuk
menyelesaikan masalah tertentu
Istilah
Algoritma
Diterjemahkan
oleh bahasa
pemrograman
Contoh :
PASCAL, C,
DELPHI, dll
Hasil
Instruksi yang dikenal oleh
komputer
8
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
Al-Khwārizmī, Persian astronomer and mathematician,
algorism
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
Algoritmi
calculation method
Algorithm
a sequence of finite instructions, often used for calculation and data processing
9
Jenis Penulisan Logika Pemrograman
1.
Bahasa Natural : digunakan untuk membuat algoritma yang komplek atau
algoritma teknik.
– Contoh :
Buat kotak dengan sama sisi
Tentukan 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 kesalahan
end 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 Pemrograman
Bahasa Pemrograman : bahasa buatan yang digunakan untuk menuliskan suatu
program yang mengontrol kelakuan dari mesin, seperti komputer.
Contoh : bahasa pemrograman PASCAL
1. var
2.
i,j: integer;
3.
4.
begin
5.
for i:=1 to row do
6.
begin
7.
for j:=1 to col do
8.
begin
9.
if (i=j) then M[i,j] := 1
10.
else
11.
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 Pemrograman
2.
3.
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
•
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 Mie
2. Nyalakan kompor
3. Ambil wadah dan isi air
4. Panaskan air hingga mendidih
5. Masukkan Mie kedalam wadah yang berisi air mendidih
6. Aduk hingga matang
7. Angkat dan sajikan
 Lambang bilangan 1 – 7 merupakan penggunaan lambang untuk langkah
yang dikerjakan.
16
Tata Cara Penulisan Logika
• Diskusi :
Buat penyelesaikan masalah untuk “Anda belajar AP1 di
ST-INTEN”
Selesaikan dalam 10 Menit
• Penyelesaian :
Domain : ……………………………………
Susunan : ……………………………………
17
Bahasa Pemrograman dan Tingkatan
1.
2.
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, [esp+8+1]
cmp edx, 0
ja @f
mov eax, 0
ret
@@:
cmp edx, 2
ja @f
mov eax, 1
18
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.
19
Bahasa Pemrograman dan Tingkatan
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
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
36 Stack-based languages
33 Reflective languages
37 Synchronous languages
34 Rule-based languages
38 Syntax handling languages
35 Scripting languages
39 Visual languages
40 Wirth languages
41 XML-based languages
20
Tugas (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
21
Algoritma dan Pemrograman I
Kode AP1-2 (Tipe Data dan Notasi Aritmetika)
Teknik Informatika
Sekolah Tinggi Teknologi dan Sains Indonesia
Tipe 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
23
Tipe 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
24
Operator
• Operator Biner Aritmetik:
Operator
Operation
+
Addition
-
Subtraction
*
Multiplication
/
Division
div
mod
Integer division
Remainder
Operand types
integer type
real type
integer type
real type
integer type
real type
integer type
real type
integer type
integer type
Result type
integer type
real type
integer type
real type
integer type
real type
real type
real type
integer type
integer type
25
Operator
• String Operator
Operator Operation
Operand types
+
concatenation string type, Char type,
or packed string type
Result type
string type
• Set Operator
Operator
+
*
Operation
Union
Difference
Intersection
Operand types
compatible set types
compatible set types
compatible set types
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.
26
Operator
• Boolean Operator
Operator
not
and
or
xor
Operation
negation
logical and
logical or
logical xor
Operand types
Boolean
Boolean
Boolean
Boolean
Result type
Boolean
Boolean
Boolean
Boolean
• Logical Operator
Operator
not
and
or
xor
shl
shr
Operation
Bitwise negation
Bitwise and
Bitwise or
Bitwise xor
Shift left
Shift right
Operand types
integer type
integer type
integer type
integer type
integer type
integer type
Result type
integer type
integer type
integer type
integer type
integer type
integer type
27
Operator
• Relational Operator
Operator
=
Operation
Equal
<>
<
>
<=
Not equal
Less than
Greater than
Less or equal
>=
<=
>=
in
Greater or
equal
Subset of
Superset of
Member of
Result type
Operand types
Boolean
compatible simple, pointer, set, string, or packed string
types
Boolean
Boolean
Boolean
Boolean
compatible simple, pointer, set, string, or packed string
types
compatible simple, string, packed string types, or PChar
compatible simple, string, packed string types, or PChar
compatible simple, string, packed string types, or PChar
Boolean
Boolean
Boolean
Boolean
compatible simple, string, or packed string types, or
PChar
compatible set types
compatible set types
left operand: any ordinal type T;
right operand: set whose base is compatible with T.
28
Tipe Data Untuk Berbagai Kasus
•
Kasus 1 :
– Definisikan suatu tipe data untuk nilai-nilai berikut:
1.
0.9899
2.
‘Saya Pergi ke ST-INTEN’
3.
120000
4.
12 x 10 7
5.
(Januari,…, Desember)
6.
X bernilai False, dan Y bernilai TRUE
7.
Y = 10
•
Kasus 2
–
Gunakan operator yang sudah ada, berapakah hasilnya
1.
3+3=
2.
‘saya’ + ‘ dia’ =
3.
TRUE and False =
4.
7 div 3 =
5.
8 mod 3 =
29
Tipe Data Untuk Berbagai Kasus
•
Kasus 3:
– Berapa hasilnya
X = (1,2,3,4,5,6)
Y = (3,5,6,8)
1. X + Y =
2. X – Y =
3. X * Y =
–
1.
2.
3.
4.
5.
Berapa hasilnya (TRUE / FALSE):
A=A
Aku = Aku
5 <> 7
4 >= 3
4 in [1,2,3,4]
30
Tugas (Kode AP1-2)
• Tugas :
– Membuat contoh ranah tipe data minimal
50 buah.
– Dikerjakan kelompok
31
Download