Anda di halaman 1dari 57

MODUL MATAKULIAH

ALGORITMA
DAN PEMROGRAMAN

I D E WA AY U E K A Y U L I A N I

IDAEY, STMIK PONTIANAK 2014


{1 PENGANTAR
Pengertian, Format Penulisan,
Flowchart
}
PENGERTIAN
Algoritma adalah suatu urutan instruksi yang tidak ambigu untuk
menyelesaikan suatu masalah, yaitu untuk mendapatkan hasil yang
disyaratkan untuk setiap input logis dalam suatu jangka tertentu. (Levitin,
2010:3)
Pemrograman berasal dari kata program yang diberi awalan pe dan
akhiran an. Dalam hal ini, program berarti program komputer yang
merupakan sekumpulan instruksi langkah per langkah yang
memberitahukan mengenai yang harus dilakukan komputer secara tepat.
(John M. Zelle, 2002:1)
Pemrograman adalah segala kegiatan pembuatan program komputer,
kemudian terdapat pula istilah bahasa pemrograman yang berarti bahasa
yang digunakan dalam pembuatan program komputer.
TIPE-TIPE ALGORITMA BERDASARKAN FORMAT PENULISAN
Deskriptif algoritma yang ditulis dalam bahasa manusia sehari-hari
(misalnya bahasa Indonesia atau bahasa Inggris) dan dalam bentuk
kalimat. Setiap langkah algoritmanya diterangkan dalam satu atau
beberapa kalimat.
Flow Chart (Diagram Alir) algoritma juga dapat ditulis dalam bentuk
diagram-diagram dengan anak panah sebagai penunjuk urutan langkah
algoritmanya. Algoritma yang ditulis dengan simbol-simbol demikian yang
dinamakan flow chart.
Pseudocode suatu bahasa yang memungkinkan programmer untuk
berpikir terhadap permasalahan yang harus dipecahkan tanpa harus
memikirkan syntax dari bahasa pemrograman yang tertentu
DESKRIPTIF
Contoh:
FLOW CHART
Contoh :
PSEUDOCODE
Contoh :
CONTOH DESKRIPSI ALGORITMA DAN PSEUDOCODE
Deskripsi Algoritma :

Pseudocode :
{2 DASAR-DASAR
ALGORITMA }
STRUKTUR PENULISAN ALGORITMA
Penulisan algoritma hendaknya menggunakan format pseudocode agar
nantinya mudah diterjemahkan ke dalam bahasa pemrograman.
KOMENTAR
Komentar merupakan suatu penjelasan mengenai suatu hal yang tertulis
dalam algoritma dan komentar bukanlah merupakan bagian dari langkah-
langkah penyelesaian suatu algoritma.
Komentar ditulis di antara tanda baca kurung kurawal buka dan kurung
kurawal tutup. { } .
PENAMAAN (IDENTIFIER)
Dalam algoritma, ada beberapa hal yang harus diberi nama atau
pengenal:
nama algoritma,
nama tetapan (konstanta),
nama peubah (variabel),
nama tipe,
nama prosedur, dan
nama fungsi.

Aturan dalam pemberian nama:


hanya boleh terdiri dari huruf, angka, atau garis bawah
tidak boleh dimulai dengan angka
tidak membedakan huruf kapital maupun huruf kecil (non case-sensitive)
panjang tidak dibatasi
harus unik, artinya tidak boleh ada nama pengenal yang sama untuk hal yang berbeda
hendaknya mencerminkan kegunaannya
TIPE DATA
Dalam algoritma, tipe data yang ada lebih sedikit dibanding bahasa
pemrograman dikarenakan algoritma hanya menekankan pada
penyelesaian masalah.
Beberapa tipe data dalam algoritma:
Integer
Real
Char
String
Boolean
VARIABEL
Variabel merupakan sesuatu yang digunakan sebagai tempat
penyimpanan nilai dalam memori yang isinya dapat diubah.

KONSTANTA
Konstanta merupakan suatu nilai yang telah ditetapkan di awal
pembuatan algoritma dan nilainya tidak dapat diubah oleh proses dalam
algoritma.
PENUGASAN (ASSIGNMENT)
Penugasan atau Assignment merupakan pemberian nilai ke variabel secara
langsung. Notasi yang digunakan adalah
Nilai yang dapat diberikan adalah tetapan, peubah, ekspresi, maupun
nilai yang dihasilkan oleh fungsi
Syarat penugasan adalah nilai yang diberikan harus sesuai dengan tipe
variabel.
INPUT
Input artinya meminta data yang diperlukan dari user.
Dalam algoritma menggunakan kata kunci read untuk menginput data.
Data yang dapat diinputkan hanyalah data berupa integer, real, char,
atau string. Sedangkan data boolean tidak dapat diinputkan
menggunakan read.

OUTPUT
Output artinya mencetak informasi yang dihasilkan oleh algoritma.
Dalam algoritma menggunakan kata kunci write untuk mencetak suatu
data.
CONTOH INPUT DAN OUTPUT
FLOWCHART
Pengertian Diagram alir atau flow chart adalah suatu bagan yang
menggambarkan arus logika dari data yang akan diproses dalam suatu
program dari awal sampai akhir. Diagram alir terdiri dari simbol-simbol
yang mewakili fungsi-fungsi langkah program dan garis alir (flow lines)
menunjukkan urutan dari simbol-simbol yang akan dikerjakan.
Simbol flow chart
FLOWCHART
Simbol flow chart
FLOWCHART
Simbol flow chart
BENTUK-BENTUK DASAR STRUKTUR LOGIKA FLOWCHART
Runtunan (Sequence Structure) Pemilihan/Percabangan IF
(Selection Structure)
BENTUK-BENTUK DASAR STRUKTUR LOGIKA FLOWCHART
Pengulangan FOR Pengulangan WHILE-DO Pengulangan REPEAT-UNTIL
(FOR Loop Structure) (WHILE-DO Structure) (REPEAT-UNTIL Structure)
{3 RUNTUNAN
}
PENGERTIAN RUNTUNAN
Runtunan merupakan struktur algoritma yang mempunyai ciri-ciri sebagai
berikut:
tiap instruksi dikerjakan satu per satu
tiap instruksi dikerjakan tepat hanya sekali, dengan kata lain tidak
ada instruksi yang diulang
instruksi dikerjakan berurutan mulai dari instruksi pertama hingga
instruksi terakhir
akhir dari instruksi terakhir merupakan akhir algoritma.
CONTOH RUNTUNAN
LATIHAN
1. Buatlah algoritma untuk menghitung luas segitiga jika diketahui panjang
alas dan tinggi segitiga.
Analisis Penyelesaian :
input : alas (a) dan tinggi (t) segitiga
output : luas (L) segitiga
rumus : L = 0,5 x a x t

Langkah Pengerjaan :
1. meminta input data alas dan tinggi segitiga dari user
2. menghitung luas segitiga menggunakan rumus
3. mencetak output berupa luas segitiga
LATIHAN
Pseudocode :
Algoritma Menghitung_Luas_Segitiga
{Menghitung luas segitiga jika diketahui panjang
alas dan tinggi segitiga. Alas dan tinggi diinput
dari user. Kemudian Luas dihitung menggunakan rumus
Luas = 0,5 x alas x tinggi. Kemudian mencetak
output berupa luas segitiga}

Deklarasi:
a, t, L : real

Deskripsi
read(a)
read(t)
L 0.5 * a * t
write(L)
LATIHAN
2. Buatlah algoritma menghitung jumlah uang yang harus dibayarkan pembeli
berdasarkan beratnya buah jeruk yang dibeli. Diketahui bahwa harga
barang per kg adalah 500 rupiah/100 gram. Diketahui pula pembeli berhak
mendapatkan diskon sebesar 5%. Hasil keluaran yang diinginkan adalah
total harga sebelum diskon, diskon, dan total harga setelah diskon.
Analisis Penyelesaian :
input :
output :
rumus :
{4 PEMILIHAN
}
PENGERTIAN
Dalam runtunan, setiap baris proses dalam algoritma akan selalu
dikerjakan. Namun, ada saat dimana kita menginginkan satu atau
beberapa proses dalam algoritma tersebut hanya dikerjakan apabila
memenuhi syarat atau kondisi tertentu
Dalam algoritma, kondisi tersebut dapat menggunakan struktur
percabangan IF
Bentuk penulisan struktur IF adalah
PENGERTIAN
Kondisi dalam struktur IF adalah suatu nilai boolean yang dapat bernilai TRUE
atau bernilai FALSE. Kondisi dalam hal ini dapat berupa suatu ekspresi yang
menghasilkan nilai boolean (ekspresi boolean) atau juga dapat berupa suatu
variabel yang bertipe boolean.
Dalam struktur IF di atas, proses_1 hingga proses_n hanya akan dikerjakan
apabila kondisi bernilai TRUE. Sedangkan proses_a hingga proses_x hanya akan
dikerjakan apabila kondisi bernilai FALSE.
Hal yang perlu diperhatikan dalam struktur IF adalah bahwa struktur IF tidak harus
memiliki bagian ELSE. Bagian ELSE digunakan apabila ada proses yang hendak
dikerjakan untuk kondisi bernilai FALSE.
Perhatikan pula bahwa proses ditulis sedikit menjorok ke dalam. Hal ini disebut
dengan indent. Indent sangat diperlukan untuk memudahkan dalam pembacaan
suatu algoritma.
CONTOH PEMILIHAN 1 KASUS
1. ALGORITMA PENGECEKAN NILAI NEGATIF
Buatlah algoritma untuk mencetak kata negatif apabila user menginputkan
suatu bilangan negatif.

Analisis Penyelesaian :
Suatu bilangan dikatakan negatif apabila bilangan tersebut kurang
daripada nol.

Langkah Pengerjaan :
1. Input suatu bilangan, misalkan n
2. Cek kondisi n<0. Apabila bernilai true, cetaklah kata negatif.
CONTOH PEMILIHAN 1 KASUS
1. ALGORITMA PENGECEKAN NILAI NEGATIF
Pseudocode :
CONTOH PEMILIHAN 1 KASUS
2. ALGORITMA PEMBERIAN DISKON
Sebuah toko yang sedang melakukan promosi memberikan diskon sebesar 10% untuk pembeli
yang melakukan transaksi minimal Rp. 100.000,00. Buatlah algoritma untuk menampilkan diskon
dan total yang harus dibayar pembeli.

Analisis Penyelesaian :
Input : Total belanja pembeli (belanja)
output : besarnya diskon (diskon) dan total pembayaran (total)

Langkah Pengerjaan :
1. input total belanja pembeli
2. cek kondisi belanja Rp100.000,00. Apabila bernilai true maka menghitung diskon
dengan rumus diskon = 10% x belanja.
3. Hitung total pembayaran dengan rumus total = belanja diskon
4. Cetak nilai diskon dan total pembayaran.
CONTOH PEMILIHAN 1 KASUS
2. ALGORITMA PEMBERIAN DISKON
Pseudocode :
CONTOH PEMILIHAN 2 KASUS
3. ALGORITMA GANJIL GENAP
Buatlah algoritma untuk mencetak kata GENAP apabila bilangan bulat yang diinputkan user
adalah bilangan genap, dan mencetak kata GANJIL apabila bilangan bulat yang diinputkan
user adalah bilangan ganjil.

Analisis Penyelesaian :
Input : suatu bilangan bulat (n)
suatu bilangan bulat merupakan bilangan genap jika habis dibagi 2, jika tidak pastilah
merupakan bilangan ganjil.

Langkah Pengerjaan :
1. input bilangan bulat (n)
2. cek kondisi (n mod 2) = 0. Apabila bernilai true maka cetak Genap, apabila
bernilai false maka cetak Ganjil.
CONTOH PEMILIHAN 2 KASUS
3. ALGORITMA GANJIL GENAP
Pseudocode :
CONTOH PEMILIHAN 2 KASUS
4. ALGORITMA TERBESAR DARI 2 BILANGAN
Diinputkan dua buah bilangan bulat dari user. Buatlah algoritma untuk mencetak bilangan yang
terbesar dari dua bilangan tersebut.

Analisis Penyelesaian :
Input : 2 bilangan bulat (a dan b) Apabila a>b, maka yang dicetak adalah a.
apabila a<b, maka yang dicetak adalah b. Tetapi apabila a = b, maka kita dapat
mencetak a atau b. Oleh karena itu, kita dapat menyimpulkan bahwa kita mencetak a
apabila ab, dan mencetak b apabila terjadi sebaliknya.

Langkah Pengerjaan :
1. input bilangan bulat (a)
2. input bilangan bulat (b)
3. cek kondisi a >= b. Apabila bernilai true maka cetak a, apabila bernilai false
maka cetak b.
CONTOH PEMILIHAN 2 KASUS
4. ALGORITMA TERBESAR DARI 2 BILANGAN
Pseudocode :
CONTOH PEMILIHAN 2 KASUS
5. ALGORITMA MENGHITUNG UANG LEMBUR
Karyawan PT ABC digaji berdasarkan jumlah jam kerjanya selama satu minggu. Upah per jam
adalah Rp. 2.000,00. Bila jumlah jam kerja lebih besar dari 48 jam, maka sisanya dianggap
sebagai jam lembur. Upah lembur adalah Rp. 3.000,00. Buatlah algoritma untuk menampilkan
upah normal, uang lembur, dan total upah yang diterima karyawan.

Analisis Penyelesaian :
input : jumlah jam kerja (n)
output : upah normal (upah), uang lembur (lembur), dan total upah (total)
rumus :
apabila karyawan tidak mendapat uang lembur, maka
lembur = 0, upah = n x 2000
apabila karyawan mendapatkan uang lembur, maka
lembur = (n 48) x 3000, sedangkan upah = 48 x 2000
CONTOH PEMILIHAN 2 KASUS
5. ALGORITMA MENGHITUNG UANG LEMBUR
Pseudocode :
CONTOH PEMILIHAN LEBIH DARI 2 KASUS
6. ALGORITMA MENENTUKAN POSITIF, NOL, ATAU NEGATIF
Buatlah algoritma untuk mencetak kata Positif , Nol, atau Negatif berdasarkan jenis
bilangan yang diinput oleh user.

Analisis Penyelesaian :
input : sebuah bilangan (x)

Langkah Pengerjaan :
1. input bilangan x
2. tentukan apakah x positif, jika benar maka cetak Positif
3. Jika tidak, maka tentu x mungkin nol atau negatif.
4. tentukan apakah x sama dengan nol, jika benar maka cetak Nol
5. jika tidak, maka cetaklah Negatif
CONTOH PEMILIHAN 2 KASUS
6. ALGORITMA MENENTUKAN POSITIF, NOL, ATAU NEGATIF
Pseudocode :
CONTOH PEMILIHAN LEBIH DARI 2 KASUS
7. ALGORITMA GAJI BERDASARKAN GOLONGAN
Suatu perusahaan menentukan gaji pokok karyawannya menurut golongannya. Besarnya
gaji pokok berdasarkan golongannya dapat dilihat pada tabel berikut. Buatlah algoritma untuk
menentukan gaji pokok berdasarkan golongan yang diinput user.

Analisis Penyelesaian :
input : Golongan (gol) bertipe char.

Langkah Pengerjaan :
1. Anggap kasus terdiri dari 2 pilihan, yaitu bergolongan A atau bukan.
Apabila bukan, maka kasus tereduksi menjadi 3 pilihan, yaitu bergolongan B, C,
atau D.
2. Anggap kasus terdiri dari 2 pilihan, yaitu bergolongan B atau bukan.
Apabila bukan, maka kasus tereduksi menjadi 2 pilihan, yaitu bergolongan C atau
D.
CONTOH PEMILIHAN 2 KASUS
7. ALGORITMA GAJI BERDASARKAN GOLONGAN
Pseudocode :
CONTOH PEMILIHAN LEBIH DARI 2 KASUS
8. ALGORITMA TERBESAR DARI 3 BILANGAN (BANDINGKAN SATU-SATU)
Buatlah algoritma untuk menentukan yang terbesar dari 3 bilangan.

Analisis Penyelesaian :
input : tiga bilangan (a, b, dan c)

Langkah Pengerjaan :
1. Misalkan bilangan tersebut adalah bilangan a, b, dan c.
2. Bandingkan a dengan b dan c. Bila a lebih besar dari b maupun c, maka a terbesar.
3. Jika tidak, maka tersisa 2 kemungkinan, b terbesar atau c terbesar.
4. Bandingkan b dengan c. Bila b lebih besar dari c, maka b terbesar. Jika tidak maka
c yang terbesar.
CONTOH PEMILIHAN LEBIH DARI 2 KASUS
9. ALGORITMA TERBESAR DARI 3 BILANGAN (POHON KEPUTUSAN)
Buatlah algoritma untuk menentukan yang terbesar dari 3 bilangan.

Analisis Penyelesaian :
input : tiga bilangan (a, b, dan c)

Langkah Pengerjaan :
1. Misalkan bilangan tersebut adalah bilangan a, b, dan c.
2. Apabila a>b, maka b sudah dipastikan bukan terbesar. Tersisa 2 pilihan,
yaitu a yang terbesar atau c yang terbesar. Bandingkan a dan c untuk
mengetahui yang mana yang terbesar.
3. Jika tidak (a b), maka a sudah dipastikan bukan terbesar. Tersisa 2 pilihan, yaitu
b yang terbesar atau c yang terbesar. Bandingkan b dengan c untuk
mengetahui yang mana yang terbesar.
CONTOH PEMILIHAN LEBIH DARI 2 KASUS
10. ALGORITMA TERBESAR DARI 3 BILANGAN (SEKUENSIAL)
Buatlah algoritma untuk menentukan yang terbesar dari 3 bilangan.

Analisis Penyelesaian :
input : tiga bilangan (a, b, dan c)

Langkah Pengerjaan :
1. Misalkan bilangan tersebut adalah bilangan a, b, dan c.
2. Asumsi bahwa bilangan a yang terbesar.
3. Bandingkan asumsi dengan bilangan berikutnya, yaitu b. Jika b lebih besar, maka
asumsikan terbesar adalah b. Jika tidak, maka asumsi kita bahwa a yang terbesar
tidak berubah.
4. Bandingkan asumsi dengan bilangan berikutnya, yaitu c. Jika c lebih besar, maka c
adalah yang terbesar. Jika tidak, maka asumsi tidak berubah, dan asumsi
itulah yang benar terbesar.
LATIHAN - PEMILIHAN
1. Diketahui bahwa cuaca dikatakan panas apabila temperatur lebih dari 30 C dan
cuaca dikatakan dingin apabila temperatur kurang dari 25 C. Buatlah algoritma
untuk mencetak kata Panas, Dingin, atau Normal sesuai dengan temperatur yang
diinputkan user. Temperatur yang diinputkan oleh user adalah dalam satuan derajat
Fahrenheit.
2. Buatlah algoritma untuk menentukan terbesar dari 4 bilangan dengan menggunakan 3
metode seperti pada algoritma nomor 8. , 9. , dan 10.
3. Sebuah perusahaan memberikan kode pegawai dengan suatu bilangan yang terdiri dari 11
digit, dengan format gddmmyyyynn, yaitu g adalah nomor golongan (dari 1 hingga 4);
dd-mm-yyyy adalah tanggal lahir dengan dd = tgl, mm=bulan, yyyy=tahun; dan nn
adalah kode identitas yang menyatakan nomor urut. Misalnya 22505197803 adalah
seorang pegawai bergolongan 2, lahir pada tanggal 25 Mei 1978 dan bernomor
urut 3. Buatlah algoritma untuk mencetak nomor golongan, tanggal lahir, dan nomor
urut pegawainya. Bulan kelahiran dicetak dalam format nama bulan, misalnya bulan ke-5
dicetak MEI.
LATIHAN - PEMILIHAN
4. Berdasarkan kode pegawai pada soal nomor 6 di atas, buatlah algoritma untuk
menghitung gaji pegawainya. Ketentuannya adalah pajak sebesar 5% dari total gaji,
besarnya gaji pokok dan tunjangan dapat dilihat pada tabel berikut.

5. Buatlah algoritma untuk menentukan grade berdasarkan nilai akhir. Grade dapat dilihat
pada tabel berikut.
{5 PENGULANGAN
}
PENGERTIAN
Pengulangan digunakan untuk suatu proses yang tidak hanya dikerjakan
satu kali, namun hendak dikerjakan berulang kali didalam algoritma.
Ada dua jenis pengulangan yaitu:
Pengulangan yang diketahui banyaknya pengulangan (definite loop)
Pengulangan yang tidak diketahui banyaknya pengulangan (indefinite loop)

Beberapa hal yang harus diperhatikan dalam pengulangan adalah:


Pengulangan harus dapat mengulang proses yang hendak diulang.
Pengulangan harus dapat berhenti (banyaknya pengulangan berhingga)
Dengan kata lain, proses yang hendak diulang harus diperhatikan 2 kemungkinan yang
mungkin terjadi, yaitu proses tidak pernah dikerjakan atau proses dikerjakan terus menerus
tanpa henti.
DEFINITE LOOP
Dalam algoritma, definite loop menggunakan perintah FOR. Struktur
pengulangan FOR adalah:
CONTOH-CONTOH
Perhatikan penggalan algoritma berikut ini.

Bentuk di atas dapat kita sederhanakan dengan menggunakan struktur


pengulangan FOR.
CONTOH-CONTOH
Perhatikan penggalan algoritma berikut ini.

Bentuk di atas dapat kita sederhanakan dengan menggunakan struktur


pengulangan FOR.

Algoritma berikut ini tidak boleh dilakukan.


SOAL LATIHAN
Buatlah algoritma untuk mencetak barisan 2 4 6 8 10 ... sebanyak n buah suku.
Buatlah algoritma untuk menghitung jumlahan deret 1 + 2 + ... + n dengan nilai n
diinput dari user.
Buatlah algoritma yang meminta input n buah data bilangan dari user kemudian
menghitung rata-ratanya.
Buatlah algoritma untuk meminta input n buah data nilai mahasiswa kemudian
menghitung banyaknya mahasiswa yang lulus. Syarat untuk lulus adalah nilai yang
diperoleh adalah minimal 60.
Buatlah algoritma untuk menginput n buah data bilangan, kemudian mencetak
bilangan yang merupakan terbesar dari data tersebut.
Buatlah algoritma untuk menampilkan nilai tertinggi dari sekumpulan n buah nilai
ujian mahasiswa. Nilai tersebut berkisar dari 0 hingga 100.
THANK YOU