PEMROGRAMAN DASAR Sistem Informasi PTIIK UB Semester Ganjil 2013/2014
Pengenalan JAVA
Dr. Eng. Herman Tolle, ST., MT Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya
Outline • Programming Language • Pengenalan Program Java • Struktur Program Java
Bahasa Pemrograman • Bahasa komunikasi manusia dengan komputer untuk memberikan instruksi kepada komputer • Low Level Programming Language – Bahasa Mesin – Bahasa Assembly
• High Level Programming Language
Low Level Programming Language Bahasa Mesin • 8B542408 83FA0077 06B80000 0000C383 FA027706 B8010000 00C353BB 01000000 B9010000 008D0419 83FA0376 078BD98B C84AEBF1 5BC3
Assembly fib: mov edx, [esp+8] cmp edx, 0 ja @f mov eax, 0 ret @@: cmp edx, 2 ja @f mov eax, 1 ret @@: push ebx mov ebx, 1 mov ecx, 1
High Level Programming Language • Mendekati bahasa manusia (natural language) • Menggunakan istilah-istilah dalam bahasa Inggris dan notasi matematis umum • Third-generation programming language (Fortran, ALGOL, and COBOL) • Pemrograman Terstruktur. • General-purpose languages C, C++, C#, Java, BASIC and Pascal
Bahasa Tingkat Tinggi • Satu pernyataan menyelesaikan tugastugas substantial • Program compiler mengkonversi ke bahasa mesin (seluruh kode program) • Program interpreter mengeksekusi perintah satu persatu dalam bahasa tingkat tinggi secara langsung
Object Oriented Programming • Pemrograman Berorientasi Objek • C++, Java and C# • Memodelkan bagaimana manusia memandang sesuatu sebagai sebuah objek
Programming Lainnya • Pemrograman Windows: Visual Basic, Delphi, Visual Studio • Pemrograman Web: – Markup Language (HTML style) – Script style (Javascript, AJAX)
• Pemrograman Embedded • Pemrograman Game • Pemrograman Mobile: Android, Symbian
ABOUT
JAVA PROGRAMMING
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. • Nama Java diambil karena mereka suka meminum kopi Java
Kelebihan Java • • • • •
Open Source Berbasis obyek Memory Ringan Platform independent Handal & Aman
Java
SmallTalk
TCL
Perl
Shells
C
C++
High
Medium
Low
Medium
Low
High
High
Simple Object Oriented Robust
Secure Interpreted Dynamic Portable Neutral Threads Garbage Collection
Exceptions Performance
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 :
1. 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. 2. Yang utama pada deployment environment lainnya adalah pada web browser. Sebagian besar browser komersial menyediakan penerjemah / interpreter untuk Teknologi Java dan runtime environment.
Java Edition • Java EE – Enterprise Edition • Java SE – Standard Edition • Java ME – Mobile Edition
Tujuan utama Java Technology • Menyediakan bahasa yang mudah digunakan – Menghindari pitfall yang sering terjadi di bahasa pemrograman lain – Berorientasi obyek – Memudahkan pengkodean yang efisien dan jelas
• Menyediakan lingkungan interpreter untuk: – Meningkatkan kecepatan pengembangan program – Portabilitas kode
Tujuan utama Java Technology • Multi-threading • Pemanggilan class secara dinamis • Mendukung adanya perubahan program secara dinamis selama runtime dengan melakukan pemanggilan class-class dari sumber yang berbeda • Meningkatkan sekuritas
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 mengcompile 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.
Kompilasi (Compiling) Java
Editor Java • Editor: sembarang pengolah teks • Compiler: Javac • Interpreter: Java • Integrated Development Environement (IDE): Eclipse, Intellij IDEA, NetBeans
Program Pertama Java class Hello { public static void main(String[] arguments){ // Program execution begins here System.out.println("Hello world!"); } } STRUKTUR PROGRAM
Source code
class CLASSNAME { public static void main(String[] arguments) { STATEMENTS }}
Kata Kunci (Key word) • Java memiliki sejumlah kata yang bermakna khusus yang digolongkan sebagai kata kunci atau kata tercadang dan tidak dapat digunakan sebagai identifier (nama kelas atau nama variabel) • Contoh: • abstract assert boolean break byte case catch class const continue default if import new native package throw static while void main float repeat true false
Identifier • yaitu nama yang diciptakan oleh pemrogram dan digunakan dalam program untuk memberi nama kelas atau nama variabel. Aturan pemberian nama pengenal yaitu : • Karakter pertama berupa huruf, tanda garis bawah atau dollar • Karakter kedua dapat berupa sembarang huruf atau angka • Tidak Boleh Menggunakan Spasi • Huruf kapital dan huruf kecil dibedakan
Penamaan Identifier • • • • • • •
Welcome1 $value _nilaiAwal 7nilaiAwal Rata-rata rataRata newByte
• • • • • •
AkarKuadrat Jumlah Total i x X super
Tipe Data Primitif JAVA Delapan Tipe Data Primitif JAVA • byte bilangan bulat 8 bit (-128 s/d +127) • short bilangan bulat 16 bit (-32768 s/d +32767) • int bilangan bulat 32 bit (-2.147.483.648 s/d +2.147.483.647)
• long bilangan bulat 64 bit
(-9.223.372.036.854.775.808 s/d +9.223.372.036.854.775.807)
• float bilangan pecahan 32 bit
– (akurasi 7 digit desimal signifikan) – Memiliki akhiran f untuk membedakan dengan double – Contoh: float varFloat = 0.13f;
• double bilangan pecahan 64 bit dengan presisi ganda (akurasi 15 digit desimal signifikan) • char karakter 16 bit • boolean hanya mempunyai nilai true atau false
Contoh char • char • char • char • char
c; c = ‘a’; c = 0x0ff32; //2 byte heksadesimal c = ‘\037’; //nilai oktal
Karakter khusus (Escape sequence) • char • char • char • char • char • char
c c c c c c
= = = = = =
‘\b’; //backspace \u008; //unicode untuk backspace ‘\f’; //formfeed ‘t’; //tabulator ‘n’; //new line ‘\r’; //carriage return
Variable • Variabel menyatakan suatu lokasi di dalam memori komputer yang digunakan untuk menyimpan suatu nilai dimana nilai tersebut dapat diubah didalam program • Nama mengacu pada penyimpanan di memori • Setiap variable harus punya: nama, tipe, ukuran dan nilai • Bila suatu nilai diisikan pada variabel maka nilai sebelumnya akan di replace
Variabel • Harus dideklarasikan terlebih dahulu (biasanya diawal atau saat sebelum digunakan) • Deklarasi variabel TypeData namaVariabel;
• Dapat dideklarasikan lebih dari satu variabel secara bersamaan pada satu variabel yang sama. TypeData namaVariabel[, namaVariabel-ke2[, namaVariabel-ke-3[, ….namaVariabelke-n]]];
Variabel • Dapat langsung diikuti dengan nilainya TypeData namaVariabel = nilai;
• int Bilangan = 0; float TotalHarga = 10000; char NilaiAngka = “B”; bool isGenap = true; • int X, Y, Z = 100;
Konstanta Dapat menampung data seperti variable namun tidak dapat dimodifikasi
Contoh: phi: 3,14 Sintaks java: final double PI = 3.14159;
Komentar Untuk memberikan komentar digunakan tanda : • // untuk komentar satu baris • /* komentar baris pertama komentar baris kedua Komentar baris ke –n */
PENGARAH TIPE (TYPE-CASTING) • Adakalanya diperlukan langkah untuk mengubah suatu tipe data menjadi tipe data lain. Proses untuk mengubah suatu tipe ke tipe yang lain. Bentuk penulisan : (tipe_data) data Misal : int i = 65; char huruf; huruf = char(i);
•
Agar tidak ada nilai yang hilang, tipe tujuan harus memiliki ukuran yang lebih besar atau paling tidak sama dengan ukuran tipe sumber.
•
TIPE SUMBER
TIPE TUJUAN
byte
short, char, int, long, float, double
short
int, long, float, double
char
int, long, float, double
int
long, float, double
long
long, double
float
double
Contoh Casting public class tipecast { public static void main (String[] args) { int awal=28; double akhir; akhir = (double)awal; System.out.println("Nilai Awal = "+ awal); System.out.println("Nilai Sesudah Konversi = akhir); } }
"+