Twitter Delicious Facebook Digg Stumbleupon Favorites More

Selasa, 08 November 2011

Algoritma + Struktur Data = Program

Sebuah algoritma tidak saja harus benar, tetapi juga harus mangkus (efisien). Algoritma yang bagus adalah algoritma yang mangkus. Kemangkusan algoritma diukur dari berapa jumlah   waktu dan ruang (space) memori yang dibutuhkan untuk menjalankannya. Algoritma yang mangkus ialah algoritma yang meminimumkan kebutuhan waktu dan ruang. Kebutuhan waktu dan ruang suatu algoritma bergantung pada ukuran masukan (n), yang menyatakan jumlah data yang diproses. Kemangkusan algoritma dapat digunakan untuk menilai algoritma yang terbaik.

Ada dua macam kompleksitas algoritma, yaitu kompleksitas waktu dan kompleksitas ruang :


·     Kompleksitas waktu, T(n), diukur dari jumlah tahapan komputasi yang dibutuhkan untuk menjalankan algoritma sebagai fungsi dari ukuran masukan n.

·     Kompleksitas ruang, S(n), diukur dari memori yang digunakan oleh struktur data yang terdapat di dalam algoritma sebagai fungsi dari ukuran masukan n.

Dengan menggunakan besaran kompleksitas waktu/ruang algoritma, kita dapat menentukan laju peningkatan waktu (ruang) yang diperlukan algoritma dengan meningkatnya ukuran masukan n

Coba Lihat contoh coding program dibawah ini. 

Contoh1
import java.util.Scanner;
public class contoh1 {
    public static void main(String[] args) {
     Scanner in =new Scanner(System.in);
     int x; double y;
     System.out.print("X = ");
     x=in.nextInt();
     if (x > 100){
         y = x * 0.9; }
     else {
         y = x;  }
     System.out.print("y = "+y);
 }
}

Contoh 2

import java.util.Scanner;
public class contoh2 {
    public static void main(String[] args) {
     Scanner in =new Scanner(System.in);
     int x; double y;
     System.out.print("X = ");
     x=in.nextInt();
     y = (x > 100) ? (x * 0.9) : x;
     System.out.print("y = "+y);
 }
}

Coba perhatikan dengan saksama kedua coding program diatas. Sudah kah anda menemukan perbedaannya ? Coding program Manakah menurut anda yang lebih efisien ? Tambahan : Pemilihan Struktur data yang tepat juga dapat membuat suatu program tersebut menjadi mangkus ( efisien ).

Selasa, 04 Oktober 2011

Menampilkan Nama Bulan yang Jumlah Harinya 31

Akhirnya bisa update blog lagi , setelah sekian lama tak pernah buka blog. Pada postingan kali ini, yaitu membuat coding program Menampilkan Nama Bulan yang Jumlah Harinya 31 dengan array dan switch. Ngga usah pake lama deh langsung aja lihat coding programnya di bawah ini.


import java.util.Scanner;
public class Bulan_31_Hari {
  public static void main(String[] args) {
  Scanner input=new Scanner(System.in);
  String[] bulan={"Januari","Februari","Maret","April","Mei","Juni",
                  "Juli","Agustus","September","Oktober","November",
                  "Desember",};
  String[] hari={"31 Hari","28/29 Hari","31 Hari","30 Hari","31 Hari",
                 "30 Hari","31 Hari","31 Hari","30 Hari","31 Hari",
                 "30 Hari","31 Hari"};

  garis();
  System.out.println("       MENU PILIHAN");
  garis();
  System.out.println("1. NAMA BULAN YANG JUMLAH HARINYA 28/29");
  System.out.println("2. NAMA BULAN YANG JUMLAH HARINYA 30");
  System.out.println("3. NAMA BULAN YANG JUMLAH HARINYA 31");
  System.out.println("4. EXIT");
  System.out.println("");
  garis();

  System.out.print("ANDA PILIH NOMOR : ");
  int pil=input.nextInt();
  switch(pil){
     case 1 :{
       garis();
       System.out.println("NAMA BULAN YANG JUMLAH HARINYA 28/29\n");
       System.out.println("1. "+bulan[1]+" = "+hari[1]);
       break;
     }
     case 2 :{
       garis();
       System.out.println("NAMA BULAN YANG JUMLAH HARINYA 30\n");
       System.out.println("1. "+bulan[3]+" = "+hari[3]+
                          "\n2. "+bulan[5]+" = "+hari[5]+
                          "\n3. "+bulan[8]+" = "+hari[8]+
                          "\n4. "+bulan[10]+" = "+hari[10]);
       break;
     }
     case 3 :{
       garis();
       System.out.println("NAMA BULAN YANG JUMLAH HARINYA 31\n");
       System.out.println("1. "+bulan[0]+" = "+hari[0]+
                          "\n2. "+bulan[2]+" = "+hari[2]+
                          "\n3. "+bulan[4]+" = "+hari[4]+
                          "\n4. "+bulan[6]+" = "+hari[6]+
                          "\n5. "+bulan[7]+" = "+hari[7]+
                          "\n6. "+bulan[9]+" = "+hari[9]+
                          "\n7. "+bulan[11]+" = "+hari[11]);
       break;
     }
     case 4:{
       System.exit(0);
       break;
     }
       default:System.exit(0);
     }
    }
    static void garis (){
    System.out.println("========================================");
  }
}

Outputnya akan tampil seperti dibawah ini.


Program di atas dibuat oleh logika sendiri. Kenapa menggunakan switch, agar tidak hanya menampilkan nama bulan yang jumlah harinya 31, tetapi bisa memilih untuk menampilkan nama bulan yang jumlah harinya 30 atau 29/28. Untuk kritik dan saran langsung saja coment di bawah postingan ini. Kritik dan saran anda sangat membantu bagi saya untuk selalu belajar dan terus belajar lagi.

Minggu, 05 Juni 2011

Menghitung Nilai Mahasiswa

Script dibawah ini adalah program Menghitung Nilai Mahasiswa dengan menggunakan bahasa Pemrograman Java. Programnya saya bikin 2 dengan menggunakan For dan Array. Lihat Scriptnya dan perhatikan perbedaannya. 

Dengan Menggunakan For 
import java.util.Scanner;
public class Menu {
  public static void main(String[] args) {
  Scanner input=new Scanner(System.in);
  int jum=0;
  double rata;
  garis();
  System.out.println("       MENU PILIHAN");
  garis();
  System.out.println("1. MENGHITUNG NILAI MAHASISWA");
  System.out.println("2. EXIT");
  System.out.println("");
  garis();

  System.out.print("ANDA PILIH NOMOR :");
  int pil=input.nextInt();
  switch(pil){
     case 1 :{
       garis();
       System.out.println("MENGHITUNG NILAI MAHASISWA");
       garis();
       System.out.print("MASUKAN JUMLAH MAHASISWA : ");
       int j=input.nextInt();
       for(int i=1;i<=j;i++)
       {
         System.out.print(i+". ");
         for(int n=1; n<=1; n++)
         {
           System.out.print("NPM\t  : ");
           String npm=input.next();
           System.out.print("   NAMA         : ");
           String nama=input.next();
           System.out.print("   JURUSAN      : ");
           String jurusan=input.next();
           System.out.print("   MATAKULIAH   : ");
           String matakuliah=input.next();
           System.out.print("   NILAI TUGAS  : ");
           int tugas=input.nextInt();
           System.out.print("   NILAI UTS    : ");
           int uts=input.nextInt();
           System.out.print("   NILAI UAS    : ");
           int uas=input.nextInt();
           jum=(tugas+uts+uas)/3;
           System.out.println("   NILAI RATA   : "+jum);
         }
           System.out.println(" ");
       }
       break;
     }
     case 2:{
           System.exit(0);
           break;
       }
           default:System.exit(0);
      }
    }
    static void garis (){
    System.out.println("===============================");        
  }
}

Dengan Menggunakan Array 

import java.util.Scanner;
public class Menu {
  public static void main(String[] args) {
  Scanner input=new Scanner(System.in);
  int i, jum=0;
  String[] NPM=new String[15];
  String[] NAMA=new String[25];
  String[] JUR=new String[25];
  String[] MK=new String[25];
  int[] TUGAS=new int[5];
  int[] UAS=new int[5];
  int[] UTS=new int[5];
  double rata;

  garis();
  System.out.println("       MENU PILIHAN");
  garis();
  System.out.println("1. MENGHITUNG NILAI MAHASISWA");
  System.out.println("2. EXIT");
  System.out.println("");
  garis();

  System.out.print("ANDA PILIH NOMOR : ");
  int pil=input.nextInt();
  switch(pil){
     case 1 :{
       garis();
       System.out.println("MENGHITUNG NILAI MAHASISWA (ARRAY)");
       garis();
       System.out.print("MASUKAN JUMLAH MAHASISWA : ");
       int j=input.nextInt();
       for(i=1; i<=j; i++)
       {
         System.out.print(i+". ");

           System.out.print("NPM\t  : ");
           NPM[i]=input.next();
           System.out.print("   NAMA         : ");
           NAMA[i]=input.next();
           System.out.print("   JURUSAN      : ");
           JUR[i]=input.next();
           System.out.print("   MATAKULIAH   : ");
           MK[i]=input.next();
           System.out.print("   NILAI TUGAS  : ");
           TUGAS[i]=input.nextInt();
           System.out.print("   NILAI UTS    : ");
           UTS[i]=input.nextInt();
           System.out.print("   NILAI UAS    : ");
           UAS[i]=input.nextInt();
           jum=TUGAS[i]+UTS[i]+UAS[i];
           rata=jum/3;
           System.out.println("   NILAI RATA  : "+rata);
           System.out.println(" ");
        }

        break;
     }
        case 2:{
          System.exit(0);
          break;
        }
          default:System.exit(0);
        }
    }
    static void garis (){
    System.out.println("===============================");
  }
}

Outputnya akan tampil seperti dibawah ini.


Catatan :

Ketika anda mengcompile programnya. Kemudian anda menginputkan NPM sampai NILAI UAS. Saya sarankan jangan menggunakan spasi. Kalau Anda penasaran apa yang akan terjadi, silakan dicoba menggunakan spasi.

 
Design by Free WordPress Themes | Bloggerized by Mahasewa - Premium Blogger Themes | Blogger Templates