ALGORITMA PEMROGRAMAN
Orang yang telah terbiasa “bergaul” dengan komputer menggunakan satu bahasa pemrograman
tertentu (tingkat mahir), biasanya tidak lagi memerlukan kertas coret-coretan untuk membuat
suatu program komputer. Namun bagi pemula, pembelajar, atau yang belum mahir, diperlukan
kertas coret-coretan tersebut.
Kertas coret-coretan itu akan digunakan untuk menyusun algoritma (langkah-langkah
penyelesaian masalah), flowcharting (alur logika perintah, yang merupakan aplikasi dari
algoritma), maupun menuliskan perintah sesuai dengan kaidah dari bahasa pemrograman yang
akan digunakannya. Sewaktu menyusun algoritma, kita tidak perlu tahu (atau tidak perlu
menyesuaikan dengan) bahasa pemrograman yang nanti akan kita gunakan. Hal utama yang
kita pikirkan adalah kaidah (hirarki) dari komputer itu sendiri, yaitu input-proses-output.
Input adalah data yang harus ada (sudah ada/sudah tersedia), yang dapat diproses dengan
aturan-aturan tertentu untuk menghasilkan output seperti yang dikehendaki. Data yang ada
harus logis (masuk akal) bahwa “ia” dapat diproses untuk menghasilkan output.
PERLUNYA PERINTAH BAHASA PEMROGRAMAN DI DALAM ALGORITMA
Meskipun sudah dikatakan, bahwa sewaktu kitamenyusun algoritma kita tidak perlu tahu
bahasa pemrograman apa yang akan digunakan kelak, namun, untuk penulisan algoritma yang
lebih efisien dan efektif, maka penggunaan sebagian perintah yang ada di dalam bahasa
pemrograman perlu dilakukan juga.
Adapun perintah bahasa pemrograman yang palingsering digunakan untuk menyusun algoritma
adalah bahasa pemrogrman yang terstrukutur, seperti Pascal, C, COBOL, PL/1, dan sebagainya.
Logika dan Algoritma
3
MATERI 1
STRUKTUR DASAR ALGORITMA
1.1 DEFINISI
Algoritma : Urutan dan langkah-langkah untuk menyelesaikan masalah dalam pemrograman
secara sistematis dan terperinci.
Tahapan Pembuatan Program
- Mendefinisikan masalah dan menganalisanya.
Mencakup: tujuanpembuatanprogram, parameter yang digunakan,fasilitasyang disediakan,
algoritma yang diterapkan dan bahasaprogram yang digunakan.
- Merealisasikan dengan langkah-langkah dalam notasi algoritma.
:: Notasi Algoritma:
o Operasi Baca dan Tulis
Read (x) berarti Baca variabel X
Write (X) berarti Menulis isi variabel X
o Operasi Penugasan
Tanda Penugasan : =
o Notasi Pencabangan (Pengkondisian)
IF(Kondisi)
THEN(AKSI)
ENDIF
IF(Kondisi)
THEN(AKSI-1)
ELSE (AKSI-2)
ENDIF
o Notasi Pengulangan
{Inisialisasi Awal}
WHILE(Kondisi) DO
AKSI
ENDWHILE
Hakekatnya Kondisi adalah ekpresi logika. Setiap ekpresi logika mempunyai 2 alternatif
harga yaitu true dan false atau benar atau salah, Ekpresi logika bisa berupa operator-operator logika dan operator relasi.
a. Operator Relasi : > < <> = <= >=
b. Operato Logika : And Or Not
1.2 ATURAN PENULISAN ALGORITMA
• Judul Algoritma
o Berisi nama penjelasan algoritma
• Deklarasi
o Mendefinisikan semua tipe, variable, fungsi dan prosedur
• Algoritma
o Bagian utama Algoritma
o Sekumpulan perintah untuk penyelesaian permasalahan
o Ditulis dengan notasi tertentu (standar)
Logika dan Algoritma
4
1.3 STRUKTUR PENULISAN ALGORITMA
PROGRAM Nama_Algoritma
{Judul Program}
DEKLARASI
{Deklarasi semua variabel, function dan procedure}
ALGORITMA
{ isi dari algoritma}
Contoh :
Tuliskan Algoritma untuk menuliskanatau mencetak ”Hello World”.
PROGRAMHelloWorld
{Program untuk mencetak ”Hello World”}
DEKLARASI
{tidak ada}
ALGORITMA
write(’Hello World’)
LATIHAN
1. Buat algoritma untuk menampilkan nama yang diinput dari piranti masukan atau
keyboard yang diikuti dengan kalimat Hello!
2. Kathy adalah dosen mata kuliah Pemrograman Delhi, dia membutuhkan
nilai rata-rata dari kelas yang diajarkannya, buat algoritma untuk
menyelesaikan
permasalahan tersebut!
Berikut ini tabel nilai siswa.
No Siswa Score
1 26
2 38
3 45
4 67
5 79
3. Toko buku komputer melakukan diskon terhadap semua buku yang dijual dengan
memberikan diskon sebesar 25 % dari harga buku yang dimasukan, buat algoritma
untuk menghitung diskon tersebut!
4. Buat algoritma untuk mencetak suhu derajat Celcius (C) dari suhu yang
dimasukan dalam derajat Fahrenheit (F) dengan rumus :
C = 5/9 * (F-32)
Logika dan Algoritma
5
MATERI 2
TIPE DATA DASAR DAN TIPE DATA BENTUKAN
2.1 TIPE DATA DASAR
1. Tipe Data Logika (Boolean)
Nama tipe ini diambil dari nama matematikawan yaitu bernama George Boole
Domain Nilai : [true, false]
Nama Tipe : Boolean
2. Bilangan Bulat
Bilangan yang sudah umum digunakan dalam kehidupan sehari-hari. Bilangan bulat
adalah bilangan yang tidak mengandung pecahan desimal, misal : 32, 38, 123567, dst.
Domain Nilai : Integer [-32768..32767]
Nama Tipe : Integer
Operasi Bilangan Bulat
b. Operasi Aritmatika
+ (Tambah)
- (Kurang)
* (Kali)
div (bagi)
mod (sisa hasil bagi)
c. Operasi Pembandingan
< lebih kecil
≤lebih kecil atau sama dengan
> lebih besar
≥lebih besar atau sama dengan
= sama dengan
≠tidak sama dengan
3. Bilangan Riil
Bilangan Riil adalah bilangan yang mengandung pecahan desimal, misal 3.65, 3.45,
0.0004, dst
Domain Nilai : tidak terbatas
Tipe : real
Operasi Bilangan Riil
a. Operasi Aritmatika
+ (Tambah)
- (Kurang)
* (Kali)
div (bagi)
mod (sisa hasil bagi)
b. Operasi Pembandingan
< lebih kecil
≤lebih kecil atau sama dengan
> lebih besar
≥lebih besar atau sama dengan
= sama dengan
≠tidak sama dengan
4. Karakter
Tipe ini adalah tipe yang termasuk dalam semua huruf-huruf abjad, semua tanda baca,
angka ’0’...’9’, dan karakter-karakter khusus seperti ’&’, ’^’,’%’,’#’, ..dst, karakter
kosong dilambangkan dengan tanda ’’.
Domain Nilai : ’a’,..,’z’,’A’,..’Z’,’0’,..’9’, dan karakter khusus lainnya
Tipe : char
Operasi karakter
Logika dan Algoritma
6
Operasi Pembandingan
< lebih kecil
≤lebih kecil atau sama dengan
> lebih besar
≥lebih besar atau sama dengan
= sama dengan
≠tidak sama dengan
2.2 TIPE DATA BENTUKAN
Tipe data bentukan adalah tipe data yang berasal atau disusun dari tipe data dasar
1. String
String adalah urutan karakter dengan panjang tertentu, Stringmerupakan gabungan
dari tipe karakter
Domain Nilai : nilai yang didefinisikan pada domain karakter
Nama Tipe : String
Operasi String
a. Operasi Penggabungan
+
b. Operasi Pembandingan
< lebih kecil
≤lebih kecil atau sama dengan
> lebih besar
≥lebih besar atau sama dengan
= sama dengan
≠tidak sama dengan
2. Record
Tipe terstruktur adalah tipe yang berbentuk rekaman (record). Rekaman disusun oleh
satu atau lebih dua field yang tipe datanya tersusun dari tipe data dasar.
Deklarasi : type variabelRekaman : < var1 : tipe data dasar,
var2: tipe data dasar,
........
>
contoh
type: mhs <npm : integer, nama:string>
p : mhs
{cara mengakses data tipe record}
p.npm
m.npm
Logika dan Algoritma
7
MATERI 3
NOTASI PENCABANGAN
3.1. PENDAHULUAN
Notasi Pencabangan adalah notasi yang pada umumnya akan menyelesaikan suatu
kasus dengan beberapa alternatif pelaksanaan aksi.
Mengapa dibutuhkan?
Ê Untuk membantu dalam menentukan alternatif solusi pelaksanaan aksi yang
akan dilakukan berdasarkan kondisi yang telah ditentukan
Algoritma Notasi Pencabangan dibagi berdasarkan kasus:
Satu Kasus (IF - THEN)
Dua Kasus (IF – THEN - ELSE)
Tiga Kasus atau lebih (IF – THEN – ELSE, CASE)
3.2. SATU KASUS (IF - THEN)
Notasi algoritma untuk analisis dengan satu kasus adalah dengan menggunakan konstruksi IF –
THEN(jika-maka) dalam bentuk pernyataan:
if kondisithen
pernyataan
endif
Pernyataan sesudah kata then(dapat berupa satu atau lebih pernyataan) adalah aksi yang
hanya akan dilaksanakan bila kondisi bernilai benar (true). Bila kondisi bernilai salah (false),
tidak ada pernyataan apapun yang dikerjakan. Kata endifsengaja ditambahkan untuk
mempertegas awal dan akhir struktur IF-THEN.
contoh-contoh:
(a) ifx > 100 then
x :=x+1
endif
(b) ifkar = ‘*’ then
stop:=true
endif
(c) ifmax >10 then
max:=x
endif
CONTOH SATU KASUS
1. Buatlah algoritma yang membaca sebuah bilangan bulat dari suatu papan ketik,
lalu mencetak pesan ”Genap” jika bilangan tersebut adalah genap !
2. Buatlah algoritma untuk membaca sebuah karakter dan menentukan karakter yang
dimasukan adalah karakter ’A’ !
Logika dan Algoritma
8
3. Buatlah algoritma untuk membaca sebuah bilangan bulat dari suatu papan ketik,
lalu mencetak pesan bahwa ”Bilangan tersebut lebih besar dari 100” jika bilangan
tersebut adalah lebih besar dari 100!
3.3 DUA KASUS (IF – THEN - ELSE)
Notasi algoritma untuk analisis dengan dua kasus adalah dengan menggunakan konstruksi IF –
THEN - ELSE(jika-maka-kalau-tidak) dalam bentuk pernyataan:
if kondisithen
pernyataan1
else
pernyataan2
endif
pernyataan1dilaksanakan jika kondisibernilai benar, sebaliknya jika kondisi bernilai salah
maka pernyataan2akan dilaksanakan, bisa diperhatikan bahwa else menyatakan ingkaran
(negation) dari kondisi.
contoh-contoh:
(a) ifa>0 then
write(’bilangan positif’)
else
write(’bukan bilangan positif’)
endif
(b) if(k mod 2 = 0) then
write(’bilangan genap’)
else
write(’bilangan ganjil’)
endif
CONTOH DUA KASUS
1. Buatlah algoritma yang membaca dua buah bilangan bulat dari piranti masukan,
lalu menentukan bilangan yang terbesar!
2. Buatlah algoritma yang membaca angka tahun masehi dari papan ketik, lalu
menentukan apakah tahun tersebut merupakan tahun kabisat!
3. Buatlah algoritma untuk menentukan bilangan yang dimasukan adalah habis
dibagi 5, jika bilangan tersebut habis dibagi 5 maka pesan tertulis ’bilangan
habis dibagi 5’ jika tidak ’bilangan tidak habis dibagi 5’!
3.4 TIGA KASUS atau lebih (IF – THEN – ELSE)
Notasi algoritma untuk analisis dengan tiga kasus atau lebih adalah dengan menggunakan
konstruksi IF – THEN - ELSEbertingkat-tingkat dalam bentuk pernyataan:
Logika dan Algoritma
9
TIGA KASUS
ifkondisi1then
pernyataan1
else
ifkondisi2then
pernyataan2
else
ifkondisi3then
pernyataan3
endif
endif
endif
EMPAT KASUS
ifkondisi1then
pernyataan1
else
ifkondisi2then
pernyataan2
else
ifkondisi3then
pernyataan3
else
ifkondisi4then
pernyataan4
endif
endif
endif
endif
dan seterusnya untuk lima kasus, enam kasus,...
Contoh
Tulislah algoritma yang membaca sebuah bilangan bulat, lalu menentukan apakah bilangan
tersebut positif, negatif atau nol!
Analisa kasus:
Kasus 1 : jika x>0, maka x adalah bilangan positif
Kasus 2: jika x<0, maka x adalah bilangan negatif
Kasus 3 : jika x=0, maka x adalah bilangan nol
PROGRAMBilanganPositifNegatifNol
{menentukan apakah sebuah bilangan bulat merupakan bilangan positif, negatif, atau nol}
DEKLARASI
x:integer
ALGORITMA
read(x)
if x > 0 then
write(’positif’)
else
if x < 0 then
write(’negatif’)
else
if x = 0 then
write(’nol’)
endif
endif
endif
3.5 TIGA KASUS atau lebih (CASE)
Untuk masalah dengan dua kasus atau lebih, notasi algoritma CASE dapat menyederhanakan
penulisan IF-THEN-ELSE yang bertingkat-tingkatyang telah diutarakan sebelumnya. Notasi
CASE adalah sebagai berikut:
Logika dan Algoritma
10
case ekpresi
nilai1:pernyataan1
nilai2:pernyataan2
nilai3:pernyataan3
nilai4:pernyataan4
.
.
nilain:pernyataann
otherwise:pernyataanx
endcase
ekpresi adalah sembarang ekpresi(aritmetika atau boolean) yang menghasilkan suatu nilai
(konstanta). Konstruksi CASE memeriksa apakah nilai dari ekpresi tersebut sama dengan salah
satu dari nilai1, nilai2,...,nilain, jika nilai ekpresisama dengan nilaikbenar, maka pernyataank
dilaksanakan. Jika tidak ada satupun nilai ekpresiyang cocok, maka pernyataan sesudah
otherwisedikerjakan.
Contoh
Buatlah algoritma yang membaca sebuah bilangan bulat yang nilainya terletak antara 1 sampai
4, lalu mencetak teks angka tersebut. Misalkanbila dibaca angka, maka tercetak tulisan
”satu”, bila dibaca 2, maka tercetak dilayar tulisan ”dua”, demikian seterusnya.
Solusi
STRUKTUR IF-THEN-ELSE
PROGRAMKonversiAngka Teks
{mencetak kata untuk angka 1 sampai 4}
DEKLARASI
angka:integer
ALGORITMA
read(angka)
ifangka=1 then
write (’satu’)
else
ifangka=2 then
write(’dua’)
else
ifangka=3 then
write(’tiga’)
else
ifangka=4 then
write(’empat’)
else
write(’angka yang dimasukan salah’)
endif
endif
endif
endif
STRUKTUR CASE
PROGRAMKonversiAngkaKeTeks
{mencetak kata untuk angka 1 sampai 4}
DEKLARASI
angka:integer
ALGORITMA
read(angka)
caseangka
Logika dan Algoritma
11
1 : write(‘satu’)
2 : write(‘dua’)
3 : write(‘tiga’)
4 : write(‘empat’)
otherwise
write(‘Angka Yang Dimasukan Salah’)
endcase
CONTOH TIGA KASUS ATAU LEBIH
1. Buatlah algoritma yang membaca nilai ujian sorang mahasiswa, lalu menentukan
indeks nilainya, ketentuan pemberian nilai indeks adalah sebagai berikut:
jika nilai ujian ≥80 , nilai = A
jika 70 ≤nilai ujian < 80 , nilai=B
jika 55 ≤nilai ujian < 70 , nilai=C
jika 40 ≤nilai ujian < 55 , nilai=D
jika nilai ujian < 40 , nilai=E
kemudian mencetak nilai indeksnya kepiranti keluaran!.
2. PT XYZ membutuhkan suatu program untuk perhitungan gaji pegawaidengan
ketentuan sebagai berikut:[Nilai:80]
Gol GajiPokok UpahLembur Tunjangan Ppn
I 1000000 20000 50% * Gaji Pokok 5%
II 850000 15000 40% * Gaji Pokok 3%
III 750000 12000 30% * Gaji Pokok 2%
IV 500000 10000 20% * Gaji Pokok 1%
Potongan pajak adalah ppn * GajiPokok
Para pegawai bekerja selama 150jam, bila melebihi jam tersebut maka dihitung
lembur, kemudian pegawai yang sudah menikah mendapatkan Tunjangan sebesar 15%
dari GajiPokok
Berdasarkan ketentuan tersebut, buatlah Algoritmauntuk menyelesaikan permasalah
tersebut!
Outputyang diminta yaitu : NIK, Nama, Gol dan Gaji Bersih
Rumus :
1. GajiBersih := (GajiPokok+Tunjangan) – Potongan
2. GajiBersih := ((GajiPokok+Tunjangan)+(JamLembur*UpahLembur))-Potongan
Logika dan Algoritma
12
MATERI 4
NOTASI PENGULANGAN
4.1 PENDAHULUAN
Notasi Pengulangan secara umum terdiri atas dua bagian:
1. Kondisi Pengulangan, yaitu ekpresi boolean yang harus dipenuhi untuk
melaksanakan pengulangan. Kondisi ini ada yang dinyatakan secara ekplisit
oleh pemrogram atau dikelola sendiri oleh komputer (implisit)
2. Badan (body) pengulangan, yaitu bagian algoritma yang diulang.
Mengapa dibutuhkan?
Ê Untuk membantu dalam melaksanakan suatu perintah berulangkali
sejumlah n-kali, atau sampai kondisi berhenti pengulangan tercapai.
Disamping itu, struktur pengulangan biasanya disertai dengan bagian:
1. Inisialisasi, yaitu aksi yang dilakukan sebelum pengulangan dilakukan pertama kali.
2. Terminasi, yaitu aksi yang dilakukan setelah pengulangan selesai dilaksanakan
Inisialisasidan terminasitidak selalu harus ada, namun pada berbagai kasus inisialisasi
umunya diperlukan.
Algoritma Notasi Pengulangan dibagi berdasarkan bentuk pernyataan:
WHILE
FOR
REPEAT
4.2 Pernyataan WHILE
Bentuk umum pernyataan WHILEadalah:
while kondisido
pernyataan
endwhile
keterangan:
pernyataanakan dilaksanakan berulangkali selama kondisi bernilai true. Jika kondisi
bernilai false, badan pengulangan tidak akan dimasuki, yang berarti pengulangan
selesai.
Contoh Notasi Pengulangan dengan pernyataan WHILE
1. Tuliskan Algoritma untuk mencetak tulisan ”Algoritma” sebanyak 10 kali!
Solusi:
PROGRAMTulis_Algoritma
{menuliskan pernyataan algoritma sebanyak 10 kali}
DEKLARASI
i : integer{pencacah pengulangan}
Logika dan Algoritma
13
ALGORITMA
iÅ1 {inisialisasi}
whilei ≤10 do
write (”Algoritma”)
iÅi+1
endwhile
{kondisi berhenti: i > 10}
2. Tuliskan Algoritma untuk mencetak angka 1 sampai N; nilai N dibaca terlebih
dahulu (N>0)!
Solusi:
PROGRAMTulis_1_sd_N
{menuliskan angka 1 s/d N kali}
DEKLARASI
i : integer{pencacah pengulangan}
N : integer{pengulangan N kali}
ALGORITMA
Read(N)
iÅ1 {inisialisasi}
whilei ≤N do
write (i)
iÅi+1
endwhile
{kondisi berhenti: i > N}
Pernyataan FOR
Pernyataan FORdigunakan untuk menghasilkan pengulangan sejumlah kali yang telah
dispesifikasikan. Jumlah pengulangan diketahui atau dapat ditentukan sebelum
eksekusi. Untuk mengetahui pengulangan yang akan dilakukan diperlukan perubah
(variabel) pencacah (counter). Perubah ini nilainya selalu bertambah satu setiap kali
pengulangan dilakukan. Jika pencacah pengulangan sudah mencapai jumlah yang
dispesifikasikan, maka proses pengulangan berhenti.
Bentuk Umum pernyataan FORada dua macam yaitu :
# FOR-TO-DO (ascending/menaik)
# FOR-DOWNTO-DO(descending/menurun)
FOR-TO-DO
for pencacahÅnilai_awalto nilai_akhir do
pernyataan
endfor
keterangan:
a) Pencacah haruslah dari tipe data yang memiliki predecessordan
successor, yaitu integer dan karakter. Tipe riil tidak dapat digunakan
sebagai pencacah;
b) Pernyataan adalah satu atau lebih instruksi yang diulang;
c) nilai_awalharus lebih kecil atau sama dengan nilai_akhir. Jika
nilai_awallebih besar dari nilai_akhir, maka badan pengulangan tidak
dimasuki
Contoh Notasi Pengulangan dengan pernyataan FOR-TO-DO
Logika dan Algoritma
14
1. Tuliskan Algoritma untuk mencetak tulisan ”Algoritma” sebanyak 10 kali!
Solusi:
PROGRAMTulis_Algoritma
{menuliskan pernyataan algoritma sebanyak 10 kali}
DEKLARASI
i : integer{pencacah pengulangan}
ALGORITMA
fori Å1 to10 do
write (”Algoritma”)
endfor
{kondisi berhenti: i = 10}
2. Tuliskan Algoritma untuk mencetak angka 1 sampai N; nilai N dibaca terlebih
dahulu (N>0)!
Solusi:
PROGRAMTulis_1_sd_N
{menuliskan angka 1 s/d N kali}
DEKLARASI
i : integer{pencacah pengulangan}
N : integer{pengulangan N kali}
ALGORITMA
read(N)
fori Å1 toN do
write (i)
endfor
{kondisi berhenti: i = N}
FOR-DOWNTO-DO
for pencacahÅnilai_akhirdownto nilai_awal do
pernyataan
endfor
keterangan:
a) Pencacah haruslah dari tipe data yang memiliki predecessordan
successor, yaitu integer dan karakter. Tipe riil tidak dapat digunakan
sebagai pencacah;
b) Pernyataan adalah satu atau lebih instruksi yang diulang;
c) nilai_akhirharus lebih besar atau sama dengan nilai_awal. Jika
nilai_akhirlebih kecil dari nilai_awal, maka badan pengulangan tidak
dimasuki
Contoh Notasi Pengulangan dengan pernyataan FOR-DOWNTO-DO
1. Tuliskan Algoritma untuk mencetak angka N sampai dengan 1; nilai N dibaca
terlebih dahulu (N>0)!
Solusi:
PROGRAMTulis_N_sd_1
{menuliskan angka N s/d 1 kali}
DEKLARASI
i : integer{pencacah pengulangan}
N : integer{pengulangan N kali}
Logika dan Algoritma
15
ALGORITMA
read(N)
fori ÅN downto1 do
write (i)
endfor
{kondisi berhenti: i = 1}
2. Tuliskan Algoritma untuk mencetak hitungan mundur sebuah roket yang
dimulai dari 100,99,98,...,0!
Solusi:
PROGRAMPeluncuran_Roket
{menuliskan angka dari 100,99,98,...,0}
DEKLARASI
i : integer{pencacah pengulangan}
ALGORITMA
fori Å100 downto0 do
write (i)
endfor
{kondisi berhenti: i = 0}
write (‘Go’)
Pernyataan REPEAT
Notasi Pengulangan REPEATadalah sebagai berikut:
repeat
pernyataan
until kondisi
Penjelasan:
Notasi ini berdasarkan pengulangan pada kondisi Boolean. Pernyataan di dalam badan
pengulangan diulang-ulang sampai kondisi bernilai true. Dengan kata lain, jika kondisi
masih false, proses pengulangan masih terus dilakukan. Karena proses pengulangan
suatu saat harus berhenti, maka di dalam badan pengulangan harus ada pernyataan
yang mengubah nilai kondisi.
Contoh Notasi Pengulangan dengan pernyataan REPEAT
1. Tuliskan Algoritma untuk mencetak tulisan ”Algoritma” sebanyak 10 kali!
Solusi:
PROGRAMTulis_Algoritma
{menuliskan pernyataan algoritma sebanyak 10 kali}
DEKLARASI
i : integer{pencacah pengulangan}
ALGORITMA
iÅ1
repeat
write (”Algoritma”)
iÅi+1
untili>10
Logika dan Algoritma
16
{kondisi berhenti: i > 10}
2. Tuliskan Algoritma untuk mencetak angka 1 sampai N; nilai N dibaca terlebih
dahulu (N>0)!
Solusi:
PROGRAMTulis_1_sd_N
{menuliskan angka 1 s/d N kali}
DEKLARASI
i : integer{pencacah pengulangan}
N : integer{pengulangan N kali}
ALGORITMA
read(N)
iÅ1
repeat
write (i)
iÅi+1
until i>N
{kondisi berhenti: i > N}
Berikut ini Contoh dalam pengunaan Notasi pengulangan
Contoh 1.
Tuliskan algoritma untuk menghitung deret 1+2+3+…+N. Nilai N dibaca terlebih dahulu (N>0).
PROGRAMPenjumlahanDeret
{Menjumlahkan deret 1+2+3+...+N
dengan N adalah bilangan bulat positif. Nilai N dibaca terlebih dahulu.}
DEKLARASI
N : integer{banyaknya suku deret, >0}
i : integer{suku deret}
jumlah : integer {jumlah deret}
ALGORITMA
read(N) {banyaknya suku deret}
jumlah Å0 {inisialisasi}
i Å1
while i ≤N do
jumlah Åjumlah + i {jumlah deret}
i Åi +1
endwhile
{i>N} {kondisi setelah pengulangan berhenti}
write(jumlah)
Contoh 2.
Tuliskan algoritma untuk menghitung nilai rata-rata N buah bilangan bulat yang dibaca dari
papan ketik.
PROGRAMHitungRataRata
{Menjumlahkan rata-rata N buah bilangan bulat yang dibaca dari papan ketik terlebih dahulu.}
DEKLARASI
N : integer{banyaknya data, >0}
Logika dan Algoritma
17
x : integer{data bilangan bulat yang dibaca dari papan ketik}
i : integer{pencacah banyak data}
jumlah : integer {integer}
rerata : real
ALGORITMA
read(N) {banyaknya data}
jumlah Å0 {inisialisasi}
i Å1
whilei ≤N do
read(x)
jumlah Åjumlah + x
i Åi +1
endwhile
{i>N} {kondisi setelah pengulangan berhenti}
rerata Åjumlah/N
write(rerata)
LATIHAN
1. Buatlah Algoritma untuk menghitung Deret dibawah ini
S =
2
1
+
4
1
+
6
1
+ . . . +
N
1
N : deretan angka genap
2. Tuliskanlah algoritma untuk menentukan nilai terkecil dari N buah data integer yang
dibaca dari papan ketik. Nilai N dibaca terlebih dahulu (N>0)
3.
4.5 MESIN ABSTRAK
Mesin abstrak menggambarkan dalam suatu mesin terdapat pita yang bertipe karakter dan tipe
numerik.
Jika Pita bertipe karakter maka akhir dari pita tersebut ditandai dengan ’ . ’ atau ’ * ’
Jika Pita bertipe numerik maka diakhiri dari pita tersebut ditandai dengan 9999
Jika Pita hanya berisi akhiran ’ . ’ , ’ * ’ dan 9999 berarti pita kosong
Contoh : Pita Karakter
S A Y A *
Arah pembacaannya
Read (Baca)
Logika dan Algoritma
18
Notasi Algoritma
Pita bertipe karakter
{inisialisasi}
read(x)
whilex ≠’ * ’ do
aksi
read(x) {dibaca kembali isi mesin karakter}
endwhile
{terminasi}
Pita bertipe numerik
{inisialisasi}
read(x)
whilex ≠9999 do
aksi
read(x) {dibaca kembali isi mesin numerik}
endwhile
{terminasi}
Contoh Kasus untuk Mesin Karakter
Contoh 1:
Didalam pita karakter terdapat sederatan karakteryang diakhiri dengan tanda ’ * ’, tuliskan
algoritma untuk menampilkan deretan karakter tersebut!
illustrasi
S A Y A *
PROGRAMMenampilkanKarakter
{Menghitung jumlah karakter yang dimasukan}
DEKLARASI
x : character{data character yang dibaca dari papan ketik}
ALGORITMA
read(x) {baca data character}
while x ≠‘ * ’ do
write(x)
read(x)
endwhile
{x = ’*’} {kondisi setelah pengulangan berhenti}
Contoh 2:
Didalam pita karakter terdapat sederatan karakteryang diakhiri dengan tanda ’ * ’, tuliskan
algoritma untuk menghitung jumlah karakter yang dimasukan!
illustrasi
S A Y A *
Jumlah karakter adalah : 4
PROGRAMHitungJumlahKarakter
{Menghitung jumlah karakter yang dimasukan}
DEKLARASI
x : character{data character yang dibaca dari papan ketik}
jumlah : integer {integer}
ALGORITMA
read(x) {baca data character}
jumlah Å0 {inisialisasi}
whilex ≠‘ * ’ do
Logika dan Algoritma
19
jumlah Åjumlah + 1
read(x)
endwhile
{x = ’*’} {kondisi setelah pengulangan berhenti}
write(jumlah)
Contoh Kasus untuk Mesin Numerik
Contoh 1:
Diberikan mesin bertipe integer yang terdapatsederetan angka numerik yang dimasukan dan
diakhiri dengan tanda 9999. tuliskan algoritma untuk menghitung jumlah seluruh angka
tersebut!
illustrasi
1 3 4 2 9999
Jumlah seluruh angka tersebut adalah : 10
PROGRAMHitungJumlahAngka
{Menghitung jumlah seluruh bilangan yang dimasukan}
DEKLARASI
x : integer{data integer yang dibaca dari papan ketik}
jumlah : integer {integer}
ALGORITMA
read(x) {baca data integer}
jumlah Å0 {inisialisasi}
whilex ≠9999 do
jumlah Åjumlah + x
read(x)
endwhile
{x = 9999} {kondisi setelah pengulangan berhenti}
write(jumlah)
Contoh 2:
Diberikan mesin bertipe integer yang terdapatsederetan angka numerik yang dimasukan dan
diakhiri dengan tanda 9999. tuliskan algoritma untuk menghitung banyaknya angka positif dari
deretan angka tersebut!
illustrasi
1 -3 4 -2 -9 9999
Jumlah angka positif adalah : 2
PROGRAM Banyaknya Angka Positif
{Menghitung jumlah bilangan positif yang dimasukan}
DEKLARASI
x : integer{data integer yang dibaca dari papan ketik}
jumlah : integer {integer}
ALGORITMA
Logika dan Algoritma
20
read(x) {baca data integer}
jumlah Å0 {inisialisasi}
whilex ≠9999 do
if x > 0 then
jumlah Åjumlah + 1
endif
read(x)
endwhile
{x = 9999} {kondisi setelah pengulangan berhenti}
write(jumlah)
Tidak ada komentar:
Posting Komentar