Pengenalan Komputer
Proses transformasi data berbantukan komputer
Bahasa / Language
Adalah suatu sistem untuk berkomunikasi. Bahasa tertulis menggunakan simbol (yaitu huruf)
untuk membentuk kata. Dalam ilmu komputer,bahasa manusia disebut bahasa alamiah (natural
languages), dimana komputer tidak bisa memahaminya, sehingga diperlukan suatu bahasa komputer.
Bahasa Pemrograman
Tahapan Kompilasi:
Hal : 1
Logika & Pemrograman TI – STMIK WD – © 2010
Interpreter
berbeda dengan compiler, Interpreter menganalisis dan mengeksekusi setiap baris dari program tanpa
melihat program secara keseluruhan. Keuntungan dari Interpreter adalah dalam eksekusi yang bisa
dilakukan dengan segera. Tanpa melalui tahap kompilasi, untuk alasan ini interpreter digunakan pada
saat pembuatan program berskala besar.
Tipe Pemrograman
1. Pemrograman terstruktur
Pemrograman terstruktur adalah cara pemrosesan data yang terstuktur. Terstruktur dalam: analisa,
cara dan penulisan program.
Prinsip pemrograman terstruktur:
a. Gunakan rancangan pendekatan dari atas ke bawah (top down design),
b. Bagi program ke dalam modul-modul logika yang sejenis,
c. Gunakan sub-program untuk proses-proses sejenis yang sering digunakan,
d. Gunakan pengkodean terstruktur: IF ... THEN, DO ... WHILE dan lain-lainnya,
e. Hindarkan penggunaan perintah GO TO bila tidak diperlukan,
f. Gunakan nama-nama bermakna (mnemonic names), dan
g. Buat dokumentasi yang akurat dan berarti.
Dalam perencanaan dan perancangan dari atas ke bawah, kategori dan penyelesaian masalah dimulai
dari bagian yang utama kemudian dibagi menjadi bagian yang lebih kecil. Rancangan cara ini
memudahkan penulisan, pengujian, koreksi dan dokumentasi program.
Tahapan rancangan atas ke bawah dalam pemrograman:
1. Tentukan keluaran (output) yang diminta, masukan (input) yang diperlukan danprosesproses
utama yang diperlukan untuk transformasi data.
2. Membagi proses utama ke dalam modul-modul fungsional.
3. Buat algoritma msing-masing modul, dari modul utama ke sub-sub modul.
Setiap modul dalam proses rancangan atas ke bawah biasanya dibatasi dalam isi maupun batasan-
batasan berikut:
Setiap modul hanya mempunyai satu masukan dan keluaran
Setiap modul hanya mewakili satu fungsi program.
Rancangan (design) terstruktur:
1. Membagi program menjadi sub-program
2. Menekankan fungsionalitas.
3. Cocok untuk sistem yang banyak mempunyai fungsi independen. Gaya penulisan program
Hal : 2
Logika & Pemrograman TI – STMIK WD – © 2010
1. Batasan Masalah Merencanakan sistim dan spesifikasi program: Siapa yang akan menggunakan
program dan untuk apa? dengan cara:
Menentukan tujuan dan hasil yang akan dicapai
Menentukan hal-hal yang diperlukan oleh sistim
Pengumpulan data.
2. Pengembangan Model Pembuatan model dari sistim yang akan kita bangun, model adalah suatu
gambaran sederhana dari sistim yang kita buat. Dengan pembuatan model akan terlihat dengan jelas
hubungan antara objek-objek dalam sistim yang akan kita bangun. Untuk penyelesaian
aritmatik, biasanya model dibuat dalam bentuk rumus matematik. Contoh: untuk
membuat program luas_lingkaran kita membuat model matematis c = a x b
3. Rancangan algoritma Pembuatan urutan instruksi yang akan ditulis pada program ( dijelaskan lebih
lanjut)
4. Pemrograman Implementasi algoritma ke dalam program (algoritma sendiri dalam komputer adalah
merupakan program).
5. Uji dan Validasi Pengujian terhadap program : seperti kesalahan penulisan (syntax error) , kesalahan
saat eksekusi (runtime error) kesalahan logika program (program berjalan tapi menghasilkan output
yang salah- fatal error).
6. Dokumentasi Pembuatan catatan pada program terutama pada modul-modul yang rumit. Contoh:
Sistim Pengembangan Software Life Cycle
Hal : 3
Logika & Pemrograman TI – STMIK WD – © 2010
ALGORITMA
Logika
Logika secara umum dapat diartikan sebagai sesuatu yang dapat /tidak dapat diterima oleh akal
sehat. Sehingga logika merupakan suatu pernyataan singkat yang menunjukkan reaksi akal terhadap
sesuatu yang dilihat/ dirasa/ difikirkan.
Asal kata Algoritma berasal dari nama Abu Ja’far Mohammed Ibn Musa al-Khowarizmi,
ilmuan Persia yang menulis kitab al jabr w’al-muqabala (rules of restoration and reduction)
sekitar tahun 825 M.
Perencanaan dan perancangan program komputer juga disebut pembuatan algoritma. Secara
umum, algoritma: "kumpulan urutan perintah yang menentukan operasi-operasi tertentu yang
diperlukan untuk menyelesaikan suatu masalah ataupun mengerjakansuatu tugas".
Bila data yang digunakan benar, maka algoritma akan selalu berhenti dengan memberikan hasil yang
benar pula. Pembuatan algoritma harus selalu dikaitkan dengan:
a. Kebenaran algoritma, yakni bila program selesai maka hasilnya juga benar
b. Kompleksitas - lama dan jumlah - waktu proses dan penggunaan memory.
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 : 4
Logika & Pemrograman TI – STMIK WD – © 2010
d. Murah:
Efisien dalam penggunaan piranti memori dan penyimpanan lainnya.
Cepat waktu pelaksanaannya.
e. Didokumentasi dengan baik untuk pengoperasian, pemeliharaan dan pengembangan.
f. Algoritma merupakan pemberian (description) pelaksanaan suatu proses.Sebuah proses dikerjakan
oleh pemroses mengikuti algoritma yang sudah dibuat. Algoritma merupakan urutan langkah
instruksi yang logis. Setiap langkah instruksi mengerjakan suatu tindakan aksi.
Bila suatu aksi dilaksanakan, maka operasi atau sejumlah operasi yang bersesuaian dengan aksi itu
dikerjakan oleh pemroses.
Contoh Algoritma :
Contoh 1 :
Algoritma untuk membuka pintu yang terkunci :
Langkah 0 : Buka gagang pintu
Langkah 1 : Apakah pintu terbuka ?
Langkah 2 : Jika pintu terbuka, tarik pintu dan keluar. Selesai.
Langkah 3 : Jika tidak, putar kunci pintu dan kembali ke langkah 0.
Contoh 2 :
Anda mempunyai 2 gelas yang masing-masing gelas berisi susu dan gelas satunya lagi berisi kopi. Anda
bermaksud untuk menukar 2 gelas tersebut sehingga gelas yang sebelumnya berisi susu akan diisi
dengan kopi dan gelas yang diisi kopi akan diisi dengan susu. Nah, bagaimanakah langkah-langkah yang
dapat diambil sehingga tujuan anda tercapai?
Untuk hal tersebut, anda membutuhkan wadah tambahan yang dipakai sebagai tempat sementara
untuk menampung isi dari susu atau kopi.
Contoh 3 :
Anda mempunyai 2 ember dengan kapasitas masing-masing 3 liter dan 2 liter. Anda ingin mengisikan
kedua ember tersebut masing-masing 2 liter air. Bagaimanakah caranya???
Langkah 0 : Tuangkan hingga penuh Ember 3 liter.
Langkah 1 : Tuangkan air dari ember 3 liter ke ember 2 liter.
Langkah 2 : Kosongkan ember 2 liter.
Langkah 3 : Tuangkan sisa ember 3 liter ke 2 liter
Langkah 4 : Isi penuh ember 3 liter.
Langkah 5 : Tuangkan hingga penuh air dari ember 3 liter ke 2 liter.
Hal : 5
Logika & Pemrograman TI – STMIK WD – © 2010
Flowchart
Flowchart adalah bentuk gambar/diagram yang mempunyai aliran satu atau dua arah secara sekuensial
Flowchart digunakan untuk mendeskripsikan langkah-langkah algoritma ke dalam bentuk gambar.
Berikut ini adalah beberapa simbol yang digunakan untuk membuat flowchart.
Kegunaan:
Untuk mendesain program
Untuk merepresentasikan program
Hal : 6
Logika & Pemrograman TI – STMIK WD – © 2010
Tipe Data
Tipe data menentukan nilai yang dapat disimpan pada variabel. Variabel adalah identifier yang
digunakan untuk menyimpan suatu nilai.
1. Bilangan Bulat
Nama tipe : bulat
Ranah nilai : 1, 10, 100, 5000, 3000000,-5
Cth : A = 5
2. Bilangan pecahan
Nama tipe : pecahan /real
Ranah nilai : 0.50, 1.00, -3.140
Cth : Pi = 3.14
3. Boolean
Nama tipe : boolean
Ranah nilai : true dan false
Cth : Kerja = true
4. Karakter
Nama tipe : karakter
Ranah Nilai : ‘a’, ‘b’, ‘*’, ‘9’, ‘z’
Cth : grade = ‘A’
5. String
Nama tipe : string
Ranah nilai : ‘Senin’, ‘Budi’, ‘Ganjil’
Cth : Nama = ‘Budi’
6. Array
Nama tipe : array
Ranah nilai : semua ranah nilai
Cth : nilai[1] = 70, nama[5] = ‘Andi’, hasil[1]=true
Operator
Ada tujuh macam operator yang terdapat pada pemrograman secara umum yaitu :
1. Operator pemberian nilai
2. Operator aritmatika
3. Operator pemanipulasi bit
4. Operator boolean
5. Operator pembanding
6. Operator himpunan
7. Operator string
Hal : 7
Logika & Pemrograman TI – STMIK WD – © 2010
Operasi matematika akan menghasilkan nilai integer jika seluruh operand pada operasi tersebut
bertipe integer. Jika salah satu operand bertipe real maka hasil operasi tersebut akan bertipe real,
sebagai contoh :
3857 + 68348 * 38 div 56834, akan menghasilkan bilangan dengan tipe real, sedangkan bila operasinya
sebagai berikut :
38573 div 34739 mod 372 + 35730 - 38834 + 1.1, maka akan menghasilkan bilangan real.
Setiap variabel harus diberi nilai yang sesuai dengan tipe variabelnya. Misalnya Anda tidak dapat
memberi nilai integer terhadap sebuah variabel yang bertipe real, akan tetapi untuk beberapa kasus
tipe data, pemberian nilai yang berbeda tipe dengan deklarasi tipe datanya dapat dilakukan. Sebagai
contoh sebuah nilai dengan tipe data yang berbeda namun memiliki kisaran nilai yang lebih kecil dari
kisaran tipe data variabelnya dapat dilakukan. Biasanya hal ini sering dilakukan pada saat memberikan
nilai integer ke sebuah variabel bertipe real.
Tingkatan Operator
Operators Level Category
@ not 1 Unary
/ div mod and shl shr 2 Multiplying
+ - or xor 3 Adding
= <> < > <= >= in 4 Relational
Operator Boolean
Operator ini hanya dikenakan pada operand yang bernilai boolean. Ada 4 macam operator yaitu and,
or, not dan xor.
Not adalah unary operator, hanya dapat digunakan terhadap sebuah nilai.
not true = false
not false = true
And akan bernilai benar jika kedua pernyataan bernilai benar, selainnya salah :
TRUE and FALSE = FALSE TRUE and TRUE = TRUE
OR akan bernilai benar jika salah satu atau kedua pernyataan bernilai benar. Pernyataan dibawah ini
akan bernilai benar
TRUE or TRUE
TRUE or FALSE
FALSE or TRUE
Hal : 8
Logika & Pemrograman TI – STMIK WD – © 2010
XOR akan bernilai benar jika salah satu pernyataan benar. Perhatikan pernyataan dibawah ini :
TRUE or TRUE = FALSE
TRUE or FALSE = TRUE
FALSE or TRUE = TRUE
FALSE or FALSE = FALSE
Dua ekspresi boolean dapat digabungkan dengan menggunakan tanda kurung. Hal ini perlu
diperhatikan karena operator boolean memiliki tingkatan prioritas yang berbeda.
Berikut contoh tersebut :
(3>5) or (650<1)
operai tersebut akan menjadi salah, karena operator boolean hanya berlaku untuk nilai boolean, bukan
untuk integer.
Untuk operator boolean lainnya (AND, NOT, XOR) juga berlaku hal yang sama.
Operator Pembanding
Operator ini digunakan untuk membanding dua operand. Hasilnya adalah data bertipe boolean yang
menunjukkan hasil pembandingan bernilai benar atau salah.
< Kurang dari
> Lebih dari
= Sama dengan
<= Kurang dari sama dengan
>= Lebih dari sama dengan
<> Tidak sama dengan
Operator Himpunan
Operator himpunan terdiri dari (+) union, (-) selisih, (*) interseksi, (in) anggota dari.
Operator String
Operator yang digunakan untuk tipe data string adalah operator (+) penggabungan.
Latihan
Tuliskan pernyataan ini ke dalam bentuk yang benar.
1. A = 3X2 + BX – 32
x2 y2
2. d
2x
3. E = mc2
Hal : 9
Logika & Pemrograman TI – STMIK WD – © 2010
4. s = vt + ½ at2
b b 2 4ac
5. x =
2a
Program Flow
Jenis Proses Algoritma :
1. Sequence Process: instruksi dikerjakan secara sekuensial, berurutan.
2. Selection Process: instruksi dikerjakan jika memenuhi kriteria tertentu
3. Iteration Process: instruksi dikerjakan selama memenuhi suatu kondisi tertentu.
4. Concurrent Process: beberapa instruksi dikerjakan secara bersama.
START
READ
PROCESS
WRITE
END
Dari gambar flowchart di atas terlihat bahwa dalam suatu flowchart harus terdapat proses persiapan
dan proses akhir.
Beberapa anjuran yang perlu diketahui :
- Hindari pengulangan proses yang tidak perlu dan logika yang berbelit sehingga jalannya proses
menjadi singkat.
- Jalannya proses digambarkan dari atas ke bawah dan diberikan tanda panah untuk memperjelas
- Sebuah flowchart diawali dari satu titik START dan diakhiri dengan END.
Akumulator
Akumulator merupakan tempat manampung suatu nilai. Nilai yang masuk akan dijumlahkan
dengan nilai yang ada di dalamnya. Sehingga akumulator dapat dipakai untuk menentukan nilai total
dari penjumlahan suatu bilangan.
Hal : 10
Logika & Pemrograman TI – STMIK WD – © 2010
Dengan implementasi bentuk flowchart, akumulator digambarkan dengan menggunakan simbol proses
(persegi panjang). Misalnya, untuk menghitung nilai total seluruh gaji pegawai maka dapat
digambarkan sebagai berikut :
Sequence Process
Disebut juga proses berurutan, dimana instruksi dikerjakan dari awal sampai akhir secara berurutan.
Contoh :
S ta r t
M asukkan P
dan L
Luas = P * L
C e ta k L u a s
S to p
Pencabangan
Pernyataan pencabangan memungkinkan suatu pernyataan dieksekusi hanya jika suatu kondisi
terpenuhi atau tidak terpenuhi.
Contoh :
Algoritma untuk mengubah nilai yang dimasukkan menjadi bernilai positif.
Langkah 0 [input] : masukkan bilangan (N)
Langkah 1 [cek] : jika N < 0 maka lakukan langkah 2, jika tidak lakukan langkah 3.
Langkah 2 [invers]: N -N
Langkah 3 [cetak] : cetak N dan Stop.
Hal : 11
Logika & Pemrograman TI – STMIK WD – © 2010
Start
Masukkan X
T
X < 0
X = -X
Cetak Luas
Stop
Pengulangan
Pengulangan digunakan untuk menjalankan suatu atau beberapa pernyataan sebanyak berapa kali.
Pada notasi algoritma, kita gunakan kata untuk I 1, 50 lakukan ….
Contoh :
Algoritma untuk mencetak nama sebanyak 10 kali :
Langkah 0 [iterasi]: Untuk I 1, 10 lakukan L1 dan Stop
Langkah 1 [cetak] : Cetak nama.
Teks Algoritma
Mengikuti alur konsep pemrograman prosedural, suatu teks algoritma disusun dalam tiga bagian, yaitu:
a. Bagian kepala algoritma,
b. Bagian deklarasi, dan
c. Bagian deskripsi algoritma.
Setiap bagian disertai dengan penjelasan atau dokumentasi tentang maksud pembuatan teks. Bagian
penjelasan diawali dan diakhiri dengan simbol { dan }.
Algoritma NAMA_ALGORITMA { Penjelasan tentang algoritma yang menguraikan secara singkat hal-hal
yang dilakukan oleh algoritma }
Hal : 12
Logika & Pemrograman TI – STMIK WD – © 2010
DEKLARASI { Semua nama yang digunakan, meliputi nama-nama: tipe, konstanta, variabel. Juga nama
sub-program dinyatkan di sini }
Perhatian, dalam menulis nama-nama dalam algoritma harus mempunyai makna yang mencerminkan
proses, sifat atau identitas lainnya yang melekat dengan suatu proses, tipe, konstanta, variabel, sub-
program dan lain-lainnya. Nama-nama yang bermakna disebut mnemonic.
2. Deklarasi algoritma:
DEKLARASI { nama konstanta }
const PHI = 3.14; { Nilai phi = 22/7 }
{ nama peubah } var R : real; { input jejari lingkaran bilangan riil }
l_Lingkaran : real; { luas lingkaran bilangan riil }
{ nama sub program }
procedure TUKAR(input/output A: integer, input/output B: integer)
{ Mempertukarkan nilai A dan B.Parameter A dan B sudah terdefinisi nilainya.Setelah pertukaran, A
berisi nilai B dan B berisi nilai A }
3. Deskripsi algoritma: Bagian ini merupakan bagian inti algoritma yang berisikan uraian langkah-
langkah penyelesaian suatu masalah. Setiap langkah algoritma dibaca dari atas ke bawah.
Urutan penulisan menentukan urutan pelaksanaan perintah.
{ Baca data jejari lingkaran R.Jika R <= 0 tulis pesan data salah, selain itu hitung luas lingkaran.
Tampilkan luas lingkaran. }
baca(R);
jika R <= 0 then tulis("Data salah !")
selain itu l_Lingkaran = PHI x R x R;
tulis(l_Lingkaran);
Hal : 13
Logika & Pemrograman TI – STMIK WD – © 2010
Algoritma NAMA_ALGORITMA
{uraian singkat mengenai yang akan dilakukan algoritma ini}
DEKLARASI
{semua nama yang dipakai, meliputi nama tipe, nama tetapan,
nama peubah, nama prosedur, dan nama fungsi didefinisikan di
sini}
DESKRIPSI
{semua langkah / aksi algoritma dituliskan di sini}
Tipe
Yang dimaksud dengan tipe dalam algoritma adalah tipe data yang akan diolah atau dimanipulasi,
misalnya angka dan karakter. Sedangkan yang termasuk tipe dasar adalah bilangan logic, bilangan
bulat, bilangan riil, dan karakter.
Bilangan Logika
Bilangan logic hanya mengenal dua buah nilai yaitu benar (true) dan salah (false). Disebut sebagai
bilangan "benar" mengandung angka 1 dan "salah" mengandung angka 0. bentuk operasi untuk tipe
data ini adalah : not, and, or, dan xor. Nama untuk tipe adalah Boolean.
Bilangan Bulat
Bilangan bulat adalah bilangan yang tidak mengandung pecahan decimal. Nama untuk tipe ini
adalah integer.
Bilangan Real
Bilangan bulat adalah bilangan yang mengandung pecahan decimal. Nama untuk tipe riil adalah
real.
Karakter
Termasuk ke dalam golongan karakter adalah alphabet, tanda baca, angka, karakter khusus, dan
sebaginya. Nama untuk tipe ini adalah char.
Nama
Setiap obyek dalam algoritma harus diberi nama, dan setiap nama harus berbeda dengan nama
lainnya (unik). Obyek dalam algoritma dapat berupa :
1. Peubah (variable)
Adalah tempat menyimpan data/informasi di dalam memori yang isinya dapat diubah.
Contoh :
DEKLARASI
Nilai_Angka, Rata_rata : real
K : integer
R : char
Pi, max, min adalah nama tetapan, nama tetapan yang sudah diisikan ke dalam nama tetapan tidak
dapat diubah di dalam algoritma.
Hal : 14
Logika & Pemrograman TI – STMIK WD – © 2010
3. Tipe bentukan
Nama dari tipe bentukan ditentukan oleh pemrogram.
DEKLARASI
Type koordinat : record
<
X : real ,
Y : real ,
>
Type tanggal : record
<
tg : integer ,
bl : integer ,
th : integer ,
>
Titik_A : Koordinat
Kelahiran : tanggal
h, m : integer
Koordinat dan tanggal adalah nama tipe, sedangkan titik_A adalah nama peubah (variable) yang
bertipe koordinat, kelahiran adalah variable yang bertipe tanggal.
Nama fungsi
Nama prosedur
Nilai
Nilai adalah besaran dari tipe data yang sudah dikenal. Nilai ditampung oleh peubah (variable),
nilai dapat bersumber dari hasil perhitungan, masukan dari pemakai, kiriman dari suatu fungsi, tetapan
(const). berikut ini adalah macam-macam cara suatu nilai dimanupulasi.
Mula-mula variable h diisi 5, dan variable m diisi 12, kemudian h dan m dijumlahkan dan hasilnya
diisikan ke dalam h. sehingga variable h tidak lagi bernilai 5 tetapi bernilai 17.
Hal : 15
Logika & Pemrograman TI – STMIK WD – © 2010
Dengan syarat nama1, nama2, …, namaN adalah nama peubah (variable) yang sudah didefinisikan
tipenya pada bagian DEKLARASI.
Untuk deklarasi di atas, variable-variable tersebut dapat dioperasikan dengan operasi aritmatik.
Contoh :
p+r
dari ekspresi di atas, yang merupakan operand adalah p dan r, dan operatornya adalah "+". hasil
dari ekspresi tersebut akan bertipe integer.
Jika hasil dari operasi tersebut akan disimpan dalam sebuah variable (q), maka ekspresinya
menjadi :
qp+r
2. Ekspresi relasional
3. Ekspresi string
Menulis ke Piranti Keluaran
Nilai yang terdapat dalam peubah (variable) dapat kita tampilkan ke piranti keluaran, misalnya
layar peraga (monitor). Notasi algoritmik untuk tugas ini adalah write
write (' STMIK MDP ')
write (' jl. Rajawali 14 ')
write (nama, npm)
write (nilai1, nilai2, nilai3, rata_rata)
Penulisan write
Boolean
Tipe Dasar
Integer
Hal : 16
Logika & Pemrograman TI – STMIK WD – © 2010
Real
Char
String
Record
<field1 : type,
field2 : type,
…
fieldN : type
>
Operator
a. Aritmatik +
-
*
/
div
mod
<
b. Perbandingan ≤
>
≥
=
≠
Not
c. Logika and
or
xor
Komentar { komentar }
const
Lain-lain type
true
false
1.1 Pendahuluan
Sering kali dalam kehidupan sehari-hari kita berhadapan dengan beberapa pilihan, dimana setiap
pilihan pasti memiliki kriteria tertentu untuk dapat diambil. Setiap kondisi memiliki nilai Boolean,
sehingga jika nilai Boolean itu memenuhi algoritma, maka ekspresi untuk kondisi tersebut akan
dilaksanakan.
Sebagai contoh :
Jika ada satu kasus yang memiliki sebuah kondisi, dimana kasus ini
menyatakan apakah seseorang boleh masuk atau tidak ke dalam satu
ruangan. Kasus ini memiliki kondisi usia. Jika usia orang tersebut lebih besar
atau sama dengan 17 tahun maka orang tersebut boleh masuk ke ruangan
tersebut, jika tidak maka orang tersebut dilarang masuk.
Jika kasus tersebut dianalisa, saat usia orang tersebut diketahui, maka akan muncul nilai Boolean
pada kondisi. Jika usia orang tersebut 18 tahun, maka orang tersebut boleh masuk ruangan.
Hal : 17
Logika & Pemrograman TI – STMIK WD – © 2010
Kondisi " apakah usia lebih besar atau sama dengan 17 tahun ? ", maka kondisi bernilai true.
1.2 IF – THEN
Kondisi dengan satu keputusan
Struktur pemilihan dengan satu kondisi dapat kita gunakan IF-THEN.
Flowchart Algoritmik
if <kondisi> then
kondisi
aksi
benar
aksi endif
Contoh :
Buatlah bagan alir dan algoritma untuk menentukan apakah suatu bilangan yang di input merupakan
bilangan positif.
Start
Read nilai
nilai > 0
Write “positif”
End
Hal : 18
Logika & Pemrograman TI – STMIK WD – © 2010
Algoritmik
Algoritma Contoh
{contoh algoritma menggunakan
peubah, masukan dan keluaran}
DEKLARASI
nilai : integer
DESKRIPSI
readln (nilai)
if nilai > 0 then
write (‘positif‘)
endif
Flowchart Algoritmik
if <kondisi> then
kondisi aksi1
benar tidak else
Aksi1 Aksi2 aksi2
endif
"aksi1" hanya akan dilaksanakan jika "<kondisi>" bernilai true. Tetapi jika tidak maka “aksi2”
yang akan dilaksanakan. Jika kasus di atas kita tulis dalam bentuk algoritmik, maka akan tampak
sebagai berikut :
Usia 16
if usia >= 17 then
write (‘silahkan masuk’)
Usia = 16 else
write (‘dilarang masuk … !!’)
endif
T
usia >= 17
Y
write “silahkan Keterangan algoritmik :
masuk”
Mula-mula variable (peubah) usia diberi
harga 16, kemudian algoritmik
Write “dilarang mengerjakan kondisi untuk variable usia.
masuk” Jika usia >= 17 maka aksi1 akan
dilaksanakan. Tetapi jika tidak maka
aksi2 yang akan dilaksanakan.
Kondisi 16 >= 17 bernilai false, dan
kalimat “dilarang masuk … !! ”
ditampilkan.
Hal : 19
Logika & Pemrograman TI – STMIK WD – © 2010
1. Buatlah bagan alir dan algoritma untuk menampilkan GENAP atau GANJIL dari sebuah
bilangan integer yang di input.
Algoritma Menentukan_Bilangan
{mencari apakah bilangan yang dimasukkan
Start genap atau ganjil, kemudian ditampilkan}
DEKLARASI
Read nilai nilai : integer
h : integer
DESKRIPSI :
read (nilai)
h = nilai MOD 2 h nilai mod 2
if h = 0 then
write (‘GENAP’)
else
T write (‘GANJIL’)
h=0 endif
2. Buatlah bagan alir dan algoritma untuk menampilkan LEBIH DARI 10 atau KURANG DARI 10 dari
sebuah bilangan integer yang di input
Start
Read nilai
Y T
nilai > 10
Write Write
“LEBIH DARI 10” “KURANG DARI 10”
End
Hal : 20
Logika & Pemrograman TI – STMIK WD – © 2010
Flowchart Algoritmik
if <kondisi1> then
aksi1
kondisi1
tidak
else
benar
Kondisi2 if <kondisi2> then
Aksi1
aksi2
tidak
benar
Aksi2
Kondisi3 else
tidak
benar if <kondisi3> then
Aksi3 Aksi4 aksi3
else
aksi4
endif
endif
endif
Contoh :
1. Buatlah bagan alir dan algoritma untuk menampilkan MEMUASKAN jika nilai yang di input adalah A,
BAIK jika nilai yang di input adalah B, CUKUP jika nilai yang di input adalah C, KURANG nilai yang di
input adalah D, GAGAL jika nilai yang di input adalah E.
Sta
rt
Read nilai
Y T
nilai = A
Write Y T
nilai = B
“MEMUASKAN”
Write Y T
nilai = C
“BAIK”
Write Y T
nilai = D
“CUKUP”
Write Y T
nilai = E
“KURANG”
Write Write
“GAGAL” “SALAH INPUT”
End
Hal : 21
Logika & Pemrograman TI – STMIK WD – © 2010
2. Buatlah bagan alir dan algoritma untuk menampilkan POSITIF GENAP / POSITIF GANJIL / NEGATIF
GENAP / NEGATIF GANJIL dari sebuah bilangan integer yang di input
Start
Read nilai
h = nilai MOD 2
T Y
nilai > 0
T h=0 Y T h=0 Y
End
Pengulangan (loop)
Sesuai dengan judul, pengulangan (loop) adalah suatu pekerjaan yang dilakukan secara berulang-ulang
sampai kondisi tertentu. Dalam materi ini akan diberikan tiga macam pengulangan, yaitu :
1. FOR
2. WHILE – DO
3. REPEAT – UNTIL
Hal : 22
Logika & Pemrograman TI – STMIK WD – © 2010
3.1 FOR
Pengulangan dengan FOR digunakan jika sudah diketahui berapa kali sebuah statemen atau satu blok
statemen akan diulang. Struktur FOR ada dua macam, yaitu pengulangan hitung naik dan pengulangan
hitungan turun.
Contoh :
1. Buatlah bagan alir dan algoritma untuk menampilkan kata “Algoritmik” sebanyak lima kali.
Jawab :
Buatlah bagan alir dan algoritma untuk menampilkan deret 4 ,5 ,6 ,7 , 8, dengan menggunakan
akumulator (konter).
Jawab :
Hal : 23
Logika & Pemrograman TI – STMIK WD – © 2010
Buatlah bagan alir dan algoritma untuk menampilkan deret 4 ,5 ,6 ,7 , 8, dengan menggunakan
akumulator (konter). Jawab :
Buatlah bagan alir dan algoritma untuk menampilkan kata “Algoritmik” sebanyak lima kali.
Jawab :
Hal : 24
Logika & Pemrograman TI – STMIK WD – © 2010
WHILE
Pengulangan dengan WHILE berhubungan dengan nilai Boolean, yaitu pengulangan yang dilakukan
secara terus menerus selama kondisi logika memiliki nilai true. While – Do memiliki struktur sebagai
berikut :
Contoh :
Buatlah bagan alir untuk input bilangan integer secara terus menerus selama yang di input bukan 0.
Jawab :
Input secara terus menerus artinya input yang tidak akan berhenti selama suatu kondisi belum
terpenuhi.
Hal : 25
Logika & Pemrograman TI – STMIK WD – © 2010
Buatlah bagan alir untuk input password, tampil BENAR jika password benar, SALAH jika password
salah.
Jawab :
Password nya kita definisikan sendiri, misalnya AMPERA. Pilihan perulangan : selama password tidak
sama dengan AMPERA maka password akan terus diminta.
Latihan Soal :
1. Buatlah algoritma untuk mencetak deret berikut ini :
a. 1 5 9 13 .. N
b. 2 4 6 8 .. N
c. 1 3 5 7 .. N
2. Buatlah algoritma untuk menghitung dan mencetak deret berikut ini :
a. 2 + 4 + 6 + .. + N
b. 1 + 6 + 11 + .. + N
c. 4 + 7 - 10 + 13 + .. + N
d. -3 -8 +13 +18 - .. + N
e. 4 * 6 * 8 * .. * N
(Sebagai perbandingan gunakan struktur FOR, WHILE dan DO).
Hal : 26
Logika & Pemrograman TI – STMIK WD – © 2010
ARRAY
Array adalah suatu tipe data terstruktur yang terdapat dalam memory yang terdiri dari sejumlah
elemen yang mempunyai tipe data yang sama dan merupakan gabungan dari beberapa variabel sejenis
yang memiliki jumlah komponen yang jumlahnya tetap. Elemen-elemen dari array dapat berupa satu
dimensi, dua dimensi ataupun multi dimensi.
Mendefinisikan Larik
Ada dua hal yang harus diperhatikan dalam mendefinisikan sebuah larik, :
1. Menentukan jumlah elemen yang akan digunakan
2. Menentukan tipe dari elemen larik tersebut
17 21 33 1 48 0 2 16 72 9
Dimisalkan merupakan barisan array A(1) sampai dengan A(10).
Namun dalam bagan alir tidak demikian, yaitu langsung gunakan indek untuk perubah array.
Bentuk umum :
Type
Nama_Array : array[indexarrayawal..indexarrayakhir] of tipedata;
Contoh
Uses crt;
Type
Kalimat = Array[1..3] of string;
Var
I : byte;
Kal : Kalimat;
Begin
Clrscr;
For I:=1 to 3 do
Begin
Write(‘Masukkan kata ke :-‘,I,’:’);
Readln(Kal[I]);
End;
End.
Contoh 1 :
Buatlah flowchart untuk memasukkan 5 buah data integer yang tersimpan dalam array. Kemudian
tampilkan kembali data array tersebut !
Hal : 27
Logika & Pemrograman TI – STMIK WD – © 2010
Contoh 2
Buatlah flowchart untuk input 10 data bilangan integer yang tersimpan dalam variable array. Kemudian
tampilkan bilangan terbesar dari kumpulan bilangan tersebut !
Hal : 28
Logika & Pemrograman TI – STMIK WD – © 2010
1 2 3 4 Bentuk umum :
1 10 2 5 15 Type
2 30 7 22 7 Nama_Array : array[indexarray1,indexarray2] of tipedata;
3 5 10 12 8 Contoh :
4 3 35 18 32 Type
Matriks = array[1..2,1..3] of byte;
Baris = 1..2;
Kolom = 1..3;
Ordo = array[Baris, Kolom] of byte;
Var
Matrix : Ordo;
Soal Latihan :
1. Buatlah algoritma untuk menentukan bilangan terbesar dan terkecil dari sekumpulan bilangan
bulat yang tersimpan dalam array. Tentukan pula selisih dari bilangan tersebut dan di posisi mana
bilangan terbesar dan terkecil tersebut terletak !
2. Buatlah algoritma untuk mencetak segitiga Pascal berikut ini :
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
3. Buatlah algoritma untuk melakukan operasi penjumlahan dan pengurangan matriks !
4. Buatlah algoritma untuk melakukan operasi perkalian matriks !
5. Buatlah algoritma untuk melakukan operasi transpose matriks !
SORTING
Sortir adalah prosedur mengurutkan bilangan mulai dari nilai terendah sampai nilai terbesar
(ascending) atau sebaliknya (descending). Metode sorting sangat bervariasi. Salah satu metode sorting
adalah seperti berikut ini :
Data awal : 4 7 6 3 8 5
Mula-mula bandingkan bilangan pertama dengan bilangan kedua. Untuk “ascending” jika bilangan
pertama lebih besar dari bilangan kedua maka pertukarkan kedua bilangan tersebut. Selanjutnya
Hal : 29
Logika & Pemrograman TI – STMIK WD – © 2010
bandingkan bilangan pertam dengan bilangan ketiga, bilangan pertama dengan bilangan keempat,
bilangan pertama dengan bilangan terakhir. Kemudian bandingkan bilangan kedua dengan bilangan
ketiga, keempat , dan seterusnya. Proses selengkapnya diperlihatkan berikut ini :
4 7 6 3 8 5 Algoritma :
4 7 6 3 8 5 Langkah 1 : Untuk I = 1 sampai N-1 lakukan langkah 2
4 7 6 3 8 5 Langkah 2 : Untuk J = I + 1 sampai N lakukan langkah 3
3 7 6 4 8 5 Langkah 3 : Jika A(I) > A(J) maka pertukarkan A(I) dan A(J)
3 7 6 4 8 5
3 7 6 4 8 5
3 6 7 4 8 5
3 4 7 6 8 5
3 4 7 6 8 5
3 4 7 6 8 5
3 4 6 7 8 5
3 4 6 7 8 5
3 4 5 7 8 6
3 4 5 7 8 6
3 4 5 6 8 7
3 4 5 6 7 8
BUBBLE SORT
Data awal : 4 7 6 3 8 5
Proses sorting :
4 7 6 3 8 5 4 3 6 5 7 8
4 7 6 3 8 5 3 4 6 5 7 8
4 6 7 3 8 5 3 4 6 5 7 8
4 6 3 7 8 5 3 4 5 6 7 8
4 6 3 7 8 5 3 4 5 6 7 8
4 6 3 7 5 8 3 4 5 6 7 8
4 6 3 7 5 8 3 4 5 6 7 8
4 6 3 7 5 8 3 4 5 6 7 8
4 3 6 7 5 8 3 4 5 6 7 8
4 3 6 7 5 8 3 4 5 6 7 8
4 3 6 5 7 8 3 4 5 6 7 8
4 3 6 5 7 8 3 4 5 6 7 8
Algoritma :
Langkah 0 : Ind = 0
Langkah 1 : Untuk I = 1 sampai dengan N-1 lakukan langkah 2
Langkah 2 : Jika A(I) > A(I+1) maka pertukarkan A(I) dengan A(I+1) dan Ind = 1
Langkah 3 : Jika Ind = 1 maka kembali ke langkah 0, Jika tidak STOP.
Algoritma :
Hal : 30
Logika & Pemrograman TI – STMIK WD – © 2010
PARALEL SORT
Data awal : 4 7 6 3 8 5
4 7 6 3 8 5 Time = 0
4 7 3 6 5 8 Time = 1
4 3 7 5 6 8 Time = 2
3 4 5 7 6 8 Time = 3
3 4 5 6 7 8 Time = 4
3 4 5 6 7 8 Time = 5
3 4 5 6 7 8
Algoritma :
Langkah 0 : Time = 0 dan M = 0
Langkah 1 : Jika Time genap maka bandingkan A(2I) dengan A(2I-1) secara serentak untuk I = 1
sampai dengan N/2
Jika tidak maka bandingkan A(2I) dengan A(2I+1) secara serentak untuk I = 1 sampai
dengan (N-1)/2
Jika elemen di depan lebih besar maka pertukarkan kedua elemen tersebut.
Langkah 2 : Jika pada langkah 1 terjadi pertukaran elemen maka M = 0
Jika tidak maka M = M + 1
Time = Time + 1
Langkah 3 : Jika M < 2 maka kembali ke langkah 1
Jika tidak STOP.
SELECTION SORT
Data awal : 4 7 6 3 8 5
Cari bilangan terkecil di antara elemen pertama sampai dengan elemen terakhir. Pertukarkan
bilangan terkecil tersebut dengan elemen pertama.
Data menjadi : 3 7 6 4 8 5
Cari bilangan terkecil di antara elemen kedua sampai dengan elemen terakhir. Pertukarkan
bilangan terkecil tersebut dengan elemen kedua.
Data menjadi : 3 4 6 7 8 5
Dengan cara yang sama data secara berturut – turut akan berubah sebagai berikut :
3 4 5 7 8 6
3 4 5 6 8 7
3 4 5 6 7 8
Algoritma :
Langkah 1 : Untuk I = 1 sampai dengan N-1 maka lakukan langkah 2 ,3
Langkah 2 : Min = A(I) dan K = I
Langkah 3 : Untuk J = I+1 sampai dengan N maka lakukan langkah 4
Langkah 4 : Jika Min > A(J) maka pertukarkan A(I) dengan A(K)
Hal : 31
Logika & Pemrograman TI – STMIK WD – © 2010
MERGING SORT
Merging Sort adalah sorting yang dilakukan pada dua buah deret bilangan atau data yang
masing-masing sudah dalam keadaan terurut.
Contoh :
Deret 1 : 2 4 7 8 10
Deret 2 : 1 3 5 9
Deret gabungan : 1 2 3 4 5 7 8 9 10
Algoritma :
Langkah 0 : I = 1; J = 1; K = 1
Langkah 1 : Selama I <= M dan J <= N lakukan langkah 2 dan 3
Langkah 2 : Jika A(I) < B(J) maka C(K) = A(I) dan I = I + 1
Jika tidak C(K) = B(J) dan J = J + 1
Langkah 3 : K = K + 1
Langkah 4 : Jika I > M maka lakukan langkah 5
Jika J > N maka lakukan langkah 7
Langkah 5 : Untuk L = J sampai dengan N maka lakukan langkah 6, dan STOP.
Langkah 6 : C(K) = B(L) dan K = K + 1
Langkah 7 : Untuk L = I sampai dengan M lakukan langkah 8 dan STOP
Langkah 8 : C(K) = A(L) dan K = K + 1
SEARCHING
Sequential Searching
Algoritma Sequential Searching :
Langkah 0 : Ak = N
Langkah 1 : Input K
Langkah 2 : Untuk I = 1 sampai dengan Ak lakukan langkah 3
Langkah 3 : Jika K = A(I) maka
Ada = True
Posisi = I
I = Ak
Langkah 4 : Jika Ada = true maka Cetak “Nilai K ditemukan di posisi”, Posisi
Jika tidak maka cetak Nilai K tidak ditemukan
Binary Searching
Algoritma Binary Searching
Langkah 0 : Awal =1 ; Akhir = N
Langkah 1 : Selama Awal <= Akhir lakukan langkah 2, 3, dan 4
Langkah 2 : Mid = (Awal + Akhir) / 2
Langkah 3 : Jika K = R(Mid) maka Cetak “Nilai K ditemukan” dan STOP
Langkah 4 : Jika K < R(Mid) maka Akhir = Mid – 1
Jika tidak Awal = Mid + 1
Langkah 5 : Cetak “Nilai K Tidak ditemukan”
Hal : 32
Logika & Pemrograman TI – STMIK WD – © 2010
Awal = 8 + 1 = 9; Akhir = 10
Langkah 3 : Mid = ( 9 + 10 ) / 2 = 9
Awal = 9 + 1 = 6; Akhir = 10
Langkah 4 : Mid = ( 10 + 10 ) / 2 = 10
Akhir = 10 - 1 = 9; Awal = 10
Awal > Akhir ?
Jadi K tidak ditemukan
Rekursif berarti suatu proses yang dapat memanggil dirinya sendiri. Dalam rekursif sebenarnya
terkandung pengertian dari prosedur atau fungsi. Perbedaannya adalah bahwa rekursif dapat
memanggil ke dirinya sendiri, tetapi prosedur atau fungsi harus dipanggil dari pemanggil prosedur atau
fungsi. Rekursif merupakan teknik pemrograman yang penting, dan beberapa bahasa pemrograman
modern mendukung keberadaan proses rekursif ini.
Contoh paling sederhana dari proses rekursif adalah proses menghitung nilai factorial dan
mencari deret bilangan Fibonacci dari suatu bilangan bulat. Nilai factorial secara rekursif dapat ditulis
sebagai :
0! = 1
N! = N * (N-1)! Untuk N > 0
Yang secara notasi pemrograman dapat ditulis sebagai :
Faktorial (0) = 1 (a)
Faktorial (N) = N * Faktorial(N-1) (b)
Persamaan b di atas merupakan contoh hubungan rekurens yang berarti bahwa nilai suatu fungsi
dengan argument tertentu dapat dihitung dari fungsi yang sama dengan argument yang lebih kecil.
Persamaan a tidak bersifat rekursif disebut nilai awal. Setiap fungsi rekursif paling sedikit memiliki satu
nilai awal, jika tidak maka fungsi tersebut tidak dapat dihitung secara eksplisit.
Bilangan Fibonacci didefinisikan berdasarkan deret integer tak berhingga sebagai berikut:
1 1 2 3 5 8 13 21 34 … N
Dari deret di atas terlihat bahwa bilangan kw N (N > 2) dalam deret dapat dicari dari dua
bilangan sebelumnya yang terdekat dengan bilangan ke N yaitu bilangan ke (N-1) dan bilangan ke (N-2).
Sehingga jika Fibo(N) menunjukkan bilangan Fibonacci ke N maka Fibo(N) dapat dihitung dengan
hubungan rekurens :
Fibo(N) = Fibo(N-1) + Fibo(N-2)
Karena Fibo(N) ditentukan oleh dua nilai yang berbeda dengan argumen yang nilainya lebih
kecil maka untuk mencari bilangan Fibonacci diperlukan dua nilai awal yaitu : Fibo(1) = 1 dan Fibo(2) =
2.
Tower Of Hanoi
Contoh klasik dari proses rekursif adalah permainan Tower of Hanoi yang berdasar legenda
pertama kali dimainkan oleh seorang pendeta Budha di Hanoi, sehingga disebut Menara Hanoi. Dalam
permainan ini akan dipindahkan sejumlah piringan yang tidak sama besarnya dari satu tonggak ke
tonggak lain dan diperbolehkan melewati tonggak bantuan. Berikut ini ilustrasinya :
Diketahui tiga buah tonggak tunggal A, B, dan C dan tiga buah cakram 1,2, dan 3 dengan ukuran yang
berbeda (lihat gambar).
A B C
Susunlah algoritma untuk memindahkan semua cakram dari tonggak A ke tonggak C dengan ketentuan
sebagai berikut :
Hal : 33
Logika & Pemrograman TI – STMIK WD – © 2010
Setiap kali hanya boleh satu cakram yang dipindahkan dari satu tonggak ke tonggak lain.
Tonggak B digunakan sebagai tonggak bantuan.
Cakram yang lebih besar tidak boleh diletakkan pada cakram yang lebih kecil.
A B C
A B C
A B C
A B C
A B C
A B C
A B C
A B C
Untuk Tower of Hanoi ini digunakan fungsi sebagai berikut : H(n,P,Q,R) dimana :
N = banyaknya cakram
P = tonggak asal ; Q = tonggak bantuan ; dan R adalah tonggak tujuan.
Hal : 34
Logika & Pemrograman TI – STMIK WD – © 2010
H(1,C,A,B) CB
H(1,B,C,A) BA
H(1,A,B,C) AC
Hal : 35