PENGENALAN ALGORITMA DAN STRUKTUR DATA

Document Sample
PENGENALAN ALGORITMA DAN STRUKTUR DATA Powered By Docstoc
					   ALGORITMA DAN STRUKTUR DATA
      MODUL PRAKTIKUM KE-1
           PENGENALAN
 ALGORITMA DAN STRUKTUR DATA




      ANITA SARAYA   08560360




   LABORATORIUM PEMROGRAMAN
PROGRAM STUDI TEKNIK INFORMATIKA
         FAKULTAS TEKNIK
UNIVERSITAS MUHAMMADIYAH MALANG
               2009
       I.         TUJUAN
Mahasiswa mampu :
•           Mengenal jenis-jenis algoritma dan struktur data
•           Dapat menyelesaikan dan memecahkan masalah yang terdapat dengan menggunakan program.
     II.          ALAT YANG DIGUNAKAN

•           Komputer Set
•           Installer Java NetBeans IDE


III.            DASAR TEORI
Algoritma dicetuskan oleh Muhammad bin musa al khorizmi pada tahun 825 M. algoritma berasal dari
kata “al khorizmi” yang artinya menghitung.
Ada 3 hal yag terdapat dalam algoritma ;
                            1.   input    : berisi tentag variable, type variable dsb.
                            2.   proses : berisi perulangan, percabangan, perhitungan dan rumus-rumus.
                       3.    output : karakteristik keluaran.
Jenis-jenis proses algoritma:
1.         sequence proses : instruksi yang dikerjakan secara berurutan.
2.         selection proses : instruksi yang dikerjakan jika memenuhi criteria
3.    heration proses : instruksi yang dikerjakan selam memenuhi kondisi tertentu
algoritma dipresentasikan menjadi 3 hal, yaitu :
1.         flowchart
2.         pseudo code
3.         algoritma fundamental
IV.             PROSEDUR PELAKSANAAN
1.   buatlah algoritma utk menghitung knversi suhu dari celcius menjadi reamur dan Fahrenheit.
Representasikan algoritma tersebut dengan menggunakan algoritma fundamental, pseudo-code, dan
flowchart.
       Input : suhu dalam celcius
       Proses :
       R = 4/5*C
       F = 9/5*C-32
       *F = farenheit, R = Reamur, C = Celcius
   Output : suhu dalam reanmur dan farenheit
Jawab :
a. Algoritma fundamental
 import java.util.Scanner;
class bilangan_prima {
static Scanner sc = new Scanner(System.in);
public static void main(String[]args){
int F=0,R=0,C;
do {
     System.out.println("masukkan angka celcius:");
     C = sc.nextInt();

              R = 4/5*C;
System.out.println("reamur adalah"+R);

              F=9/5*C-32;
System.out.println("farenheit"+F);
}
while (angka>=0);
System.out.println("terima kasih atas partisipasinya.");
}}
b.      pseudo-code
Deklarasi : Celcius               : integer
           Reamur        : integer
           Fahrenheit : integer
Deskripsi : read (celcius)
Reamur = 4/5 * celcius;
Fahrenheit = 9/5*celcius + 32;
Write ( Reamur, Fahrenheit);

                          start


                                              c.   flowchart
                   Suhu celcius


                 R = 4/5*C

                 F=9/5*C-32


                  Suhu reamur


                 Suhu fahrenheit


                           end
2.      hitung pangkat berdasarkan nilai dan pangkatnya. Gunakan while, do-while, dan for.
Jawab :

a. Dengan while:

import java.util.Scanner;

public class hitungpangkat_while {

static Scanner sc = new Scanner(System.in);

public static void main(String[] args){

     int angka = 0;

     int pangkat,i = 0;

     int hasil=1;



     System.out.println("masukkan angka :");

     angka = sc.nextInt();

     System.out.println("masukkan pangkat :");

     pangkat = sc.nextInt();



     if (angka>0){

  while(i<pangkat){

     hasil = pangkat*hasil;

     System.out.println("pangkat "+pangkat+"dari "+angka+"adalah "+hasil);

          }

if(angka<=0){

System.out.println("angka harus lebih dari 0");
         }

}

    }

b. dengan do-while

import java.util.Scanner;

public class hitungpangkat {

static Scanner sc = new Scanner(System.in);

public static void main(String[] args){

    int angka;

    int pangkat;

    int hasil=1;

do {

    System.out.println("masukkan angka :");

    angka = sc.nextInt();

    System.out.println("masukkan pangkat :");

    pangkat = sc.nextInt();

if (angka>0){

    for(int i = 0; i<pangkat; i++)

    hasil = angka*hasil;

    System.out.println("pangkat "+pangkat+"dari "+angka+"adalah "+hasil);

         }

if(angka<=0){

System.out.println("angka harus lebih dari 0");

         }

}
     while (angka>=0);

}

}

}

c.      Dengan for
import java.util.Scanner;

public class hitungpangkat_for {

static Scanner sc = new Scanner(System.in);

public static void main(String[] args){

     int angka;

     int pangkat;

     int hasil=1;

for(int j=0;j>1;j++){

     System.out.println("masukkan angka :");

     angka = sc.nextInt();

     System.out.println("masukkan pangkat :");

     pangkat = sc.nextInt();

if (angka>0){

     for(int i = 0; i<pangkat; i++)

     hasil = angka*hasil;

     System.out.println("pangkat "+pangkat+"dari "+angka+"adalah "+hasil);

          }

if(angka<=0){

System.out.println("angka harus lebih dari 0");

          }

}
}

}

3.          Buatlah program yang akan menampilan informasi jarak (km) dan waktu tempuh (menit) dari
        kota malang ke kota-kota di table secara berulang. Perulangan berhenti ketika user memasukkan
        angka nol.

Jawab :
import java.util.Scanner;
public class informasi_jarak_waktu {
static Scanner sc = new Scanner(System.in);
public static void main(String[]args){
int pilihan;
do {
     System.out.println("masukkan pilihan :");
     pilihan = sc.nextInt();
     if (pilihan==1){
     System.out.println
("jarak tempuh ke kota surabaya adalah 88 km dalam waktu 150 menit");
               }
if (pilihan==2){
     System.out.println
("jarak tempuh ke kota kediri adalah 160 km dalam waktu 250 menit");
               }
if (pilihan==3){
     System.out.println
("jarak tempuh ke kota gresik adalah 300 km dalam waktu 360 menit");
               }
if (pilihan==4){
     System.out.println
("jarak tempuh ke kota lamongan adalah 275 km dalam waktu 320 menit");
               }
if (pilihan==5){
     System.out.println
("jarak tempuh ke kota blitar adalah 75 km dalam waktu 120 menit");
               }}
while (pilihan>0);
System.out.println("terima kasih atas partisipasinya.");
}}
4. buatlah algoritma untuk menentukan suau bilangan adalah bilangan prima atau bukan.
Jawab:
import java.util.Scanner;
class bilangan_prima {
static Scanner sc = new Scanner(System.in);


public static void main(String[]args){
int angka=0;
do {
     System.out.println("masukkan angka :");
     angka = sc.nextInt();
if (angka %2 == 0){
System.out.println
("bukan bilangan prima");
}
else
     if (angka %3 == 0){
    System.out.println("bukan bilangan prima");
     }
else{
System.out.println
("bilangan prima");
}
}
while (angka>=0);
System.out.println("terima kasih atas partisipasinya.");
}}
4.       buat algoritma untuk menghitung aar persamaan kuadrat dengan rumus
D=B² - 4*A*C

Jawab :
import java.lang.Math;

import java.util.Scanner;

public class akar_persamaan_kuadrat {

static Scanner sc = new Scanner(System.in);



public static void main(String[]args){



  int D=0,E=0,B,A,C;

  double X1=0,X2=0;

  //System.out.println("masukkan nilai D :");

  //D = sc.nextInt();

  System.out.println("masukkan nilai B :");

  B = sc.nextInt();

  System.out.println("masukkan nilai A :");

  A = sc.nextInt();

  System.out.println("masukkan nilai C :");

  C = sc.nextInt();



D=(int)((Math.pow(B, 2) - 4) * (A * C));

System.out.println(D);

if (D>0){

X1=Math.sqrt(D/(2*A))+(-B);

X2=Math.sqrt(D/(2*A))-(-B);

System.out.println(X1);

System.out.println(X2);
}

if(D==0){

E=2*A;

X1=-B/E;

System.out.println(X1);

System.out.println(E);

}

else {

System.out.println("akar imajiner");

}}}