Agus Nursikuwagus
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
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
5
Pengertian Algoritma dan Pemrograman
Bagaimana karateristik komputer ?
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
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
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
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
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
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
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:
25
Operator
• String Operator
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
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 =
30
Tugas (Kode AP1-2)
• Tugas :
– Membuat contoh ranah tipe data minimal 50
buah.
– Dikerjakan kelompok
31