• Tidak ada hasil yang ditemukan

Struktur Dasar Algoritma

N/A
N/A
Protected

Academic year: 2021

Membagikan "Struktur Dasar Algoritma"

Copied!
15
0
0

Teks penuh

(1)

Algoritma dibangun dari 3 buah struktur dasar, yaitu : 1. Runtunan (sequence)

2. Pemilihan (selection) 3. Pengulangan (repetition)

Struktur Runtunan (sequence)

• Sebuah runtunan terdiri dari satu atau lebih instruksi.

• Dikerjakan secara berurutan sesuai dengan urutan penulisannya

• Urutan instruksi menentukan keadaan akhir algoritma, bila urutannya diubah, maka hasil akhirnya mungkin berubah.

Contoh 1 Pseudocode :

Algoritma Persegi Panjang

{ Menghitung Luas Persegi Panjang } { Deklarasi variabel }

var Panjang, Lebar, Luas : real { Deskripsi }

Read (Panjang) Read (Panjang)

Luas = Panjang * Lebar Write (Luas)

START

STOP Read Panjang, Lebar

Luas = Panjang * Lebar

Write Luas

Struktur Dasar Algoritma

Flowchart :

(2)

Algoritma Hitung_harga Contoh 2 :

{ untuk menghitung harga barang } { Deklarasi variabel }

var jum_brg, hrg_brg, jum_hrg : real;

{ Deskripsi }

Write(“Jumlah Barang = ") Read (jum_brg)

Write(“Harga Barang = ") Read (hrg_brg)

jum_hrg = jum_brg * hrg_brg

Write(" Jumlah Harga = ", jum_hrg)

Struktur Pemilihan (selection)

Adakalanya suatu aksi akan dikerjakan jika syarat tertentu terpenuhi.

jum_hrg = jum_brg x hrg_brg Write jum_hrg

START Read jum_brg, hrg_brg

STOP

(3)

Struktur seleksi pada algoritma/program menggunakan struktur IF.

Struktur Seleksi ada 4 bentuk : 1. IF Sederhana

2. IF-THEN-ELSE 3. IF Bertingkat 4. Case

IF Sederhana

Bentuk :

If kondisi then aksi

- Aksi (statement) hanya akan dikerjakan jika kondisi memenuhi (benar atau true).

- Jika kondisi tidak memenuhi (salah atau false) maka aksi tidak dikerjakan.

- Kondisi berupa suatu ekspresi logika.

1. Dalam kehidupan sehari-hari : Contoh :

Jika Amir juara kelas maka

Ayah akan membelikan motor

(4)

Maka contoh 1 diatas dalam algoritma, dapat ditulis sbb : If Amir juara kelas then

Ayah akan membelikan motor 2. Untuk menentukan bilangan terbesar

dari dua buah bilangan

Jika nilai X lebih besar dari nilai Y, maka Tulis X

Maka contoh 1, ditulis sbb : If X > Y then Write X

1. Mencari bilangan terbesar Contoh pseudocode dan flowchart :

(5)

Algoritma Max { Deklarasi } var X, Y : real;

{ Deskripsi } Read (X,Y)

If X > Y then Write X

2. Untuk menentukan penerimaan calon pegawai ditentukan persyaratan atau kondisi : Nilai test lebih besar atau sama dengan dari 60, maka cetak ”LULUS”.

Maka contoh 3, ditulis sbb :

If (Nilai>=60) then Write(“LULUS”)

Algoritma Nilai

Contoh pseudocode dan flowchart :

{ Deklarasi } var Nilai : real;

{ Deskripsi } Read (Nilai)

If Nilai >=60 then Write “LULUS

Buatlah Programnya ! Tugas :

If-Then-Else

Bentuk :

If kondisi then

X > Y Y T

MULAI Read

X,Y

MULAI

Nilai

>= 60

Y T

MULAI Read

Nilai

MULAI

Write X

Write

“LULUS

(6)

Aksi1 Else

Aksi2

- Jika kondisi memenuhi (benar atau true) maka aksi1 akan dikerjakan,

- Jika kondisi tidak memenuhi (salah atau false) maka aksi2 akan dikerjakan.

1. Untuk menentukan bilangan terbesar Contoh pseudocode dan flowchart :

dari dua buah bilangan : Jika nilai X lebih besar dari nilai Y, maka tulis X sebagai bilangan terbesar, jika X tidak lebih besar dari nilai Y, maka tulis Y sebagai bilangan terbesar.

Algoritma membandingkan 2 bilangan { Deklarasi }

var X, Y : real;

{ Deskripsi } Read (X,Y) If X > Y then

Write X else

Write Y

2. Untuk menentukan penerimaan calon pegawai ditentukan persyaratan atau kondisi : Nilai test lebih besar atau sama dengan dari 60, maka cetak ”LULUS”, jika Nilai test tidak lebih besar atau tidak sama dengan dari 60, maka cetak ”GAGAL”.

X > Y

Y T MULAI

Read X,Y

SELESAI

Write X

Write Y

(7)

Algoritma Nilai

Contoh pseudocode dan flowchart :

{ Deklarasi } var Nilai : real;

{ Deskripsi } Read (Nilai)

If Nilai >=60 then Write “LULUS”

Else

Write “GAGAL”

Soal latihan :

1. Buatlah algoritma flowchart dan programnya untuk menghitung pajak gaji pegawai, dengan ketentuan sbb :

- gaji pokok yang dikenakan pajak 15% hanya yang nilainya >= Rp. 2 juta

- cetak pajak

Nilai

>= 60

Y

T MULAI

Read Nilai

SELESAI

Write

“LULUS

Write

“GAGAL

(8)

2. Toko ABC memberikan discount dengan ketentuan : - Jika jumlah harga (jumlah pembelian) >= Rp.

500.000 maka discount 10% dari jumlah harga - Jika kurang dari Rp. 500.000 maka discount 5%

dari jumlah harga

- Cetak discount dan jumlah pembayaran Buatlah algoritma flowchart dan programnya.

Jawaban nomor 2 Flowchart :

gapok >=

Rp. 2 jt

Y

T MULAI

Read gapok

Pajak = 0.15 x gapok Pajak = 0

(9)

Program :

/* Program menghitung pajak */

#include <iostream.h>

void main() {

float gapok, pajak;

pajak = 0;

cout << “Input gaji pokok : “ ; cin >> gapok;

If (gapok >= 2000000) pajak = 0.15 * gapok;

/* cetak pajak */

// setiosflags () utk mengatur format

// ios::fixed agar output dlm bentuk desimal // setprecision() utk mengatur jml digit pecahan cout<<setiosflags(ios::fixed) << setprecision(2);

cout << "Besarnya pajak : " << pajak << endl;

}

If-Then-Else Bertingkat

Bentuk :

If kondisi-1 then Aksi-1 Else

If kondisi-2 then Aksi-2

(10)

Else . .

If kondisi-n then Aksi-n

Else

Aksi-n+1

Keterangan :

- Jika kondisi-1 memenuhi (benar atau true) maka aksi-1 akan dikerjakan

- Jika kondisi-2 tidak memenuhi (salah atau false) maka aksi-2 akan dikerjakan

- Jika kondisi-n tidak memenuhi (salah atau false) maka aksi-n akan dikerjakan

- Jika kondisi-1, kondisi-2, dan kondisi-n tidak memenuhi (salah atau false) maka aksi-n+1 yang akan dikerjakan.

Contoh soal :

Karyawan PT.ABC terbagi kedalam 4 golongan dengan ketentuan gaji pokok sbb :

Golongan Gaji pokok A Rp. 200.000,- B Rp. 250.000,- C Rp. 300.000,- D Rp. 350.000,-

(11)

Input : golongan, output : gaji pokok.

Buat algoritma dan programnya,

Algoritma Gaji Pokok { Deklarasi }

var Gapok : real;

Gol : char;

{ Deskripsi } Read (Gol)

if (Gol = “A”) then Gapok = 200000;

else

if (Gol = “B”) then Gapok = 250000;

else

if (Gol = “C”) then Gapok = 300000;

else

Gapok = 350000;

Write (Gapok)

Buatlah Programnya ! Tugas :

SELEKSI DENGAN DO-CASE Bentuk :

CASE (VAR)

Kondisi-1 : Aksi-1 Kondisi-2 : Aksi-2 .

Gol =”A”

Y

T

Gapok = 350000 T

Y

T Y MULAI

Read Gol

Gol = “B”

Gol = “C”

Gapok = 200000

Gapok = 250000

Gapok = 300000

SELESAI Read Gol

(12)

.

Otherwise : Aksi-n ENDCASE

Tiap kondisi diperiksa nilai kebenarannya.

Jika kondisi-1 benar, maka aksi-1 dilaksanakan, Jika kondisi-2 benar, maka aksi-2 dilaksanakan, Selain itu (otherwise), aksi-n dilaksanakan,

Flowchart Do-Case :

Contoh algoritma Do-Case : Algoritma Gaji Pokok

{ Deklarasi } var Gapok : real;

Gol : char;

{ Deskripsi } Read (Gol) CASE (Gol)

Gol

Gapok =

200000 Gapok =

250000 Gapok =

300000 Gapok = 350000

A B C D

(13)

“A” : Gapok = 200000;

“B” : Gapok = 250000;

“C” : Gapok = 300000;

“D” : Gapok = 350000;

Otherwise : Write “Data Golongan salah !”

ENDCASE Write Gapok;

Buatlah Programnya ! Tugas :

1. Dibaca masa kerja karyawan, besarnya bonus tahunan akan diberikan dengan ketentuan sbb : Soal latihan :

a. Jika masa kerja < = 1 tahun maka Bonus = Rp. 1 juta

b. Jika masa kerja > 1 s/d 3 tahun maka Bonus = Rp. 2 juta

c. Jika masa kerja > 3 tahun maka Bonus = Rp. 3 juta

(14)

Buatlah algoritma dengan flowchart dan pseudocode

Pseudocode Flowchart

Jawaban :

Algoritma Masa_Kerja

Deklarasi

Var MK, Bonus : Real;

Deskripsi Read (MK)

If MK <= 1 then

Bonus = 1000000 else If MK <= 3 then Bonus = 2000000 else

Bonus = 3000000 end if

Write (Bonus)

Program Jawaban 1 Seleksi bertingkat :

/* Program menghitung bonus */

#include <iostream.h>

#include <iomanip.h>

void main() {

int masa_kerja;

float bonus;

MK <=1

Y

T Y

T MULAI Read MK

MK <=3

Bonus = 1000000

Write Bonus SELESAI

Bonus = 2000000

Bonus = 3000000

(15)

/* cetak label input */

cout << “Ketik masa kerja : “ ; /* baca data */

cin >> masa_kerja;

/* proses seleksi */

If (masa_kerja <= 1) bonus = 1000000;

else

If (masa_kerja <= 3) bonus = 2000000;

else

bonus = 3000000;

/* cetak bonus */

/* format bil. bukan eksponensial / bukan pangkat */

cout << setiosflags(ios::fixed);

/* menentukan jumlah digit desimal */

cout << setprecision(2);

cout << "Besarnya bonus : " << bonus << endl;

}

Referensi

Dokumen terkait

Pada umumnya banyak digunakan pada organisasi yang besar, dengan bidang tugas yang beragam dan jumlah karyawan yang banyak sehingga pimpinan tidak bisa bekerja sendiri, tapi

dijelaskan secara lebih lanjut mengenai instansi yang berwenang dan tidak ada kriteria dan kualifikasi akuntan publik yang dapat ditunjuk untuk menghitung kerugian

Rata-rata pendapatan perkapita pada rumah tangga pertanian dibandingkan garis kemiskinan, 2011 -2013. Pada gambar 3.8 menunjukkan bahwa orang yg bekerja

surat-surat yang ia kirimkan pada sahabat penanya di seberang benua. Menulis sebenarnya tidak butuh keahlian atau pembelajaran khusus karena menulis bukanlah perkara belajar

tetapi jika dilihat dari angka rata-rata perhitungan yang dihasilkan, penambahan susu segar dalam pengolahan keju ricotta memberikan perbedaan yang sangat nyata

[r]

Mampu menjelaskan dan mengkritisi permasalahan konsumen ,dan peka terhadap isu-isu mutakhir bidang pendidikan konsumen ( keabsahan alat UTTP,pemalsuan barang, pengawetan

pemeriksaan sputum pada suspek TB Paru Bulan Oktober tahun 2015 di Puskesmas Kamoning Kabupaten Sampang 55 Tabel 5.10 Identifikasi pengetahuan responden suspek TB Paru