Anda di halaman 1dari 31

Algoritma dan Pemrograman I

Agus Nursikuwagus

Kode AP1-1 (Pengertian-Pengertian)

Teknik Informatika
Sekolah Tinggi Teknologi dan Sains Indonesia
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 Istilah


Algoritma
menyelesaikan masalah tertentu
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,

the technique of performing basic arithmetic by writing numbers in place value


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

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 22 Logic-based languages
2 Aspect-oriented languages 23 Machine languages
3 Assembly languages 24 Macro languages
4 Authoring languages 25 Metaprogramming languages
5 Command line interface 26 Multiparadigm languages
languages 27 Numerical analysis
6 Compiled languages
28 Non-English-based languages
7 Concurrent languages
29 Object-oriented class-based languages
8 Curly-bracket languages
9 Dataflow languages 29.1 Multiple dispatch
10 Data-oriented languages 29.2 Single dispatch

11 Data-structured languages 30 Object-oriented prototype-based


12 Declarative languages languages
13 Esoteric languages 31 Off-side rule languages
14 Extension languages 32 Procedural languages 36 Stack-based languages
15 Fourth-generation languages 33 Reflective languages 37 Synchronous languages
16 Functional languages 34 Rule-based languages 38 Syntax handling languages
17 Interactive mode languages 35 Scripting languages 39 Visual languages
18 Interpreted languages 40 Wirth languages
19 Iterative languages 41 XML-based languages
20 List-based languages – LISPs

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

Agus Nursikuwagus

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

25
Operator
• String Operator

Operator Operation Operand types Result type


+ concatenation string type, Char type, string type
or packed string type  
• Set Operator
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 :
- 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 Operation Operand types Result type
not negation Boolean Boolean
and logical and Boolean Boolean
or logical or Boolean Boolean
xor logical xor Boolean Boolean

• Logical Operator
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

27
Operator
• Relational Operator

Operator Operation Result type Operand types


compatible simple, pointer, set, string, or packed string
= Equal Boolean types
compatible simple, pointer, set, string, or packed string
<> Not equal Boolean types
< Less than Boolean compatible simple, string, packed string types, or PChar
> Greater than Boolean compatible simple, string, packed string types, or PChar
<= Less or equal Boolean compatible simple, string, packed string types, or PChar
Greater or
>= equal Boolean compatible simple, string, or packed string types, or PChar
<= Subset of Boolean compatible set types
>= 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.

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 =

– Berapa hasilnya (TRUE / FALSE):


1. A = A
2. Aku = Aku
3. 5 <> 7
4. 4 >= 3
5. 4 in [1,2,3,4]

30
Tugas (Kode AP1-2)
• Tugas :
– Membuat contoh ranah tipe data minimal 50
buah.
– Dikerjakan kelompok

31

Anda mungkin juga menyukai