Latihan Algoritma Dan Pemrograman 1-04
description
Transcript of Latihan Algoritma Dan Pemrograman 1-04
-
1
LATIHAN ALGORITMA DAN PEMROGRAMAN
1. Di SMA anda tentu masih mengingat bahwa akar-akar persamaan kuadrat
+ + = 0; 0 Adalah nilai-nilai x yang menyebabkan persamaan menjadi nol. Akar-akar persamaan kuadrat dapat
dihitung dengan rumus abc sebagai berikut
= + 4
2
= 4
2
Jenis akar tergantung pada nilai 4 (yang disebut diskriminan atau D) Jika 4 < 0,maka akar-akar imajiner Jika 4 > 0 , maka akar-akarnya real dan berbeda Jika 4 = 0, maka akar-akarnya real dan kembar =
Tulislah algoritma untuk mencari akar persamaan kuadrat. Sebagai data masukan adalah koefisien persamaan
a, b, dan c dengan syarat 0, sedangkan keluarannya adalah akar-akar persamaannya.
Penyelesaian
Analisis kasus terhadap permasalahan ini menghasilkan tiga macam kasus :
Kasus 1 : D < 0, akar-akarnya imaginer
Kasus 2 : D > 0, akar-akarnya riil dan berbeda Kasus 3 : D = 0, akar-akarnya riil dan kembar, = Notasi Algoritma :
PROGRAM AkarPersamaanKuadrat {Menghitung akar-akar persamaan kuadrat + + = 0 . Nilai a, b dan c dibaca sebagai masukan ( 0) sedangkan akar-akarnya dicetak sebagai keluaran} DEKLARASI a,b,c : real {koefisien persamaan kuadrat} D : real {diskriminan} x1, x2 : real {akar-akar persamaan kuadrat} ALGORITMA : read(a,b,c) {baca koefisien persamaan kuadrat} Db*b-4*a*c {Hitung diskriminan} if D < 0 then write(akar-akar persamaan kuadrat imajiner) 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){SQRT adalah fungsi akar pangkat dua} x2x1 endif write(x1,x2) {cetak x1 dan x2} endif
-
2
Kode program dalam Java :
import java.util.Scanner; public class AkarPersamaanKuadrat { public static void main(String[] args) { double a,b,c,D,x1,x2;//deklarasi variable Scanner masukan = new Scanner(System.in); System.out.println(Masukan parameter a = ); a = masukan.nextDouble(); System.out.println(Masukan parameter b = ); b = masukan.nextDouble(); System.out.println(Masukan parameter c = ); c = masukan.nextDouble(); D = Math.pow(b,2)-4*a*c; if(D < 0){ System.out.println(Akar-akar persamaan kuadrat imajiner); } else{ if(D > 0){ System.out.println(Akar-akar persamaan real dan berbeda);
x1 = (-b+Math.sqrt(D))/(2*a); x2 = (-b-Math.sqrt(D))/(2*a); } else{ // D = 0 System.out.println(Akar-akar persamaan real dan sama);
x1 = (-b+Math.sqrt(D))/(2*a); x2 = x1; } System.out.println(Akar-akar persamaan x1= +x1); System.out.println(Akar-akar persamaan x2= +x2); } } }
2. Tulislah algoritma yang membaca a dan n bilangan bulat (n>=0) lalu untuk menghitung nilai perpangkatan
. Perpangkatan berarti mengalikan a sebanyak n kali. = {!!"#}
Penyelesaian
Misalkan nilai perkalian disimpan dalam peubah yang bernama p. Peubah p ini diinisialisasi dengan 1(bukan
0), karena ia akan selalu dikalikan dengan a(Jika diinisialisasi dengan 0 hasil perkalian dengan a akan
menghasilkan nol):
% 1 Lakukan perkalian p dengan a sebanyak n kali:
% % Notasi Algoritma
-
3
PROGRAM Perpangkatan {Menghitung perpangkatan , a dan n bilangan bulat, dan n>=0.} DEKLARASI a : real {Nilai yang dipangkatkan} n : integer {pemangkat} p : real {hasil perpangkatan} i : integer {pencacah pengulangan} ALGORITMA : read(a,n) p1 for i1 to n do pp*a endfor write(p)
3. Tulis algoritma untuk menentukan bilangan terkecil dari N buah data integer yang dibaca pada papan ketik.
Nilai N dibaca terlebih dahulu (N>0).
Penyelesaian:
Notasi Algoritma :
PROGRAM CariMinimum {Menentukan bilangan terkecil dari N data integer yang dibaca dari papan ketik. Nilai N ditentukan terlebih dahulu} DEKLARASI N : integer {banyaknya data masukan, > 0} x : integer {data yang dibaca} min : integer {data terkecil/minimum} i : integer {cacah pengulangan} ALGORITMA : Read(N) Read(x) minx {asumsi min adalah data pertama} for i2 to N do read(x) if x < min then min x endif endfor write(min)