ALGORITMA - pelajarandotcom.files.wordpress.com€¦ · SOAL-SOAL 1. Tuliskan beberapa contoh...

40
Algoritma dan Pemrograman 1 PENGERTIAN ALGORITMA Algoritma adalah urutan langkah-langkah untuk memecahkan suatu masalah Algoritma adalah deretan langkah-langkah komputasi yang mentransformasikan data masukkan menjadi keluaran Algoritma adalah deretan instruksi yang jelas dalam memecahkan masalah, yaitu untuk memperoleh keluaran yang diinginkan dari suatu masukkan dalam jumlah waktu yang terbatas. Algoritma adalah prosedur komputasi yang terdefinisi dengan baik yang menggunakan beberapa nilai sebagai masukkan dan menghasilkan beberapa nilai yang disebut keluaran. Jadi algoritma adalah deretan langkah komputasi yang mentransformasikan masukkan menjadi keluaran. Algoritma yang ditulis dalam bahasa komputer dinamakan program. Bahasa komputer yang digunakan untuk menulis program dinamakan bahasa pemrograman. Orang yang membuat program komputer disebut pemrogram, dan kegiatan merancang dan menulis program disebut pemrograman, serta ada aktivitas menulis kode program dinamakan coding. Pada pemrograman ditekankan pada pemecahan masalah, rancangan pemecahan masalah berisi urutan langkah- langkah pencapaian solusi ditulis dalam notasi diskriptif (notasi algoritmik) Notasi Algoritmik terdiri 3 (tiga), yaitu: I. Menyatakan langkah-langkah algoritma dengan untaian kalimat diskriptif Contoh Program Euclidean Diberikan dua bilangan tak-negatif m dan n (m ≥ n). Algoritma Euclidean mencari pembagi bersama terbesar, gcd, dari dua bilangan tersebut, yaitu bilangan terbesar yang habis membagi m dan n. ALGORITMA 1. Jika n = 0 maka 2. Bagilah m dan n dan misalkan r adalah sisanya. 3. Ganti nilai m dan nilai n dengan nilai r, lalu ulangi kembali langkah 1

Transcript of ALGORITMA - pelajarandotcom.files.wordpress.com€¦ · SOAL-SOAL 1. Tuliskan beberapa contoh...

Page 1: ALGORITMA - pelajarandotcom.files.wordpress.com€¦ · SOAL-SOAL 1. Tuliskan beberapa contoh algoritma dalam kehidupan sehari-hari. Dan tuliskan juga beberapa contoh langkah dalam

Algoritma dan Pemrograman 1

PENGERTIAN ALGORITMA

Algoritma adalah urutan langkah-langkah untuk memecahkan suatu masalah

Algoritma adalah deretan langkah-langkah komputasi yang mentransformasikan data masukkan

menjadi keluaran

Algoritma adalah deretan instruksi yang jelas dalam memecahkan masalah, yaitu untuk

memperoleh keluaran yang diinginkan dari suatu masukkan dalam jumlah waktu yang terbatas.

Algoritma adalah prosedur komputasi yang terdefinisi dengan baik yang menggunakan beberapa

nilai sebagai masukkan dan menghasilkan beberapa nilai yang disebut keluaran. Jadi algoritma

adalah deretan langkah komputasi yang mentransformasikan masukkan menjadi keluaran.

Algoritma yang ditulis dalam bahasa komputer dinamakan program. Bahasa komputer yang

digunakan untuk menulis program dinamakan bahasa pemrograman. Orang yang membuat

program komputer disebut pemrogram, dan kegiatan merancang dan menulis program disebut

pemrograman, serta ada aktivitas menulis kode program dinamakan coding. Pada pemrograman

ditekankan pada pemecahan masalah, rancangan pemecahan masalah berisi urutan langkah-

langkah pencapaian solusi ditulis dalam notasi diskriptif (notasi algoritmik)

Notasi Algoritmik terdiri 3 (tiga), yaitu:

I. Menyatakan langkah-langkah algoritma dengan untaian kalimat diskriptif

Contoh

Program Euclidean

Diberikan dua bilangan tak-negatif m dan n (m ≥ n).

Algoritma Euclidean mencari pembagi bersama terbesar, gcd, dari dua

bilangan tersebut, yaitu bilangan terbesar yang habis membagi m dan n.

ALGORITMA

1. Jika n = 0 maka

2. Bagilah m dan n dan misalkan r adalah sisanya.

3. Ganti nilai m dan nilai n dengan nilai r, lalu ulangi kembali langkah 1

Page 2: ALGORITMA - pelajarandotcom.files.wordpress.com€¦ · SOAL-SOAL 1. Tuliskan beberapa contoh algoritma dalam kehidupan sehari-hari. Dan tuliskan juga beberapa contoh langkah dalam

Algoritma dan Pemrograman 2

II. Menggunakan bagan alir (flowchart)

III. Menggunakan pseudo-code.

Contoh

Program Euclidean

{Diberikan dua bilangan tak-negatif m dan n (m ≥ n).

Algoritma Euclidean mencari pembagi bersama terbesar, gcd, dari dua

bilangan, yaitu bilangan terbesar yang habis membagi m dan n}

DEKLARASI

m, n : integer {bilangan bulat yang dicari pbt nya}

r : integer { sisa hasil bagi }

ALGORITMA:

Read(m,n)

While m ≠ 0 do

r m MOD n

m n

n r

endwhile

write(m)

tidak

Ya

Mulai

Baca m dan n

n=0

r=m MOD n

m=n

n=r

Tulis

m

Selesai

Page 3: ALGORITMA - pelajarandotcom.files.wordpress.com€¦ · SOAL-SOAL 1. Tuliskan beberapa contoh algoritma dalam kehidupan sehari-hari. Dan tuliskan juga beberapa contoh langkah dalam

Algoritma dan Pemrograman 3

NO. PERNYATAAN ALGORITMIK BAHASA PASCAL

1 Penugasan :=

2 Pembacaan read read

readln

3 Penulisan write write

writeln

Contoh

Algoritmik: DEKLARASI

Type Titik : record <x:real, y:real>

p: Titik

a,b : integer

NamaArsip, h : string

nilai : real

c : char

ALGORITMA

nilai 1200.0

read(P.x, P.y)

read(NamaArsip)

h Nama Arsip

read(a, b)

read(C)

write(„Nama arsip: „,NamaArsip)

write(„Koordinat titik adalah: „,P.x, „,‟, P.y)

write(b, nilai)

write(„Karakter yang dibaca adalah: „, C)

Pascal: (* DEKLARASI *)

Type

Titik = record

x:real;

y:real;

end;

var

p : Titik

a,b : integer;

NamaArsip, h : string[12];

nilai : real;

c : char;

Page 4: ALGORITMA - pelajarandotcom.files.wordpress.com€¦ · SOAL-SOAL 1. Tuliskan beberapa contoh algoritma dalam kehidupan sehari-hari. Dan tuliskan juga beberapa contoh langkah dalam

Algoritma dan Pemrograman 4

(* ALGORITMA *)

Nilai:=1200.0;

readln(P.x, P.y);

readln(NamaArsip);

h := Nama Arsip;

readln(a, b);

readln(C);

writeln(„Nama arsip: „,NamaArsip);

writeln(„Koordinat titik adalah: „,P.x, „,‟, P.y);

writeln(b, nilai);

write(„Karakter yang dibaca adalah: „, C);

SOAL-SOAL

1. Tuliskan beberapa contoh algoritma dalam kehidupan sehari-hari. Dan tuliskan juga beberapa

contoh langkah dalam algoritma.

2. Tiga pasang suami isteri yang sedang menempuh perjalanan sampai ke sebuah sungai. Di situ

mereka menemukan sebuah perahu kecil yang hanya bisa menampung tidak lebih dari dua

orang setiap kali menyeberang. Penyeberangan sungai dirumitkan oleh keadaan bahwa para

suami sangat pencemburu dan tidak amu meninggalkan isteri-isteri mereka jika ada lelaki

lain. Tulis algoritma untuk menunjukkan bagaimana penyebrangan itu bisa dilakukan.

3. Misalkan terdapat dua buah ember, masing-masing mempunyai volum 5 liter dan 3 liter.

Tuliskan algoritma untuk memperoleh air sebanyak 1 liter dengan hanya menggunakan kedua

ember tersebut.

4. Di manakah letak kesalahan algoritma menjalankan sepeda motor berikut:

ALGORITMA menjalankan sepeda motor:

1. Hidupkan starter

2. Masukkan kunci kontak

3. Tekan gigi 1

4. Perbesar gas

5. jalan

5. Definisikan sebuah struktur untuk menyatakan data nasabah di sebuah bank. Data nasabah

terdiri atas field: nomor account, nama nasabah, alamat nasabah, kota nasabah, nomor telpon

nasabah, untuk setiap field, didefinisiakn tipe data yang cocok

6. Definisikan sebuah tipe struktur untuk menyatakan penerbangan di sebuah bandara. Data

penerbangan terdiri atas: nomor penerbangan (missal (GA306), bandara (kota) asal, bandara

Page 5: ALGORITMA - pelajarandotcom.files.wordpress.com€¦ · SOAL-SOAL 1. Tuliskan beberapa contoh algoritma dalam kehidupan sehari-hari. Dan tuliskan juga beberapa contoh langkah dalam

Algoritma dan Pemrograman 5

tujuan, tanggal keberangkaran, jam keberangkatan (departure time), jam datang (arrival time).

Untuk setiap field, definisikan tipe data yang cocok.

7. Tuliskan rumus berikut dalam notasi algoritmik:

(a) V = 3

34 r

(b) X1 = a2

ac4bb 2

(c) X12 = a2

ac4bb 2

(d) M = ab

cd

bcad

1

8. Apa perbedaan n n + 2 dari sudut pandang algoritma dan n = n+2 dari sudut pandang

matematika

9. Sebuah mobil melaju dengan kecepatan tetap v km/jam. Jika mobil tersebut berjalan selama t

jam, tuliskan algoritma untuk menghitung jarak yang ditempuh mobil (dalam km). Algoritma

tersebut membaca masukkan berupa v dan t, menghitung jarak dengan rumus s = vt, lalu

mencetak jarak tersebut

10. Translasikan algoritma pada nomor 5 ke dalam program dalam bahasa Pascal, lalu tes

program tersebut dengan bermacam-macam nilai v dan t.

Page 6: ALGORITMA - pelajarandotcom.files.wordpress.com€¦ · SOAL-SOAL 1. Tuliskan beberapa contoh algoritma dalam kehidupan sehari-hari. Dan tuliskan juga beberapa contoh langkah dalam

Algoritma dan Pemrograman 6

NOTASI ALGORITMA Pseudo-code

Notasi pseudo-code mempunyai korespondensi dengan notasi bahasa pemrograman sehingga

proses penerjemahan dari pseudo-code ke program menjadi lebih mudah. Tidak ada aturan baku

pada pseudo-code, sembarang versi pseudo-code dapat diterima asalkan bisa dipahami, tidak

seperti pada bahasa pemrograman.

Pernyataan 1 Pernyataan 2 Tulis nilai X dan Y Pernyataan isikan nilai X ke dalam min

write(X,Y) Pseudo-code-nya min X

write(X,Y) Algoritmik min X

write(X,Y); Bahasa Pascal min := X;

Printf(“%d %d”, X,Y); Bahasa C min = X,

Write X,Y Bahasa Basic min = X

Write(*,*) X,Y Bahasa Fortran min = X

Struktur Teks Algoritma

Algoritma Pertama adalah untuk mencetak tulisan Salam

PROGRAM Salam

{Program untuk mencetak “Salam”

Masukkan : -

Keluaran : string “Salam” }

DEKLARASI

{tidak ada}

ALGORITMA

Write(“Salam”)

Algoritma Kedua program untuk mencetak tabel konversi suhu dalam derajat Fahrenheit (F) dan

suhu ekuivalennya dalam derajat Celcius (C) dengan menggunakan rumus: C = 5/9 (F–32)

PROGRAM Fahrenheit_Celcius

{Program untuk mencetak tabel Fahrenheit-Celcius dari x sampai y dengan

kenaikan sebesar step

Masukkan: suhu awal, suhu akhir, step

Keluaran: tabel konversi suhu dalam C dan F }

Page 7: ALGORITMA - pelajarandotcom.files.wordpress.com€¦ · SOAL-SOAL 1. Tuliskan beberapa contoh algoritma dalam kehidupan sehari-hari. Dan tuliskan juga beberapa contoh langkah dalam

Algoritma dan Pemrograman 7

DEKLARASI

F, C : real

X, y, step : integer

ALGORITMA

read(x, y, step)

F x

while F ≤ y do

C = 5/9 * (F – 32)

write(F, C)

F F + step

endwhile

Dengan memperhatikan dua algoritma di atas, terlihat bahwa teks algoritma terdiri dari tiga

bagian (blok) yaitu:

1. Bagian judul (header)

2. Bagian deklarasi (declaration)

3. Bagian algoritma

Notasi Algoritma secara umum

PROGRAM Nama Program

{ penjelasan tentang algoritma, uraian singkat masalah, masukkan dan

keluaran}

DEKLARASI

{ semua nama yang digunakan, meliputi nama tipe, nama konstanta, nama

variabel, nama prosedur, dan nama fungsi diumumkan di sini}

ALGORITMA

{ berisi langkah-langkah penyelesian masalah}

Bahasa Pascal

Page 8: ALGORITMA - pelajarandotcom.files.wordpress.com€¦ · SOAL-SOAL 1. Tuliskan beberapa contoh algoritma dalam kehidupan sehari-hari. Dan tuliskan juga beberapa contoh langkah dalam

Algoritma dan Pemrograman 8

Program Nama_Program

{ penjelasan tentang program, uraian singkat masalah, masukkan dan

keluaran}

(* Deklarasi *)

[const]

{semua nama tetapan dan harga tetapan didefinisikan di sini}

[tipe]

{semua nama tipe bentukan didefinisikan di sini}

[var]

{semua nama variabel global bentukan didefinisikan di sini}

(* Algoritma *)

begin

{semua instruksi program dituliskan di sini}

end.

Translasi notasi algoritma ke dalam bahasa Pascal untuk program mencetak kata “salam”

dan konversi suhu dari Fahrenheit dan Celcius.

1. Program Mencetak Salam

PROGRAM Salam;

{Program untuk mencetak “Salam”, Masukkan program ini tidak ada.

Keluarannya adalah tulisan „Salam‟ di layar }

(* DEKLARASI *)

{tidak ada}

begin

(* ALGORITMA *)

Write(“Salam”);

end.

2. Program Konversi suhu dari Fahrenheit ke Celcius

PROGRAM Fahrenheit_Celcius;

{Program untuk mencetak tabel Fahrenheit-Celcius dari x sampai y

dengan kenaikan sebesar step. Masukkan: suhu awal, suhu akhir,

step dan Keluaran: tabel konversi suhu dalam C dan F }

(* DEKLARASI *)

F, C : real;

Page 9: ALGORITMA - pelajarandotcom.files.wordpress.com€¦ · SOAL-SOAL 1. Tuliskan beberapa contoh algoritma dalam kehidupan sehari-hari. Dan tuliskan juga beberapa contoh langkah dalam

Algoritma dan Pemrograman 9

x, y, step : integer;

Begin

(* ALGORITMA *)

read(x);

read(y);

read(step);

F := x;

while F <= y do

begin

C := 5/9 * (F – 32);

writeln(F, „ „, c);

F := F + step;

end;

end.

Page 10: ALGORITMA - pelajarandotcom.files.wordpress.com€¦ · SOAL-SOAL 1. Tuliskan beberapa contoh algoritma dalam kehidupan sehari-hari. Dan tuliskan juga beberapa contoh langkah dalam

Algoritma dan Pemrograman 10

RUNTUNAN

Runtunan adalah struktur algoritma yang paling dasar yang berisi rangkaian instruksi yang

diproses secara skuensial, satu persatu, mulai dari instruksi yang pertama sampai instruksi

yang terakhir.

Algoritma runtunan (squence) satu atau lebih instruksi, yang berarti bahwa

1. tiap instruksi dierjakan satu persatu

2. tiap instruksi dilaksanakan tepat sekali, tidak ada instruksi yang diulang

3. urutan instruksi yang dilaksanakan pemroses sama dengan urutan instruksi

sebagaimana yang tertulis dalam teks algoritmanya

4. akhir dari instruksi terakhir merupakan akhir algoritma

Contoh

1. Mencetak pesan “salam”

a. Algoritma untuk mencetak tulisan “Salam”

PROGRAM Salam

{Program untuk mencetak “Salam”}

DEKLARASI

{tidak ada}

ALGORITMA

Write(‟Salam‟)

b. String Salam disimpan dalam suatu variabel tipe string kemudian baru dicetak

PROGRAM Salam

{Program untuk mencetak “Salam”}

DEKLARASI

Pesan : string

ALGORITMA:

Pesan „Salam‟

Write(pesan)

Page 11: ALGORITMA - pelajarandotcom.files.wordpress.com€¦ · SOAL-SOAL 1. Tuliskan beberapa contoh algoritma dalam kehidupan sehari-hari. Dan tuliskan juga beberapa contoh langkah dalam

Algoritma dan Pemrograman 11

c. String Salam disimpan sebagai konstanta kemudian baru dicetak

PROGRAM Salam

{Program untuk mencetak „Salam‟}

DEKLARASI

Const Pesan = „Salam‟

ALGORITMA:

Write(pesan)

2. Algoritma membaca nama seseorang dari papan ketik, lalu menampilkan ucapan

“salam” diikuti nama orang tersebut.

PROGRAM Salam

{ mencetak Salam diikuti nama orang. Nama orang dibaca dahulu }

DEKLARASI

nama : string

ALGORITMA

Read(nama)

Write(„Salam‟, nama)

3. Algoritma membaca dua buah nilai untuk variabel A dan B, lalu mempertukarkan

nilai kedua variabel tersebut.

PROGRAM Pertukaran

{mempertukarkan nilai A dan B. Nilai A dan B dibaca dahulu}

DEKLARASI

A, B, C : integer

ALGORITMA

{A dan B sudah terdefinisi dengan nilai}

{perkukarkan nilai A dan B}

C A {simpan nilai A dipenampung sementara C}

A B {sekarang A dapat diisi nilai B}

B C {isi B dengan nilai A semula yang tadi disimpan di C}

{tulis nilai A dan B setelah pertukaran}

Write(A)

Write(B)

Page 12: ALGORITMA - pelajarandotcom.files.wordpress.com€¦ · SOAL-SOAL 1. Tuliskan beberapa contoh algoritma dalam kehidupan sehari-hari. Dan tuliskan juga beberapa contoh langkah dalam

Algoritma dan Pemrograman 12

Pascal:

PROGRAM Pertukaran;

{mempertukarkan nilai A dan B. Nilai A dan B dibaca terlebih

dahulu}

(* DEKLARASI *)

A, B, C : integer;

(* ALGORITMA *)

begin

{baca nilai A dan B}

Write(„A = ?‟); readln(A);

Write(„B = ?‟); readln(B);

{perkukarkan nilai A dan B}

C := A {simpan nilai A dipenampung sementara C}

A := B {sekarang A dapat diisi nilai B}

B := C {isi B dengan nilai A semula yang tadi disimpan di C}

{tulis nilai A dan B setelah pertukaran}

Writeln(„A = ?‟,A);

Writeln(„B = ?‟,B);

end.

4. Algoritma membaca panjang dan lebar kemudian menghitung luas persegi panjang =

panjang kali lebar.

PROGRAM Luas_persegi_panjang

DEKLARASI

Panjang : real

Lebar : real

Luas : real

ALGORITMA

read(panjang, lebar)

luas panjang * lebar

write(luas)

Page 13: ALGORITMA - pelajarandotcom.files.wordpress.com€¦ · SOAL-SOAL 1. Tuliskan beberapa contoh algoritma dalam kehidupan sehari-hari. Dan tuliskan juga beberapa contoh langkah dalam

Algoritma dan Pemrograman 13

Pascal:

PROGRAM Luas_persegi_panjang;

(* DEKLARASI *)

Panjang : real;

Lebar : real;

Luas : real;

(* ALGORITMA *)

begin

write(„berapa panjang persegi ? = „); readln(panjang);

write(„berapa lebar persegi ? = „); readln(lebar);

luas := panjang * lebar;

writeln(„luas persegi panjang = „,luas);

end.

5. Algoritma membaca waktu tempuh seorang pelari maraton dalam jam, menit, detik

ke dalam detik.

PROGRAM Konversi_ke_detik

{ membaca waktu tempuh pelari maraton dalam jam, menit, detik

konversi ke detik dan hasilnya ditampilkan sebagai keluaran }

DEKLARASI

Type Jam = record

<

hh : integer {jam}

mm : integer {menit}

dd : integer {detik}

>

J : Jam

TotalDetik : integer

ALGORITMA:

read(jam, menit, detik)

totaldetik (J.hh*3600) + (J.mm*60) + J*ss

write(totaldetik)

Page 14: ALGORITMA - pelajarandotcom.files.wordpress.com€¦ · SOAL-SOAL 1. Tuliskan beberapa contoh algoritma dalam kehidupan sehari-hari. Dan tuliskan juga beberapa contoh langkah dalam

Algoritma dan Pemrograman 14

Pascal:

PROGRAM Konversi_ke_detik;

{ membaca waktu tempuh pelari maraton dalam jam, menit, detik

konversi ke detik dan hasilnya ditampilkan sebagai keluaran }

(* DEKLARASI *)

Type Jam = record

hh : longint; {jam}

mm : longint; {menit}

dd : longint; {detik}

end;

var

J : Jam;

Totaldetik : longint;

(* ALGORITMA: *)

begin

write(„Jam : ‟); readln(J.hh);

write(„Menit: ‟); readln(J.mm);

write(„Detik: ‟); readln(J.dd);

totaldetik := (J.hh*3600) + (J.mm*60) + J*ss;

writeln(„Total Detik = ‟,totaldetik);

end.

Membaca/ Menulis dari/ke Arsip

Asumsi bahwa data masukkan dibaca dari papan ketik (keyboard) dan keluaran dicetak ke

layar (monitor), kadang data dibaca dari arsip (file) atau keluaran (output) ditulis ke arsip.

a. Membuka arsip untuk dibaca

var

Fin : text {nama variabel arsip}

begin

assign(Fin, „data.txt‟); {data masukkan telah disimpan data.txt}

reset(Fin);

.... {instruksi selanjutnya}

Page 15: ALGORITMA - pelajarandotcom.files.wordpress.com€¦ · SOAL-SOAL 1. Tuliskan beberapa contoh algoritma dalam kehidupan sehari-hari. Dan tuliskan juga beberapa contoh langkah dalam

Algoritma dan Pemrograman 15

b. Membuka arsip untuk ditulis

Var

Fout : text {nama variabel arsip}

begin

assign(Fout,„hasil.txt‟); {data keluaran akan disimpan hasil.txt}

rewrite(Fout);

.... {instruksi selanjutnya}

c. Menutup arsip

Misalkan arsip data.txt telah selesai dibaca, cara menutup arsip tersebut adalah

Close(Fin);

d. Pernyataan untuk membaca data dari arsip

Membaca sebuah data dan menyimpan hasil pembacaan ke dalam variabel x adalah

read(Fin, x);

e. Pernyataan untuk menulis data ke arsip

Menulis sebuah data x

write(Fout, x);

Contoh

Misalkan arsip data.txt sudah berisi panjang dan lebar persegi panjang seperti berikut

(antara data dipisahkan dengan spasi)

15 20

Keluaran hasil program ditulis ke arsip hasil.txt.

PROGRAM Luas_persegi_panjang;

{ membaca panjang dan lebar persegi panjang dari arsip, menghitung

luasnya, lalu mencetak luas tersebut ke arsip hasil.txt}

(* DEKLARASI *)

var

Panjang : real; {panjang persegi panjang dalam cm}

Lebar : real; {lebar persegi panjang dalam cm}

Luas : real; {luas persegi panjang dalam cm2}

Fin, Fout : text; {Pointer ke arsip masukkan dan keluaran}

Page 16: ALGORITMA - pelajarandotcom.files.wordpress.com€¦ · SOAL-SOAL 1. Tuliskan beberapa contoh algoritma dalam kehidupan sehari-hari. Dan tuliskan juga beberapa contoh langkah dalam

Algoritma dan Pemrograman 16

(* ALGORITMA *)

begin

{buka arsip masukkan}

assign(Fin, data.txt);

riset(Fin);

{buka arsip keluaran}

assign(Fout, hasil.txt);

rewrite(Fout);

{baca panjang dan lebar dari arsip Fin}

read(Fin, panjang, lebar);

luas := panjang * lebar;

{tulis luas persegi panjang ke arsip Fout}

Writeln(Fout, „Luas persegi panjang = „,luas);

{tutup arsip}

close(Fin);

close(Fout);

SOAL-SOAL

1. Buatlah sebuah algoritma dengan spesifikasi sebagai berikut

Menampilkan tulisan “Halo, siapa namamu?”, lalu

Meminta pengguna memasukkan namanya, dan akhirnya

Menulis pesan “senang berteman denganmu,” <nama>, yang dalam hal ini <nama>

adalah string yang dibaca berdasarkan nama masukkan

2. Tulislah algoritma untuk menghitung luas bangun geometri lain (lingkaran, persegi,

segitiga, trapesium). Data masukkan dibaca dari piranti masukkan dan luas bangun

ditampilkan sebagai keluaran

3. Dibaca durasi waktu dalam detik. Tulislah algoritma untuk konversi waktu tersebut ke

dalam jam, menit, detik.

Page 17: ALGORITMA - pelajarandotcom.files.wordpress.com€¦ · SOAL-SOAL 1. Tuliskan beberapa contoh algoritma dalam kehidupan sehari-hari. Dan tuliskan juga beberapa contoh langkah dalam

Algoritma dan Pemrograman 17

4. Tulislah algoritma untuk membaca panjang sebuah benda dalam satua meter, lalu

mengkonversinya ke dalam satuan inch, kaki dan yard (1 inch = 2,54 mm, 1 kaki =

30,48 cm, dan 1 yard = 0,9144 m)

5. Berat badan ideal ada hubungannya dengan tinggi badan seseorang. Untuk menentukan

berat badan ideal, tinggi badan dikurangi 100, lalu dikurangi lagi dengan 10% dari hasil

pengukuran pertama. Tulislah algoritma yang membaca tinggi badan lalu menentukan

berat badan yang ideal untuk tinggi tersebut.

Page 18: ALGORITMA - pelajarandotcom.files.wordpress.com€¦ · SOAL-SOAL 1. Tuliskan beberapa contoh algoritma dalam kehidupan sehari-hari. Dan tuliskan juga beberapa contoh langkah dalam

Algoritma dan Pemrograman 18

Masalah Satu Kasus

Notasi algoritmik untuk masalah satu kasus adalah dengan

menggunakan konstruksi IF-THEN (jika-maka) dalam bentuk

pernyataan If kondisi then

Aksi

endif

Pernyataan di atas berarti bahwa aksi akan dilaksanakan bila

kondisi bernilai benar (true), bila bernilai salah (false) tidak ada

aksi apapun yang akan dikerjakan.

Mencetak Pesan Genap PROGRAM BilanganGenap

{Mencetak pesan “Genap” jika sebuah bilangan yang dibaca merupakan bilangan genap}

DEKLARASI

x : integer

ALGORITMA

read(x)

if x mod 2 = 0 then

write(„genap‟)

endif

Program dalam bentuk bahasa Pascal:

PROGRAM BilanganGenap;

{Mencetak pesan "Genap" jika sebuah bilangan yang dibaca

merupakan bilangan genap}

uses wincrt;

(* DEKLARASI *)

var

x : integer;

(* ALGORITMA *)

Begin

clrscr;

read(x);

if x mod 2 = 0 then

write('genap');

(* endif *)

readln;

end.

Masalah Dua Kasus

kondisi-

end

salah benar

Aksi-2 Aksi-1

kondisi

aksi

end

salah

benar

Page 19: ALGORITMA - pelajarandotcom.files.wordpress.com€¦ · SOAL-SOAL 1. Tuliskan beberapa contoh algoritma dalam kehidupan sehari-hari. Dan tuliskan juga beberapa contoh langkah dalam

Algoritma dan Pemrograman 19

Notasi algoritmik untuk masalah dua kasus adalah dengan menggunakan konstruksi IF-THEN-

ELSE (jika-maka-kalau tidak) dalam bentuk pernyataan If kondisi then

Aksi-1

Else

Aksi-2

endif

Pernyataan di atas berarti bahwa aksi-1 akan dilaksanakan bila kondisi bernilai benar (true)

sebaliknya jika kondisi bernilai salah, maka aksi-2 yang akan dilaksanakan.

Menentukan bilangan terbesar (Maksimum)

PROGRAM Maksimum

{Menentukan bilangan terbesar dari dua bilangan bulat}

DEKLARASI

ALGORITMA

Read(A,B)

If A > B then

Write(„Bilangan terbesar : „,A)

Else {berarti B ≥ A }

Write(„Bilangan terbesar : „,B)

Endif

Program dalam bahasa Pascal PROGRAM Maksimum;

{Menentukan bilangan terbesar dari dua bilangan bulat}

uses wincrt;

(* DEKLARASI*)

Var A, B : integer;

(* ALGORITMA *)

Begin

clrscr;

Read(A,B);

If A > B then

Write('Bilangan terbesar : ',A)

Else {berarti B >= A }

Write('Bilangan terbesar : ',B);

(* Endif *)

end.

Page 20: ALGORITMA - pelajarandotcom.files.wordpress.com€¦ · SOAL-SOAL 1. Tuliskan beberapa contoh algoritma dalam kehidupan sehari-hari. Dan tuliskan juga beberapa contoh langkah dalam

Algoritma dan Pemrograman 20

Masalah Tiga Kasus atau Lebih

Masalah yang mempunyai tiga

kasus atau lebih dapat dianalisis

dengan konstruksi IF-

THEN- ELSE bertingkat-tingkat if kondisi-1 then

aksi-1

else

if kondisi-2 then

aksi-2

else

if aksi-3

endif

endif

endif

Algoritma membaca sebuah bilangan bulat, kemudian menentukan apakah bilangan bulat

tersebut positif, negatif atau nol.

Baca bilangan bulat tersebut misalkan x,

Analisis kasus

Kasus 1: bila x > 0 maka x adalah bilangan positif,

Kasus 2: bila x < 0 maka x adalah bilangan negatif,

Kasus 3: bila x = 0 maka x adalah bilangan nol.

PROGRAM JenisBilanganBulat

{menentukan apakah bilangan bulat positif, negatif atau nol}

DEKLARASI

x : integer

ALGORITMA

read(x)

end

salah benar

Aksi-3 Aksi-2

Aksi-1

end

Kondisi-

1

Kondisi-

2

benar salah

end

Page 21: ALGORITMA - pelajarandotcom.files.wordpress.com€¦ · SOAL-SOAL 1. Tuliskan beberapa contoh algoritma dalam kehidupan sehari-hari. Dan tuliskan juga beberapa contoh langkah dalam

Algoritma dan Pemrograman 21

If x > 0 then

Write(„positif‟)

else

If x < 0 then

Write(„negatif‟)

else

If x = 0 then

Write(„Nol‟)

endif

endif

endif

Pascal: PROGRAM JenisBilanganBulat;

{menentukan apakah bilangan bulat positif, negatif atau nol}

uses wincrt;

(* DEKLARASI *)

var

x : integer;

(* ALGORITMA *)

begin

read(x);

if x > 0 then

write('positif')

else

if x < 0 then

write('negatif')

else

if x = 0 then

write('Nol')

end.

Tuliskan algoritma membacakan temparatur air (T dalam satuan derajat Celcius) pada tekanan

normal lalu menentukan apakah wujud air tersebut dalam padat (T ≤ 0 oC), cair (0 < T < 100),

atau gas (T > 100).

Misalkan suhu air adalah T

Analisis Kasus

Kasus 1: jika T ≤ 0 oC, maka air berwujud padat,

Kasus 2: jika 0 < T < 100, maka air berwujud cair,

Kasus 3: jika T > 100, maka air berwujud uap.

PROGRAM WujudAir

DEKLARASI

Var

T : real

Page 22: ALGORITMA - pelajarandotcom.files.wordpress.com€¦ · SOAL-SOAL 1. Tuliskan beberapa contoh algoritma dalam kehidupan sehari-hari. Dan tuliskan juga beberapa contoh langkah dalam

Algoritma dan Pemrograman 22

ALGORITMA

read(T)

if T ≤ 0 then

write(„padat‟)

else

if (T > 0) and (T < 100) then

write(„Cair‟)

else

if T > 100 then

write(„gas atau uap‟)

endif

endif

endif

Pascal: PROGRAM WujudAir;

uses wincrt;

(* DEKLARASI *)

Var

T : real;

(* ALGORITMA *)

Begin

clrscr;

read(T);

if T <= 0 then

write('padat')

else

if (T > 0) and (T < 100) then

write('Cair')

else

if T > 100 then

write('gas atau uap')

end.

Tuliskan algoritma konversi nilai mahasiswa, berdasarkan rata skala 100 menjadi skala 4.

bila nilai NA ≥ 80 maka nilai A

bila nilai 75 ≤ NA < 80 maka nilai B+

bila nilai 70 ≤ NA < 75 maka nilai B

bila nilai 65 ≤ NA < 70 maka nilai C+

bila nilai 60 ≤ NA < 65 maka nilai C

bila nilai 55 ≤ NA < 60 maka nilai D+

bila nilai 50 ≤ NA < 55 maka nilai D

bila nilai 0 ≤ NA < 50 maka nilai E

PROGRAM KonversiNilai

{menghitung nilai konversi dari skala 100 menjadi skala 4}

Page 23: ALGORITMA - pelajarandotcom.files.wordpress.com€¦ · SOAL-SOAL 1. Tuliskan beberapa contoh algoritma dalam kehidupan sehari-hari. Dan tuliskan juga beberapa contoh langkah dalam

Algoritma dan Pemrograman 23

DEKLARASI

NA : real

ALGORITMA

if NA ≥ 80 then

write(„A‟)

else

if (NA >= 75) or (NA < 80) then

write(„B+‟)

else

if (NA >= 70) or (NA < 75) then

write(„B‟)

else

if (NA >= 65) or (NA < 70) then

write(„C+‟)

else

if (NA >= 60) or (NA < 65) then

write(„C+‟)

else

if (NA >= 55) or (NA < 60) then

write(„D+‟)

else

if (NA>= 50) or (NA < 55) then

write(„D‟)

else

if (NA < 50) then

write(„E‟)

endif

endif

endif

endif

endif

endif

endif

Pascal: PROGRAM KonversiNilai;

{menghitung nilai konversi dari skala 100 menjadi skala 4}

uses wincrt;

(*DEKLARASI *)

var

NA : real;

(* ALGORITMA *)

Begin

read(NA);

if NA >= 80 then

Page 24: ALGORITMA - pelajarandotcom.files.wordpress.com€¦ · SOAL-SOAL 1. Tuliskan beberapa contoh algoritma dalam kehidupan sehari-hari. Dan tuliskan juga beberapa contoh langkah dalam

Algoritma dan Pemrograman 24

write('A')

else

if (NA >= 75) and (NA < 80) then

write('B+')

else

if (NA >= 70) and (NA < 75) then

write('B')

else

if (NA >= 65) and (NA < 70) then

write('C+')

else

if (NA >= 60) and (NA < 65) then

write('C')

else

if (NA >= 55) and (NA < 60) then

write('D+')

else

if (NA>= 50) and (NA < 55) then

write('D')

else

if (NA < 50) then

write('E')

end.

Struktur Case Menentukan nama bulan berdasarkan nomor bulan

PROGRAM NamaBulan;

DEKLARASI

uses wincrt;

var

Nomor_bulan : integer;

ALGORITMA

begin

clrscr;

write('Ketik Nomor bulan (1 - 12): '); readln(Nomor_bulan);

case Nomor_bulan of

1 : writeln('Januari');

2 : writeln('Pebruari');

3 : writeln('Maret');

4 : writeln('April');

5 : writeln('Mei');

6 : writeln('Juni');

Page 25: ALGORITMA - pelajarandotcom.files.wordpress.com€¦ · SOAL-SOAL 1. Tuliskan beberapa contoh algoritma dalam kehidupan sehari-hari. Dan tuliskan juga beberapa contoh langkah dalam

Algoritma dan Pemrograman 25

7 : writeln('Juli');

8 : writeln('Agustus');

9 : writeln('September');

10 : writeln('Oktober');

11 : writeln('Nopember');

12 : writeln('Desember');

else writeln('Bukan Bulan yang benar');

end;

end.

PROGRAM NamaBulan;

(* DEKLARASI *)

uses wincrt;

var

Nomor_bulan : integer;

(* ALGORITMA *)

begin

clrscr;

write('Ketik Nomor bulan (1 - 12): '); readln(Nomor_bulan);

case Nomor_bulan of

1 : writeln('Januari');

2 : writeln('Pebruari');

3 : writeln('Maret');

4 : writeln('April');

5 : writeln('Mei');

6 : writeln('Juni');

7 : writeln('Juli');

8 : writeln('Agustus');

9 : writeln('September');

10 : writeln('Oktober');

11 : writeln('Nopember');

12 : writeln('Desember');

else writeln('Bukan Bulan yang benar');

end;

end.

Soal Latihan 1. Buatlah algoritma yang membaca sebuah bilangan bulat positif lalu menentukan bilangan tersebut

merupakan kelipatan 4 atau bukan.

2. Pasar swalayan A memberikan diskon harga bagi pembeli yang nila total belanja lebih dari Rp

100.000,00. Tulis algoritma untuk menentukan harga belanja setelah dikurangi diskon. Data

masukkan adala nilai total belanja pembeli, sedangkan keluaran adalah diskon harga dan nilai

belanja setelah dikurangi diskon.

Tugas Individu

Kerjakan Semua Soal

Kumpulkan pada pertemuan 2

Atau [email protected]

Page 26: ALGORITMA - pelajarandotcom.files.wordpress.com€¦ · SOAL-SOAL 1. Tuliskan beberapa contoh algoritma dalam kehidupan sehari-hari. Dan tuliskan juga beberapa contoh langkah dalam

Algoritma dan Pemrograman 26

3. Tulis algoritma membaca 3 buah bilangan bulat, lalu mengurutkan 3 buah bilangan tersebut dari

nilai yang kecil ke nilai yang besar.

4. Tulislah algoritma yang membaca panjang (integer) tiga buah sisi segitiga a, b, dan c dalam hal ini a ≤

b ≤ c. Tentukan apakah ketiga bilangan tersebut membetuk segitiga siku-siku, segitiga lancip, atau

segitiga tumpul (gunakan teorema Phytagoras)

5. Tulislah algoritma membaca bilangan bulat positif dalam rentang 1 – 10, dan konversikan ke angka

Romawi.

Page 27: ALGORITMA - pelajarandotcom.files.wordpress.com€¦ · SOAL-SOAL 1. Tuliskan beberapa contoh algoritma dalam kehidupan sehari-hari. Dan tuliskan juga beberapa contoh langkah dalam

Algoritma dan Pemrograman 27

PENGULANGAN

Pengulangan yang akan dipelajari hanya 3 macam notasi konstruksi, yaitu: 1. Pernyataan FOR,

2. Pernyataan WHILE,

3. Pernyataan REPEAT.

Pernyataan FOR adalah konstruksi pengulangan tanpa kondisi, artinya instruksi-instruksi di

dalam badan pengulangan diulangi sejumlah kali yang dispesifikasikan oleh pemrogram. Pada

sebagian besar masalah kondisi pengulangan tidak diketahui sebelum eksekusi, yang dapat

ditentukan hanya kondisi berhenti pengulangan, ini disebut pengulangan dengan kondisi. Jenis

ini merupakan pengulangan menggunakan pernyataan WHILE dan REPEAT.

a. Pernyataan FOR Bentuk umum pernyataan FOR ada dua macam: menaik (ascending) atau menurun (descending).

FOR menaik

Bentuk umum untuk For menaik

for pencacah nilai_awal to nilai_akhir do

aksi

endfor

Contoh Algoritma

PROGRAM Cetak_banyak_Helloword

{mencetak kata “Hello word” sebanyak 10 kali}

DEKLARASI

i : integer {pencacah pengulangan }

ALGORITMA

for i 1 to 10 do { ulangi sebanyak 10 kali }

writeln(„Hello word‟)

endfor

Program Pascal: PROGRAM Cetak_banyak_Helloword;

{mencetak kata "Hello word" sebanyak 10 kali}

uses wincrt;

(* DEKLARASI *)

var

i : integer; {pencacah pengulangan }

(* ALGORITMA *)

Begin

Page 28: ALGORITMA - pelajarandotcom.files.wordpress.com€¦ · SOAL-SOAL 1. Tuliskan beberapa contoh algoritma dalam kehidupan sehari-hari. Dan tuliskan juga beberapa contoh langkah dalam

Algoritma dan Pemrograman 28

clrscr;

for i := 1 to 10 do { ulangi sebanyak 10 kali }

writeln('Hello word');

end.

Contoh lain

PROGRAM PenjumlahanDeret

{ mejumlahkan deret 1 + 2 + ... + N, dengan N bilangan bulat positif }

DEKLARASI

N: integer

i: integer

jumlah : integer

ALGORITMA

read(N)

jumlah 0 { inisialisasi jumlah deret = 0 }

for i to N { ulangi penjumlahan deret sebanyak N }

jumlah jumlah + 1

endfor

write(jumlah)

PASCAL: PROGRAM PenjumlahanDeret;

{ mejumlahkan deret 1 + 2 + ... + N, dengan N bilangan bulat positif }

uses wincrt;

(* DEKLARASI *)

var

N: integer;

i: integer;

jumlah : integer;

(* ALGORITMA *)

Begin

clrscr;

readln(N);

jumlah := 0; { inisialisasi jumlah deret = 0 }

for i := 0 to N do { ulangi penjumlahan deret sebanyak N }

begin

jumlah := jumlah + i;

end;

(* endfor *)

writeln(jumlah)

end.

FOR menurun

Bentuk umum untuk for menurun:

for pencacah nilai_akhir downto nilai_awal do

aksi

Page 29: ALGORITMA - pelajarandotcom.files.wordpress.com€¦ · SOAL-SOAL 1. Tuliskan beberapa contoh algoritma dalam kehidupan sehari-hari. Dan tuliskan juga beberapa contoh langkah dalam

Algoritma dan Pemrograman 29

endfor

Contoh:

PROGRAM HitungMundur

{Hitung mundur dari 100}

DEKLARASI

i : integer

ALGORITMA

for i 100 downto 0 do

write(i)

endfor

write(„Go‟)

Pascal: PROGRAM HitungMundur;

{Hitung mundur dari 20}

uses wincrt;

(* DEKLARASI *)

var

i : integer;

(* ALGORITMA *)

Begin

for i:= 20 downto 0 do

writeln(i);

(* endfor *)

write('Go');

end.

Contoh lain:

PROGRAM Bilangan_segitiga

DEKLARASI

i, j : integer

ALGORITMA

for i 5 downto 1 do

for j 1 to i do

writeln(i);

endif

endif

endif

Pascal:

Page 30: ALGORITMA - pelajarandotcom.files.wordpress.com€¦ · SOAL-SOAL 1. Tuliskan beberapa contoh algoritma dalam kehidupan sehari-hari. Dan tuliskan juga beberapa contoh langkah dalam

Algoritma dan Pemrograman 30

PROGRAM Bilangan_segitiga;

uses wincrt;

(* DEKLARASI *)

var

i, j : integer;

(* ALGORITMA *)

begin

clrscr;

for i:=5 downto 1 do

begin

for j:=1 to i do

begin

write(i);

end;

writeln;

end;

end.

b. Pernyataan WHILE

Bentuk umum pernyataan WHILE adalah: while kondisi do

aksi

andwhile

Contoh:

PROGRAM Cetak_banyak_Helloword

{mencetak kata “Hello word” sebanyak 10 kali}

DEKLARASI

i : integer {pencacah pengulangan }

ALGORITMA

i 1

while i ≤ 10 do

write(„Hello word‟)

i i + 1

endwhile

Pascal: PROGRAM Cetak_banyak_Helloword;

{mencetak kata "Hello word" sebanyak 10 kali}

uses wincrt;

(* DEKLARASI *)

var

i : integer; {pencacah pengulangan }

Page 31: ALGORITMA - pelajarandotcom.files.wordpress.com€¦ · SOAL-SOAL 1. Tuliskan beberapa contoh algoritma dalam kehidupan sehari-hari. Dan tuliskan juga beberapa contoh langkah dalam

Algoritma dan Pemrograman 31

(* ALGORITMA *)

begin

i := 1;

while i < 10 do

begin

writeln('Hello word');

i := i + 1

end;

end.

contoh lain

PROGRAM PenjumlahanDeret

{ mejumlahkan deret 1 + 2 + ... + N, dengan N bilangan bulat positif }

DEKLARASI

N: integer

i: integer

jumlah : integer

ALGORITMA

read(N)

jumlah 0 { inisialisasi jumlah deret = 0 }

i 1

while i ≤ N do

jumlah jumlah + 1

i i + 1

endwhile { i > N }

write(jumlah)

Pascal: PROGRAM PenjumlahanDeret;

{ mejumlahkan deret 1 + 2 + ... + N, dengan N bilangan bulat

positif }

uses wincrt;

(* DEKLARASI *)

var

N: integer;

i: integer;

jumlah : integer;

(* ALGORITMA *)

Begin

Page 32: ALGORITMA - pelajarandotcom.files.wordpress.com€¦ · SOAL-SOAL 1. Tuliskan beberapa contoh algoritma dalam kehidupan sehari-hari. Dan tuliskan juga beberapa contoh langkah dalam

Algoritma dan Pemrograman 32

clrscr;

read(N);

jumlah := 0; { inisialisasi jumlah deret = 0 }

i := 1;

while i < N do

begin

jumlah := jumlah + i;

i := i + 1

end;

(*endwhile*) { i > N }

write(jumlah);

end.

c. Pernyataan REPEAT

Bentuk umum pernyataan REPEAT adalah: repeat

aksi

until kondisi

Contoh:

Menuliskan kata Hello word sebanyak 10 baris, menggunakan REPEAT – UNTIL.

PROGRAM Cetak_banyak_Helloword

{mencetak kata “Hello word” sebanyak 10 kali}

DEKLARASI

i : integer {pencacah pengulangan }

ALGORITMA

i 1

repeat

writeln(„Hello word‟)

i i + 1

until i > 10

Pascal:

PROGRAM Cetak_banyak_Helloword;

{mencetak kata "Hello word" sebanyak 10 kali}

uses wincrt;

(* DEKLARASI *)

var

i : integer; {pencacah pengulangan }

Page 33: ALGORITMA - pelajarandotcom.files.wordpress.com€¦ · SOAL-SOAL 1. Tuliskan beberapa contoh algoritma dalam kehidupan sehari-hari. Dan tuliskan juga beberapa contoh langkah dalam

Algoritma dan Pemrograman 33

(* ALGORITMA *)

begin

clrscr;

i := 1;

repeat

writeln('Hello word');

i := i + 1;

until i > 10;

end.

Contoh lain:

PROGRAM PenjumlahanDeret

{ mejumlahkan deret 1 + 2 + ... + N, dengan N bilangan bulat positif }

DEKLARASI

N: integer

i: integer

jumlah : integer

ALGORITMA

read(N)

jumlah 0 { inisialisasi jumlah deret = 0 }

i 1

repeat

jumlah jumlah + 1

i i + 1

until i > N

write(jumlah)

Pascal:

PROGRAM PenjumlahanDeret;

{ mejumlahkan deret 1 + 2 + ... + N, dengan N bilangan bulat positif

}

uses wincrt;

(* DEKLARASI *)

var

Page 34: ALGORITMA - pelajarandotcom.files.wordpress.com€¦ · SOAL-SOAL 1. Tuliskan beberapa contoh algoritma dalam kehidupan sehari-hari. Dan tuliskan juga beberapa contoh langkah dalam

Algoritma dan Pemrograman 34

N: integer;

i: integer;

jumlah : integer;

(* ALGORITMA *)

begin

read(N);

jumlah := 0; { inisialisasi jumlah deret = 0 }

i := 1;

repeat

jumlah := jumlah + i;

i := i + 1;

until i > N;

write(jumlah);

end.

Page 35: ALGORITMA - pelajarandotcom.files.wordpress.com€¦ · SOAL-SOAL 1. Tuliskan beberapa contoh algoritma dalam kehidupan sehari-hari. Dan tuliskan juga beberapa contoh langkah dalam

Algoritma dan Pemrograman 35

PEMECAHAN MASALAH Pada bagian ini akan disajikan beberapa contoh pemecahan masalah, pemecahan masalah

disajikan dari bentuk sederhana sampai pada bentuk yang lebih sulit (kompleks). Pemecahan

masalah diharapkan dapat menjadi pola-pola yang dapat digunakan untuk memecahkan masalah

yang sejenis.

d. PERSAMAAN LINEAR DUA VARIABEL Persamaan linear dua variabel mempunyai bentuk:

a x + b y = p (1)

c x + d y = q (2)

Penyelesaian persamaan linear ada beberapa macam diantaranya: eleminasi, substitusi, grafik,

matriks.

Apabila diselesaikan dengan matriks, maka diperoleh persamaan matriks

= (3)

x = = = (pd-bq)/(ad-bc) (4)

y = = = (aq-cp)/(ad-bc) (5)

dengan syarat ad – bc ≠ 0 (6)

berdasarkan penyelesaian pada persamaan (4) dan (5), disusun algoritmik untuk penyelesaian

persamaan dua variabel.

PROGRAM PersamaanLinear

{ Penyelesaian persamaan linear dua variabel ax + by = p dan cx + dy = q menggunakan

penyelesaian materik, nilai a, b, c, d, p, q dibaca sebagai masukkan dan nilai x dan y dicetak

seagai keluaran }

DEKLARASI

a, b, c, d : real

p, q, det : real

ALGORITMA

readln(a)

readln(b)

readln(c)

readln(d)

det ad – bc

if det <> 0 then

x (pd-bq)/(ad-bc)

y (aq-cp)/(ad-bc)

write(x)

write(y)

else

write(„Tidak dapat diselesaikan‟)

Page 36: ALGORITMA - pelajarandotcom.files.wordpress.com€¦ · SOAL-SOAL 1. Tuliskan beberapa contoh algoritma dalam kehidupan sehari-hari. Dan tuliskan juga beberapa contoh langkah dalam

Algoritma dan Pemrograman 36

endif

Program Pascal: e. PROGRAM PersamaanLinear; f. { Penyelesaian persamaan linear dua variabel ax + by = p dan cx + dy = q menggunakan

penyelesaian matrik } g. uses wincrt; h. i. (* DEKLARASI *) j. var k. a, b, c, d : real; l. p, q, det : real; m. x, y : real; n. o. (* ALGORITMA *) p. Begin q. write('a = '); readln(a); r. write('b = '); readln(b); s. write('c = '); readln(c); t. write('d = '); readln(d); u. write('p = '); readln(p); v. write('q = '); readln(q); w. det := a*d - b*c; x. if det <> 0 then y. begin z. x := (p*d-b*q)/det; aa. y := (a*q-c*p)/det; bb. writeln('x = ',x:5:0); cc. writeln('y = ',y:5:0); dd. end ee. else ff. write('Tidak dapat diselesaikan'); gg. (* endif *) hh. end.

ii. AKAR PERSAMAAN KUADRAT Bentuk umum persamaan kuadrat

ax2 + bx + c = 0 dengan syarat a ≠ 0

Akar-akar persamaan kuadrat dapat dihitung dengan menggunakan rumus berikut ini:

x1,2 =

Jenis akar persamaan kuadrat tergantung pada nilai b2 – 4ac (determinan atau D), yaitu:

Jika nilai b2 – 4ac < 0, maka akar-akarnya imaginer,

Jika nilai b2 – 4ac > 0, maka akar-akarnya riil dan berbeda,

Jika nilai b2 – 4ac = 0, maka akar-akarnya riil dan sama.

Permasalahan ini dapat dibagi menjadi tiga kasus,

Kasus 1 : D < 0, akar-akarnya imaginer,

Page 37: ALGORITMA - pelajarandotcom.files.wordpress.com€¦ · SOAL-SOAL 1. Tuliskan beberapa contoh algoritma dalam kehidupan sehari-hari. Dan tuliskan juga beberapa contoh langkah dalam

Algoritma dan Pemrograman 37

Kasus 2 : D > 0, akar-akarnya riil dan berbeda,

Kasus 3 : D = 0, akar-akarnya riil dan sama.

PROGRAM AkarPersamaanKuadrat

{ menhitung akar-akar persamaan kuadrat ax2 + bx + c = 0, nilai a, b, c dibaca sebagai masukkan

(a≠0) dan akar-akarnya dicatak sebagai keluaran }

DEKLARASI

a, b, c : real { koefisien persamaan kuadrat }

D : real { determinan persamaan kuadrat}

x1, x2 : real { akar-akar persamaan kuadrat

ALGORITMA

read (a,b,c)

D b*b – 4*a*c

if D < 0 then

write(„akar-akar imaginer‟)

else

if D > 0 then

x1 (-b + SQRT(D))/(2*a)

x2 (-b - SQRT(D))/(2*a)

else { D = 0 }

x1 (-b + SQRT(D))/(2*a)

x2 x1

endif

write(x1,x2)

endif

Pascal: PROGRAM AkarPersamaanKuadrat;

{ menghitung akar-akar persamaan kuadrat, nilai a, b, c sebagai

masukkan (a<>0) dan akar-akarnya dicatak sebagai keluaran }

uses wincrt;

(* DEKLARASI *)

var

a, b, c : real; { koefisien persamaan kuadrat }

D : real; { determinan persamaan kuadrat}

x1, x2 : real; { akar-akar persamaan kuadrat}

(* ALGORITMA *)

begin

read (a,b,c);

D := b*b - 4*a*c;

if D < 0 then

write('akar-akar imaginer')

else

if D > 0 then

begin

Page 38: ALGORITMA - pelajarandotcom.files.wordpress.com€¦ · SOAL-SOAL 1. Tuliskan beberapa contoh algoritma dalam kehidupan sehari-hari. Dan tuliskan juga beberapa contoh langkah dalam

Algoritma dan Pemrograman 38

x1 := (-b + SQRT(D))/(2*a);

x2 := (-b - SQRT(D))/(2*a);

end

else { D = 0 }

begin

x1 := (-b + SQRT(D)/(2*a));

x2 := x1;

end;

(* endif *)

writeln('X1 = ',x1:3:0);

writeln('X2 = ',x2:3:0)

(* endif *)

end.

jj. MENGHITUNG PANGKAT (an) n bilangan bulat positif

Buatlah algoritma untuk membaca a dan n bilangan bulat (n≥0) lalu menghitung perpangkatan an.

Perpangkatan an berarti mengalikan a sebanyak n faktor.

an = a x a x a x ... x a (sebanyak n faktor)

Misalkan hasil perpangkatan tersebut adalah p, pertama p diinisialkan 1 bukan 0, karena ia akan

selalu dikalikan dengan a.

Lakukan perkalian p dengan a sebanyak n kali

PROGRAM perpangkatan

{ menghitung perpangkatan an , dengan masukkan a dan n bilangan bulat dan keluaran hasil dari

perpangkatan }

DEKLARASI

a : real { nilai yang dipangkatkan }

n : integer { pangkat }

p : real { hasil perpangkatan }

i : integer { pencacah pengulangan }

ALGORITMA

read(a,n)

p 1

for i 1 to n do

p p * a

endfor

write(p)

Pascal: PROGRAM perpangkatan;

{ menghitung perpangkatan an , dengan masukkan a dan n bilangan

bulat dan keluaran hasil dari perpangkatan }

uses wincrt;

Page 39: ALGORITMA - pelajarandotcom.files.wordpress.com€¦ · SOAL-SOAL 1. Tuliskan beberapa contoh algoritma dalam kehidupan sehari-hari. Dan tuliskan juga beberapa contoh langkah dalam

Algoritma dan Pemrograman 39

(* DEKLARASI *)

var

a : real; { nilai yang dipangkatkan }

n : integer; { pangkat }

p : real; { hasil perpangkatan }

i : integer; { pencacah pengulangan }

(* ALGORITMA *)

begin

read(a,n);

p := 1;

for i := 1 to n do

p := p * a;

(* endfor *)

write(p);

end.

MENGHITUNG PANGKAT n bilangan bulat sebarang

Algoritma sebelumnya dapat dikembangkan juga dapat digunakan untuk menghitung an bilangan

bulat (negatif, nol atau positif), algoritma sebelumnya hanya untuk bilangan bulat positif saja.

Gunakan kenyataan bahwa

a-n

=

PROGRAM perpangkatan

{ menghitung perpangkatan an , dengan masukkan a dan n bilangan bulat sembarang dan

keluaran hasil dari perpangkatan }

DEKLARASI

a : real; { nilai yang dipangkatkan }

n,m : integer; { pangkat }

p : real; { hasil perpangkatan }

i : integer; { pencacah pengulangan }

ALGORITMA

begin

read(a,n)

p := 1

for i := 1 to ABS(n) do

p := p * a

Page 40: ALGORITMA - pelajarandotcom.files.wordpress.com€¦ · SOAL-SOAL 1. Tuliskan beberapa contoh algoritma dalam kehidupan sehari-hari. Dan tuliskan juga beberapa contoh langkah dalam

Algoritma dan Pemrograman 40

{ tuliskan hasil perpangkatan tergantung pada n }

if n < 0 then

write(1/p:8:3)

else

write(p:8:3);

endif

Pascal:

PROGRAM perpangkatan;

{ menghitung perpangkatan an , dengan masukkan a dan n bilangan

bulat sembarang dan keluaran hasil dari perpangkatan }

uses wincrt;

(* DEKLARASI *)

var

a : real; { nilai yang dipangkatkan }

n,m : integer; { pangkat }

p : real; { hasil perpangkatan }

i : integer; { pencacah pengulangan }

(* ALGORITMA *)

begin

clrscr;

read(a,n);

p := 1;

for i := 1 to ABS(n) do

p := p * a;{tuliskan hasil perpangkatan tergantung pada n}

if n < 0 then

write(1/p:8:3)

else

write(p:8:3);

(* endif *)

end.