You are on page 1of 79

Algoritma dan Pemrograman

Fasilkom-Kelas C
Tubagus Purworusmiardi, S.Kom
Tujuan
memberikan pengetahuan konsep
dan penerapan algoritma sebagai
dasar pembuatan program
dengan menggunakan salah satu
bahasa pemrograman.
~ Alpro Tubagus Purworusmiardi, S.Kom
Silabus
Chapter 1 Pendahuluan
Pengenalan mengenai sistem
komputer
Pengenalan algoritma dan
pemrograman
Chapter 2. Dasar-dasar algoritma
Struktur dasar algoritma
Chapter 3. Tipe, nama dan nilai
Penjelasan tipe data untuk algoritma
dan bhs pemrograman
Pembuatan penamaan dan nilai
Chapter 4. Runtunan
~ Alpro Tubagus Purworusmiardi, S.Kom
Silabus
Chapter 5. Pemilihan
Pemilihan
Case
Chapter 6. Pengulangan
For..to..do..
While do..
Repeat until
Chapter 7. Prosedur dan Fungsi
Rutin
Prosedur
Fungsi
~ Alpro Tubagus Purworusmiardi, S.Kom
Silabus
Chapter 8. Array
Chapter 9. Record
Chapter 10. Rekursif
~ Alpro Tubagus Purworusmiardi, S.Kom
Referensi
Referensi
Algoritma dan Pemrograman
dalam Bahasa Pascal dan C
(Buku 1), Rinaldi Munir,
Informatika Bandung
Algoritma dan Pemrograman
dalam Bahasa Pascal dan C
(Buku2), Rinaldi Munir&Leoni
Lidya, Informatika Bandung


~ Alpro Tubagus Purworusmiardi, S.Kom
Penilaian
Tugas = 20%
UTS = 30%
UAS = 40%
Kehadiran = 10%
~ Alpro Tubagus Purworusmiardi, S.Kom
Alat


Dev C++
Turbo Pascal
VB Script
Raptor
~ Alpro Tubagus Purworusmiardi, S.Kom
Algoritma &
Pemrograman
Minggu 2
Kelas C Sistem Informasi
Tubagus Purworusmiardi, S.Kom

~ Alpro Tubagus Purworusmiardi, S.Kom
Algoritma
Penemunya adalah seorang ahli matematika dari
uzbekistan yang bernama Abu Abdullah
Muhammad Ibn Musa al-Khwarizmi (770-840).
Di literatur barat dia lebih terkenal dengan sebutan
Algorizm. Panggilan inilah yang kemudian dipakai
untuk menyebut konsep algorithm yang
ditemukannya. Dalam bahasa Indonesia kita
kemudian menyebutkannya sebagai algoritma.
Algoritma adalah kunci dari bidang ilmu komputer,
karena banyak bidang di bawah ilmu komputer yang
lahir berdasarkan konsep algoritma ini.
Pada hakekatnya algoritma juga adalah kunci dari
kehidupan kita.
Cara membuat masakan (resep masakan) adalah
juga sebuah contoh nyata dari algoritma.
~ Alpro Tubagus Purworusmiardi, S.Kom
Algoritma
adalah logika, metode dan
tahapan (urutan) sistematis
yang digunakan untuk
memecahkan suatu
permasalahan.
~ Alpro Tubagus Purworusmiardi, S.Kom
Algoritma
Ketika manusia berusaha
memecahkan masalah, metode atau
teknik yang digunakan untuk
memecahkan masalah itu ada
kemungkinan bisa banyak (tidak
hanya satu).
Dan kita memilih mana yang terbaik
diantara teknik-teknik itu.
Hal ini sama juga dengan algoritma,
yang memungkinkan suatu
permasalahan dipecahkan dengan
metode dan logika yang berlainan.
~ Alpro Tubagus Purworusmiardi, S.Kom
Program
Perwujudan atau implementasi
algoritma yang ditulis dalam
bahasa pemrograman tertentu

~ Alpro Tubagus Purworusmiardi, S.Kom
Belajar Memprogram &
Belajar Bahasa
Pemrograman
Belajar memprogram:
pemahaman persoalan, analisis,
dan sintesis


Belajar Bahasa Pemrograman :
Belajar memakai suatu bahasa
aturan sintaks (tata bahasa)

Pemecahan Masalah
-Strategi
-Metodologi
-Sistematika
Notasi yang telah
disepakati
~ Alpro Tubagus Purworusmiardi, S.Kom

DASAR-DASAR
ALGORITMA dan
FLOW CHART
~ Alpro Tubagus Purworusmiardi, S.Kom
Proses, Instruksi, dan Aksi
Algoritma merupakan deskripsi
urutan pelaksanaan suatu proses
Algoritma tersusun oleh sederetan
langkah instruksi yang logis
Tiap langkah instruksi akan
mengerjakan suatu tindakan (Aksi)
Bila Aksi dilaksanakan, maka
sejumlah operasi yang bersesuaian
akan dikerjakan oleh CPU

~ Alpro Tubagus Purworusmiardi, S.Kom
Struktur Dasar Algoritma
Runtunan (sequence)
aksi-aksi dalam algoritma yang
dikerjakan secara berurutan
contoh :
A1. Aksi 1
A2. Aksi 2
A3. Aksi 3

~ Alpro Tubagus Purworusmiardi, S.Kom
Struktur Dasar Algoritma(2)
Pemilihan (selection)
aksi dikerjakan jika kondisi tertentu terpenuhi
contoh :


IF kondisi1 THEN
Aksi1
ELSE
IF kondisi2 THEN
Aksi2
ELSE
Aksi3
(Aksi 3 dilakukan jika kondisi 1 dan 2
tidak terpenuhi)

IF kondisi THEN
aksi
IF kondisi THEN
aksi1
ELSE
aksi2
Struktur Dasar Algoritma (3)
Pengulangan (repeatition)
aksi-aksi yang dikerjakan berulang kali
contoh :
FOR pencacah pengulangan dari a sampai b DO
Aksi
(aksi dilakukan sebanyak hitungan pencacah
pengulangan, yaitu dari a sampai b yakni sebanyak b-
a+1 kali)
REPEAT
Aksi
UNTIL kondisi
(pengulangan aksi dilakukan sehingga
kondisi/persyaratan berhenti terpenuhi)
WHILE kondisi DO
Aksi
(selama kondisi/persyaratan pengulangan masih benar,
maka aksi dikerjakan)

~ Alpro Tubagus Purworusmiardi, S.Kom
Flow Chart
Flow chart suatu bagan/diagram
yang menggambarkan aliran proses
yang dikerjakan program dari awal
sampai akhir.
Flow chart adalah algoritma yang
digambarkan dengan diagram
Fungsi dari flow chart adalah
mendeskripsikan urutan
pelaksanaan suatu proses (sama
dengan fungsi algoritma)

~ Alpro Tubagus Purworusmiardi, S.Kom
Penulisan Algoritma
FLOW CHART
Flow chart adalah suatu bagan/diagram
yang menggambarkan aliran proses
yang dikerjakan suatu program dari
awal sampai akhir
Flow chart adalah algoritma yang
digambarkan dengan diagram
Fungsi dari flow chart adalah
mendeskripsikan urutan pelaksanaan
suatu proses (sama dengan fungsi dari
algoritma)
TEKS ALGORITMA
berisi langkah-langkah penyelesaian
masalah yang ditulis dengan bahasa
yang mudah dipahami

~ Alpro Tubagus Purworusmiardi, S.Kom
Flow Chart
Input
Processing
Output (display)
Decision (untuk mengevaluasi
suatu kondisi)
Procedure/subroutine

~ Alpro Tubagus Purworusmiardi, S.Kom
Flow Chart(2)
Flow lines
Terminator (mengawali dan
mengakhiri flow chart)
On page connector
Off page connector
Annotation (memberi komentar
atau keterangan dalam flow
chart)

~ Alpro Tubagus Purworusmiardi, S.Kom
ATURAN PENULISAN
TEKS ALGORITMA
~ Alpro Tubagus Purworusmiardi, S.Kom
Teks Algoritma
Teks algoritma berisi langkah-
langkah penyelesaian masalah
Tidak ada notasi baku tapi sebaiknya
berkorespondensi dengan bahasa
pemrograman umum, supaya mudah
ditranslasikan ke dalam bahasa
pemrograman
Notasi yang digunakan untuk
menulis algoritma disebut notasi
algoritmik

~ Alpro Tubagus Purworusmiardi, S.Kom
Teks Algoritma
Struktur teks algoritma
Kepala algoritma
terdiri atas nama algoritma dan penjelasan
(spesifikasi) tentang algoritma tersebut
Deklarasi
mendefinisikan semua nama (konstanta,
peubah, tipe, prosedur atau fungsi) yang dipakai
dalam algoritma
Deskripsi
Berisi uraian langkah-langkah penyelesaian

Komentar ditulis diantara tanda kurung { dan }
~ Alpro Tubagus Purworusmiardi, S.Kom
Contoh Teks Algoritma

Judul algoritma
spesifikasi algoritma
Kata2 yg biasanya menjadi keyword bhs pemrogram diberi garis bawah
~ Alpro Tubagus Purworusmiardi, S.Kom
Pascal

~ Alpro Tubagus Purworusmiardi, S.Kom


TIPE, NAMA, DAN
NILAI
~ Alpro Tubagus Purworusmiardi, S.Kom
Tipe Data
Tipe data terdiri dari tipe:
Tipe dasar
Tipe yang dapat langsung dipakai
(disediakan oleh bahasa pemrograman)
Contoh: boolean, integer, real, char,
string (?)
Tipe bentukan
Tipe yang didefinisikan sendiri oleh
pemrogram
Tipe yang dibentuk dari tipe dasar atau
dari tipe bentukan lain yang sudah
didefinisikan
Contoh: tipe dasar yang diberi nama
tipe baru, record
~ Alpro Tubagus Purworusmiardi, S.Kom
Tipe Data(2)
Empat hal yang harus
diperhatikan dalam
pendefinisian tipe:
Nama
Domain harga
Konstanta
Operator

~ Alpro Tubagus Purworusmiardi, S.Kom
Tipe Data(3)

Tipe Bentukan
Tipe dasar yang diberi nama tipe baru
Nama baru untuk tipe dasar menggunakan kata
kunci type
Domain nilai, cara menulis konstanta, dan
operasi-operasi yang dapat dijalankan pada tipe
baru tersebut tidak berubah, sama seperti tipe
dasarnya.
Contoh: type BilanganBulat: integer
Rekaman (record)
Rekaman disusun atas satu atau lebih field
Tipe field menyimpan data dan tipe dasar
tertentu atau dari tipe bentukan lain yang sudah
didefinisikan sebelumnya
Nama rekaman ditentukan oleh pemrogram
Rekaman disebut juga tipe terstruktur

~ Alpro Tubagus Purworusmiardi, S.Kom
Contoh Record
DEKLARASI
type MataKuliah : record <KodeMK : string, {kode
matakuliah}
NamaMK : string, {nama matakuliah}
Nilai : char {indeks nilai}
>

type Mahasiswa : record <NIM : integer, {nomor
mhs}
NamaMhs : string, {nama mhs}
MK : array[1..4] of MataKuliah
>

LarikMhs : array[1..100] of Mahasiswa

~ Alpro Tubagus Purworusmiardi, S.Kom
Nama
Untuk mengidentifikasikan dan membedakan obyek
Unik dan tidak boleh sama
Dalam algoritma nama diberikan pada:
Variabel
Tempat penyimpanan data/informasi di memori yang
nilainya dapat diubah selama pelaksanaan program
Konstanta
Tempat penyimpanan di memori yang nilainya tidak
dapat diubah selama pelaksanaan program
Tipe bentukan
Tipe data baru yang didefinisikan oleh program dari tipe
data yang sudah ada
Prosedur
Modul program (sederetan instruksi) yang ditulis
terpisah dari badan program utamadan dapat dipanggil
berulang dari program utama
Fungsi
Prosedur yang mengembalikan suatu nilai dengan tipe
data sederhana
~ Alpro Tubagus Purworusmiardi, S.Kom
Aturan Penulisan Nama
Harus dimulai dengan huruf alfabet, tidak
boleh dimulai dengan angka, spasi, atau
karakter khusus lainnya.
Tidak case sensitif (beda dengan bahasa
pemrograman)
Karakter penyusun nama hanya boleh:
huruf alfabet, angka dan _ (underscore)
Tidak boleh dipisahkan dengan spasi
Panjang nama tidak terbatas
Semua nama yang dipakai harus
dideklarasikan dulu pada bagian deklarasi

~ Alpro Tubagus Purworusmiardi, S.Kom
Contoh Penamaan
SALAH
6titik {dimulai dg angka}
nilai ujian {dipisahkan spasi}
PT-1 {mengandung operator
kurang}
hari! {mengandung karakter
khusus}

BENAR
titik6 atau titik_6
nilai_ujian atau nilaiUjian
PT_1 atau PT1
hari

~ Alpro Tubagus Purworusmiardi, S.Kom
Nilai
Merupakan besaran dari tipe data yang
sudah didefinisikan (tipe dasar maupun
tipe bentukan)
Nilai dapat berupa:
Isi variabel atau konstanta
Nilai dari hasil perhitungan
Nilai yang dihasilkan oleh fungsi
Nilai yang disimpan di variabel
dimanipulasi dengan cara:
Mengisikan ke variabel lain yang bertipe sama
Dipakai untuk perhitungan
Dituliskan ke piranti keluaran

~ Alpro Tubagus Purworusmiardi, S.Kom
Nilai(2)
Pengisian nilai ke variabel:
Pengisian nilai secara
langsung(assignment)
Memasukkan sebuah nilai ke
dalam nama variabel langsung
di dalma teks algoritma
Syaratnya nilai yang didisikan
harus bertipe sama dengan
tipe peubah
Notasi:
Contoh:


variabel konstanta NoMhs 1234
variabel1 variabel2 Nil_prev Nil_cur
variabel ekspresi Luas 0.5 * p * l
~ Alpro Tubagus Purworusmiardi, S.Kom
Nilai(3)
Pembacaan nilai dari piranti
masukan
Nilai untuk nama variabel dapt
diisi dari piranti masukan,
misalnya dari keyboard.
Dinamakan dengan operasi
pembacaan data
Notasi dalam teks algoritma: read
Contoh:
read (nama1, nama2,namaN)

~ Alpro Tubagus Purworusmiardi, S.Kom
Ekspresi
Ekspresi terdiri atas: operand dan
operator
Operand adalah nilai yang
dioperasikan dengan operator
tertentu
Operand dapat berupa konstanta,
nama variabel, nama konstanta, atau
hasil suatu fungsi
Hasil evaluasi dari sebuah ekspresi
adalah nilai di dalam domain yang
sesuai dengan tipe operand yang
dipakai, ada tiga macam: ekspresi
aritmetik, ekspresi relasional,
ekspresi string.

~ Alpro Tubagus Purworusmiardi, S.Kom
Ekspresi(2)
Ekspresi Aritmetika
Ekspresi yang baik operand dan hasilnya
berupa numerik
(ingat: tingkat prioritas operator)
i. / , div, mod
ii. *
iii.+, -
Ekspresi relasional
Ekspresi dengan operator <,,>,,=,, not, and,
or, dan xor
Hasil evaluasi adalah nilai bertipe boolean
Ekspresi string

~ Alpro Tubagus Purworusmiardi, S.Kom
Ekspresi (3)
Ekspresi string
Ekspresi dengan operator
penyambungan/concatenation
+.

~ Alpro Tubagus Purworusmiardi, S.Kom
Menuliskan Nilai ke Piranti
Keluaran (monitor/printer)
Dilakukan dengan notasi write
Contoh:
write (nama1, nama2, , namaN)

~ Alpro Tubagus Purworusmiardi, S.Kom
Contoh Algoritma
Algoritma Hello_World
{mencetak string Hello World diikuti nama orang.
Nama orang diinputkan dari piranti masukan}

DEKLARASI
const ucapan = Hello World

namaUser : string

DESKRIPSI
read(namaUser)
write(ucapan + + namaUser)

~ Alpro Tubagus Purworusmiardi, S.Kom


Sumber
Algoritma dan Pemrograman
dalam Bahasa Pascal dan C
(Buku 1), Rinaldi Munir,
Informatika Bandung
ilmukomputer.com
~ Alpro Tubagus Purworusmiardi, S.Kom
Dasar Algoritma
Dalam penulisan Algoritma ada
beberapa ketentuan yaitu:
Program atau metode
penyelesaian masalah harus
sesuai tahapan / urutan
Tahapan tersebut tidak baku,
yang penting efektif
Program bersifat terstruktur
Tidak bermakna ganda


Struktur Badan Algoritma
Kepala Program
Berisi judul program dan
keterangan tentang program
Bahasa Algoritma : Algoritma
judul_program
Ex. Algoritma
menghitung_luas_segitiga
Ex. Algoritma
MenghitungLuasSegitiga
Bisa ditambahkan komentar
tentang program dengan
menggunakan operator { }


Struktur Badan Algoritma (2)
Deklarasi
Berisi variabel yang digunakan
dalam program
Bahasa Algoritma : nama_variabel
: Tipe Data
Ex. AlasSegitiga : integer
Ex. TinggiSegitiga : integer
Ex. LuasSegitiga : integer

Struktur Badan Algoritma (3)
Deskripsi
Berisi uraian langkah
penyelesaian
Example:
read(PanjangSegitiga)
read(LebarSegitiga)
LuasSegitiga * PanjangSegitiga *
LebarSegitiga
write(LuasSegitiga)

Struktur Badan Algoritma (4)
Algoritma menghitung_luas_segitiga
{menghitung luas segitiga dengan inputan alas dan
tinggi segitiga berasal dari keyboard}

DEKLARASI
AlasSegitiga : Integer
TinggiSegitiga : Integer
LuasSegitiga : Integer

DESKRIPSI
read(AlasSegitiga)
read(TinggiSegitiga)

LuasSegitiga * AlasSegitiga * TinggiSegitiga

write(LuasSegitiga)



Kasus
Deklarasi data untuk mobil
Merk : String {Contoh: Honda}
NoKendaraan : String {Contoh: KH1A}
TahunProduksi : Integer {Contoh: 2007}

Deklarasi data untuk Mata kuliah
Deklarasi data untuk Waktu



Deklarasi data untuk Alamat
Rumah
Deklarasi data untuk Data
Pribadi <min 6 variabel>


TIPE, NAMA, DAN
NILAI
Tipe Data
Tipe data terdiri dari tipe:
Tipe dasar
Tipe yang dapat langsung dipakai
(disediakan oleh bahasa pemrograman)
Contoh: boolean, integer, real, char,
string (?)
Tipe bentukan
Tipe yang didefinisikan sendiri oleh
pemrogram
Tipe yang dibentuk dari tipe dasar atau
dari tipe bentukan lain yang sudah
didefinisikan
Contoh: tipe dasar yang diberi nama
tipe baru, record
Tipe Data(2)
Empat hal yang harus
diperhatikan dalam
pendefinisian tipe:
Nama
Domain harga
Konstanta
Operator

Tipe Data(3)

Tipe Bentukan
Tipe dasar yang diberi nama tipe baru
Nama baru untuk tipe dasar menggunakan kata
kunci type
Domain nilai, cara menulis konstanta, dan
operasi-operasi yang dapat dijalankan pada tipe
baru tersebut tidak berubah, sama seperti tipe
dasarnya.
Contoh: type BilanganBulat: integer
Rekaman (record)
Rekaman disusun atas satu atau lebih field
Tipe field menyimpan data dan tipe dasar
tertentu atau dari tipe bentukan lain yang sudah
didefinisikan sebelumnya
Nama rekaman ditentukan oleh pemrogram
Rekaman disebut juga tipe terstruktur

Contoh Record
DEKLARASI
type MataKuliah : record <KodeMK : string, {kode
matakuliah}
NamaMK : string, {nama matakuliah}
Nilai : char {indeks nilai}
>

type Mahasiswa : record <NIM : integer, {nomor
mhs}
NamaMhs : string, {nama mhs}
MK : array[1..4] of MataKuliah
>

LarikMhs : array[1..100] of Mahasiswa

Nama
Untuk mengidentifikasikan dan membedakan obyek
Unik dan tidak boleh sama
Dalam algoritma nama diberikan pada:
Variabel
Tempat penyimpanan data/informasi di memori yang nilainya
dapat diubah selama pelaksanaan program
Konstanta
Tempat penyimpanan di memori yang nilainya tidak dapat
diubah selama pelaksanaan program
Tipe bentukan
Tipe data baru yang didefinisikan oleh program dari tipe data
yang sudah ada
Prosedur
Modul program (sederetan instruksi) yang ditulis terpisah dari
badan program utamadan dapat dipanggil berulang dari
program utama
Fungsi
Prosedur yang mengembalikan suatu nilai dengan tipe data
sederhana
Aturan Penulisan Nama
Harus dimulai dengan huruf alfabet, tidak
boleh dimulai dengan angka, spasi, atau
karakter khusus lainnya.
Tidak case sensitif (beda dengan bahasa
pemrograman)
Karakter penyusun nama hanya boleh:
huruf alfabet, angka dan _ (underscore)
Tidak boleh dipisahkan dengan spasi
Panjang nama tidak terbatas
Semua nama yang dipakai harus
dideklarasikan dulu pada bagian deklarasi

Contoh Penamaan
SALAH
6titik {dimulai dg angka}
nilai ujian {dipisahkan spasi}
PT-1 {mengandung operator
kurang}
hari! {mengandung karakter
khusus}

BENAR
titik6 atau titik_6
nilai_ujian atau nilaiUjian
PT_1 atau PT1
hari

Nilai
Merupakan besaran dari tipe data yang
sudah didefinisikan (tipe dasar maupun
tipe bentukan)
Nilai dapat berupa:
Isi variabel atau konstanta
Nilai dari hasil perhitungan
Nilai yang dihasilkan oleh fungsi
Nilai yang disimpan di variabel
dimanipulasi dengan cara:
Mengisikan ke variabel lain yang bertipe sama
Dipakai untuk perhitungan
Dituliskan ke piranti keluaran

Nilai(2)
Pengisian nilai ke variabel:
Pengisian nilai secara langsung(assignment)
Memasukkan sebuah nilai ke dalam nama
variabel langsung di dalma teks algoritma
Syaratnya nilai yang didisikan harus bertipe
sama dengan tipe peubah
Notasi:
Contoh:


variabel konstanta NoMhs 1234
variabel1 variabel2 Nil_prev Nil_cur
variabel ekspresi Luas 0.5 * p * l
Nilai(3)
Pembacaan nilai dari piranti
masukan
Nilai untuk nama variabel dapt
diisi dari piranti masukan,
misalnya dari keyboard.
Dinamakan dengan operasi
pembacaan data
Notasi dalam teks algoritma: read
Contoh:
read (nama1, nama2,namaN)

Ekspresi
Ekspresi terdiri atas: operand dan
operator
Operand adalah nilai yang
dioperasikan dengan operator
tertentu
Operand dapat berupa konstanta,
nama variabel, nama konstanta, atau
hasil suatu fungsi
Hasil evaluasi dari sebuah ekspresi
adalah nilai di dalam domain yang
sesuai dengan tipe operand yang
dipakai, ada tiga macam: ekspresi
aritmetik, ekspresi relasional,
ekspresi string.

Ekspresi(2)
Ekspresi Aritmetika
Ekspresi yang baik operand dan hasilnya
berupa numerik
(ingat: tingkat prioritas operator)
i. / , div, mod
ii. *
iii.+, -
Ekspresi relasional
Ekspresi dengan operator <,,>,,=,, not, and,
or, dan xor
Hasil evaluasi adalah nilai bertipe boolean
Ekspresi string

Ekspresi (3)
Ekspresi string
Ekspresi dengan operator
penyambungan/concatenation
+.

Menuliskan Nilai ke Piranti
Keluaran (monitor/printer)
Dilakukan dengan notasi write
Contoh:
write (nama1, nama2, , namaN)

Contoh Algoritma
Algoritma Hello_World
{mencetak string Hello World diikuti nama orang.
Nama orang diinputkan dari piranti masukan}

DEKLARASI
const ucapan = Hello World

namaUser : string

DESKRIPSI
read(namaUser)
write(ucapan + + namaUser)



Tugas di kumpul minggu
depan
Buatlah algoritma lengkap
tentang perhitungan konversi
dari jam ke detik
Inputan berupa jam. Misalnya
Masukan jam : 1
Ouput
Detik : 3600

Sumber
Algoritma dan Pemrograman
dalam Bahasa Pascal dan C
(Buku 1), Rinaldi Munir,
Informatika Bandung
ilmukomputer.com

You might also like