Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Algortima Pemrograman I

Presentasi serupa


Presentasi berjudul: "Algortima Pemrograman I"— Transcript presentasi:

1 Algortima Pemrograman I
PERCABANGAN

2 Struktur Algoritma Percabangan
Sebuah program tidak selamanya akan berjalan dengan mengikuti struktur berurutan, kadang perlu merubah urutan pelaksanaan program dan menghendaki agar pelaksanaan program meloncat ke baris tertentu. Peristiwa ini kadang disebut sebagai percabangan/pemilihan atau keputusan.

3 Pernyataan If .... Else Digunakan untuk menguji sebuah kondisi.
Bentuk umum: If kondisi then Begin {pernyataan yang dijalankan jika kondisi terpenuhi} End Else {pernyataan yang dijalankan jika kondisi tidak terpenuhi} End;

4 Contoh: If (x > 0) then Writeln(‘x bilangan positif’); else Writeln(‘x bilangan negatif’); Program diatas tidak perlu menambahkan kata kunci begin dan end karena pernyataan yang dituliskan hanya satu baris saja. Jika tidak ingin mengerjakan sesuatu jika kondisi yang ditentukan tidak terpenuhi, dapat menyatakan if tanpa else. If (x<0) then x := -x;

5 Pernyataan If .... Else if Meletakkan pernyataan if lain setelah else.
If (x > 0) then Writeln (‘x bilangan positif’); Else if (x < 0) then Writeln (‘x bilangan negatif’); Else Writeln (‘x adalah nol’);

6 Pernyataan case Digunakan untuk menyederhanakan konstruksi If ... Else if If (x = 0) then Writeln (‘x bernilai 0’); Else if (x = 1) then Writeln (‘x bernilai 1’); Else if (x = 2) then Writeln (‘x bernilai 2’); else Writeln (‘x tidak bernilai 0, 1 dan 2’); Dapat diganti menjadi lebih ringkas Case x of 0:=Writeln (‘x bernilai 0’); 1:=Writeln (‘x bernilai 1’); 2:=Writeln (‘x bernilai 2’); End;

7 Contoh soal

8 No.1 Tulislah algoritma dan program serta flowchart yang menampilkan ‘Genap’ jika suatu bilangan adalah bilangan genap atau ‘Ganjil’ jika bilangan adalah bilangan ganjil. Masukan: bilangan bulat yaitu x dimana 0 ≤𝑥≤ Keluaran: bilangan genap dan bilangan ganjil

9 No.2 Tulislah algoritma dan program serta flowchart jika sebuah aturan untuk menonton sebuah film tertentu adalah sebagai berikut, jika usia penonton lebih dari 17 tahun maka penonton diperbolehkan dan apabila kurang dari 17 tahun maka penonton tidak diperbolehkan nonton.

10 jawaban algoritma: menonton_film
Nama algoritma Menonton_film Deklarasi Usia : real; Psn : String; Deskripsi Read (Usia) if Usia > 17 Psn “anda boleh menonton” else Psn “anda tidak boleh menonton” Write(‘Pesan’, Psn)

11 jawaban flowchart: menonton_film

12 No.3 Tulislah algoritma dan program serta flowchart jika dalam suatu perhitungan nilai P = X + Y. Jika P positif, maka Q = X * Y, sedangkan jika negative maka nilai Q = X/Y. Buatlah flowchart untuk mencari nilai P dan Q

13 jawaban algoritma: hitung_bilangan
Nama algoritma Hitung_bilangan Deklarasi X, Y : real; P, Q : real; Deskripsi Read (X,Y) P  X + Y if P > 0 Q  X * Y else Q  X / Y Write(‘Nilai P’,P) Write(‘Nilai Q’, Q)

14 jawaban flowchart: hitung_bilangan

15 No.4 Tulislah algoritma dan program serta flowchart jika diketahui pegawai dengan masa kerja lebih dari 3 tahun mendapat tunjangan sebesar 20% gaji pokok sedang yang kurang dari itu mendapat tunjangan 10%. Input program adalah masa kerja dan gaji pokok.

16 Jawaban algoritma: gaji
Nama Algoritma Gaji_pegawai Deklarasi Tjg, mk, gapok, gatot : double Deskripsi Read (mk, gapok ) If(mk>3) then tjg  0.2 * gapok Else tjf  0.1 * gapok Gatot  gapok + tjg Write(‘gaji total’,gatot )

17 Jawaban flowchart: gaji

18 No.5 Tulislah algoritma dan program serta flowchart yang meminta masukan dari pengguna. Jika memasukkan 0 program menampilkan Minggu, jika memasukkan 1 program menampilkan Senin, dan seterusnya sampai sabtu. Jika memasukkan nila diluar 0 sampai 6, program menuliskan hari tidak valid. Masukan: bilangan bulat yaitu x dimana 0 ≤𝑥≤255 Keluaran: Minggu, Senin ... Sabtu dan hari tidak valid.

19 No.6  persamaan Kuadrat Tulislah algoritma dan program serta flowchart untuk menghitung akar persamaan kuadrat: 𝑎 𝑥 2 +𝑏𝑥+𝑐=0 Masukan: bilangan real yaitu a, b dan c Keluaran: akar-akar persamaan kuadrat. Rumus pencarian akar kuadrat: 𝑥 1,2 = −𝑏 ± 𝑏 2 −4𝑎𝑐 2𝑎 Nilai 𝑏 2 −4𝑎𝑐 disebut diskriminan (=D)

20 No.7  Tahun Kabisat Tulislah algoritma dan program serta flowchart untuk mengecek suatu tahun merupakan tahun kabisat atau bukan. Masukan: bilangan bulat dimana 0 ≤𝑡𝑎ℎ𝑢𝑛≤255 Keluaran: Tahun Kabisat dan Tahun bukan kabisat.

21 No.8 Buatlah algoritma dan program serta flowchart untuk menghitung umur anda dengan memasukkan tahun sekarang. Hasil penghitungan adalah apakah tahun lahir tahun kabisat atau tidak Umur anda dalam hitungan jam

22 Jawaban soal: tahun kabisat
Nama Algoritma Tahun_kabisat Deklarasi Tahun_sekarang : int; Tahun_lahir : int; Hitung_umur_tahun : int Hitung_umur_jam : int Kata : String Deskripsi Read (tahun_sekarang,tahun_lahir) Hitung_umur_tahun  tahun_sekarang – tahun_lahir Hitung_umur_jam  hitung_umur_tahun * 8760 If((tahun_sekarang % 400 ==0) ||((tahun_sekarang % 4 == 0) && (tahun_sekarang %100 != 0)) ) kata  tahun kabisat Else kata  tidak tahun kabisat Write (hitung_umur_jam, kata) a01TahunKabisatSimple.java

23 Jawaban flowchart: tahun kabisat

24 No.9 FORM BELI BARANG Kode Barang Jumlah Beli Harga Barang Jumlah Harga Total Bayar Buatlah algoritma dan program serta flowchart jika beli produk >=3, maka diskon 5%

25 Jawaban algoritma: form
Nama program Pembelian_barang Deklarasi Kodebarang, jml_beli : int; Hargasatuan,jml_harga,pot,bayar : double; Deskripsi read (kodebarang,hargasatuan,jml_beli) Jml_harga = hargasatuan * jml_beli; If jml_beli >=3 Pot = 0.5; Else Pot = 0; Bayar = (Jml_harga) – (Jml_harga* pot); Write(‘Jumlah Harga’, Jml_harga ) Write(‘Potongan’,pot) Write (‘bayar’, bayar);

26 Pseudo code Jml_harga = harga * jml_beli; If jml_beli >=3 then begin diskon = 0.5; end Else diskon = 0; End; Bayar = (Jml_harga) – (Jml_harga* diskon); Writeln(‘Jumlah Harga’, Jml_harga ); Writeln (‘Total bayar’, bayar); Readln; End. Program Pembelian_barang; Var Kode, jml_beli : int; Harga,jml_harga: double; diskon : double; Begin write ( ‘ Kode Barang : ‘); readln(Kode); write (‘ Jumlah beli : ‘); readln (jml_beli); write (‘Harga satuan: ‘); readln(harga);

27

28 Percabangan bersarang

29 Contoh 10: Sebuah usaha fotokopi mempunyai aturan sebagai berikut :
jika yang fotokopi statusnya adalah langganan, maka berapa lembar pun dia fotokopi, harga perlembarnya Rp. 75,- jika yang fotokopi bukan langganan, maka jika dia fotokopi kurang dari 100 lembar harga perlembarnya Rp. 100,-. Sedangkan jika lebih atau sama dengan 100 lembar maka harga perlembarnya Rp. 85,-.

30 Algoritma Masukkan Status customer dan jumlah lembar
Jika status=’pelanggan’ harga perlembarnya Rp. 75,- Jika status=’bukan pelanggan’ , jika dia fotokopi < 100 harga perlembarnya Rp. 100,-. Sedangkan jika >= 100 maka harga=Rp. 85,-. Total bayar  jumlah lembar * harga Tulis Total Bayar

31 Pseudo code Program Biaya Cetak; Var Status: string; Harga, Total: double; Jumlah: integer; Begin Write(‘Masukkan Status Customer=’); Readln(status); Write(‘Masukkan jumlah lembar=’); Readln(jumlah); If (status=’pelanggan’) then begin Harga:=75; end Else begin If (jumlah < 100) then Harga:= 100; end Else Begin Harga :=85; End; Total :=Jumlah * Harga; Writeln(‘ Total Bayar adalah= ‘, Total); Readln; End.

32 jawaban algoritma: percabangan bersarang
Nama algoritma Biaya_fotokopi Deklarasi Status : String; JLF : int; HPP, TH : real; Deskripsi Read (Status,JLF) if Status==“langganan” HPP  75 else if JLF < 100 HPP  100 HPP  85 TH  JLF * HPP Write (‘Total Harga’, TH)

33 jawaban flowchart: percabangan

34 Contoh 11: Aturan kelulusan siswa pada mata pelajaran Pemrograman Web diterapkan sebagai berikut : Jika nilai ujian tengah semester (UTS) lebih besar dari 70 maka siswa dinyatakan lulus dan Nilai Akhir sama dengan nilai UTS. Jika nilai UTS kurang atau sama dengan 70 maka siswa dinyatakan lulus jika Nilai Akhir lebih besar atau sama dengan 60 dimana Nilai Akhir = (nilai UTS x 40%) + (nilai UAS x 60%).

35 Jawaban algoritma: lulus
Nama algoritma Kelulusan_siswa Deklarasi nim,nama,status : String; NUTS,NUAS,NA : real; Deskripsi Read (nim,nama,status,NUTS,NUAS) if NUTS > 70 NA  NUTS; status  “lulus” else NA  (NUTS * 0.4) + (NUAS * 0.6) if NA >= 60 status  “tidak lulus” Write (‘Nim, Nama, NA, Status’, nim,nama,NA,status)

36 Jawaban flowchart: lulus


Download ppt "Algortima Pemrograman I"

Presentasi serupa


Iklan oleh Google