Senin, 20 Juni 2011

ALIRAN KONTROL

ALIRAN KONTROL
Aliran kontrol dikenal juga dengan kalang memiliki kemampuan untuk pemilihan percabangan melalui suatu keputusan dan pengulangan. Java telah mengadopsi konstruksi seluruh aliran kontrol C tanpa pengurangan atau penambahan. Dibawah ini merupakan contoh konstruksi aliran kontrol Java :
Latihan 10
class ControlFlowTst   {
   public static void main(String args [ ])
   {
      int a = 1, b = 2, c = 3;
      System.out.println(“Seorang  “);
      if (a > 1)
         System.out.print(“wanita “);
      else
         System.out.print(“pria   “);
      System.out.print(“muda  “);
      switch (b)   {
         case 1 :
            System.out.print(“suka  “);
            break;
         case 2 :
            System.out.print(“senang  “);
            break;
         case 3 :
            System.out.print(“hobi  “);
            break;
         default :
            System.out.print(“akan  “);
         }
         System.out.print(“menyanyikan lagu  “);
         for (int i=0; i < c; i++)
            System.out.print(“la,  “);
         System.out.println(“dan  “);
         while (c--> 0)
            System.out.println(“hu,  “);
         do  {
            System.out.print(“all  “);
         }  while (c == 3);
         System.out.println(“sambil berjalan pulang. “);
   }
}

End Latihan 10
Keluaran program Latihan 10 tersebut adalah :
Seorang  pria  muda  senang   menyanyikan lagu  la, la, la, dan
hu, hu, hu, sambil berjalan pulang.
Dalam Latihan 10, kata kunci break dan continue tidak digunakan, namun penggunaan kedua kata kunci tersebut sama persis dengan C dengan sedikit tambahan dari Java yaitu : Java memungkinkan break dan continue multilevel ke label tertentu dan Java menghilangkan konstruksi aliran kontrol tunggal goto.
  

Minggu, 19 Juni 2011

EKSPRESI

Ekspresi adalah kombinasi operator, literal dan variabel yang dapat dievaluasi untuk menghasilkan nilai tertentu. Apabila dilihat dari definisinya, sebuah ekspresi bersifat rekursif, artinya ekspresi bisa terdiri dari subekspresi yang juga bisa mempunyai subekspresi lagi, sampai tak terhingga banyaknya. Kekuatan pemrogram intinya adalah dikarenakan kemampuannya dalam menggunakan matematika dan logika. Ekspresi merupakan alat utama untuk mengekspresikan matematika maupun logika.
Java telah mengadopsi fasilitas ekspresi handal milik C secara keseluruhan hanya dengan sedikit pengecualian.  Agar tidak tergantung dengan platform yang bersifat inernasional sesuai dengan tujuan Java, Tipe Java sedikit berbeda dengan tipe C. Tipe dan dasar yang dimiliki Java adalah sebagai berikut :
1.        byte :  Tipe data dasar yang merepresentasikan byte tunggal sebagai nilai 8 bit bertanda (signed). Tipe ini berguna untuk mengkonversikan karakter ASCII ke karakter UNICODE Java guna mengimplementasikan metode natif (native method) Metode natif adalah fungsi C yang digabungkan dengan program Java dan dipanggil dari program Java;
2.        boolean : Tipe data dasar yang hanya merepresentasikan dua nilai : true (benar) atau false (salah). Baik true maupun false juga merupakan kata kunci. Tipe data boolean hanya memerlukan penyimpanan sebesar 1 bit. Tipe boolean pada Java mengeliminiasi perlunya #define yang umum digunakan pada C dan C++ untuk mendefinisikan true dan false yang masing-masing melambangkan 1 dan 0.
3.        Char : Tipe data dasar digunakan untuk mendeklarasikan variabel karakter. Karakter Java berbeda dengan karakter ASCII. Java menggunakan himpunan karakter UNICODE, yang merupakan nilai 16 bit tak bertanda (unsigned). Ukuran semua jenis tipe pada Java ditentukan secara eksplisit. Karean Java menggunakan representasi “mesin virtual” pada interpreter, bahasa Java menentukan ukuran eksak dalam bit dari semua tipe dasar. hal ini menyebabkan portabilitas yang tinggi karena tidak ada perbedaan ukuran tipe data dasar di berbagai platform. Ini juga menyebabkan makro sizeof() tidak diperlukan lagi.
4.        double : Tipe data dasar digunakan untuk mendeklarasikan variabel double. Variabel double pada Java mempunyai panjang 64 bit dan mengikuti standar Institute of Electronic and Electrical Engineering (IEEE) 754.
5.        float : Tipe data dasar digunakan untuk mendeklarasikan variabel float. Variabel float pada Java mempunyai panjang 32 bit dan mengikuti ketentuan IEEE 754.
6.        int : Tipe data dasar digunakan untuk mendeklarasikan variabel bilangan bulat, Variabel int pada Java merupakan nilai 32 bit bertanda.
7.        long : Tipe data dasar digunakan untuk mendeklarasikan variabel bilangan bulat panjang. Variabel long pada Java merupakan nilai 64 bit bertanda.
8.        short : Tipe data dasar digunakan untuk mendeklarasikan variabel bilangan bulat pendek. Variabel short pada Java adalah nilai 16 bit bertanda.
Selain penambahan dua tipe baru, boolean dan byte, semua tipe Java mempunyai ukuran yang tetap dan Java tida tergantung platform. Ekspresi Java mengkombinasikan tipe dan operator Java dengan beberapa cara seperti dibawah ini :
Latihan 9
Class ExpressionTst   {
   Public static void main(String args[ ])
   {
      System.out.println(“Arithmetic expressions”);
      float fahr = 60.0f, celsius = 0;
      celsius = (5.0f/9.0f) * (fahr-32.0f);
      System.out.println(“fahrenheit :  “  +  fahr  +  “  celsius :  “+                     celsius);
      System.out.println(“ “);
      System.out.println(Relational and logical expressions”);
      System.out.println(fahr > 20.0);
      /* System.out.println ((fahr < 20.0) && (1));
           adalah legal pada C akan tetapi ILEGAL pada Java. */
      System.out.println((fahr < 20.0) && (true)));
      System.out.println(“ “);
      System.out.println(“Casts and conversions ini expressions”);
      int age=10;
      float gpa = age;
      double salary=30000.3;
      System.out.println(gpa + salary);
      System.out.println((int) (gpa + salary));
      System.out.println(“ “);
      System.out.println(“Bitwise expressions”);
      System.out.println(100 >> 1);  // dibagi dengan 2
      System.out.println(age << 1);  // dikalikan dengan 2
      int memoryBlock = (12 + 7) & ~7;
      System.out.println(“12 rounded to a power of 8 is “ +                      memoryBlock);
      System.out.println(“ “);
      System.out.println(“Order of Evaluation in Expressions”);
      int a = 5 & 1 + 2;
      System.out.println(a);
      a = (5 & 1) + 2;
      System.out.println(a);
   }
}


Keluaran program dalam Latihan 9 tersebut diatas adalah :
Arithmetic expressions
fahrenheit : 60 celsius : 15.5556
Relational and logical expressions
true
false
Cast and conversions in expressions
30010.3
30010
Bitwise expressions
50
20
12 rounded to a power of 8 is 16
Order of Evaluation in Expressions
1
3


  

Sabtu, 18 Juni 2011

PENGENAL

Permrogram perlu untuk mendefinisikan pengenal (identifier) yang akan digunakan untuk memberi label kepada variabel, kelas, fungsi (metode), paket serta antarmuka (interface) pada sebuah program. Aturan pengenal Java sama dengan aturan yang terdapat pada C. Latihan 8 dibawah ini menunjukan aturan-aturan yang berhubungan dengan pengenal :
Latihan 8
class IdentifierTst   {
   public static void main (String args [ ])
   {
      //  1) Aturan C, nama dapat terdiri dari huruf dan digit,
      //       tetapi HARUS dimulai dengan huruf
      int legal_name1;
      //  int 1_illegal;        ILEGAL
      //  2) Aturan C, garis bawah dihitung sebagai huruf
      int  _123_name
      //  2a) Java menambahkan aturan terhadap aturan 2 diatas, tanda $ dihitung sbg huruf.
      int  $123_name1;
      //  3) Aturan C, huruf kapital berbeda dengan huruf kecil.
      int  Legal_name1;
      //  4) Java memperbolehkan pengenal lebih dari 32 karakter
      int  The_number_of_dark_haired_children_in_family;
      }
{

Pengenal yang panjang dan deskriptif akan meningkatkan pemeliharaan kode maupun kemudahan dalam pembacaan kode.



  

Jumat, 17 Juni 2011

KATA KUNCI DAN OPERATOR

KATA KUNCI DAN OPERATOR
Kata kunci yang terdapat pada Java dan C

 Hal terpenting tentang kata kunci yang terdapat pada Java maupun C adalah bahwa kata kunci inilah yang akan membentuk bagian terbesar dari pemrograman kita. Kata kunci ini, yang dikombinasikan dengan operator, membentuk mayoritas pernyataan-pernyataan yang mengisi fungsi-fungsi. Kerangka kerja yang digunakan Java mungkin berorientasi objek namun implementasinya sangat serupa dengan C.
Operator dibagi menjadi beberapa jenis, yaitu : matematika, felasional, logika dan manipulasi bit (bitwise). Java mendukung semua operator C yang termasuk dalam masing-masing kategori tersebut. Berikut ini adalah daftar operator yang terdapat pada Java maupun C :
+  -  !  %  ^  &  *  ~  /  >  <
( )  { }  [ ]  ;  ?  :  ,  .  =
++  --  ==  <=  >=  !=  <<  >>
+=  -=  *=  /=  &= 
^=  %=  <<=  >>=  &&
Berikut ini adalah program sederhana penggunaan beberapa operator Java :
Latihan 7
import java.io.DataInputStream;
import java.lang.String;
import java.io.IOException;
class leapYear  {
   public static void main(String args[ ])
   {
      DataInputStream dis = new DataInputStream(System.in);
      String Syear=null;
      System.out.print(“Enter a year :   “);
      System.out.flush();
      try   {
         Syear = dis.readLine();
      }  catch (IOException ioe)
      {
         System.out.println(ioe.toString() );
         System.exit(1);
      }
      long year = Long.parseLong(Syear);
      System.out.println(“year is “ + year);
      if (  ( (year % 4 == 0) && (year % 100 !=0) )
             (year % 400 == 0)  )
         System.out.println(year + “ is a leap year!”);
            else
         Systemj.out.println(year + “ is NOT a leap year.”);
      }
   }

Berikut ini adalah keluaran dari Latihan 7 :
Enter a year :  1992
year is 1992
1992 is a leap year
Latihan 7 memungkinkan kita memasukan tahun dan kemudian dengan menggunakan operator matematika dan logika  Java, program menentukan tahun tersebut adalah tahun kabiset atau bukan. Ekspresi kunci dari program ini adalah :
      if (  ( (Year % 4 == 0) && (year % 100 != 0) )      (year % 400 == 0)  )
yang dapat diterjemahkan menjadi : Jika tahun dapat dibagi DAN tahun TIDAK dabat dibagi 100 atau jika tahun dapat dibagi 400 MAKA tahun tersebut adalah tahun kabiset. Operator modulus digunakan untuk menentukan suatu bilangan habis di bagi dengan bilangan lain atau tidak, sedangkan operator logika menyediakan logika boolean (DAN, ATAU, dsb)

  

Rabu, 15 Juni 2011

Struktur Program

Pada bentuk yang paling sederhana, program Java berisi kelas-kelas dengan satu kelas di antaranya mengimplementasikan metode main(). Kelas-kelas Java bisa disimpan pada beberapa file. Masing-masing file kode sumber ini disimpan pada file dengan akhiran “.java”. Kelas berisi anggota data dan metode. Metode kelas berisi deklarasi tipe data dan pernyataan. Latihan 6 dibawah ini adalah kerangka program Java yang berdiri sendiri.
Latihan 6
package mystech.util;             /* Opsional – Kelas file ini mungkin milik sebuah paket*/
import java.util.vector;           /* Opsional – Mengimpor kelas-kelas lain*/
interface InputOutput  {          /* Opsional – Antarmuka */
   void read();
   void write();
   }
/* Beberapa kelas dalam satu file – Opsional */
class aClass  {
}
class mainClass  {
   public static void main(String args[])
   {
   }
}

·  Pernyataan package mendeklarasikan kelas-kelas pada unit kompilasi ini sebagai bagian dari paket yang dinamakan mystech.util. Hal ini berarti bahwa semua kelas pada file ini sebenarnya mempunyai nama mystech.util <namakelas>.  Keuntungan penggunaan paket adalah dimungkinkannya namespace sebuah sebuah program di bagi menjadi beberapa komponen fungsional. Dengan demikian, konflik nama yang biasa terjadi saat mengimpor kelas dari pihak ketiga dapat dihindari.
·  Komentar Java menggunakan sintaks komentar yang sama dengan ANSI C (/* ... */), namun Java juga menggunakan dua sintaks komentar tambahan :
     // Komentar bergaya C++ untuk komentar satu baris.
    //** ... */ Bentuk komentar khusus yang mendahului deklarasi dan natinya digunakan untuk membangkitkan dokumentasi program secara otomatis.
· Pernyataan import sama dengan pernyataan praprosesor #include pada C. Tujuan pernyataan ini adalah menginstruksikan interpreter untuk memuat kelas yang berada pada unit kompilasi lain.
·      Pernyataan interface merupakan konstruksi berorientasi objek.
·     Deklarasi kelas mendeklarasikan beberapa kelas dalam sebuah unit kompilasi. Kelas-kelas merupakan komponen primer dan penting pada program Java. Tanpa sekurang-kurangnya satu kelas, kita tidak akan mempunyai program Java.
·   Metode main. Setiap program Java yang beridiri sendiri selalu memerlukan fungsi main sebagai titik awalnya. Meskipun disebutkan sebagai fungsi main, sebenarnya secara teknis lebih benar menyebutnya dengan “metode main”. Java tidak mendukung fungsi yang terpisah, melainkan hanya mendukung metode kelas. Perbedaannya adalah bahwa metode merupakan fungsi yang diletakkan dalam sebuah kelas. Ini merupakan perbedaan lain yang dikarenakan Java telah mengambil jalur berorientasi objek. Fungsi main Java harus mengikuti format berikut :
     public static void main(String args)
     {
        ...
     }
Fungsi dengan format ini merupakan fungsi yang akan dicari kompiler Java untuk dieksekusi pertama kali. Di samping itu, fungsi ini jugalah yang akan menerima argumen baris perintah dari sistem operasi. Setelah main() selesai dieksekusi, program akan terhenti dan kontrol dikembalikan ke sistem operasi
  

Minggu, 12 Juni 2011

LINGKUNGAN JAVA

LINGKUNGAN JAVA
Lingkungan Java yang ada saat ini :
ð  DUKUNGAN BAHASA : Kumpulan kelas dan metode yang mendukung fasilitas bahasa yang sangat bagus pada Java seperti string, array, fungsionalitas tak tergantung sistem, thread, dan eksepsi;
ð  UTILITAS : Kumpulan kelas yang menyediakan fungsi-fungsi utilitas seperti pembangkit bilangan acak, fungsi-fungsi tanggal dan waktu serta kelas-kelas penyimpanan seperti kelas Vector dan Hashtable.  Latihan 5 mendemonstrasikan penggunaan kelas Vektor;
ð  MASUKAN/KELUARAN : Kumpulan kelas yang mengambil masukan dari berbagai sumber dan memanipulasi masukan tersebut dengan sejumlah cara serta menampilkannya ke berbagai sumber dengan cara yang bervariasi. Kelas-kelas ini meliputi kelas-kelas filter, pengakses file secara sekuensial maupun acak dan puluh metode untuk membaca dan menulis semua jenis tipe data;
ð  JARINGAN : Kumpulan kelas yang digunakan untuk penghubung ke komputer-komputer lain di jaringan lokal maupun internet. Kelas-kelas ini meliputi Socket, Internet Address dan pemroses URL (Uniform Resource Locator);
ð  ABSTRACT WINDOW TOOLKIT (AWT) : Kumpulan kelas yang mengimplementasikan antarmuka pengguna grafis (GUI : Graphical User Interface) yang tidak tergantung terhadap platform. Latihan 5 menunjukan penggunaan beberapa kelas AWT;
ð  APPLET : Kelas yang memungkinkan membuat program Java yang nantinya didownload dari halaman Web dan dijalankan di browser klien seperti HotJava dan Netscape.
Latihan 5
// Kelas-kelas GUI
import java.awt.Frame;
import java.awt.TextField;
import java.awt.Panel;
import java.awt.Button;
import java.awt.GridLayout
import java.awt.Event;
import java.awt.color;
import java.awt.Label;
// Kelas book kita
Import book;
// Kelas utilitas
Import java.util.Vector;
Class bookWindow extends Frame {
   TextField title;
   TextField author;
   TextField publisher;
   Vector theBooks;
   Int currentIdx;
   bookWindow() {
      super(“Book Shelf”);
      // Menginisialisasi array yang dimensinya dapat mengembang
      theBooks = new Vector(3);
      currentIdx = 0;
      Panel centerPanel = new Panel();
      centerPanel.setLayout(new GridLayout(0, 2));
      centerPanel.add(new Label(“                             Title”));
      centerPanel.add(author = new TextField(20));
      centerPanel.add(new Label(“                             Author”));
      centerPanel.add(author = new TextField(20));
      centerPanel.add(new Label(“                             Publisher”));
      centerPanel.add(publisher = new TextFiled(20));
      add(“center”, centerPanel);
      Panel bottomPanel = new Panel();
      bottomPanel.add(new Button(“store”));
      bottomPanel.add(new Button(“clear”));
      bottomPanel.add(new Button(“prev”));
      bottomPanel.add(new Button(“next”));
      bottomPanel.add(new Button(“exit”));
      add(“South”, bottomPanel);
      move(200, 100);
      pack();
      show();
   }
   Public boolean handleEvent(Event evt) {
      If (evt.id == Event.ACTION_EVENT)
      {
         If (“store”.equals(evt.arg))
         {
            Book aBook = new book(title.getText() ,
            Author.getText() ,
            Publisher.getText());
            theBooks.addElement(aBook);
            currentIdx = theBooks.size();
            return true;
         }
         If (“clear”.equals(evt.arg))
         {
            Title.setText(“ ”);
            Author.setText(“ “);
            Publisher.setText(“ “);
            Return ture;
         }
         If (“prev”.equals(evt.arg))
         {
            If (currentIdx >0)
            {
               Book aBook = (book) theBooks.elementAt(--currentIdx);
               title.setText(aBook.getTitle());
               author.setText(aBook.getAuthor());
               publisher.setText(aBook.getPublisher());
            }
            Return true;
         }
         If (“next”.equals(evt.arg))
         {
            If (currentIdx < (theBooks.size() -1))
            {
               Book aBook = (book) theBooks.elementAt(++currentIdx);
               Title.setText(aBook.getTitle());
               Author.setText(aBook.getAuthor());
               Publisher.setText(aBook.getPublisher());
            }
            Return ture;
         }
         If (“exit”.equals(evt.arg))
         {
            System.exit(0);
         }
      }
}
Class bookGUI {
   Public static void main(String args[ ])
   {
      New bookWindow();
   }
}
Keluaran Latihan 5 seperti ditunjukan dibawah ini :
Latihan 5 memerlukan pemahaman tentang dasar-dasar kelas AWT dan kelas Vector. Tujuan program ini adalah menampilkan jendela yang dengannya bisa memasukkan maupun menampilkan record yang disimpan pada kelas Vector.
Semua fungsionalitas berasal berasal dari GUI, dan ini merupakan alasan mengapa fungsi main pada Latihan 5 berisi konstruksi kelas Frame (extends merupakan kata kunci untuk pewarisan). Kelas Frame adalah komponen GUI yang mengimplementasikan jendela dengan bingkai. Jendela tidak hanya berupa empat titik sudut dengan bingkai. Jendela juga merupakan kontainer yang dapat memuat komponen GUI lainnya (widget bagi pemrogram X Windows). Oleh karena itu perlu membuat komponen grafis lain dan menambahkannya ke frame dengan metode add().
Semua GUI ini diprogram dengan model pemrograman event-driven. Model event-driven menyusun program sebagai serangkaian penangan kejadian yang akan menanggapi kejadian-kejadian yang dibangkitkan oleh pengguna (seperti, pengubahan posisi mouse, penekanan tombol, pemilihan menu, dsb).