Bab 1 - Pengantar dan SDA Algoritma
TATA LAKSANA
PERKULIAHAN
Rezania A. Azdy
Email : rezaazdy@yahoo.com
Peraturan Perkuliahan
Datang tepat waktu (terlambat maksimal 30 menit).
Ijin melalui telp/sms tidak diterima.
Ketidak-hadiran tanpa disertai keterangan tertulis
dianggap alpha.
Tugas susulan/dititipkan tidak dilayani.
Kehadiran minimal 80% untuk syarat mengikuti UAS.
Tidak ada ujian susulan (kecuali ada keterangan
khusus).
Berpakaian rapi, sopan, dan wajar, serta tidak
bersandal.
No Facebook
Sistem Penilaian
Nilai mahasiswa merupakan kolaborasi
dari nilai tugas, UTS, dan UAS, dengan
bobot :
Tugas
UTS
UAS
40%
25%
35%
Penilaian akhir merupakan hak dosen.
Nilai di worksheet merupakan nilai akhir
dan tidak data diubah.
ALGORITMA DAN
PEMROGRAMAN
Referensi :
•Algoritma
dan Pemrograman
oleh Rinaldi Munir
•Dasar Pemrograman Java
oleh Abdul Kadir
•Pemrograman Pascal
oleh Abdul Kadir
Sekilas Tentang Algoritma dan
Pemrograman
Mengajarkan tentang konsep dan logika
berpikir komputer, cara perancangan
dan analisis masalah, yang kemudian
dipecahkan dengan menggunakan
komputer menggunakan algoritma dan
pemrograman terstruktur.
Tujuan Perkuliahan
Mampu memahami logika berpikir
komputer, memahami prinsip kerja
program, dan mampu menggambarkan
logika jalannya program secara tertulis
dengan algoritma (pseudo code) dan
dilengkapi dengan diagram alir (flow
chart) menggunakan suatu bahasa
pemrograman tertentu.
Silabus Perkuliahan
Pengantar Algoritma
Dasar Algoritma
Notasi Algoritmik
Tipe, operator, dan ekspresi
Runtunan
Pemilihan / percabangan
Pengulangan
Prosedur dan Fungsi
Larik / Array
Pendahuluan
Komponen utama Sistem Komputer :
1. Hardware
2. Software
3. Brainware
Pendahuluan
Contoh permasalahan :
Pengurutan data
Langkah penyelesaiannya ??
1. Cari data dengan nomor terbesar
2. Tempatkan data pada urutan terakhir
3. Ulangi langkah 1 untuk N-1 data yang lain,
hingga N=0
Algoritma
Program komputer berisi urutan
langkah-langkah yang ditulis secara
sistematis dan ditulis dalam bahasa
pemrograman tertentu.
Urutan langkah penyelesaian masalah
inilah yang disebut algoritma.
Algoritma
Algoritma adalah urutan logis
langkah-langkah penyelesaian
masalah yang disusun secara
sistematis
Algoritma
Program komputer merupakan perwujudan
realisasi teknis dari algoritma, karena
algoritma dikodekan ke dalam bahasa
pemrograman tertentu.
Algoritma pengurutan data :
Sejarah Algoritma
Algorism proses menghitung dengan angka
Arab
Algorism Abu Ja’far Muhammad ibnu Musa alKhuwarizmi
Al-Khuwarizmi menulis buku Kitab al jabar walmuqabala (Buku Pemugaran dan Pengurangan)
Contoh Algoritma
Permasalahan 1
Mempertukarkan isi dua buah ember.
Misal ember A berisi air berwarna merah,
dan ember B berisi air berwarna biru. Ingin
ditukar isi kedua ember tersebut sehingga
ember A berisi air berwarna biru, dan
ember B berisi air berwarna merah.
Bagaimana penyelesaiannya?
Contoh Algoritma
Permasalahan 2
Misalkan seorang pemuda tiba ditepi sungai.
Pemuda tersebut membawa seekor kambing,
seekor serigala, dan sekeranjang sayur. Pemuda
itu menemukan perahu kecil yang hanya dapat
memuat satu bawaannya setiap kali menyebrang.
Situasi dipersulit dengan kenyataan bahwa
serigala tidak dapat ditinggal dengan kambing,
dan kambing tidak dapat ditinggal dengan
keranjang sayuran.
bagaimana penyelesaian permasalahan tersebut?
Contoh Algoritma
Penyelesaian Masalah 1
Contoh Algoritma
Penyelesaian Masalah 2
Contoh Algoritma
Tahukah anda apa itu
Algoritma Euclidean ??
Ciri-Ciri Algoritma
1.
2.
3.
4.
5.
Algoritma harus berhenti setelah
mengerjakan sejumlah langkah terbatas.
Setiap langkah harus didefinisikan dengan
tepat dan tidak berarti-dua (ambigu).
Algoritma memiliki nol atau lebih masukan
(input).
Algoritma memiliki nol atau lebih keluaran
(output).
Algoritma harus efektif.
Mekanisme Pelaksanaan Program
oleh Komputer
Komputer tersusun atas empat komponen
utama, yaitu : piranti masukan, piranti keluaran,
unit pemroses utama (CPU), dan memori.
Piranti
Masukan
CPU
Memori
Piranti
Keluaran
Belajar Pemrograman
??
Belajar memprogram
Belajar bahasa
pemrograman
Belajar memprogram = belajar metodologi pemecahan
masalah, kemudian menuangkan algoritma
pemecahan masalah dalam suatu notasi tertentu.
Belajar bahasa pemrograman = belajar memakai suatu
bahasa, aturan tata bahasanya, intruksi-intruksinya,
tata cara pengoperasian compiler-nya, ...
Notasi Algoritmik
Kalimat Deskriptif
Flowchart
Pseudo Code
Jenis Bahasa Pemrograman
Berdasarkan aplikasi kegunaannya :
1. BP bertujuan khusus (spesific purpose p.l.)
Contoh : Cobol, Fortran, assembly, Prolog.
2. BP bertujuan umum (general purpose p.l.)
Contoh : Pascal, Basic, C, C++, Java.
Jenis Bahasa Pemrograman
Berdasarkan “kedekatan” BP (dalam artian
lebih condong ke bahasa mesin atau ke
bahasa manusia), yaitu :
1. Bahasa tingkat rendah, yaitu bahasa yang
dirancang agar setiap instruksinya langsung
dikerjakan oleh komputer, tanpa harus
melalui translator.
2. Bahasa tingkat tinggi, yaitu bahasa yang
membuat program menjadi lebih mudah
dipahami, lebih “manusiawi”, dan lebih dekat
ke bahasa manusia.
Jenis Bahasa Pemrograman
Algoritma
Tahapan
pelaksanaan
program oleh
komputer :
Translasi
Program dalam
Bahasa Tingkat Tinggi
Kompilasi
Program dalam
Bahasa Mesin
Interpretasi oleh CPU
Operasi
DASAR-DASAR
ALGORITMA
Pernyataan dan Aksi
Algoritma merupakan deskripsi langkahlangkah pelaksanaan suatu proses. Setiap
langkah penyelesaian dinyatakan dengan
pernyataan (statement), sebuah pernyataan
menggambarkan aksi (action) algoritmik
yang dapat dieksekusi.
Struktur Dasar Algoritma
Sebuah algoritma dapat dibangun dari
tiga buah struktur dasar, yaitu :
1. Runtunan
2. Pemilihan
3. Pengulangan
Runtunan
Sebuah runtunan terdiri dari satu
pernyataan atau lebih
Tiap pernyataan dikerjakan secara
berurutan sesuai dengan urutan
penulisannya.
Urutan instruksi menentukan keadaan
akhir algoritma. S1
S2
S3
S4
S5
Pemilihan
Adakalanya sebuah aksi dikerjakan jika kondisi tertentu
dipenuhi.
if kondisi then
aksi
atau
if kondisi then
aksi 1
else
aksi 2
Pemilihan
Apabila pilihan aksi yang dilakukan lebih dari dua buah,
maka struktur pemilihannya menjadi lebih rumit
pemilihan bersarang / nested-if
if kondisi 1 then
if kondisi 2 then
aksi 2a
else
aksi 2b
else
aksi
Pengulangan
Salah satu kelebihan komputer adalah
kemampuannya untuk mengulang
sebuah intruksi berulang kali.
Didalam pengulangan atau looping
dapat dilakukan sejumlah kali atau
sampai kondisi berhenti pengulangan
tercapai.
Struktur Pengulangan
Struktur pengulangan secara umum
terdiri atas dua bagian :
1. Kondisi pengulangan, yaitu ekspresi
boolean yang harus dipenuhi untuk
melaksanakan pengulangan yang
dinyatakan secara eksplisit oleh user atau
secara implisit oleh komputer.
2. Badan (body) pengulangan, yaitu bagian
algoritma yang diulang.
Struktur Pengulangan
Struktur pengulangan biasanya disertai
dengan bagian :
1. Inisialisasi, yaitu aksi yang dilakukan
sebelum pengulangan dilakukan pertama
kali.
2. Terminasi, yaitu aksi yang dilakukan
setelah pengulangan selesai
dilaksanakan.
Struktur Pengulangan
Notasi kontruksi pengulangan :
1. For
2. While ... Do
3. Repeat ... Until
Pengulangan FOR
for pencacah pengulangan dari a sampai b do
aksi
aksi dilakukan sebanyak hitungan pencacah
pengulangan, yaitu sebanyak b – a + 1 kali.
Pengulangan FOR
for pencacah pengulangan dari a sampai b do
aksi
aksi dilakukan sebanyak hitungan pencacah
pengulangan, yaitu sebanyak b – a + 1 kali.
Pengulangan repeat ..
until
repeat
aksi
until kondisi
• Pengulangan aksi dilakukan hingga kondisi (persyaratan)
berhenti terpenuhi.
Pengulangan while .. do
while kondisi do
aksi
• Selama kondisi (persyaratan) pengulangan masih benar, maka
aksi dikerjakan.
Latihan
Dua buah algoritma berikut menjelaskan sikap yang harus
dilakukan jika menemui lampu traffic light :
a. If traffic light menyala then
if lampu merah then
berhenti
else
jalan
b. If traffic light menyala then
if lampu merah then
berhenti
else
jalan
Apa perbedaan kedua algoritma diatas? Algoritma manakah yang
lebih baik?
Tugas
1.
Tulislah algoritma (dalam notasi kalimat
deskriptif) untuk memperoleh nomor
telpon berdasarkan data alamat (nama
jalan dan nomornya) dari nomor
penerangan lokal PT Telkom (108).
Algoritma harus menjelaskan proses bila
:
a. Nomor 108 sibuk
b. Alamat yang diberikan penelepon belum
memiliki sambungan telpon.
Tugas
2.
Sebuah tabel terdiri atas NIM, nama,
alamat, dan nomor telepon. Tabel tersebut
sudah berisi data utama sekumpulan
mahasiswa di Perguruan Tinggi. Misalkan
seorang mahasiswa pindah kos sehingga
alamat dan nomor telponnya harus
diubah. Tuliskan algoritma (dalam notasi
kalimat deskriptif) untuk mengubah kolom
alamat dan nomor telpon dari mahasiswa
dengan NIM tertentu.
PERKULIAHAN
Rezania A. Azdy
Email : rezaazdy@yahoo.com
Peraturan Perkuliahan
Datang tepat waktu (terlambat maksimal 30 menit).
Ijin melalui telp/sms tidak diterima.
Ketidak-hadiran tanpa disertai keterangan tertulis
dianggap alpha.
Tugas susulan/dititipkan tidak dilayani.
Kehadiran minimal 80% untuk syarat mengikuti UAS.
Tidak ada ujian susulan (kecuali ada keterangan
khusus).
Berpakaian rapi, sopan, dan wajar, serta tidak
bersandal.
No Facebook
Sistem Penilaian
Nilai mahasiswa merupakan kolaborasi
dari nilai tugas, UTS, dan UAS, dengan
bobot :
Tugas
UTS
UAS
40%
25%
35%
Penilaian akhir merupakan hak dosen.
Nilai di worksheet merupakan nilai akhir
dan tidak data diubah.
ALGORITMA DAN
PEMROGRAMAN
Referensi :
•Algoritma
dan Pemrograman
oleh Rinaldi Munir
•Dasar Pemrograman Java
oleh Abdul Kadir
•Pemrograman Pascal
oleh Abdul Kadir
Sekilas Tentang Algoritma dan
Pemrograman
Mengajarkan tentang konsep dan logika
berpikir komputer, cara perancangan
dan analisis masalah, yang kemudian
dipecahkan dengan menggunakan
komputer menggunakan algoritma dan
pemrograman terstruktur.
Tujuan Perkuliahan
Mampu memahami logika berpikir
komputer, memahami prinsip kerja
program, dan mampu menggambarkan
logika jalannya program secara tertulis
dengan algoritma (pseudo code) dan
dilengkapi dengan diagram alir (flow
chart) menggunakan suatu bahasa
pemrograman tertentu.
Silabus Perkuliahan
Pengantar Algoritma
Dasar Algoritma
Notasi Algoritmik
Tipe, operator, dan ekspresi
Runtunan
Pemilihan / percabangan
Pengulangan
Prosedur dan Fungsi
Larik / Array
Pendahuluan
Komponen utama Sistem Komputer :
1. Hardware
2. Software
3. Brainware
Pendahuluan
Contoh permasalahan :
Pengurutan data
Langkah penyelesaiannya ??
1. Cari data dengan nomor terbesar
2. Tempatkan data pada urutan terakhir
3. Ulangi langkah 1 untuk N-1 data yang lain,
hingga N=0
Algoritma
Program komputer berisi urutan
langkah-langkah yang ditulis secara
sistematis dan ditulis dalam bahasa
pemrograman tertentu.
Urutan langkah penyelesaian masalah
inilah yang disebut algoritma.
Algoritma
Algoritma adalah urutan logis
langkah-langkah penyelesaian
masalah yang disusun secara
sistematis
Algoritma
Program komputer merupakan perwujudan
realisasi teknis dari algoritma, karena
algoritma dikodekan ke dalam bahasa
pemrograman tertentu.
Algoritma pengurutan data :
Sejarah Algoritma
Algorism proses menghitung dengan angka
Arab
Algorism Abu Ja’far Muhammad ibnu Musa alKhuwarizmi
Al-Khuwarizmi menulis buku Kitab al jabar walmuqabala (Buku Pemugaran dan Pengurangan)
Contoh Algoritma
Permasalahan 1
Mempertukarkan isi dua buah ember.
Misal ember A berisi air berwarna merah,
dan ember B berisi air berwarna biru. Ingin
ditukar isi kedua ember tersebut sehingga
ember A berisi air berwarna biru, dan
ember B berisi air berwarna merah.
Bagaimana penyelesaiannya?
Contoh Algoritma
Permasalahan 2
Misalkan seorang pemuda tiba ditepi sungai.
Pemuda tersebut membawa seekor kambing,
seekor serigala, dan sekeranjang sayur. Pemuda
itu menemukan perahu kecil yang hanya dapat
memuat satu bawaannya setiap kali menyebrang.
Situasi dipersulit dengan kenyataan bahwa
serigala tidak dapat ditinggal dengan kambing,
dan kambing tidak dapat ditinggal dengan
keranjang sayuran.
bagaimana penyelesaian permasalahan tersebut?
Contoh Algoritma
Penyelesaian Masalah 1
Contoh Algoritma
Penyelesaian Masalah 2
Contoh Algoritma
Tahukah anda apa itu
Algoritma Euclidean ??
Ciri-Ciri Algoritma
1.
2.
3.
4.
5.
Algoritma harus berhenti setelah
mengerjakan sejumlah langkah terbatas.
Setiap langkah harus didefinisikan dengan
tepat dan tidak berarti-dua (ambigu).
Algoritma memiliki nol atau lebih masukan
(input).
Algoritma memiliki nol atau lebih keluaran
(output).
Algoritma harus efektif.
Mekanisme Pelaksanaan Program
oleh Komputer
Komputer tersusun atas empat komponen
utama, yaitu : piranti masukan, piranti keluaran,
unit pemroses utama (CPU), dan memori.
Piranti
Masukan
CPU
Memori
Piranti
Keluaran
Belajar Pemrograman
??
Belajar memprogram
Belajar bahasa
pemrograman
Belajar memprogram = belajar metodologi pemecahan
masalah, kemudian menuangkan algoritma
pemecahan masalah dalam suatu notasi tertentu.
Belajar bahasa pemrograman = belajar memakai suatu
bahasa, aturan tata bahasanya, intruksi-intruksinya,
tata cara pengoperasian compiler-nya, ...
Notasi Algoritmik
Kalimat Deskriptif
Flowchart
Pseudo Code
Jenis Bahasa Pemrograman
Berdasarkan aplikasi kegunaannya :
1. BP bertujuan khusus (spesific purpose p.l.)
Contoh : Cobol, Fortran, assembly, Prolog.
2. BP bertujuan umum (general purpose p.l.)
Contoh : Pascal, Basic, C, C++, Java.
Jenis Bahasa Pemrograman
Berdasarkan “kedekatan” BP (dalam artian
lebih condong ke bahasa mesin atau ke
bahasa manusia), yaitu :
1. Bahasa tingkat rendah, yaitu bahasa yang
dirancang agar setiap instruksinya langsung
dikerjakan oleh komputer, tanpa harus
melalui translator.
2. Bahasa tingkat tinggi, yaitu bahasa yang
membuat program menjadi lebih mudah
dipahami, lebih “manusiawi”, dan lebih dekat
ke bahasa manusia.
Jenis Bahasa Pemrograman
Algoritma
Tahapan
pelaksanaan
program oleh
komputer :
Translasi
Program dalam
Bahasa Tingkat Tinggi
Kompilasi
Program dalam
Bahasa Mesin
Interpretasi oleh CPU
Operasi
DASAR-DASAR
ALGORITMA
Pernyataan dan Aksi
Algoritma merupakan deskripsi langkahlangkah pelaksanaan suatu proses. Setiap
langkah penyelesaian dinyatakan dengan
pernyataan (statement), sebuah pernyataan
menggambarkan aksi (action) algoritmik
yang dapat dieksekusi.
Struktur Dasar Algoritma
Sebuah algoritma dapat dibangun dari
tiga buah struktur dasar, yaitu :
1. Runtunan
2. Pemilihan
3. Pengulangan
Runtunan
Sebuah runtunan terdiri dari satu
pernyataan atau lebih
Tiap pernyataan dikerjakan secara
berurutan sesuai dengan urutan
penulisannya.
Urutan instruksi menentukan keadaan
akhir algoritma. S1
S2
S3
S4
S5
Pemilihan
Adakalanya sebuah aksi dikerjakan jika kondisi tertentu
dipenuhi.
if kondisi then
aksi
atau
if kondisi then
aksi 1
else
aksi 2
Pemilihan
Apabila pilihan aksi yang dilakukan lebih dari dua buah,
maka struktur pemilihannya menjadi lebih rumit
pemilihan bersarang / nested-if
if kondisi 1 then
if kondisi 2 then
aksi 2a
else
aksi 2b
else
aksi
Pengulangan
Salah satu kelebihan komputer adalah
kemampuannya untuk mengulang
sebuah intruksi berulang kali.
Didalam pengulangan atau looping
dapat dilakukan sejumlah kali atau
sampai kondisi berhenti pengulangan
tercapai.
Struktur Pengulangan
Struktur pengulangan secara umum
terdiri atas dua bagian :
1. Kondisi pengulangan, yaitu ekspresi
boolean yang harus dipenuhi untuk
melaksanakan pengulangan yang
dinyatakan secara eksplisit oleh user atau
secara implisit oleh komputer.
2. Badan (body) pengulangan, yaitu bagian
algoritma yang diulang.
Struktur Pengulangan
Struktur pengulangan biasanya disertai
dengan bagian :
1. Inisialisasi, yaitu aksi yang dilakukan
sebelum pengulangan dilakukan pertama
kali.
2. Terminasi, yaitu aksi yang dilakukan
setelah pengulangan selesai
dilaksanakan.
Struktur Pengulangan
Notasi kontruksi pengulangan :
1. For
2. While ... Do
3. Repeat ... Until
Pengulangan FOR
for pencacah pengulangan dari a sampai b do
aksi
aksi dilakukan sebanyak hitungan pencacah
pengulangan, yaitu sebanyak b – a + 1 kali.
Pengulangan FOR
for pencacah pengulangan dari a sampai b do
aksi
aksi dilakukan sebanyak hitungan pencacah
pengulangan, yaitu sebanyak b – a + 1 kali.
Pengulangan repeat ..
until
repeat
aksi
until kondisi
• Pengulangan aksi dilakukan hingga kondisi (persyaratan)
berhenti terpenuhi.
Pengulangan while .. do
while kondisi do
aksi
• Selama kondisi (persyaratan) pengulangan masih benar, maka
aksi dikerjakan.
Latihan
Dua buah algoritma berikut menjelaskan sikap yang harus
dilakukan jika menemui lampu traffic light :
a. If traffic light menyala then
if lampu merah then
berhenti
else
jalan
b. If traffic light menyala then
if lampu merah then
berhenti
else
jalan
Apa perbedaan kedua algoritma diatas? Algoritma manakah yang
lebih baik?
Tugas
1.
Tulislah algoritma (dalam notasi kalimat
deskriptif) untuk memperoleh nomor
telpon berdasarkan data alamat (nama
jalan dan nomornya) dari nomor
penerangan lokal PT Telkom (108).
Algoritma harus menjelaskan proses bila
:
a. Nomor 108 sibuk
b. Alamat yang diberikan penelepon belum
memiliki sambungan telpon.
Tugas
2.
Sebuah tabel terdiri atas NIM, nama,
alamat, dan nomor telepon. Tabel tersebut
sudah berisi data utama sekumpulan
mahasiswa di Perguruan Tinggi. Misalkan
seorang mahasiswa pindah kos sehingga
alamat dan nomor telponnya harus
diubah. Tuliskan algoritma (dalam notasi
kalimat deskriptif) untuk mengubah kolom
alamat dan nomor telpon dari mahasiswa
dengan NIM tertentu.