Anda di halaman 1dari 75

Algoritma dan Pemrograman

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
Silabus
• Chapter 5. Pemilihan
– Pemilihan
– Case
• Chapter 6. Pengulangan
– For..to..do..
– While do..
– Repeat until
• Chapter 7. Prosedur dan Fungsi
– Rutin
– Prosedur
– Fungsi
Silabus
• Chapter 8. Array
• Chapter 9. Record
• Chapter 10. Rekursif
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
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.
Algoritma
• adalah logika, metode dan tahapan (urutan)
sistematis yang digunakan untuk memecahkan
suatu permasalahan.
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.
Program
• Perwujudan atau implementasi algoritma yang
ditulis dalam bahasa pemrograman tertentu
Belajar Memprogram & Belajar Bahasa
Pemrograman
• Belajar memprogram:
pemahaman persoalan, analisis, dan sintesis

Pemecahan Masalah
-Strategi Notasi yang telah
-Metodologi disepakati
-Sistematika

• Belajar Bahasa Pemrograman :


– Belajar memakai suatu bahasa
aturan sintaks (tata bahasa)
DASAR-DASAR ALGORITMA dan
FLOW CHART
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
Struktur Dasar Algoritma
• Runtunan (sequence)
– aksi-aksi dalam algoritma yang dikerjakan secara
berurutan
– contoh :
A1. Aksi 1
A2. Aksi 2
A3. Aksi 3
Struktur Dasar Algoritma(2)
• Pemilihan (selection)
– aksi dikerjakan jika kondisi tertentu terpenuhi
– contoh :

IF kondisi THEN IF kondisi1 THEN


aksi Aksi1
ELSE
IF kondisi THEN IF kondisi2 THEN
aksi1 Aksi2
ELSE ELSE
aksi2 Aksi3
(Aksi 3 dilakukan jika kondisi 1 dan 2
tidak terpenuhi)
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)
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)
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
Flow Chart
• Input
• Processing
• Output (display)
• Decision (untuk mengevaluasi suatu kondisi)
• Procedure/subroutine
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)
ATURAN PENULISAN TEKS
ALGORITMA
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
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 “}”


Contoh Teks Algoritma
Judul algoritma

spesifikasi algoritma

Kata2 yg biasanya menjadi keyword bhs pemrogram diberi garis bawah


Pascal
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)
Sumber
• Algoritma dan Pemrograman dalam Bahasa
Pascal dan C (Buku 1), Rinaldi Munir,
Informatika Bandung
• ilmukomputer.com
Dasar- dasar Algoritma
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

Anda mungkin juga menyukai