Anda di halaman 1dari 17

ALGORITMA DAN PEMROGRAMAN

JOB SHEET 3

Disusun oleh
Nama: Arizka Hamidan D
NIM: 3.34.19.0.06

PROGRAM STUDI TEKNIK INFORMATIKA


JURUSAN TEKNIK ELEKTRO
POLITEKNIK NEGERI SEMARANG
2019
I. Tujuan instruksional khusus:
Setelah menyelesaikan praktek ini mahasiswa dapat :
1. Menjelaskan tentang algoritma percabangan bersyarat(if-then, if-then-else, nested if) dalam
bentuk flowchart ataupun pseudocode.
2. Membuat algoritma dalam bentuk flowcharts dan pseudocode yang melibatkan
permasalahan-permasalahan percabangan dimana computer harus melakukan pemilhan
untuk menuju ke salah satu cabang berdasarkan kondisi tertentu.
3. Mengimplementasikan algoritma yang telah dibuat ke dalam Bahasa pemrograman dengan
menggunakan Bahasa pascal/C++/C.

II. Alat dan bahan


- PC minimal p-3 400 Mhz.
- Min Win98, Microsoft Visio, Microsoft Word, Turbo Pascal v.7.0 dan Disket Data.

III. Dasar Teori:


Salah satu proses didalam suatu program adalah proses seleksi atau kondisional dalam Bahasa C
ada beberapa antara lain:
1. If-Then
2. If-Then-Else
3. Nestef if

1. If-Then dan If-Then-Else


Struktur diagram aliar dan Pseudocode adalah sebagai berikut:
A. Bentuk pseudocodenya:

If kondisi Then Tidak


KONDISI ?
Proses 1
Endif
Ya

PROSES 1
B. Bentuk Pseudocodenya:

If kondisi Then
Proses 1
Else
Proses 2
Endif

Tidak
KONDISI ?

Ya

PROSES 1

KONDISI adalah ungkapan bernilai Boolean(true atau false), berikut penjelasan kedua gambar
diatas:
(a) Jika ungkapan dalam bentuk kondisi bernilai benar(TRUE) maka proses 1 yang akan
dikerjakan dan bila bernilai salah(FALSE) maka selanjutnya diluar kalang IF yang akan
dikerjakan.
STRUKTUR If-Then STUKTUR If-else Jamak

If Kondisi Then If Kondisi Then


(b) Jika ungkapan dalam kondisi bernilai benar(TRUE) maka proses 1 yang akan
Proses1 dikerjakan dan bernilai seperti gambaran berikut ini: Proses 1a
Endif Proses 1b
STRUKTURE If-Then-Else tunggal Proses 1c
Atau ………..
If Kondisi Then If Kondisi Then Proses 1n
Proses 1a Proses 1

Proses 1b Else Else


Proses 1c Proses 2 Proses 2a
……….. Endif Proses 2b
Proses 1n Proses 2c
Endif ……….
Proses 2n
Endif
KETERANGAN:

- Kondisi dapat berubah ekspresi relasional atau logika


- Kata tunggal berarti hanya ada satu prosrs atau aksi yang dikerjakan bila suatu syarat dari
kondisi terpenuhi,
- Kata jamak berarti ada duat atau lebih proses atau aksi yang dikerjakan bila suatu syarat dari
kondisi terpenuhi,
- Untuk percabangan If-Then-Else tidak selalu harus semuanya proses atau aksi tunggal semua
atau proses atatu aksi jamak semua, akan tetapi bias kombinasi antara keduanya tergantung
dari permasalahannya.
Untuk menyeleksi kondisi tersebut perlu tanda-tanda operasi(pembanding) seperti table berikut ini:
Macam operator yang terlibat dalam proses seleksi :
Operator Logika
Operator Relasi Tanda Arti
Tanda Arti AND DAN ( logical AND )
= sama dengan OR ATAU ( logical OR )
≠ tidak sama dengan NOT BUKAN ( logical NOT )
≥ lebih besar atau sama dengan XOR Keduanya atau lebih tidak
≤ lebih kecil atau sama dengan

> lebih besar dari


< lebih kecil dari

2. Nested If
Nested if atau struktur if bersyarang atau struktur if dalam if digunakan untuk menyelesaikan
masalah-masalah yang memiliki lebih dari dua cabang. Seperti halnya struktur If-Then
ataupun If-Then-Else, alternatif-alternatif dalam nested if bisa berupa alternatif hanya terdiri
dari satu proses atau aksi ( tunggal ) atau alternatif yang terdiri dari sejumlah proses atau aksi
( jamak) ataupun kombinasi antar keduanya. Berikut ini contoh flow chart untuk nested if:

Bentuk umum nested if :

Tidak
If Kondis 1 Then
KONDISI 1
If Kondisi 1 Then

Ya PROSES 1
Proses 2b
Else
Tidak
KONDISI 2
Proses 2a
Endif
Ya

PROSES 2a PROSES 2b
Catatahn : Proses atau aksi bisa
juga berupa proses atau aksi jamak

Perhatian :

 Bila suatu proses atau aksi setelah If-Then atau Else perintah tidak diapit dengan begin
dan end maka hanya tepat satu proses atau aksi setelah If-Then atau Else yang diuji
berdasarkan syarat atau kondisi dalam percabangan tersebut.
 Hal tersebut di atas juga berlaku pada proses implementasi ke dalam suatu bahasa
pemrograman, yang mungkin membedakan adalah sintaksis dan semantiknya.
IV. LANGKAH KERJA
1. Hidupkan computer anda!
2. Jalankan Microsoft Visio, dengan cara menekan tombol Start -> Program->MS Office 2000-
>Microsoft Visio. Selanjutnya gambarkan laj algoritma dari permasalahan berikut ini dan
simpan dalam satu nama file: Lat03.vsd
3. Jalankan Microsoft Word, dengan cara menekan tombol Start->Program->MS Office 2000-
>Microsoft Word. Selanjutnya tuliskan algoritma dari prmasalahan berikut ini dan simpan
dalam satu nama file: Lat03.doc.
4. Buatlah algoritma dengan bentuk flowcharts dan buat pula pseudocodenya untuk proses
menentukan suatu keputusan seseorang mendapatkan korting bila total pembeliannya Rp
50.000 atau lebih dimana proses memasukkan jumlah beli di masukkan dari keyboard,
selanjutnya diproses dan menghasilkan keluaran besar dan jumlah bayarnya.

PROGRAM BELANJAAN
(Discout 10% Min Belanja 50k)
DEKLARASI
total_belanja : integer
MASUKKAN
PEMBELIAN

PEMBAYARAN >=
50.000

DISKON<-
DISKON<-0
PEMBELIAN/20

PEMBAYARAN<-
PEMBELIAN-DISKON

TAMPILKAN
END
(PEMBAYARAN)

5. Buatlah algoritma dalam bentuk flowcharts dan buat pula pseudocodenya untuk proses
menentukan apakah suatu bilangan yang dimasukkan dari keyboard itu bilangan ganjil atau
genap. Hasilkan keluaran proses ini berupa tampilan sebagai berikut:
Output
Output
(“ Bilangan”,intBil,” tidak habis dibagi 2”)
(“Karena itu termasuk sebagian bilangan ganjil”)
} Untuk bilangan ganjil

Atau
Output (“Bilangan”,intBil,” habis dibagi 2”)
Output (“Karena itu termasuk sebagian bilangan gebap”) } Untuk bilangan genap

Start

Masukkan
angka

Jika tidak Jika iya


Print termasuk Bilangan habis Print termasuk
bil ganjil dibagi 2 bil genap

Print hasil

Stop

Pseudocode:
JENIS BILANGAN
(Menentukan Jenis Bilangan Ganjil/Genap)
Deklarasi :
p : integer
6. Suatu toko fotocopy berusaha meningkatkan layanan dengan pola sebagai berikut:
a. Jika yang mengkopy sudah terdaftar sebagai pelanggan maka akan
mendapat potongan harga/lembar kopynya Rp. 75 untuk jumlah kopy
kurang dari 100 lembar dan bila lebih dari atau sama dengan 100 lembar
diberikan potongan harga/lembar kopynya Rp. 65, untuk harga normal
perlembar/kopynya Rp. 80.
b. Jika yang mengkopy belum terdaftar sebagai pelanggan maka akan
mendapat potongan harga/lembar kopynya Rp. 70 untuk jumlah kopy lebih dari
atau sama dengan 200 lembar.
c. Hasil keluaran berupa jumlah lembar kopynya, besar potongan harga
yang diperoleh dan jumlah bayarnya.
d. Selesaikan permasalahan ini seperti metode langkah kerja no.4 (flowcharts
dan pseudocode )dan simpan ke dalam hardisk atau disket data dengan nama file
yang sama pula.
Start

Masukkan
nama

Jika tidak Jika iya Harga


Pelanggan RP.75/lembar
Harga per
terdaftar <100
lembar RP.80
RP.65/
lembar>100

Hitung harga =
jumlah lembar *
harga per lembar

Print jumlah
harga

Stop

Pseudocode :
POROGRAM JUMLAH HARGA FOTOCOPY
(Jumlah Harga Dengan Discount Untuk Pelanggan Terdaftar)
DEKLARASI:
jml ft : integer
hrg plbr, jml discount, jml harga: integer
jns plnggn : char
DESKRIPSI :
Write : (Apakah anda pelaggan terdaftar (Y/T)? : ‘ ’, jns
plggn)
Write : (Masukkan jumlah lembar kopi : ‘ ’, jml ft)
If jns plnggn : ‘Y’ then
If (jml ft >= 100) then
hrg plbr←65
Else
hrg plbr ←75
Endif
Else
hrg plbr ←80
Endif
jml harga ← hrg plbr*jml ft
jml discount←( jml ft*80)-jml harga
Write (‘Jumlah lembar yang anda copy: ’,jml_ft)
Write (‘Jumlah Potongan harga : ’,jml_discout)
Write (‘Jumlah harga : ’,jml_harga)

7. Cobalah anda implementasikan permasalahan nomor 4, 5, dan 6 ke dalam bentuk


program dengan menggunakan bahasa pemrograman Bahasa C .
Permasalahan Nomor 4
Permasalahan Nomor 5
Permasalahan Nomor 6
V. Pertanyaan/Soal

1. Apa yang dimaksud dengan proses atau aksi jamak dan tunggal ? jelaskan dengan singkat
dan jelas .
Jawaban :
Proses atau aksi tunggal : hanya ada satu proses yang dikerjakan bila suatu kondisi/syarat
terpenuhi.
Proses atau aksi jamak : ada dua atau lebih proses yang dikerjakan bila suatu kondisi/syarat
terpenuhi.

2. Diketahui suatu permasalahan sistem pembayaran panggilan disuatu wartel sebagai berikut
:
a. Sistem pembayaran didasarkan pada lama percakapan ( jam akhir pembicaraan – jam awal
pembicaraan).
b. Hitunglah berapa pulsa telepon yang dipakai jika per-pulsa telepon berubah setiap 20 detik.
c. Jika pembicaraan dilakukan pada hari libur atau antara jam 10:00 malam sampai jam
07:00 pagi mendapat diskon 30% dari total pembayaran dan untuk waktu selain itu
tidak m endapatkan diskon. Hitunglah jumlah bayarnya, dengan harga per-pulsa Rp.
200,-
d. Buatlah flowcharts dan pseudocodenya serta impelentasikan permasalahan ini ke dalam
bahasa pemrograman C.
Jawaban :

Start

Masukkan
awal dan
akhir
percakapan

Masukkan Hitung bayar=


Hitung bayar= lama*200-
lama*200 waktu
ketika (lama*30%)
telpon

Print total
harga

Stop
Pseudocode :

PROGRAM WARTEL
DEKLARASI
lm_bcr : integer
hr_lbr : char
biaya,bayar : long integer
DESKRIPSI
Write (‘lamanya bicara dalam detik=
‘,lm_bcr)
Write (‘hari libur? (Y/T)=’,hr_lbr)
Biaya lm_bcr*200/20
If (hari libur==y) then
Bayar biaya * 30%
Else
if (’22.00-07.00’)
Bayar biaya * 30%
Else
Bayar biaya
endif
endif
2
3. Diketahui persamaan kuadrat ax + bx + c = 0. Buatlah program untuk menghitung nilai-
nilai akarnya dengan ketentuan nilai deskriminannya sebagai berikut :
2
D = b – 4ac
Dari nilai deskriminan yang diperoleh memiliki tiga kemungkinan berikut yang
dijadikan sebagai dasar untuk menentukan nilai akar-akarnya.
b
Jika D = 0, maka nilai akarnya x1 = x2 =
2
a
D
Jika D > 0, maka nilai akarnya x1 = - b
+ 2a

D
x2 = - b -
2a
Jika, D < 0 , maka akarnya imajiner (Tampilkan keterangan “Akar Imajiner).
Tugas anda:
Buatlah algoritma dengan bentuk flowcharts dan pseudocode serta
implementasikan permasalahan tersebut ke dalam bahasa Pascal / Bahasa C.
Start

Masukkan
a,b,c

Jika
Jika D=0 Hitung=x=1(-
D>0
Nilai D b+sqrt(d))/
Hitung=x=-b/ 2*ax2=(-
2*a b_sqrt(d))/2*a

Jika D<0

Print ´hasil
imajiner

Print hasil

Stop
Pseudocode :

PROGRAM AKAR DESKRIMINAN

DEKLARASI :

Var a,b,c,D,x1,x2

DESKRIPSI :

Read (a)

Read (b)

Read (c)

D <- b^2-4ac

If D == 0 then

x1<-b/2a

x2<-b/2a

Print(x1,x2)

If D > 0 then

x1<- (-b+(sqrt(b)/2a))

x2 <- (-b –(sqrt(d)/2a))

Print (x1,x2)

Else

Print (Akar Imajiner)

End.
4. Berikanlah kesimpulan dari praktik yang anda lakukan di jobsheet ketiga ini .

Kesmpulan :
Pada raktek jobsheet kali ini dapat disimpulkan bahwa penggunaan if else dalam c sangat
berguna. Penggunaan if else sendiri sangat berguna dalam pembuatan program.

VI. Penutup
Demikian laporan praktikum jobsheet 3 logika dan algoritma saya buat. Apabila
terdapat kesalah dalam penulisan, mohon kritikan dan sarannya.

Anda mungkin juga menyukai