PEMROGRAMAN JAVA
Sejarah Java diciptakan pada tahun 1991 oleh James Gosling et al. dari Sun Microsystems pada awalnya disebut dengan Oak, diambil dari nama pohon diluar jendela Gosling Namanya berubah menjadi Java karena sudah ada bahasa lain yang bernama Oak.
Sejarah Java Motivasi awal dari Java : Kebutuhan terhadap platform bahasa yang bersifat free, yang dapat di-implementasikan pada produk elektronik untuk konsumen, seperti toaster dan kulkas. Salah satu dari proyek pertama yang dibangun menggunakan java remote control hand-held pribadi yang bernama Star 7. Pada saat yang sama, World Wide Web dan Internet sedang populer. Gosling et. al. menyadari bahwa Java bisa juga digunakan untuk pemrograman pada internet.
Teknologi Java Yang termasuk teknologi Java adalah: Bahasa pemrograman Development Environment Application Environment Deployment Environment
Teknologi Java : Bahasa Pemrograman Sebagai bahasa pemrograman, selain dapat digunakan untuk menciptakan berbagai macam aplikasi, Java juga dpat digunakan sebagai bahasa pemrograman biasa.
Teknologi Java : development environment Sebagai development environment, teknologi Java menyediakan berbagai fasilitas untuk : compiler interpreter documentation generator class file packaging tool
Teknologi Java : aplikasi dan runtime environment Aplikasi Java merupakan program khusus yang dapat berjalan pada mesin apapun, yang telah memiliki Java Runtime Environment (JRE). Ada 2 deployment environment yang utama : JRE didapat dari Java 2 Software Development Kit (SDK), yang di dalamnya terdapat kumpulan lengkap file class dari semua package Teknologi Java, termasuk class bahasa basic, class komponen GUI dan lain-lain. Yang utama pada deployment environment lainnya adalah pada web browser. Sebagian besar browser komersial menyediakan penerjemah / interpreter untuk Teknologi Java dan runtime environment.
Fitur Java Beberapa fitur java: – Java Virtual Machine – Garbage Collection – Code Security
Fitur Java : Java Virtual Machine Java Virtual Machine (JVM) – Mesin virtual yang diimplementasikan oleh software sehingga menyamai mesin yang sebenarnya. – Menyediakan spesifikasi platform perangkat keras yang dapat meng-compile semua program Java Bytecode – Bahasa mesin khusus yang dimengerti oleh Java Virtual Machine (JVM) – bebas dari kekhususan berbagai jenis perangkat keras komputer, jadi komputer dengan Java interpreter dapat mengeksekusi program java yang sudah ter-compile, tidak peduli jenis komputer apa yang telah meng-compile program tersebut.
Fitur Java : garbage collection Fungsi Garbage collection: – bertanggung jawab untuk mengosongkan memori. Pengosongan memori terjadi otomatis selama masa aktif dari program java. – programmer dibebaskan dari beban untuk mengalokasikan kembali memori itu sendiri.
Fitur Java : code security Code security disampaikan di Java melalui implementasi dari Java Runtime Environment (JRE). JRE Menjalankan kode yang telah ter-compile pada JVM dan menampilkan class loading (melalui class loader), memverifikasi kode (melalui bytecode verifier) dan yang terakhir adalah mengeksekusi kode
Fitur Java : code security Class Loader Bertanggung jawab untuk mengisi semua class yang dibutuhkan pada program java. Memberikan keamanan, dengan memisahkan namespace untuk class-class pada sistem file lokal, dimana semua class tersebut diimpor dari sumber pada jaringan. Setelah mengisi semua class, susunan memori dari pelaksanaan kemudian ditentukan. Hal ini memberikan proteksi untuk melawan akses yang tidak diinginkan pada kode terlarang sejak peta memory ditentukan selama runtime.
Fitur Java : code security Bytecode verifier Menguji format pada fragmen code dan mengecek fragmen code dari code ilegal yang dapat mengganggu akses pada objek.
Fase program Java Gambar di bawah ini menjelaskan proses compiling and executing pada program Java
Fase program Java
Pemrograman dengan Java
Pemrograman Berorientasi Objek Penamaan dalam Java Java classes, methods, dan Variables semuanya mempunyai nama. Penamaan didalam java boleh memiliki kombinasi dari letters, numbers, dan Underscore character(_), tetapi karakter pertama dari penulisan nama haruslah dimulai dengan huruf. Penulisan nama didalam java minimal terdiri dari satu karakter, dan tidak memiliki batasan maksimum. Contoh penulisan nama yang dibolehkan didalam java. Hello ThisIsTest ABC A1B2 a_12 Contoh penulisan nama yang tidak dibolehkan didalam java. 1Day _toupper dan lain lain ditambah dengan reserved keywords
Pemrograman Berorientasi Objek Penamaan dalam Java Hasil dari sebuah konfrensi : Nama class java, selalu dimulai dengan huruf besar. Nama Methods dan Variables, dengan huruf kecil. Nama Class, Methods dan Variabel jika terdiri dari dua atau lebih suku kata, awal kata ke dua dan seterusnya awali dengan huruf besar. Contoh untuk class. HelloWorld ThisIsTest Contoh untuk methods dan variables. getString toUpperCase statusPerkawinan
Pemrograman Berorientasi Objek Penamaan dalam Java Reserved Keywords abstract continue float long short try boolean default for native static void break do goto now super volatile byte double if null synchronized while case else implements package this catch extends import private throw char false instanceof protected throws class final iInt public transient const finally interface return true
Pemrograman Berorientasi Objek Tipe Data Bahasa pemrograman java memiliki 2 katagori tipe data: primitive dan reference. Sebuah variabel dengan tipe primitive memuat sebuah nilai tunggal dengan format dan ukuran yang sesuai tipenya. Sedangkan Reference tipe data merupakan sebuah tipe data berjenis class, yang dapat memiliki fungsi atau metode.
Tipe Data Tipe Data Primitive Pemrograman Berorientasi Objek Kata Kunci Keterangan Size/Format (integers) byte Byte-length integer 8-bit two's complement short Short integer 16-bit two's complement int Integer 32-bit two's complement long Long integer 64-bit two's complement (real numbers) float Single-precision floating point 32-bit IEEE 754 double Double-precision floating point 64-bit IEEE 754 (other types) char A single character 16-bit Unicode character boolean A boolean value (true or false) true or false
Tipe Data Contoh Tipe Data Primitive Pemrograman Berorientasi Objek Tipe Data Contoh Tipe Data Primitive Contoh Tipe Data 178 Int 8864L long 37.266 double 37.266D 87.363F float 26.77e3 ' c ' char True boolean False Secara umum, sederet digit dengan tanpa titik decimal (dalam notasi Internasional) atau koma decimal (notasi Indonesia) ditipekan sebagai sebuah integer. Kita juga dapat menspesifikasi sebuah integer Long dengan menempatkan 'L' atau 'l' setelah angkanya. 'L' ditunjukkan agar tidak membingungkan dengan digit '1'. Sebuah deretan digit dengan ada sebuah titik desimalnya adalah bertipe double. Kita juga dapat menspesifikasi sebuah float dengan menempatkan 'f' atau 'F' setelah angka. Sebuah karakter harfiah adalah sebuah karakter Unicode tunggal diantara tanda petik. Dua karakter Boolean adalah true dan false (benar dan salah)
Tipe Data Tipe Data Reference Pemrograman Berorientasi Objek Tipe Data Tipe Data Reference Arrays, class, dan interface adalah tipe-tipe referensi. Nilai dari variable tipe referensi, berbeda dengan tipe primitive, adalah sebuah referensi untuk (sebuah alamat dari) nilai atau kumpulan nilai dari nilai-nilai yang ditunjukkan oleh variable.
Pemrograman Berorientasi Objek Variabel Tipe Data Variabel Primitif adalah variabel dengan tipe data primitif. Mereka menyimpan data dalam lokasi memori yang sebenarnya di mana variabel tersebut berada. contoh: int num = 10; Variabel reference adalah variabel yang menyimpan alamat dalam lokasi memori yang menunjuk ke lokasi memori di mana data sebenarnya berada. contoh: String nama = “adi”
Pemrograman Berorientasi Objek Konstanta dan Variabel Konstanta adalah sebuah tempat penyimpanan data didalam memory komputer yang mana nilai yang ada didalamnya sudah tidak dapat berubah selama program dijalankan. Sedangkan Variabel sebaliknya, dimana nilai-nya dapat berubah selama program berjalan. Tipe data didalam java, yang tergolong kedalam tipe data primitif : Tipe Bit Range / Jangkauan Sub-Tipe boolean 1 True or false char 16 ‘\u0000’ to ‘\uFFFF’ - byte 8 -128 … 127 Integer short -32,768 … 32,767 int 32 -2,147,483,648 … 2,147,483,647 long 64 ‑9,223,372,036,854,775,808... 9,223,372,036,854,775,807 float -3.4e+38…3.4e+38 Floating Point double -1.7e+308…1.7e+308
Pemrograman Berorientasi Objek Konstanta dan Variabel Integer Konstanta dan Variabel adalah bilangan bulat posistif atau negatif dengan range yang sudah disebutkan pada tabel sebelumnya. Contoh yang dibolehkan: 12 -123456 9999999999L // tipe long Contoh yang tidak diperbolehkan : 1,024 // memiliki tanda berkoma 9999999999 // terlalu besar untuk tipe int Deklarasi variabel integer sbb: int var1, var2; short var3; int var4 = 100 // deklarasi dan inisialisasi nilai 100 ke var4
Pemrograman Berorientasi Objek Konstanta dan Variabel Real Konstanta dan Variabel adalah bilangan pecahan posistif atau negatif dengan range yang sudah disebutkan pada tabel sebelumnya. Contoh yang dibolehkan: 12. // tipe double 12E2 // tipe double 12.0e2 // tipe double 3.14159F // tipe float Contoh yang tidak diperbolehkan : 1,024.0 // memiliki tanda berkoma 1.2e108F // terlalu besar untuk tipe float Deklarasi variabel real sbb: double x; float pi = 3.14159F ;
Konstanta dan Variabel boolean Konstanta dan Variabel adalah data yang berisi nilai dua kemungkinan, yaitu nilai benar atau salah. Contoh yang dibolehkan: true false Deklarasi variabel boolean sbb: boolean test = false; character Konstanta dan Variabel adalah character dan string didalam java menggunakan unicode character set. Dimana disimpan didalam bentuk 16 bit memori, yang memungkinkan menyimpan sebanyak 65,536 karakter. Nilai Karakter ditandai dengan diapit dengan dengan tanda petik tunggal. Data ini juga dapat direpresentasikan dengan escape character, seperti terlihat pada tabel dibawah ini. Sedangkan string diapit dengan tanda petik ganda.
Pemrograman Berorientasi Objek Konstanta dan Variabel Contoh yang dibolehkan: ‘a’ ‘1’ “abc” “C” Deklarasi variabel char sbb: char test = ‘A’; string test = ”Universitas Respati Yogyakarta”;
Pemrograman Berorientasi Objek Konstanta dan Variabel Keeping Constants Consisten in a Program adalah bagaimana membentuk nilai konstanta menjadi tetap dan tidak dapat berubah sepanjang program berjalan. Untuk itu dapat dilakukan dengan menggunakan keyword “final” didepan tipe data dari sebuah konstanta. Dan nama constanta menggunakan huruf besar semua Contoh program sbb: public class Constant { public static void main(String[] args) { final float PI = 3.14159F; Syatem.out.println(“2*pi = “ + 2*PI); } Hasilnya sbb: 2*pi = 6.28318 Jika antara baris 3 & 4 disisipkan perintah sbb: PI = 3.0F can’t assign a value to final variable: PI 1 error
Pemrograman Berorientasi Objek Konstanta dan Variabel Latihan : Pertanyaan 1 – 8 jawablah dengan pernyataan valid atau tidak valid dan berikan alasannya kalau tidak valid. 10.0 5. -100,000 123E-5 6. ‘T’ ‘ ‘ ‘ 7. 3.14159 “Siapa kamu?” 8. True Pertanyaan 9 – 11, apakah sama atau tidak nilai real disisi kiri dengan disisi kanan? 4650.; 4.65E+3 -12.71; -1.27E1 0.0001; 1.0e4 Pertanyaan 12 – 15, apakah valid atau tidak penulisan nama berikut, jika tidak berikan alasannya? isVector 14. 2ndChance MyNewApp 15. MIN_DISTANCE
Pemrograman Berorientasi Objek Konstanta dan Variabel Latihan : Pertanyaan berikut, jawablah dengan pernyataan valid atau tidak valid dan berikan alasannya kalau tidak valid, untuk penulisan deklarasi variabel dan konstanta berikut. 16. int firstIndex = 20; Final short MAX_COUNT = 100000; Char test = “Y”; Pertanyaan terakhir, apakah legal atau tidak program dibawah ini, jika legal apa hasil dari program tersebut, jika tidak dimana letak kesalahannya? int I, j; final int k = 4; I = k * k; j = I / k; k = I + j;
Pemrograman Berorientasi Objek Operator Operator merupakan simbol yang biasa digunakan dalam menulis suatu penyataan (statement) dalam bahasa pemrograman apapun. Operator akan melakukan suatu operasi terhadap operand sesuai dengan fungsinya. Contoh operasi antara lain penjumlahan, pengurangan, pembagian dan sebagainya. 3 + 8 * 4 3 8 4 adalah operand + * adalah Operator
Operator Operator Penugasan a = b = c = 99; Pemrograman Berorientasi Objek Operator Operator Penugasan Operator ini adalah operator yang paling sederhana dan hanya dilambangkan dengan karakter ’=’. Operator ini digunakan untuk menugaskan suatu nilai ke suatu variabel. Contoh : int hitung = 4; yang unik dari operator ini dalam Java adalah kita dapat menggunakan operator ini secara berantai dalam suatu ekspresi, contoh: int a, b, c; a = b = c = 99; Bentuk Umumnya sebagai berikut: variable_name = expression; yaitu : menyimpan nilai dari expression ke dalam variable_name
Operator Operator Matematika a = a + 10 Pemrograman Berorientasi Objek Operator Operator Matematika Operator ini digunakan dalam ekspresi matematika. Berikut ini daftar operator matematika yang dikenal dalam Java: Nilai dari ekspresi dapat berupa proses kalkulasi matematik dimana kita sebut dengan assignmnet operator. Contoh a = a + 10 Type Symbol Algebraic Expression Java Expression Additon + a + b Subtraction - a – b Multiplication * ab a*b Division / a / b or a ÷ b a / b Modulus (Remainder) % a mod b a % b
Pemrograman Berorientasi Objek Operator Superioritas Operator. Operator dapat dikombinasikan ke dalam ekspresi yang kompleks result = total + count / max - offset; Operator memiliki superioritas yang terdefinisi secara baik, yang menentukan urutan mereka dievaluasi Perkalian, pembagian dan remainder dievaluasi sebelum pengurangan, penjumlahan dan penggabungan string Operator aritmatik dengan superioritas sama dievaluasi dari kiri ke kanan Kurung dapat digunakan untuk memaksa urutan evaluasi Contoh : a + b + c + d + e a + b * c - d / e 1 2 3 4 3 1 4 2 a / (b + c) - d % e a / (b * (c + (d - e))) 2 1 4 3 4 3 2 1 Pemrograman Berorientasi Objek
Pemrograman Berorientasi Objek Operator Numeric Promotion of Operands Adalah sebuah aturan dari hasil sebuah perhitungan matematik dimana atruran tersebut adalah: Jika dalam operand tersebut terdapat nilai double maka operand lain akan di konvert ke nilai double Selain itu, jika dalam operand tersebut terdapat nilai float maka operand lain akan di konvert ke nilai float. Selain itu, jika dalam operand tersebut terdapat nilai long maka operand lain akan di konvert ke nilai long Selain itu, semua operand akan di konvert ke nilai int. Contoh : Expression Result 1. 1 + 1 / 4 1 2. 1.0 + 1 / 4 1.0 3. 1 + 1.0 / 4 1.25
Pemrograman Berorientasi Objek Operator Ilustrasi Program public class TestPromotion { public static void main(String[] args) { System.out.println(1 + 1/4); System.out.println(1.0 + 1/4); System.out.println(1 + 1.0/4); } Jika dikompile dan dijalankan akan menghasilkan sbb: C:\>javac TestPromotion.java C:\>java TestPromotion 1 1.0 1.25
Assignment Conversion - Casting Conversion Pemrograman Berorientasi Objek Operator Assignment Conversion - Casting Conversion Terkadang kita perlu melakukan Assignment Conversion (konversi terhadap data dari satu tipe data ketipe data yang lain), konversi harus dilakukan secara hati-hati, untuk menhindari terjadinya kehilangan data. Adapun jenis assignment conversion ini adalah Widening Conversion : perubahan dilakukan dari tipe data yang kecil ketipe data yang lebih besar. Contoh : int x = 4; double y; y = x; // legal y = 4.0 Narrowing Conversion : perubahan dilakukan dari tipe data yang besar ketipe data yang lebih kecil. Contoh : int x; double y=1.25; x = y; // illegal, karena y bilangan pecahan.
Pemrograman Berorientasi Objek Operator Assignment Conversion - Casting Conversion Untuk mengatasi masalah tersebut, maka perlu dilakukan pemaksaan tipe data dengan menggunakan teknik “Casting”, yaitu dengan memberikan tipe data lain pada data yang ingin dirubah tipenya. Contoh : x = (int) y; Contoh Program sbb: public class TestCast { public static void main(String[] args) { double x = 3.99, y = 1.1e38 System.out.println(“(int) x = “ + (int) x); System.out.println(“(int) y = “ + (int) y); } Hasil dari program diatas dbb: (int) x = 3 (int) y = 2147483647 // nilai maksimal int, y lebih besar dari hasil
Pemrograman Berorientasi Objek Operator Assignment Conversion - Casting Conversion Latihan : Perhatikan potongan program dibawah ini, legal atau tidak, hasil dari potongan program tersebut. Jika legal hasilnya seperti apa, jika tidak baris mana yang salah, dan berikan solusinya. 1. int x = 16, y = 3; double result; result = x + y / 2.0; 2. int x = 16, y = 3; int result;
Pemrograman Berorientasi Objek Operator Assignment Statement & Assignment Operator Java juga memiliki spesial assingment operators dengan mengkombinasikan assignment dengan binary operator menjadi sebuah ekpresi tunggal. 1. Assignment Statement a = a + 5; dapat digantikan dengan menggunakan Addition assignment operator +=. Sehingga dituliskan sbb: a += 5; Arithmatic Assignment Operators Assignment Operators Sample Expression Expanded Expression Result Assume: int a = 3, b = 11; += a += 3 a = a + 3 6 -= a -= 2 a = a – 2 1 *= a *= 4 a = a * 4 12 /= a /= 2 a = a / 2 %= b %= 3 b = b % 3 2
Operator Increment dan Decrement Pemrograman Berorientasi Objek Operator Operator Increment dan Decrement Java memiliki unary Increment Operator (++) dan unary Decrement Operator (--). Biasanya data disimpan dalam bentuk penambahan nilai integer dengan satu. Bila anda perhatikan maka pernyataan ini akan sama maknanya, walaupun menggunakan cara yang berbeda-beda. c = c + 1; c += 1; c++; Tabel : Increment and Decrement Operator Operator Sample Expression Expanded Expression Result preincrement ++a Hasil cetak setelah a ditambah 1 postincrement a++ Hasil cetak sebelum a ditambah 1 Predecrement --a Hasil cetak setelah a dikurangi 1 postdecrement a-- Hasil cetak sebelum a dikurangi 1
Pemrograman Berorientasi Objek Operator Operator Increment dan Decrement Contoh Program : public class TestIncrement { public static void main(String[] args) { int i = 4, k = 0; k = i-- + 2 * i * ++i; System.out.println( “i = “ + i ); System.out.println( “k= “ + k ); k = --i + 2 * i * i++; } Hasilnya : 4 28 21
Pemrograman Berorientasi Objek Operator Logika Apabila 2 operand bernilai boolean (Contoh A dan B) dan keduanya digunakan dalam operasi AND, OR, XOR, dan NOT maka nilai yang dihasilkan antara lain: Operasi AND hanya akan menghasilkan nilai true apabila kedua operand (A dan B) bernilai true; Operasi OR hanya akan menghasilkan nilai false apabila kedua nilai operand false; Operasi XOR hanya akan menghasilkan nilai true apabila salah satu operand-nya (bukan kedua-duanya) bernilai true; sedangkan Operasi NOT akan menghasilkan negasi atau kebalikan dari nilai sebelumnya. Contoh Program : DemoOperatorLogika.java
Pemrograman Berorientasi Objek Operator Relasi Relational and Logical Operator adalah dua buah type operator yang menghasilkan nilai boolean true atau false. Biasanya digunakan untuk mengontrol banyak pengulangan dan struktur percabangan didalam java. Tabel Relational Operators: Operator Sample Expression Meaning Relatinal operators: > < >= <= x > y x < y x >= y x <= y True if x > y True if x ≥ y True if x ≤ y Equality operators: == != x == y x != y True if x = y True if x ≠ y
Contoh Program: RelasiDemo.java Pemrograman Berorientasi Objek Operator Relasi Contoh Program: RelasiDemo.java
Contoh Program: public class TestAnd { Pemrograman Berorientasi Objek Contoh Program: public class TestAnd { public static void main(String[] args) { int i = 10, j = 9; boolean test; test = i > 10 && j++ > 10; System.out.println(i); System.out.println(j); System.out.println(test); test = i > 10 & j++ > 10; }
Operator Operator kondisi (?:) ?: merupakan operator ternary. Pemrograman Berorientasi Objek Operator Operator kondisi (?:) ?: merupakan operator ternary. Sintaks; exp1 ? Exp2 : exp3
Standard Input and Output Pemrograman Berorientasi Objek Standard Input and Output Pada bahasa pemrograman selalu digunakan sesuatu untuk membaca data untuk diproses, dan menulis kembali dalam bentuk cetakan setelah memperoleh sebuah hasil. Ini lah yang kita sebut standart input dan output. Pemrograman java memiliki tiga standar input dan output objek. Yaitu: System.in : merepresentasikan standard input stream, biasanya melalui keyboard. System.out : merepresentasikan standard output stream, biasanya melalui layar monitor. System.err : merepresentasikan standard error sttream, khusunya untuk menampilkan pesan-pesan error pada program.
Standard Input and Output Pemrograman Berorientasi Objek Standard Input and Output Using the standard input stream: Digunakan untuk membaca data dari keyboard, atau dari media input lainnya. Membaca data menggunakan metode standar java sangatlah komplek. Pada kesempatan ini kita akan mencoba menggunakan class BufferedReader dengan InputStreamReader untuk membaca data pada program-program berikut. Untuk menggunakan class ini dan metode yang terdapat didalamnya haruslah mengimport paket java.io kedalam program yang kana dibuat. Metoda yang digunakan sbb: readLine() Contoh penggunaan sbb: BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in)); ……… stdin.readLine();
Standard Input and Output Pemrograman Berorientasi Objek Standard Input and Output Contoh Program: import java.io.*; public class ReadStdIn { public static void main(String[] args) throws IOException { double v1; int i1; float b1; BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in)); try { System.out.println("Enter a double value: "); v1 = Double.parseDouble(stdin.readLine()); System.out.println("Value = " + v1); System.out.println("Enter a int value: "); i1 = Integer.parseInt(stdin.readLine()); System.out.println("Value = " + i1); System.out.println("Enter a float value: "); b1 = Float.parseFloat(stdin.readLine()); System.out.println("Value = " + b1); } catch(Exception e) { System.out.println("Error : " + e);
Standard Input and Output Pemrograman Berorientasi Objek Standard Input and Output Latihan : Buatlah sebuah class konversi derajat Fahrenheit ke derajat Kelvins. Dimana derajat Fahrenheit diinput dari keyboard dengan rumus konversi sbb: Dejarat Kelvin = ( 5. / 9. ) * (Derajat Fahrenheit – 32.) + 273.15