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
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.
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.
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
hal 5
3. Menulis Program
Contoh penulisan program dalam Bahasa PHP dan Hasilnya.
hal 6
BAB 2
KONSEP DASAR ALGORITMA
Algoritma
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.
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.
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
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
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.
Struktur umum :
Atau
If kondisi then
Aksi 1
else
Aksi 2
Contoh :
If Amir memperoleh juara kelas then
Ayah akan membelikannya hadiah
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
SIMBOL KETERANGAN
Tanda mulai (start) atau Tanda
selesai (end)
Proses
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
}
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.
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
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.
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
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.
3. Operator Logika
Operator ini dikenakan pada operand bertipe boolean dan
ekspresinya akan menghasilkan nilai boolean(true atau false).
4.
Hasil operator not, and, or, dan xor untuk berbagai kombinasi kondisi :
5.
hal 21
Tugas !
hal 22
BAB 5
PEMILIHAN / PERCABANGAN
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 !
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.
hal 25
BAB 6
PENGULANGAN (repetition)
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
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
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
hal 30
BAB 7
ARRAY
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.
Contoh :
TabNilai :array [1..100] of real
Frekuensi :array [‘a’..’z’] of integer
NamaKota :array [1..20] of string
Operasi Array
Operasi atau manipulasi terhadap array hanya dapat dilakukan
terhadap satu elemennya yang ditunjukkan oleh indeks.
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 :
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
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
hal 34