STUDY CLUB JAVA Pertemuan I [PENGENALAN PROGRAM JAVA] Apakah Java? Java adalah bahasa pemrograman berorientasi objek yang dikembangkan oleh Sun Microsystems sejak tahun 1991. Bahasa ini dikembangkan dengan model yang mirip dengan bahasa C++ dan Smalltalk, namun dirancang agar lebih mudah dipakai dan platform independent, yaitu dapat dijalankan di berbagai jenis sistem operasi dan arsitektur komputer. Bahasa ini juga dirancang untuk pemrograman di Internet sehingga dirancang agar aman dan portabel. Platform Independent Platform independent berarti program yang ditulis dalam bahasa Java dapat dengan mudah dipindahkan antar berbagai jenis sistem operasi dan berbagai jenis arsitektur komputer. Aspek ini sangat penting untuk dapat mencapai tujuan Java sebagai bahasa pemrograman Internet di mana sebuah program akan dijalankan oleh berbagai jenis komputer dengan berbagai jenis sistem operasi. Sifat ini berlaku untuk level source code dan binary code dari program Java. Berbeda dengan bahasa C dan C++, semua tipe data dalam bahasa Java mempunyai ukuran yang konsisten di semua jenis platform. Source code program Java sendiri tidak perlu dirubah sama sekali jika Anda ingin mengkompile ulang di platform lain. Hasil dari mengkompile source code Java bukanlah kode mesin atau instruksi prosesor yang spesifik terhadap mesin tertentu, melainkan berupa bytecode yang berupa file berekstensi .class. Bytecode tersebut dapat langsung Anda eksekusi di tiap platform yang dengan menggunakan Java Virtual Machine (JVM) sebagai interpreter terhadap bytecode tersebut. JVM sendiri adalah sebuah aplikasi yang berjalan di atas sebuah sistem operasi dan menerjemahkan bytecode program Java dan mengeksekusinya, sehingga secara konsep bisa dianggap sebagai sebuah interpreter. Dengan cara ini, sebuah program Java yang telah dikompilasi akan dapat berjalan di platform mana saja, asalkan ada JVM di sana. Kompiler dan interpreter untuk program Java berbentuk Java Development Kit (JDK) yang diproduksi oleh Sun Microsystems. JDK ini dapat didownload gratis dari situs java.sun.com. Interpreter untuk program Java sendiri sering juga disebut Java Runtime atau Java Virtual Machine. Interpreter Java, tanpa kompilernya, disebut Java Runtime Environment (JRE) dapat didownload juga di situs yang sama. Untuk mengembangkan program Java dibutuhkan JDK, sementara jika hanya ingin menjalankan bytecode Java cukup dengan JRE saja. Namun untuk mengeksekusi applet (sebuah bytecode Java juga) Anda biasanya tidak perlu lagi mendownload JRE karena browser yang Java-enabled telah memiliki JVM sendiri. Library Selain kompiler dan interpreter, bahasa Java sendiri memiliki library yang cukup besar yang dapat mempermudah Anda dalam membuat sebuah aplikasi dengan cepat. Library ini sudah mencakup untuk grafik, desain user interface, kriptografi, jaringan, suara, database, dan lain-lain. Object Oriented Java adalah bahasa pemrograman berorientasi objek. Pemrograman berorientasi objek secara gamblang adalah teknik untuk mengorganisir program dan dapat dilakukan dengan hampir semua bahasa pemrograman. Namun Java sendiri telah mengimplementasikan berbagai fasilitas agar seorang programer dapat mengoptimalkan teknik pemrograman berorientasi objek. Materi : 1. 2. 3. 4. Variabel Tipe data Literal Operator Program Java umumnya dikerjakan dalam 5 tahapan 1. Edit Programmer menulis program dan menyimpannya di disk 2. Compile Compiler membentuk bytecodes dari program 3. Load Class loader meload bytecodes ke memori 4. Verify Verifier memastikan bytecodes tidak mengganggu sistem sekuriti Java 5. Execute Interpreter menerjemahkan bytecodes ke bahasa mesin Variabel Dalam Java Variabel.java Program penggunaan Variabel dalam Java class Variabel { public static void main(String args[]) { System.out.println("\nContoh Penggunaan variable\n"); //ini salah satu contoh variable di dalam java int nilai = 12; char karakter = 'b'; String tulisan = "I love Java"; double pecahan=123.345; Float pecah = new Float(14.353); System.out.println("variable int = "+nilai); System.out.println("variable char = "+karakter); System.out.println("variable String = "+tulisan); System.out.println("variable double = "+pecahan); Nilai = 100; // variable nilainya bisa diubah System.out.println("variable int = "+nilai); } } Tipe Data Dalam Java class TipeData { public static void main(String[] args) { long data1 = 263; int data2 = 231; short data3 = 214; byte data4 = 127; double data5 = 4.9; float data6 = (float) 1.4; // tipe data pecahan // tipe data pecahan char data7 = 'a'; boolean data8 = true; System.out.println("Nilai Long : "+ data1); System.out.println("Nilai Int : "+ data2); System.out.println("Nilai Short : "+ data3); System.out.println("Nilai Byte : "+ data4); System.out.println("Nilai Double : "+ data5); System.out.println("Nilai Float : "+ data6); System.out.println("Nilai Char : "+ data7); System.out.println("Nilai Boolean : "+ data8); } } Literal Dalam Java class Literal { public static void main(String[] args) { String teks1 = "Literal String"; String teks2 = "Baris 1\nBaris 2"; String teks3 = "\"Tanda petik ganda\" dan tanda backslash \\"; String teks41 = "\'Tanda petik satu\' dan tanda carriage return\rTesting"; String teks42 = "\'Tanda petik satu\' dan tanda carriage return\r\nTesting Tanda pada 42"; String teks43 = "\'Tanda petik satu\' dan tanda carriage return\n\rTesting Tanda pada 43"; String teks5 = "\fJakarta Kota Metropolitan\tPindah Tabulasi\bVarBackSpace"; System.out.println("Nilai Teks1 : "+teks1); System.out.println("Nilai Teks2 : "+teks2); System.out.println("Nilai Teks3 : "+teks3); System.out.println("Nilai Teks4 : "+teks41); System.out.println("Nilai Teks4 : "+teks42); System.out.println("Nilai Teks4 : "+teks43); System.out.println("Nilai Teks5 : "+teks5); char teks1 = '\141'; String teks2 = "Nilai : \141"; char teks3 = 'a'; char teks4 = '\u0061'; System.out.println("Nilai Teks1 : " + (char) teks1); System.out.println("Nilai Teks2 : " + teks2); System.out.println("Nilai Teks3 : " + (int) teks3); System.out.println("Nilai Teks3 char : " + (char) teks3); } } Operator Aritmatika dan Relasi Operator.java Program Operator Aritmatika dalam Java class Operator{ public static void main(String args[]) { int x = 15; int y = 4; System.out.println("Aritmatika"); System.out.println("Nilai x+y : " +(x+y)); System.out.println("Nilai x-y : " +(x-y)); System.out.println("Modulus"); System.out.println("Hasil " +bilangan+ " % 4 = " +(bilangan % 4)); System.out.println("Hasil " +bilangan+ " % 9 = " +(bilangan % 9)); System.out.println("Relasion dan Equality"); System.out.println("a > b = " +(a>b)); System.out.println("a < b = " +(a<b)); System.out.println("a = b = " +(a==b)); System.out.println("a != b= " +(a!=b)); x = ~10; System.out.println("Nilai negasi x : "+x); x = 170 & 34; System.out.println("Nilai and : "+x); x = 170 | 34; System.out.println("Nilai or : "+x); x = 170 ^ 34; System.out.println("Nilai xor : "+x); x = 1170; y = x >> 1; System.out.println("Nilai geser kanan : "+x); x = -1170; y = x >> 1; System.out.println("Nilai geser kanan neg : "+x); x = 1170; y = x >>> 1; System.out.println("Nilai geser kanan 1 bit 0 : "+x); x = -1170; y = x >>> 1; System.out.println("Nilai geser kanan 1 bit 0 neg : "+x); x = 1170; y = x << 1; System.out.println("Nilai geser kiri : "+x); x = 1073742994; y = x << 1; System.out.println("Nilai geser kiri : "+x); } } Operator Kondisi (?:) Kondisi.java Program menggunakan bentuk kondisi (?:) class Kondisi{ void tampil_true(){ System.out.println("Kondisi benar "); } void tampil_false(){ System.out.println("Kondisi salah "); } public static void main(String args[]){ Kondisi benar = new Kondisi(); boolean kondisi; int a, b; a = 5; b = 7; //operator ? -> (kondisi)?jika benar:jika salah kondisi = (a < b)?true:false; if(kondisi) benar.tampil_true(); else benar.tampil_false(); } } Pertemuan II [ Kondisi dan Perulangan ] 1. 2. 3. 4. 5. Struktur kontrol i if-else switch loopingl break dan continue Untuk mengendalikan aliran program di dalam Java dapat digunakan kata kunci if dan switch. Sedangkan untuk perulangan dapat digunakan for, do-while dan while. Dengan if, Anda bisa menentukan bahwa sebuah blok program akan dijalankan jika kondisi tertentu terpenuhi. Dengan switch, Anda bisa menentukan blok program mana yang akan dijalankan berdasarkan nilai dari sebuah variable. Dengan for, Anda bisa menentukan agar sebuah blok program dijalankan beberapa kali. Dengan do-while, Anda bisa menentukan agar sebuah program dijalankan, lalu dijalankan kembali berulang ulang selama kondisi tertentu masih terpenuhi. Dengan while, Anda bisa menentukan agar sebuah blok program dijalankan jika sebuah kondisi tertentu terpenuhi, dan dijalankan kembali berulang ulang selama kondisi tersebut masih terpenuhi. Struktur Kontrol if dan if-else AplikasiIfElse.java Program memeriksa akar – akar persamaan public class AplikasiIfElse { public static void main(String[] args) { double a = 4; double b = -13; double c = -12; double D = b*b - 4*a*c; double x1, x2; System.out.println("Persamaan kuadrat a*x^2+b*x+c=0, di mana"); System.out.println("a = " + a); System.out.println("b = " + b); System.out.println("c = " + c); System.out.println("dengan menerapkan rumus ABC diketahui bahwa : "); if(D<0) System.out.println("Akar-akar persamaan imaginer."); else if(D==0) { System.out.println("Akar-akar persamaan nyata tetapi kembar."); x1 = -b/(2*a); System.out.println("x1 = x2 = " + x1); } else { System.out.println("Akar-akar persamaan nyata dan berbeda."); x1 = (-b+Math.sqrt(D))/(2*a); x2 = (-b-Math.sqrt(D))/(2*a); System.out.println("x1 = " + x1 + " x2 = " + x2); } } } Struktur Kondisi Switch-case TestSwitch.java Program mengecek nama bulan dan tahunnya class TestSwitch { public static void main(String[] args) { int bulan, year; bulan = 1; year = 2002; switch(bulan) { case 1: switch(year) { case 2002 : System.out.println("Bulan Januari tahun 2002"); break; case 2003 : //... } case 2: //... default: //default... } } } Struktur Kontrol Perulangan for, while dan do-while Looping.java Program Perulangan menggunakan for, while dan do-while class Looping { public static void main(String args[]){ int i; //perulangan for for(i=0;i<5;i++){ System.out.println("Hello, Welcome to My Java"); } System.out.println("\n"); //perulangan while i=0; while(i<5){ System.out.println("Java, Bikin Hidup Lebih Hidup"); i++; } System.out.println("\n"); //perulangan do - while i=0; do { System.out.println("Java, Write Once Run Anywhere"); i++; } while(i<5); } } Break dan Continue BreakContinue.java Program penggunaan perintah break dan continue dalam Java class BreakNews { public static void main(String args[]){ for(int i=0;i<10;i++){ if(i==5) continue; System.out.println("Isi dari variable i yang ke : "+i); if(i==8) break; } } } Demo Faktorial Faktor.java Program menghitung factorial bilangan menggunakan for class DemoFaktorial { public int factorial(int n) { if(n==1) return 1; return n*factorial(n-1); } public static void main(String[] args) { DemoFaktorial hitung = new DemoFaktorial(); for(int i=1;i<=10;i++) System.out.println("Nilai faktorial dari " + i + " adalah : " + hitung.factorial(i)); } } Pertemuan III [ Data Teks ] Platform Java mengandung tiga class yang berguna dalam bekerja dengan data teks 1. Character yang digunakan untuk menyimpan nilai dari satu karakter. Class ini juga berisi method-method untuk memanipulasi ataupun memeriksa nilai sebuah karakter tunggal 2. String biasa digunakan untuk data immutable (tidak berubah sejak pertama kali ia dibuat) yang terdiri atas banyak karakter. Objek String bisa diisi dengan nilai null dan tidak akan bermasalah jika kita coba menampilkan hasilnya 3. StringBuffer merupakan class untuk menyimpan dan memanipulasi data yang dapat berubah yang terdiri atas banyak karakter. Materi : 1. Kelas String 2. Kelas StringBuffer 3. Kelas Character KelasString.java Program Kelas String dalam Java class KelasString { public static void main(String args[]){ //cara pengaksesan variable/objeck String String varString1 = new String("JAVA IS FUNNY"); String varString2 = "Java is Easy"; System.out.println("Isi variable java1 : "+java1.toLowerCase()); System.out.println("Isi variable java2 : "+java2.toUpperCase()); System.out.println("Isi variable java2 : "+java2.replace('A','#')); System.out.println("Karakter ketiga java2 : "+java2.charAt(2)); System.out.println("\n*--------------------------------------*\n"); //cara pengaksesan variable/objeck StringBuffer StringBuffer varString3 = new StringBuffer("Write One Run Anywhere"); System.out.println("String asal : "+ varString3); data.replace(14,17,"Every"); //replace(awal,akhir,"pengganti") System.out.println("String menjadi : " + varString3); StringBuffer varString4=new StringBuffer("I Like Java Coffee Very Much"); System.out.println(varString4); data1.delete(12,19); System.out.println("String menjadi : " + varString4); System.out.println("\n*--------------------------------------*\n"); //cara pengaksesan variable/objeck Character Character varChar = new Character('S'); System.out.println("Isi variable latihan : "+ varChar.charValue()); } } PanjangString.java Program menghitung panjang String dalam Java class PanjangString { public static void main(String arg[]) { String s1 = "Write Once Run Anywhere"; String s2 = new String("I live in Java"); int panjang; panjang = s1.length(); System.out.println("Panjang String \""+ s1 +"\" = " + panjang); panjang = s2.length(); System.out.println("Panjang String \""+ s2 +"\" = " +panjang); } } Substring.java Program contoh penggunaan substring() dalam Java class Substring { public static void main(String args[]) { String str = new String("Jang Nara"); //Substring(awal,akhir); System.out.println("Jang Nara -> Substring(2) : " + str.substring(2)); System.out.println("Jang Nara -> Substring(2,3) : "+str.substring(5,9)); //Contoh lain pemakaian metode dalam objek String System.out.println("Sahabat(4) = "+ "Sahabat".substring(4)); System.out.println("Sahabat(2,4) = "+ "Sahabat".substring(2,4)); } } AwalAkhir.java Program untuk memeriksa awal dan akhir suatu String class AwalAkhir { public static void main(String arg[]) { String str = new String("Utada Hikaru"); //apakah str diawali dengan....? System.out.println("String str = " + str); System.out.println("String diawali dengan 'Ut' ? "+ str.startsWith("Ut")); System.out.println("String diawali dengan 'ut' ? "+ str.startsWith("ut")); //apakah str diakhiri dengan...? System.out.println("String diakhiri dengan 'Ru' ? "+ str.endsWith("Ru")); System.out.println("String diakhiri dengan 'ru' ? "+ str.endsWith("ru")); } } Trims.java Program untuk menghilangkan Whitespace di akhir dan awal string class Trims { public static void main(String srgs[]) { String str = " Jang Nara "; String str2 = "Utada Hikaru "; System.out.println("String str = \""+ str +"\""); System.out.println("String trim(str) = \""+ str.trim() +"\""); System.out.println("\nString str2 = \""+ str2 + "\""); System.out.println("String trim(str2) = \""+ str2.trim() + "\""); } } Karakter.java Program penggunaan fungsi-fungsi Karakter dalam Java import java.io.*; class Karakter { public static void main(String ars[]) { BufferedReader tanya; char apa; try { System.out.print("Masukkan sebuah karakter : "); tanya = new BufferedReader(new InputStreamReader(System.in)); apa = (tanya.readLine()).charAt(0); //isDigit() if(Character.isDigit(apa)) System.out.println("Karakter Digit"); //isLetter() if(Character.isLetter(apa)) System.out.println("Karakter Letter"); //isWhitespace() if(Character.isWhitespace(apa)) System.out.println("Karakter WhiteSpace"); //isLowerCase() if(Character.isLowerCase(apa)) System.out.println("Karakter Huruf Kecil"); //isUpperCase() if(Character.isUpperCase(apa)) System.out.println("Karakter Huruf Besar"); } catch(IOException err) { System.out.println("Error I/O"); System.exit(0); } } } Ascii.Java Program menampilkan kode Ascii class Ascii { public static void main(String args[]) { int i = 0; char c; for(i=0; i<256; i++) { c = (char)i; //konversi dari integer ke char System.out.println(i +"\t"+ c); } } } Format.java String dan Number Format import java.text.DecimalFormat; public class FormatTest { public static void main(String[] args) { DecimalFormat myformat = new DecimalFormat("0.0000"); for (int i=1; i<=10; i++) System.out.println(myformat.format(1.0/i)); } } Pertemuan IV [ ARRAY ] Materi : 1. 2. 3. 4. Konsep array Mendeklarasikan array dimensi satu Mengolah array dimensi satu Mengirim array ke metoda 5. 6. Mendeklarasikan array dimensi dua Mengolah array dimensi dua Konsep Array Array merupakan sekumpulan variabel berindeks yang memiliki nama dan tipe data yang sama. SingleArray.java Deklarasi Array class SingleArray { public static void main(String[] args) { int [] x; // Cara 1 x = new int[3]; x[0] = 20 ; x[1] = 10 ; x[2] = 30; System.out.println("Nilai x[0] : " + x[0]); System.out.println("Nilai x[1] : " + x[1]); System.out.println("Nilai x[2] : " + x[2]); int [] y = new int[3]; // Cara 2 y[0] = 20 ; y[1] = 10 ; y[2] = 30; System.out.println("Nilai y[0] : " + y[0]); System.out.println("Nilai y[1] : " + y[1]); System.out.println("Nilai y[2] : " + y[2]); int[] z = {20,10,30}; // Cara 3 tdk menggunakan new System.out.println("Nilai z[0] : " + z[0]); System.out.println("Nilai z[1] : " + z[1]); System.out.println("Nilai z[2] : " + z[2]); } } Array1D.java Program Array Satu Dimensi dalam Java class Array1D { public static void main(String args[]){ int[] tweety = new int[5]; double[] mickey = new double[5]; String[] goku = new String[5]; for(int i=0; i<5;i++){ tweety[i] =i+3; mickey[i] =i+2.5; goku[i] ="String "+(i*2); } for(int i=0;i<5;i++){ System.out.println("tweety = "+tweety[i]+", mickey = "+mickey[i]+", goku = "+goku[i]+" --> index ke [ "+i+" ]"); } } } Array2D.java Program Array Dua Dimensi bertipe String class Array2D { public static void main(String args[]){ //pendeklarasian array matrix dengan String String[ ][ ] arrNama = { {"Ano "," Lichin ","Iim "}, {"Zhay "," Dicky ","Wimbo "}, {"Tommy "," Pliqu ","Jati "} }; for(int i=0;i<3;i++){ for(int j=0;j<3;j++){ System.out.print(arrNama[i][j]); System.out.print(" "); } System.out.print("\n"); } System.out.println("\n\n"); } } Matriks.java Program untuk menginput dan menampilkan sebuah matriks dua dimensi import java.io.*; class Matriks { public static void main(String args[]) { int[][] M = new int[3][4]; int i,j; //input matriks BufferedReader isi; System.out.println("Input Elemen Matriks M[3][4]"); try { isi = new BufferedReader(new InputStreamReader(System.in)); for(i=0; i<3; i++) { for(j=0; j<4; j++) { System.out.print("M["+i+"]["+j+"] = "); M[i][j] = new Integer(isi.readLine()).intValue(); } System.out.println("\n"); } } catch (Exception e ){ System.out.println("Input berupa integer aja"); } //tampilkan isi matriks System.out.println("Isi Matriks M"); for(i=0; i<3; i++) { for(j=0; j<4; j++) { System.out.print(M[i][j]+" "); } System.out.println(""); } } } ArrCopy.java Program menyalin isi suatu array ke dalam array lain class ArrCopy { public static void main(String args[]) { int[] angka = {2,4,5,1,12,5}; int[] nomor = new int[6]; int i; //tampilkan array angka[] System.out.println("Array pertama"); for(i=0; i<angka.length; i++) { System.out.print(angka[i]+" "); } System.out.println("\n\nArray yang kedua "); //copy array angka ke array nomor System.arraycopy(angka,0,nomor,0,6); //tampilkan array nomor[] for(i=0; i<nomor.length; i++) { System.out.print(nomor[i]+" "); } System.out.println("\n"); } } ArrSort.java Program mengurutkan isi suatu Array import java.util.*; public class Dblsrt { public static void main(String[] args) { Double[] da = {new Double(3.1), new Double(99), new Double(-66)}; print(da); // Print unsorted array. Arrays.sort(da); // Sort array print(da); // Print sorted array. } private static void print(Object[] oa) { for (int i=0; i<oa.length; i++) { System.out.print(oa[i] + " "); } System.out.println(""); } } ArrLength.java Menghitung pangjang array class ArrLength { public static void main(String[] args) { int arr[][] = {{1,2},{3,4},{5,6}}; // array 3*2 System.out.println("Panjang dimensi pertama : " + arr.length); System.out.println("Panjang dimensi kedua 0 : " + arr[0].length); System.out.println("Panjang dimensi kedua 1 : " + arr[1].length); System.out.println("Panjang dimensi kedua 2 : " + arr[2].length); } }