Anda di halaman 1dari 34

BAB 1

KONSEP DASAR PEMROGRAMAN

1.1 Pengertian Program dan Pemrograman


Komputer merupakan alat bantu penyelesaian masalah di berbagai
bidang: Pendidikan, Perbankan, Industri, Penerbangan, Kedokteran,
Permainan, dll. Tetapi, permasalahan tidak dapat disodorkan begitu
saja ke depan komputer, karena sebenarnya mesin komputer hanyalah
benda mati yang tidak bisa apa-apa. Manusia harus merumuskan
langkah-langkah pemecahan masalah dalam runtunan instruksi yang
dapat dilaksanakan oleh komputer yang disebut program.
Program merupakan runtunan atau himpunan instruksi(perintah)
tertulis yang ditanamkan ke dalam komputer untuk menyelesaikan
masalah. Pemrograman merupakan pengerjaan penulisan instruksi
oleh programmer untuk menyelesaikan suatu masalah.

MASALAH PROGRAM KOMPUTER SOLUSI


KOMPILASI

Tahapan Penyelesaian Masalah oleh Komputer

1.2 Bahasa Pemrograman


Program harus dibuat dalam bahasa yang dimengerti oleh Komputer
yang disebut bahasa pemrograman supaya instruksi yang ditulis oleh
programmer dapat dilaksanakan oleh komputer .

1. Bahasa Mesin (Mnemonic Code)


Bahasa mesin adalah bahasa yang berisi kode-kode mesin yang hanya
dapat diinterpretasikan langsung oleh mesin komputer. Bahasa ini
merupakan bahasa level terendah dan berupa kode numerik 0 dan 1.
Keuntungan : Eksekusi cepat
Kerugian : Sangat sulit dipelajari manusia

hal 1
2. Bahasa Assembly
Bahasa assembly adalah bahasa simbol dari bahasa mesin. Setiap kode
bahasa mesin memiliki simbol sendiri dalam bahasa assembly. Misalnya
ADD untuk penjumlahan, MUL untuk perkalian, SUB untuk
pengurangan, dan lain-lain.
Kelebihan : Eksekusi cepat, masih bisa dipelajari daripada bahasa
mesin, file kecil
Kekurangan : Tetap sulit dipelajari, program sangat panjang

3. Bahasa Tingkat Tinggi (High Level Language)


Bahasa tingkat tinggi adalah bahasa pemrograman yang lebih
tinggi daripada bahasa assembly. Bahasa ini lebih dekat dengan bahasa
manusia dan lebih dipahami manusia.
Contoh: Pascal, Basic, Cobol, C, C++, Java, dll.
Keuntungan :
- Mudah dipelajari
- Mendekati permasalahan yang akan dipecahkan
- Kode program pendek
Kerugian: Eksekusi lambat karena ada proses pengubahan perintah
dalam bahasa ini ke dalam bahasa mesin oleh Translator(Penterjemah)
Bahasa generasi ini disebut juga bahasa generasi ke-3 (3rd Generation
Programming Language).

4. Bahasa yang berorientasi pada masalah spesifik


Bahasa ini adalah bahasa yang digunakan langsung untuk
memecahkan suatu masalah tertentu. Misalnya SQL untuk database.
Bahasa ini juga masuk ke bahasa tingkat tinggi. Bahasa ini disebut
juga bahasa generasi ke-4 (4th Generation Programmming Language).

hal 2
Translator (Penterjemah)
Translator berfungsi untuk menterjemahkan program yang ditulis dalam
bahasa pemrograman tingkat tinggi ke dalam bahasa mesin. Translator
dapat dibedakan menjadi :
 Interpreter : menterjemahkan dan mengeksekusi baris per baris
instruksi. Contoh bahasa Basic.
 Compiler : mengeksekusi program setelah seluruh instruksi
diterjemahkan. Contoh bahasa Pascal, bahasa C, C++, dll.

1.3 Belajar memprogram dan Belajar bahasa pemrograman


Belajar memprogram adalah belajar tentang strategi, metodologi,
dan sistematika pemecahan masalah, kemudian menuangkannya
dalam suatu notasi tertentu yang mudah dibaca dan dipahami.
Sifat : Pemahaman persoalan, analisis, sintesis
Titik Berat : Designing Program
Belajar bahasa pemrograman adalah belajar memakai suatu bahasa,
aturan tata bahasanya, instruksi- instruksinya, tata cara pengoperasian
compiler-nya untuk membuat program yang ditulis dalam bahasa itu
saja.
Sifat : Keterampilan
Titik Berat : Coding Program
Produk yang dihasilkan oleh seorang pemrogram adalah program
dengan rancangan yang baik (metodologis, sistematis), yang dapat
dieksekusi oleh mesin, berfungsi dengan benar, sanggup melayani
segala kemungkinan masukan, dan didukung dengan adanya
dokumentasi. Pengajaran pemrograman titik beratnya adalah
membentuk seorang perancang ”designer” program, sedangkan
pengajaran bahasa pemrograman titik beratnya adalah membentuk
seorang ”coder”(juru kode).

hal 3
Pada prakteknya, suatu rancangan harus dapat dikode untuk
dieksekusi dengan mesin. Oleh karena itu, belajar pemrograman dan
belajar bahasa pemrograman saling komplementer, tidak mungkin
dipisahkan satu sama lain.
Tetapi, karena banyak bahasa pemrograman yang dapat digunakan dan
pemilihannya akan sangat tergantung kepada masalah yang dipecahkan,
maka belajar memprogram menjadi lebih penting daripada belajar
bahasa pemrograman. Keduanya diperlukan tetapi dalam tingkat yang
berbeda.

1.4 Langkah-langkah pemrograman Komputer


1. Mendefinisikan masalah : menentukan masalahnya seperti apa, apa
saja yang harus dipecahkan dengan komputer, apa masukannya,
dan bagaimana keluarannya
2. Menentukan solusi : mencari jalan bagaimana masalah
tersebut diselesaikan. Jika masalah terlalu kompleks, maka ada
baiknya masalah tersebut dipecah menjadi modul-modul kecil agar
lebih mudah diselesaikan.
3. Memilih algoritma : pilihlah algoritma yang benar-benar sesuai dan
efisien untuk permasalahan tersebut
4. Menulis Program : menuliskan program dalam salah satu bahasa
pemrograman.
Pilihlah bahasa yang sesuai dengan permasalahan, mudah
dipelajari, mudah digunakan, dan lebih baik lagi jika sudah
dikuasai, memiliki tingkat kompatibilitas tinggi dengan perangkat
keras dan platform lainnya.
5. Menguji program : Menentukan apakah program berhasil
dikompilasi dengan baik ? apakah program dapat menghasilkan
keluaran yang diinginkan? Langkah 4 & 5 bisa dilakukan berulang-
ulang sampai outoput program sesuai dengan yang diharapkan.

hal 4
6. Menulis dokumentasi : Menulis dokumentasi sangat penting
agar pada suatu saat jika kita akan melakukan perubahan atau
membaca source code yang sudah kita tulis dapat kita ingat-ingat
lagi dan kita akan mudah membacanya. Caranya adalah dengan
menuliskan komentar-komentar kecil tentang apa maksud kode
tersebut, untuk apa, variabel apa saja yang digunakan, untuk apa,
dan parameter-parameter yang ada pada suatu prosedur dan fungsi.
7. Merawat program : Program yang sudah jadi perlu dirawat untuk
mencegah munculnya bug yang sebelumnya tidak terdeteksi. Atau
mungkin juga pengguna membutuhkan fasilitas baru yang dulu tidak
ada.

Contoh Permasalahan :
Menghitung dan menampilkan Luas Persegi Panjang

Tahapan penyelesaian :

1. Mendefinisikan Masalah
· Masukan / Input : panjang, lebar
· Keluaran / Output : Luas

2. Menentukan Solusi + Memilih Algoritma


Contoh urutan solusi :
· Baca input panjang
· Baca input lebar
· Hitung Luas = panjang x lebar
· Tampilkan Luas

hal 5
3. Menulis Program
Contoh penulisan program dalam Bahasa PHP dan Hasilnya.

Program Hasil di Layar


<?php
$L=”5”; Panjang = 5
$luas=”2”; Lebar = 2
$Luas=$a.$b; Luas = 10
echo(“Panjang = “);echo($P);
echo(“<br>”);
echo (“Lebar = “);echo($L);
echo(“<br>”);
echo(“Luas = “);echo($luas);
?>

hal 6
BAB 2
KONSEP DASAR ALGORITMA

2.1 Pengertian Algoritma


Algoritma adalah urutan langkah-langkah logis penyelesaian masalah
yang disusun secara sistematis dan tidak tergantung pada bahasa
pemrograman tertentu. Kata Logis merupakan kata kunci dalam
Algoritma. Langkah-langkah dalam Algoritma harus logis (masuk akal
dan mengikuti suatu urutan tertentu, tidak boleh melompat-
lompat).serta harus dapat ditentukan bernilai salah atau benar.

Perbedaan Algoritma dan Program


Komputer hanyalah salah satu pemroses. Agar dapat dilaksanakan oleh
komputer, algoritma harus ditulis dalam notasi bahasa pemrograman
sehingga dinamakan program. Jadi program adalah perwujudan atau
implementasi teknis Algoritma yang ditulis dalam bahasa pemrogaman
tertentu sehingga dapat dilaksanakan oleh komputer.

Algoritma

program bhs tingkat tinggi

Program bahasa mesin

Eksekusi oleh CPU


(komputer)

Output yang diinginkan

hal 7
Dalam bidang komputer, algoritma sangat diperlukan dalam
menyelesaikan berbagai masalah pemrograman, terutama dalam
komputasi numeris. Tanpa algoritma yang dirancang baik maka proses
pemrograman akan menjadi salah, rusak, atau lambat dan tidak efisien.

2.2 Algoritma untuk memecahkan permasalahan sehari-hari


Contoh 1 : Jika seorang ingin memasak atau membuat kue, baik itu
melihat resep ataupun tidak pasti akan melakukan suatu langkah-
langkah tertentu sehingga masakannya atau kuenya jadi dan rasanya
enak.
Contoh 2 : Algoritma TUKAR ISI BEJANA
Diberikan dua buah bejana A dan B, bejana A berisi larutan
berwarna merah, bejana B berisi larutan berwarna biru. Pertukarkan
isi kedua bejana itu sedemikian sehingga bejana A berisi larutan
berwarna biru dan bejana B berisi larutan berwarna merah.
Deskripsi Algoritma 1:
Aksi 1 : Tuangkan larutan dari bejana A ke dalam bejana B
Aksi 2 : Tuangkan larutan dari bejana B ke dalam bejana A

Algoritma TUKAR ISI BEJANA di atas tidak menghasilkan pertukaran


yang benar. Langkah di atas tidak logis, hasil pertukaran yang terjadi
adalah percampuran kedua larutan tersebut.
Untuk mempertukarkan isi duah bejana, diperlukan sebuah bejana
tambahan sbg tempat penampungan sementara, misalnya bejana C.
Maka algoritma untuk menghasilkan pertukaran yang benar adalah
sebagai berikut :
Deskripsi Algoritma 2 :
Aksi 1 : Tuangkan larutan dari bejana A ke dalam bejana C
Aksi 2 : Tuangkan larutan dari bejana B ke dalam bejana A
Aksi 3 : Tuangkan larutan dari bejana C ke dalam bejana B

hal 8
Contoh 3 : Ibu Tati mengupas kentang untuk makan malam
Sub masalah : 1. Apakah kentangnya harus dibeli dulu atau sudah di
dapur ?
2. Apakah pisau sudah siap ?
3. Berapa jumlah kentang yang dikupas ?
Maka kita harus membatasi dengan jelas keadaan awal dan keadaan
akhirnya. Keadaan awal dan keadaan akhir algoritma dapat dijadikan
acuan bagi pemrogram dalam merancang sebuah algoritma.

Initial State(T0) : Kentang sudah ada di kantong plastik, yang


ditaruh di lemari di dapur dimana Ibu Tati akan
mengupasnya, pisau ada di rak.
Final State(T1) : 100 Kentang dalam keadaan terkupas siap
untuk dimasak dan kantong kentangnya harus dikembalikan ke lemari
lagi jika masih ada kentangnya.

Deskripsi Algoritma 1 :
Aksi 1 : Ibu Tati mengambil kantong kentang dari lemari
Aksi 2 : Ibu Tati mengambil pisau dari rak
Aksi 3 : Ibu Tati mengupas kentang
Aksi 4 : Ibu Tati mengembalikan kantong kentang ke dalam lemari

 Deskripsi Algoritma di atas masih belum memenuhi Final State


dimana kentang yang sudah dikupas ada100 buah dan kantong
kentang harus dikembalikan ke lemari jika masih ada kentangnya.
Pada algoritma tersebut kentang yang dikupas hanya 1 dan Aksi 4
akan tetap dilaksanakan walaupun kantong kentang sudah kosong.
 Supaya kentang yang sudah terkupas ada 100 maka perlu
dilakukan proses PENGULANGAN pengupasan kentang sebanyak 100
kali. Dan supaya Ibu Tati hanya mengembalikan kantong kentang ke
lemari hanya jika masih ada isinya, maka perlu ada PEMILIHAN
berdasarkan kondisi isi kantong kentang.

Maka algoritma untuk mencapai Final State yang benar adalah sebagai
berikut :

hal 9
Deskripsi Algoritma 2
Aksi 1 : Ibu Tati mengambil kantong kentang dari lemari dan
Aksi 2 : Ibu Tati mengambil pisau dari rak
Aksi 3 : Selama kentang terkupas <= 100 maka Kupas 1 kentang
Aksi 4 : Lihat isi kantong ; Jika Kantong Kosong maka buang
Jika Kantong Tidak kosong maka Kembalikan kantong ke lemari

Ciri penting algoritma:


 Algoritma harus berhenti setelah mengerjakan sejumlah langkah
terbatas.
 Setiap langkah harus didefinisikan dengan tepat dan tidak berarti-
dua (Ambiguitas).
 Algoritma memiliki nol atau lebih masukan (input).
 Algoritma memiliki nol atau lebih keluaran (output).
 Algoritma harus efektif (setiap langkah harus sederhana sehingga
dapat dikerjakan dalam waktu yang efisien).

2.3 Struktur Dasar Algoritma


Langkah-langkah penyelesaian masalah bisa berupa :
a. Runtunan (sequence))
Sebuah runtunan terdiri dari satu atau lebih instruksi. Tiap instruksi
dikerjakan berurutan sesuai aturan penulisannya. Urutan instruksi
menentukan keadaan akhir algoritma, jika urutannya diubah maka hasil
akhirnya mungkin akan berubah. Urutan instruksi menunjukkan cara
berfikir penyusun algoritma dalam menyelesaikan masalah
Runtunan Instruksi : Instruksi 1
Instruksi 2
Instruksi 3
Contoh : Algoritma Tukar isi Bejana
Runtunan instruksi :
1. Tuangkan larutan dari bejana A ke dalam bejana C
2. Tuangkan larutan dari bejana B ke dalam bejana A
3. Tuangkan larutan dari bejana C ke dalam bejana B

hal 10
Hasil akhir :
Bejana A berisi larutan dari bejana B, bejana B berisi larutan dari bejana A
Jika runtunan instruksi diubah maka hasilnya berubah.

b. Pemilihan (selection) -- (akan lebih dijelaskan pada Bab 5) --


Adakalanya sebuah instruksi dikerjakan jika sebuah kondisi tertentu
terpenuhi.

Struktur umum :

If kondisi then Aksi

Atau

If kondisi then
Aksi 1
else
Aksi 2

Contoh :
 If Amir memperoleh juara kelas then
Ayah akan membelikannya hadiah

 If Jalan Dago macet then


Ambil alternative Jalan Dipati Ukur

 If Kantong Kentang kosong then


Buang
Else
Kembalikan kantong kentang ke lemari
Endif

hal 11
c. Pengulangan (repetition)
Komputer tidak pernah bosen dan lelah jika diminta untuk mengerjakan
instruksi secara berulang-ulang.
Contoh :
 Menulis kalimat ”Saya harus lebih giat belajar” sebanyak 1000 kali
 Ulangi :
- Tulis kalimat ” Saya harus lebih giat belajar” Sampai
jumlahkalimat = 1000
- Mengupas 100 buah kentang Selama kentang terkupas < 100
maka Kupas 1 kentang

hal 12
BAB 3
ATURAN PENULISAN NOTASI ALGORITMA

Penulisan algoritma tidak tergantung dari spesifikasi bahasa pemrograman


dan komputer yang mengeksekusinya melainkan bersifat umum tetapi
notasi-notasi algoritma dapat diterjemahkan ke dalam berbagai bahasa
pemrograman.

Notasi algoritma dapat berupa :


 Uraian kalimat deskriptif (narasi) : Instruksi pada algoritma dapat
dituliskan dalam bahasa sehari-hari (B.Indonesia, B.Inggris, dsb). Tidak
aturan yang baku untuk menuliskan algoritma dalam bentuk notasi
ini, tetapi penulisan algoritma menggunakan notasi ini dapat
menimbulkan ambiguitas.

 Bagan Alur (Flow Chart) : Intruksi – intruksi pada algoritma


digambarkan secara grafis (menghasilkan sebuah bagan),
menggunakan simbol – simbol tertentu dengan ketentuan sebagai
berikut :

SIMBOL KETERANGAN
Tanda mulai (start) atau Tanda
selesai (end)

Proses

Operasi input atau output

Percabangan atau pengambilan


keputusan

Aliran data

hal 13
 Pseudo - code
Penulisan teks algoritma dengan Pseudo-code menggunakan
notasi-notasi tertentu yang mendekati bahasa pemrograman
sehingga lebih mudah ditranslasikan ke dalam bahasa pemrograman.
Aturan Penulisan Pseudo code :

Judul Algoritma
{ Bagian yang terdiri atas nama algoritma dan penjelasan spesifikasi) tentang
algoritma tersebut. Nama sebaiknya singkat dan menggambarkan apa yang
dilakukan oleh algoritma tersebut.
}
Kamus (Deklarasi Algoritma)
{ Bagian untuk mendefinisikan semua nama yang digunakan di dalam
program. Nama tersebut dapat berupa nama konstanta, variabel, tipe,
prosedur dan fungsi.
}
Deskripsi Algoritma
{ Bagian ini berisi uraian langkah-langkah penyelesaian masalah yang
ditulis dengan menggunakan notasi yang akan dijelaskan selanjutnya
}

Contoh 1 : Algoritma Luas_Lingkaran


Menghitung dan menampilkan Luas Lingkaran dengan masukan jari-jari
lingkaran
Contoh Penulisan Algoritma :
 Uraian kalimat deskriptif (narasi)
DESKRIPSI :
- Baca jari-jari (R) lingkaran
- Phi  3,14
- Luas  Phi x R x R
- Tulis Luas

hal 14
 Flow Chart

MULAI

BACA R

Phi  3,14

Luas  Phi x R x R

Tulis
Luas

SELESAI

 Pseudo Code

Algoritma Luas_Lingkaran
{Menerima masukan jari-jari lingkaran(R), menghitung Luasnya dengan
rumus : 3.14 * R * R, kemudian menuliskan hasilnya}

Kamus
const Phi : real = 3.14
R, Luas : real
Deskripsi
read(R)
Luas  Phi * R * R
write (Luas)

hal 15
Contoh 2 : Algoritma Kelulusan_siswa
Diberikan nama dan nilai siswa, jika nilai tersebut lebih besar atau sama
dengan 60 maka siswa tersebut dinyatakan lulus jika nilai lebih kecil dari
60 maka dinyatakan tidak lulus.

 Uraian kalimat deskriptif (narasi)


DESKRIPSI :
- Baca nama dan nilai siswa
- Jika nilai >= 60 maka keterangan lulus
- Tetapi jika nilai < 60 maka keterangan tidak lulus
- Tulis nama dan keterangan

 Flow Chart

MULAI

Baca
nama, nilai

Tidak
Nilai >= 60 Keterangan  ‘tidak lulus’

Ya

Keterangan  ‘Lulus’

Tulis
nama,keterangan

SELESAI

hal 16
 Pseudo Code

Algoritma Kelulusan_Siswa
{ Menerima masukan nama dan nilai siswa, jika
nilai tersebut lebih besar atau sama dengan 60 maka siswa
tersebut dinyatakan lulus jika tidak maka dinyatakan tidak lulus
}
Kamus
Nama, keterangan : string
Nilai: real

Deskripsi
read (nama, nilai)
if nilai >= 60 then keterangan  ‘lulus’
else
keterangan  ‘tidak lulus’
endif

write(nama, keterangan)

hal 17
BAB 4
VARIABEL, KONSTANTA DAN TIPE DATA

4.1 Variabel
Variabel adalah tempat dimana kita dapat mengisi atau mengosongkan
nilainya dan memanggil kembali apabila dibutuhkan. Setiap variabel
akan mempunyai nama (identifier) dan nilai. Perhatikan contoh berikut :

username = “joni”
Nama = “Al-Khawarizmi”
Harga = 2500
HargaTotal = 34000

Pada contoh di atas, username, Nama, harga dan HargaTotal adalah


nama dari variabel sedangkan “joni”, “Al-Khawarizmi”, 2500 dan
34000 adalah nilai dari masing-masing variabel. Nilai-nilai ini akan
tersimpan di dalam nama variabel masing-masing sepanjang tidak kita
rubah.
Pemberian nama variabel harus mengikuti aturan yang ditetapkan oleh
bahasa pemrograman yang kita gunakan. Namun secara umum ada
aturan yang berlaku untuk hampir semua bahasa pemrograman.
Aturan-aturan tersebut yaitu:
 Nama variabel harus diawali dengan huruf.
 Tidak boleh menggunakan spasi pada satu nama variabel.
Spasi bisa diganti dengan karakter underscore (_).
 Nama variabel tidak boleh mengandung karakter-
karakter khusus, seperti : .,+, -, *, /, <, >, &, (, ) dan lain-lain.
 Nama variabel tidak boleh menggunakan kata-kata kunci
dalam bahasa pemrograman yang di pakai.

4.2 Konstanta
Konstanta adalah variabel yang nilai datanya bersifat tetap dan tidak bisa
diubah. Jadi konstanta adalah juga variabel bedanya adalah pada nilai
yang disimpannya. Jika nilai datanya sepanjang program berjalan tidak
berubah- ubah, maka sebuah varibel lebih baik diperlakukan sebagai
konstanta. Pada sebuah kode program, biasanya nilai data dari konstanta
diberikan langsung di bagian deklarasi konstanta.

hal 18
Sedangkan untuk variabel biasanya hanya ditentukan nama variabel
dan tipe datanya tanpa isian nilai data. Aturan penamaan variabel
juga berlaku untuk penamaan konstanta.
Demikian juga aturan penetapan tipe data. Sebagai contoh, jika kita
membuat program perhitungan matematik yang menggunakan nilai phi
(3.14159) yang mungkin akan muncul dibanyak tempat pada kode
program, kita dapat membuat phi sebagai konstanta.
Penggunaan konstanta phi akan lebih memudahkan penulisan kode
program dibanding harus mengetikkan nilai 3.14159 berulang-ulang.

4.3 Tipe Data


Tipe data adalah jenis data yang dapat diolah oleh komputer untuk
memenuhi kebutuhan dalam pemrograman komputer. Setiap variabel
atau konstanta yang ada dalam kode program, sebaiknya kita tentukan
dengan pasti tipe datanya. Ketepatan pemilihan tipe data pada variabel
atau konstanta akan sangat menentukan pemakaian sumberdaya
komputer (terutama memori komputer).
Salah satu tugas penting seorang programmer adalah memilih tipe data
yang sesuai untuk menghasilkan program yang efisien dan berkinerja
tinggi.
 Bilangan Bulat : Integer
Merupakan bilangan yang tidak mengandung pecahan.
 Bilangan Riil : Real
Merupakan bilangan yang mengandung pecahan.
 Bilangan Logika : Boolean
Merupakan bilangan yang hanya terdiri dari 1 (satu) dan 0 (nol), yang
mempunyai nilai benar (false) dan salah (true).
 Karakter : char
Karakter tunggal yang biasa nya diapit oleh tanda petik (‘ ‘).
 String
Merupakan deretan karakter (char) dengan panjang tertentu dan
biasanya diapit pula oleh tanda petik (‘ ‘).
 Record ------- (akan dibahas lebih lanjut dalam basis data)

hal 19
OPERATOR DAN EKSPRESI
Operator adalah lambang-lambang yang biasa dilibatkan dalam
program untuk melakukan suatu operasi atau manipulasi. Misalnya
untuk perkalian, penjumlahan, perbandingan, dll. Sedangkan ekspresi
adalah suatu ”rumus perhitungan” yang terdiri dari operan dan operator.
Operan harus mempunyai harga, karena itu dapat berupa konstanta,
nama variabel(yang dipakai dalam perhitungan adalah harga yang
dikandung nama variabel), hasil pengiriman suatu fungsi, atau merupakan
suatu ekspresi.

Contoh Ekspresi : a b + c – 2

Pada ekspresi ini, a, b, dan c merupakan nama variabel yang


berperan sebagai operand sedangkan simbol ,+ dan – merupakan
operator. Dalam hal ini variabel a diisi dengan hasil penjumlahan b dan c
dikurangi 2.

Jenis –jenis operator :


1. Operator Perbandingan
Operator perbandingan digunakan untuk membandingkan dua
operand. Operand yang dibandingkan bisa bertipe bilangan bulat,
karakter, real, boolean, atau string. Ekspresi yang menggunakan
operator perbandingan akan menghasilkan nilai boolean(true
atau false).

operator operasi Contoh ekspresi hasil


= Sama dengan a=6=9 a = false
≠ atau != Tidak sama dengan a=7≠5 a = true
< Lebih kecil dari a=4<6 a = true
> Lebih besar dari a = 10 > 1 a = true
<= Lebih kecil sama dengan a = 8 <= 4 a = false
>= Lebih besar sama dengan a = 3 >= 1 a = true

hal 20
2. Operator Aritmatika
Operator aritmatika hanya dapat dikenakan pada operand
bertipe bilangan bulat atau bilangan real. Ekspresi yang
menggunakan operator ini pun hanya akan menghasilkan nilai
bilangan bulat atau real.

Operator Operasi Hasil Contoh ekspresi Hasil


x  8 + 13 x = 21
+ tambah Integer/real
x  4.3 + 2 x = 6.3
x  15 – 2 x = 13
– kurang Integer/real
x  2.1 – 1.1 x = 1.1
x5*6 x = 30
* kali Integer/real
x  2.0 * 1.1 x = 2.2
/ bagi real x6/4 x = 1.5
div pembagian bil. bulat integer z  7 div 2 z=3
Sisa pembagian
mod integer z  7 mod 2 z=1
bilangan bulat
^ pangkat Integer/real z2^3 z=8

3. Operator Logika
Operator ini dikenakan pada operand bertipe boolean dan
ekspresinya akan menghasilkan nilai boolean(true atau false).
4.

Operator Arti Hasil


Not negasi Boolean
And dan Boolean
Or atau Boolean
Xor exclusive OR Boolean

Hasil operator not, and, or, dan xor untuk berbagai kombinasi kondisi :
5.

A B not A not B A and B A or B A xor B


True true false False true true false
True false false True false true true
False true true False false true true
false false true true false false false

hal 21
Tugas !

1. Permasalahan : Tuliskan algoritma untuk menulis ’Assalamualaikum’


ke piranti keluaran
Input : -
Output : ’Assalamualaikum’
Proses : menulis ’Assalamualaikum’

2. Permasalahan : Tuliskan algoritma untuk membaca sebuah nama,


dan menulis ’ Assalamualaikum’ yang diikuti dengan nama yang
diketikkan ke piranti keluaran.
Input : nama
Output : ’Assalamualaikum <nama>’
Proses : menulis ’Assalamualaikum’ diikuti nama yang dibaca

3. Permasalahan : Tuliskan algoritma untuk menghitung Luas Segitiga


dengan membaca harga alas (cm) dan tinggi (cm) kemudian
menuliskan hasilnya ke piranti keluaran.
Input : alas dan tinggi segitiga
Output : luas segitiga
Proses : menghitung dan menuliskan luas segitiga

4. Permasalahan : Dibaca nama karyawan dan gaji pokok bulanannya.


Buat algoritma untuk menghitung dan menampilkan gaji bersih
karyawan tersebut dengan ketentuan :
-Gaji bersih = gaji pokok + tunjangan – pajak
-Tunjangan untuk setiap pegawai sama dan tetap setiap bulannya
yaitu 1.000.000
- Pajak 10% dari (gaji pokok+tunjangan)
Input : nama dan gaji pokok
Output : gaji bersih
Proses : menghitung dan menampilkan gaji bersih, tunjangan dan pajak

5. Permasalahan : Buatlah algoritma yang membaca dua buah bilangan


integer yang ditampung dalam variabel, menukarkan harga variabel
tersebut dan menuliskan hasil pertukarannya.

hal 22
BAB 5
PEMILIHAN / PERCABANGAN

Sebuah program tidak selamanya akan


berjalan dengan mengikuti struktur
berurutan, kadang - kadang kita perlu
merubah urutan pelaksanaan program dan
menghendaki agar pelaksanaan program
meloncat ke baris tertentu. Peristiwa ini
kadang disebut sebagai percabangan /
pemilihan atau keputusan. Hal ini seperti
halnya ketika mobil berada dalam
persimpangan seperti gambar disamping.

Pengemudi harus memutuskan apakah harus menempuh jalur yang


kanan atau yang kiri. Pada struktur percabangan, program akan
berpindah urutan pelaksanaan jika suatu kondisi yang disyaratkan
dipenuhi.

Catatan : dalam percabangan memungkinkan terjadinya struktur


percabangan berada di dalam struktur percabangan yang lain atau biasa
disebut nested (percabangan bersarang)

Contoh kasus : Algoritma Kelulusan_siswa


Diberikan nama dan nilai siswa, jika nilai tersebut lebih besar atau sama
dengan 60 maka siswa tersebut dinyatakan lulus jika nilai lebih kecil dari
60 maka dinyatakan tidak lulus.

 Uraian kalimat deskriptif (narasi)


DESKRIPSI :
- Baca nama dan nilai siswa
- Jika nilai >= 60 maka keterangan lulus
- Tetapi jika nilai < 60 maka keterangan tidak lulus
- Tulis nama dan keterangan

hal 23
 Flow Chart

MULAI

Baca
nama, nilai

Tidak
Nilai >= 60 Keterangan  ‘tidak lulus’

Ya

Keterangan  ‘Lulus’

Tulis
nama,keterangan

SELESAI

 Pseudo Code

Algoritma Kelulusan_Siswa
{ Menerima masukan nama dan nilai siswa, jika
nilai tersebut lebih besar atau sama dengan 60 maka siswa
tersebut dinyatakan lulus jika tidak maka dinyatakan tidak lulus
}
Kamus
Nama, keterangan : string
Nilai: real

Deskripsi
read (nama, nilai)
if nilai >= 60 then keterangan  ‘lulus’
else
keterangan  ‘tidak lulus’
endif

write(nama, keterangan)

hal 24
Tugas !

1. Sebuah aturan untuk menonton sebuah film tertentu adalah sebagai


berikut, jika usia penonton lebih dari 17 tahun maka penonton
diperbolehkan dan apabila kurang dari 17 tahun maka penonton
tidak diperbolehkan nonton. Buatlah flowchart untuk permasalahan
tersebut.

2. Buatlah algoritma untuk menentukan bilangan genap atau bilangan


ganjil dari input bilangan yang diberikan !

Nested case :
3. Sebuah usaha fotokopi mempunyai aturan sebagai berikut :
 jika yang fotokopi statusnya adalah langganan, maka berapa lembar pun
dia fotokopi, harga perlembarnya Rp. 75,-
 jika yang fotokopi bukan langganan, maka jika dia fotokopi kurang dari
100 lembar harga perlembarnya Rp. 100,-Sedangkan jika lebih atau
sama dengan 100 lembar maka harga perlembarnya Rp. 85,-.
Buatlah flowchart untuk menghitung total harga yang harus dibayar
jika seseorang memfotokopi sejumlah X lembar.

4. Aturan kelulusan siswa pada mata pelajaran Pemrograman Web


diterapkan sebagai berikut :
 Jika nilai ujian tengah semester (UTS) lebih besar dari 70 maka
siswa dinyatakan lulus dan Nilai Akhir sama dengan nilai UTS.
 Jika nilai UTS kurang atau sama dengan 70 maka siswa dinyatakan
lulus jika Nilai Akhir lebih besar atau sama dengan 60 dimana Nilai Akhir
= (nilai UTS x 40%) + (nilai UAS x 60%).
Buatlah flowchart penyelesaian masalah tersebut apabila output yang
diinginkan adalah NIM, Nama Siswa, Nilai Akhir dan Status Kelulusan.

hal 25
BAB 6
PENGULANGAN (repetition)

Komputer memiliki kemampuan untuk mengerjakan suatu instrukasi


(aksi) secara berulang-ulang dengan performansi yang sama. Kemampuan
tersebut menjadi salah satu keunggulan komputer dibandingkan manusia
karena manusia biasanya tidak menyukai tugas-tugas monoton yang
dikerjakan secara berulang-ulang (karena lelah atau bosan).

Notasi pengulangan adalah salah satu notasi dasar dalam penulisan


algoritma selain pemilihan. Terdapat beberapa macam struktur
pengulangan pada algoritma dan beberapa diantaranya yang paling
banyajk digunakan antara lain struktur FOR, WHILE-DO, dan REPEAT-
UNTIL.. Masing-masing struktur digunakan pada jenis permasalahan yang
berbeda meskipun untuk beberapa kasus sebuah struktur pengulangan
dapat diganti dengan struktur pengulangan yang lain.

6.1 Struktur For


Struktur ini digunakan bila sudah diketahui berapa kali akan
mengulang satu atau beberapa aksi dalam badan pengulangan.

Bentuk Umum :
for variabel  nilai_awal to nilai_akhir do
aksi 1
aksi 2
...
aksi n
endfor

Catatan :
 variabel adalah nama variabel kontrol bertipe karakter atau integer
yang berfungsi sebagai pencacah pengulangan
 aksi1, aksi2, ..., aksi n merupakan satu atau lebih instruksi yang dikerjakan
secara berulang-ulang
 nilai_awal dan nilai_akhir bisa berupa konstanta atau ekspresi
 nilai_awal harus lebih kecil atau sama dengan nilai_akhir
 tipe data variabel harus sama dengan tipe data nilai_awal dan nilai_akhir
 Pengulangan akan dilakukan sebanyak nilai_akhir - nilai_awal + 1

hal 26
Contoh : Membuat sebuah algoritma untuk menampilkan bilangan dari 1
sampai 10.

Algoritma Show_Numeric
{ menampilkan bilangan integer dari 1 sampai 10}
Kamus
i : integer
Deskripsi
for i  1 to 10 do
write(i)
endfor

For juga dapat digunakan pada pengulangan yang mencacah dari bilangan
lebih besar ke bilangan yang lebih kecil

Bentuk Umum :
for variabel  nilai_awal downto nilai_akhir do
aksi 1
aksi 2
...
aksi n
endfor

Catatan :
 variabel adalah nama variabel kontrol bertipe karakter atau integer
yang berfungsi sebagai pencacah pengulangan
 aksi1, aksi2, ..., aksi n merupakan satu atau lebih instruksi yang dikerjakan
secara berulang-ulang
 nilai_awal dan nilai_akhir bisa berupa konstanta atau ekspresi
 nilai_awal harus lebih besar atau sama dengan nilai_akhir
 tipe data variabel harus sama dengan tipe data nilai_awal dan nilai_akhir
 Pengulangan akan dilakukan sebanyak nilai_akhir - nilai_awal + 1

hal 27
Contoh : Membuat sebuah algoritma untuk menampilkan bilangan dari N
sampai 1 dimana N diinpuitkan dari user

Algoritma Show_Numeric2
{ menampilkan bilangan integer dari N sampai 1}
Kamus
i, N : integer
Deskripsi
read(N)
for i  N downto 1 do
write(i)
endfor

6.2 Struktur WHILE-DO (Pengulangan berdasarkan kondisi ulang)


Struktur pengulangan ini biasanya digunakan pada kasus yang belum
pasti berapa kali aksi/instruksinya akan diulang. Struktur While mirip
struktur IF yang melakukan pemeriksaan ekspresi boolean sebelum satu
atau lebih aksi dikerjakan.

Bentuk Umum :
while (kondisi) do
aksi 1
aksi 2
...
aksi n
endwhile

Catatan :
 Kondisi adalah kondisi pengulangan berupa ekspresi boolean yang dapat
menghasilkan nilai True atau False
 Aksi pada badan pengulangan dilaksanakan selema (kondisi)
menghasilkan nilai True
 Pengulangan berhenti jika (kondisi) menghasilkan nilai False

hal 28
Contoh : Membuat sebuah algoritma untuk menampilkan bilangan dari 1
sampai 10.

Algoritma Show_Numeric3
{ menampilkan bilangan integer dari 1 sampai 10}
Kamus
i : integer
Deskripsi
i 1
while i ≤ 10
do
write(i)
i i+1
endwhile

Catatan Untuk diperhatikan :


Badan pengulangan (aksi) pada struktur While-Do mungkin tidak akan
pernah dilakukan karena sebelum aksi pertama dieksekusi, dilakukan test
terhadap kondisi pengulangan. Pengulangan ini berpotensi untuk
menimbulkan aksi “kosong” (tidak pernah melakukan apa-apa) jika pada test
pertama kondisi menghasilkan nilai False.

6.3 Struktur REPEAT-UNTIL


Struktur ini hampir sama dengan struktur Whike dan biasanya
digunakan bila jumlah pengulangan belum dapat ditentukan saat
program ditulis.
Bentuk Umum :
Repeat
aksi1
aksi2
...
aksin
Until (kondisi berhenti)

hal 29
Catatan :
 Kondisi berhenti berupa ekspresi boolean yang dapat menghasilkan nilai
True atau False.
 Aksi pada badan pengulangan akan dikerjakan sampai kondisi berhenti
bernilai True.
 Badan pengulangan (aksi) pada struktur ini minimal dikerjakan
satu kali karena pada waktu eksekusi pengulangan yang pertama
tidak dilakukan test terhadap kondisi berhenti. Test terhadap
kondisi berhenti dilakukan setelah aksi dikerjakan.

Algoritma Show_Numeric4
{ menampilkan bilangan integer dari 1 sampai 10}
Kamus
i : integer
Deskripsi
i 1
repeat
write(i)
i i+1
until i > 10

Perbedaan struktur Repeat-Until dan While-Do terletak pada pengecekan


kondisi. Jika pada struktur While, kondisi dicek pada awal badan
pengulangan, sedangkan pada struktur Repeat kondisi dicek pada
akhir badan pengulangan.

Perbedaan yang lain, bila struktur While mengulang pernyataan selama


kondisi masih terpenuhui (kondisi = True), struktur Repeat mengulang
pernyataan selama kondisi belum terpenuhi (kondisi = False)

Tugas : Buat algoritma untuk membaca dan menghitung nilai


mahasiswa kemudian menghitung nilai rata-rata dari nilai mahasiswa
tersebut. Proses pembacaan dan perhitungan dilakukan sampai user
tidak ingin menginputkan lagi .

hal 30
BAB 7
ARRAY

Array merupakan salah satu tipe data terstruktur(structured data


type) yang berguna sebagai sebuah tempat penyimpanan elemen data /
nilai yang bertipe sama. Penggunaannya sama seperti variabel(untuk
menyimpan nilai) tetapi variabel hanya dapat menyimpan sebuah nilai
sedangkan pada array data yang diolah bisa beberapa nilai bertipe
sama.

Struktur data array dipakai untuk merepresentasikan sekumpulan


informasi yang bertipe sama dan disimpan dengan urutan yang sesuai
dengan definisi indeks secara kontigu dalam memeori komputer. Oleh
karena itu indeks harus suatu tipe data yang mempunyai keterurutan
seperti tipe integer atau karakter.

Bentuk array sama seperti tabel sehingga array seringkali juga disebut
tabel. Misalnya tabel untuk menyimpan data nilai 100 buah

TabNilai
index nilai
1 60
2 70
3 100
4 80
5 65
... ...
10 89

Sebuah array harus diberi nama, supaya mudah diakses atau diacu. Setiap
elemen/bagian array harus diberi alamat supaya dapat dibedakan
dengan elemen lainnya dan mudah dalam pencarian. Indeks
digunakan sebagai alamat elemen pada array.

hal 31
Deklarasi Array
Supaya sebuah array dapat diisi, arraynya harus dibuat dulu atau
dipesan tempatnya (berapa banyak data yang akan dimasukkan ke dalam
array) dengan cara dideklarasikan di bagian kamus. Jumlah elemen array
tidak dapat diubah selama pelaksanaan program.

Bentuk umum deklarasi array :


nama_array : array [range_index] of tipe_elemen

Contoh :
TabNilai :array [1..100] of real
Frekuensi :array [‘a’..’z’] of integer
NamaKota :array [1..20] of string

Tipe_elemen menunjukkan tipe data dari elemen tabel, semua isi


elemen tabel bertipe sama. Range index bisa berupa integer atau
character dan harus menaik.

Setelah sebuah array dideklarasikan, akan disediakan tempat di memori


sebanyak jumlah elemen yang dipesan. Memori adalah tempat untuk
menyimpan data yang bersifat sementara sedangkan harddisk untuk
menyimpan data yang bersifat permanen. Memori juga memiliki alamat
yang dapat diakses jika dibutuhkan.

Operasi Array
Operasi atau manipulasi terhadap array hanya dapat dilakukan
terhadap satu elemennya yang ditunjukkan oleh indeks.

Untuk mengisi atau mengambil data/nilai dari array :


Nama_Array[alamat_index]  nilai
write(Nama_Array[alamat_index])
nama_variabel  Nama_Array[alamat_index]

hal 32
Contoh 1 : membuat dan mengisi array huruf
ArrHuruf
1 ‘A’
2 ‘N’
3 ‘G’
4 ‘S’
5 ‘A’
Kamus
const N = 5
ArrHuruf : array [1..N] of char

Deskripsi
ArrHuruf[1]  ‘A’
ArrHuruf[2]  ‘N’
ArrHuruf[3]  ‘G’
ArrHuruf[4]  ‘S’
ArrHuruf[5]  ‘A’
write(ArrHuruf[3])

Pemrosesan Array
Pemrosesan terhadap Array berarti memproses elemen mulai dari elemen
pertama (elemen dengan indeks terkecil, berturut-turut pada elemen
berikutnya, sampai elemen terakhir dicapai). Pemrosesan terhadap
elemen array menggunakan bentuk pengulangan sebagai berikut :

for i  index_awal to index_akhir do


Proses(Nama_Array[i])
endfor

hal 33
1. Pengisian elemen array dengan nilai yang dibaca dari piranti
masukan :

Algoritma Tabel1
Kamus
MyTab : array[1..50] of integer
n, i : integer
Deskripsi
read(n)
for i  1 to n do
read(MyTab[i])
endfor

2. Penulisan elemen array

Algoritma Tabel1
Kamus
MyTab : array[1..50] of integer
n, i : integer
Deskripsi
read(n)
for i  1 to n do
read(MyTab[i])
endfor

for i  1 to n do
write (MyTab[i])
endfor

Tugas : Buatlah Algoritma yang membaca sebuah array integer yang


menyatakan nilai ujian, TabNilai, mulai indeks 1 sampai n dan
menghitung nilai rata-rata ujian dan menampilkannya pada layar
dimana n diinputkan oleh user.

hal 34

Anda mungkin juga menyukai