latihan algoritma dan pemrograman 1-04

Upload: hancha

Post on 10-Jan-2016

15 views

Category:

Documents


0 download

DESCRIPTION

knkn

TRANSCRIPT

  • 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)