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); } } "+