STRUKTUR BAHASA JAVA Secara garis besar struktur dari bahasa Java terdiri dari class declaration, class body, constructor, method. Pada gambar berikut ini mengilustrasikan struktur atau diagram dari aplikasi Java. Struktur Penulisan Aplikasi Java Class Declaration Class Declaration merupakan bagian yang sangat penting dan harus ada pada setiap aplikasi java. Class merupakan cerminan dari sebuah file java sehingga nama class harus sesuai dengan nama file java yang disimpan. Misalnya nama class dari sebuah aplikasi java adalah Stack, maka file java tersebut harus disimpan dengan nama Stack.java. Pada contoh di atas adalah penulisan minimum dari sebuah class Java. Standarisasi penulisan Class adalah sebagai berikut ; [modifier] class nameClass [extends SuperClass] [implements Interface]{ .... Class Body } Keterangan : modifier adalah keyword untuk menentukan sifat dari class tersebut. keyword ini bersifat optimal sehingga tidak wajib untuk dituliskan. Modifier ini memiliki tiga buah nilai yaitu public, abstract, dan final. Secara default nilai modifier dari sebuah class adalah public, jadi apabila nilai modifier tidak dituliskan maka akan bernilai public. public, class ini bersifat dapat diakses oleh class lain yaitu dengan cara membuat instansiasi terhadap class ini. abstract, class ini bersifat tidak dapat diakses oleh class lain dengan kata lain tidak dapat dilakukan instansiasi oleh class lain. final, class ini bersifat tidak mengiijinkan untuk membuat sub class di dalam body class tersebut. class adalah keyword yang harus dituliskan. nameClass adalah keyword yang merupakan nama dari file java tersebut. Nilai nameClass ini harus sama dengan nama dari file tersebut. extends SuperClass, adalah keyword untuk melakukan perluasan atau menyisipkan class lain yang dijadikan sebagai super class ke dalam class ini. SuperClass adalah nama dari class yang akan disisipkan. Dengan kata lain apabila class A melakukan extends terhadap class B maka class B merupakan bagian dari class A dan semua yang ada di class B dapat diakses oleh class A. implements Interface, adalah keyword yang digunakan untuk mengimplementasikan interface dengan class. Interface bukan sebuah class tetapi merupakan object yang didalamnya terdapat koleksi methode dan konstanta yang dapat digunakan oleh sebuah class yang telah mengimplementasikan interface tersebut. Contoh penulisan class secara lengkap. public class ClassA extends ClassB implement MouseListener{ ... body class } Declaration Variable Declaration Variable adalah bagian dari body class yang bertujuan untuk mendeklarasikan sebuah variabel yang kemudian dapat digunakan di dalam methode yang ada pada body class. Declaration Variabel ini harus dilakukan di dalam body class. String data; Contoh kode di atas adalah cara menuliskan deklarasi variabel. Dengan melakukan pendeklarasian variabel, maka pada proses-proses berikutnya telah terdapat variabel dengan nama data yang memiliki tipe data berupa String. Variabel-variabel yang dapat digunakan adalah variabelvariabel yang telah dideklarasikan. Constructor Constructor adalah object yang nantinya akan digunakan pada saat class tersebut diinstansiasi oleh class lain. Di dalam satu class boleh terdapat lebih dari satu constructor. Semua class harus memilki constructor yang nantinya digunakan untuk instansiasi. Nama dari constructor ini harus sama dengan nama dari class utamanya. Misalkan nama dari class utama adalah Stack, maka nama constructor adalah Stack. public Stack(){ items = new Vector(10); } Dari contoh constructor di atas, apabila sebuah class ini melakukan instansiasi terhadap class Stack maka dapat dilakukan dengan cara sebagai berikut : new Stack(); Java mendukung untuk membuat lebih dari satu constructor di dalam sebuah class dengan nama yang sama, yang harus membedakan antara satu constructor dengan constructor yang lain adalah nilai input dari constructor tersebut. Berikut ini contoh constructor yang dapat ditambahkan di dalam sebuah class yang telah terdapat constructornya. public Stack(int nilaiInput){ items = new Vector(nilaiInput); } Dari contoh constructor di atas, apabila sebuah class ini melakukan instansiasi terhadap class Stack maka dapat dilakukan dengan cara sebagai berikut : new Stack(10); Berdasarkan dua contoh di atas dapat ditarik kesimpulan bahwa nilai variabel items dari contoh pertama sama dengan contoh yang kedua. Pada contoh yang pertama, nilai variabel items sudah dapat dipastikan sedangkan untuk contoh yang kedua, nilai variabel items masih ditentukan oleh nilai input dari construktor Stack. Dengan kata lain pada contoh kedua nilainya masih bisa bervariasi tergantung dari nilai yang didapatkan oleh construktor Stack. Method Method dapat diartikan sebagai bagian dari sebuah class yang didalamnya terdapat proses-proses yang diinginkan. Dengan adanya method maka penanganan sebuah proses lebih terstruktur dan mempermudah seorang programmer untuk memahami alur dari program yang dibuat. Sebuah method akan diproses isinya apabila method tersebut dipanggil. Penulisan dari sebuah methode dapat dilihat pada Gambar di bawah ini. Gambar 1.2. Struktur Penulisan Method Seperti halnya pada Class, suatu method memilki dua bagian yang penting yaitu method declaration dan method body. Method Declaration method declaration mendefenisikan semua atribut seperti acces level, return type, method name, dan argumen. Hal ini dapat Anda lihat seperti pada Gambar 1.3. di bawah ini. Gambar 1.3. Method Declaration Access Level adalah hak akses yang diberikan dari sebuah method. Nilai dari hak akses ini digunakan untuk melakukan akses terhadap method tersebut. Apabila sebuah method memilki nilai hak akses adalah public maka method ini dapat diakses oleh method yang lainnya bahkan dari class yang lain. Secara default nilai Access Level dari sebuah method adalah public, jadi apabila nilai Access Level tidak dituliskan maka akan bernilai public. Adapun nilai-nilai dari hak akses (Access Level) dari method adalah sebagai berikut : public, methode dengan hak akses public dapat diakses oleh semua class tanpa terkecuali. Dengan kata lain memberikan hak akses penuh. protected, methode dengan hak akses protected dapat diakses oleh semua class di dalam package yang sama. Methode ini dapat juga diakses oleh class lain yang berbeda package asalkan merupakan subclass dari class tersebut dan diakses melalui inherintansi (dengan melakukan extends). private, methode dengan hak akses private hanya dapat diakses oleh methode yang terdapat di dalam satu class yang sama, dengan kata lain tidak dapat diakses oleh class yang lain. Return Type adalah nilai kembalian dari sebuah methode. Nilai default dari return type dalah void. Apabila sebuah methode memiliki nilai kembalian selain void maka pada akhir methode harus diberikan nilai return yang sesuai dengan return type. misalnya sebuah methode memiliki return type adalah String maka diakhir dari methode tersebut harus memiliki nilai return berupa String. Contoh : public String namaMethode(){ String nilaiKembalian = “ini nilai kembalian”; ........ // isi methode return nilaiKembalian; } nilai return dapat diartikan sebagai nilai kembalian dari sebuah methode apabila methode tersebut dipanggil oleh class atau methode yang lain. Methode Name adalah nama dari sebuah methode. Penamaan sebuah methode dianggap benar/sah apabila diawali oleh huruf, karakter mata uang, atau underscore ( _ ), sedangkan penamaan methode dianggap salah/tidak sah apabila mengandung spasi, simbol @, dan diawali dengan angka. Contoh : Penamaan methode yang benar/sah ini_methode iniBenar iniJugaBenar$ Penamaan methode yang salah/tidah sah 23Salah (salah karena diawali dengan angka) juga@salah (salah karena mengandung simbol @) pasti salah (salah karena mengandung spasi) Arguments adalah nilai yang diterima oleh sebuah methode. Dengan adanya nilai arguments ini secara otomatis variabel yang terdapat pada arguments akan terbentuk. Contoh : public void wahana(String nilaiArgm){ String nilaiBaru = nilaiArgm; } Dari contoh di atas, nilai dari variabel nilaiArgm secara otomatis telah terbentuk dan dapat digunakan di dalam methode tersebut. Method Body Method Body merupakan isi dari sebuah methode yang di dalamnya terdapat proses-proses yang diinginkan. Di dalam method body, Anda dapat mebuat sebuah object, tetapi object tersebut hanya dapat digunakan pada methode tersebut atau apabila methode tersebut dipanggil oleh methode yang lainnya. Berikut ini adalah contoh dari method body yang terdapat pada methode isEmpty yang ditunjukkan dengan tulis tebal. class Stack { static final int STACK_EMPTY = -1; Object[] stackelements; int topelement = STACK_EMPTY; boolean isEmpty() { if (topelement == STACK_EMPTY) return true; else return false; } }