Anda di halaman 1dari 43

#1

 

Pengantar Java

 
#1 Pengantar Java
#1 Pengantar Java

Outline

Outline  Pengantar komputer & pemrograman  Tingkatan representasi  Kompilator dan interpreter  Pengantar lingkungan
  • Pengantar komputer & pemrograman

  • Tingkatan representasi

  • Kompilator dan interpreter

  • Pengantar lingkungan Java

  • Compile dan run program Java

  • Pengenalan program Java yang sederhana

  • Ringkasan

What is a Computer?

What is a Computer?  Pemakaian: komputer adalah mesin yang menakjubkan!  Dapat melakukan apa saja!
  • Pemakaian: komputer adalah mesin yang menakjubkan!

    • Dapat melakukan apa saja!

      • Menerbangkan pesawat, mengontrol pembangkit listrik / pabrik kimia, dll

      • Perusahaan modern tidak dapat beroperasi tanpa komputer (mis. Bank)

  • Melakukan pekerjaan dengan detil dan presisi tinggi

    • Assembling mobil, merakit video player, mendesain rangkaian elektronis TV

    • Pemetaan digital, animasi (film), medical imaging

    • Pekerjaan rutin dan berulang tanpa melakukan kesalahan

Machine (PC)

Machine (PC) Typical current computer system 7/11/2013 Algoritma & Pemrograman 4
Machine (PC) Typical current computer system 7/11/2013 Algoritma & Pemrograman 4

Typical current computer system

Inside The Box ..

  • Isi PC:

Inside The Box ..  Isi PC:  Motherboard : interkoneksi komponen- komponen menjadi satu kesatuan
  • Motherboard: interkoneksi komponen- komponen menjadi satu kesatuan untuk melakukan proses (pengolahan)

  • Struktur motherboard PC:

    • I/O connection (for external devices)

    • A collection of memory IC's (Integrated Circuits)

    • The processor (CPU, central processing unit)

Motherboard PC

Motherboard PC Bus dan chipset untuk interkoneksi komponen 7/11/2013 Algoritma & Pemrograman 6
Motherboard PC Bus dan chipset untuk interkoneksi komponen 7/11/2013 Algoritma & Pemrograman 6

Bus dan chipset untuk interkoneksi komponen

Motherboard: Structure

Motherboard: Structure 7/11/2013 Algoritma & Pemrograman 7
Motherboard: Structure 7/11/2013 Algoritma & Pemrograman 7

Computer System: Hardware

Computer System: Hardware  Struktur mesin: 5 Komponen Utama Komputer 7/11/2013 Algoritma & Pemrograman 8
  • Struktur mesin: 5 Komponen Utama Komputer

Computer System: Hardware  Struktur mesin: 5 Komponen Utama Komputer 7/11/2013 Algoritma & Pemrograman 8

Digital Computer [1]

Digital Computer [1]  Komponen utama komputer (5 komponen utama):  Prosesor (CPU, Central Processing Unit)
Digital Computer [1]  Komponen utama komputer (5 komponen utama):  Prosesor (CPU, Central Processing Unit)
  • Komponen utama komputer (5 komponen utama):

    • Prosesor (CPU, Central Processing Unit)

  • Pada PC, berbentuk IC (Integrated Circuit) chip

  • Kemampuan chip tergantung jumlah transistor yang terdapat pada chip tsb

  • Transistor melakukan operasi switch pada bit

  • Contoh: Pentium (3 juta transistor), Pentium III (9,5 juta transistor)

  • Fungsi utama: komputasi dan kontrol

Digital Computer [2]

Digital Computer [2]  Memori Utama (Primary Storage)  Tempat penyimpanan utama: program yang aktif harus
  • Memori Utama (Primary Storage)

    • Tempat penyimpanan utama: program yang aktif harus berada di memori utama.

    • Dalam bentuk chip: RAM (Random Access Memory) dan ROM (Read Only Memory).

    • Ukuran kapasitas penyimpanan: bytes (8 bits), KB (Ribu bytes), MB (Juta bytes)

Digital Computer [2]  Memori Utama (Primary Storage)  Tempat penyimpanan utama: program yang aktif harus

Digital Computer [3]

  • Disk (Secondary Storage)

Digital Computer [3]  Disk (Secondary Storage)  Tempat penyimpanan tetap (permanen).  Kapasitas lebih besar
  • Tempat penyimpanan tetap (permanen).

  • Kapasitas lebih besar tapi lebih lambat.

  • Terdapat berbagai bentuk dan media: hard disk, floppy disk, CDROM, dll

  • Input & Output

    • Interaksi dan hubungan dengan lingkungan di luar

    • Sangat bervariasi dan terdapat berbagai jenis alat

    • Contoh kategori input: keyboard, mouse, scanner

    • Contoh kategori output: layar (CRT / Cathode Ray Tube), printer

    • Device (peripheral) dapat bertindak sebagai input dan output: network card

Digital Computer [4]

Digital Computer [4]  Interkoneksi komponen melalui: bus 7/11/2013 Algoritma & Pemrograman 12
  • Interkoneksi komponen melalui: bus

Digital Computer [4]  Interkoneksi komponen melalui: bus 7/11/2013 Algoritma & Pemrograman 12

Human & Machine

Human & Machine  Interaksi: manusia mesin  pemanfaatan informasi  mesin membantu dalam proses data
  • Interaksi: manusia

Human & Machine  Interaksi: manusia mesin  pemanfaatan informasi  mesin membantu dalam proses data

mesin

Human & Machine  Interaksi: manusia mesin  pemanfaatan informasi  mesin membantu dalam proses data
  • pemanfaatan informasi mesin membantu dalam proses data

  • Dua sisi:

    • Manusia “human readable”, mudah dibaca atau dikenal / digunakan

    • Mesin “machine readable”, efisien diproses dan disimpan

Machine “readable”

  • Mesin komputer:

Machine “readable”  Mesin komputer:  Terdiri dari rangkaian digital (transistor, etc)  umumnya dalam bentuk
  • Terdiri dari rangkaian digital (transistor, etc) umumnya dalam bentuk sinyal listrik

  • Signal digital: hanya mempunyai dua status, on atau off

  • Jadi mesin hanya mengenal 2 simbol: 1 (on) atau 0 (off)

    • Sering disebut : binary (biner) = 2 simbol

    • Mesin Komputer hanya beroperasi seperti “switch”: on dan off.

    • Dikenal dengan nama “digital computer” : hanya mengenal simbol/nilai bit (digital) : 1 (“on”) dan 0 (“off”)

Digital Computer

Digital Computer  Operasi yang dapat dilakukan mesin komputer:  Sangat sederhana: hanya terhadap sekumpulan “bits”
  • Operasi yang dapat dilakukan mesin komputer:

    • Sangat sederhana: hanya terhadap sekumpulan “bits”

    • Hanya dapat bernilai: 1 atau 0

    • Contoh operasi mengubah (flip, switch) nilai bit, menjadikan bit tertentu menjadi 0, test bit

jika 0 atau bukan

  • Operasi aritmatika (+,-,x,/) juga dapat dilakukan pada bits

Data & Instruction

  • Kesimpulan

Data & Instruction  Kesimpulan  Data di dalam komputer direpresentasikan dalam sekumpulan bits  Huruf
  • Data di dalam komputer direpresentasikan dalam sekumpulan bits

    • Huruf J 01001010

  • Instruksi juga dalam bentuk bits:

    • 0000 1001 1100 0110 1010 1111 0101 1000

      • diartikan instruksi: load (isi) register CPU dengan konstan 0 (pada komputer dengan prosesor MIPS)

  • Bagaimana menggunakan komputer yang hanya mengerti bits?

    • Mengapa komputer yang terbatas mengenal simbol (hanya 1 dan 0) dapat begitu “powerful”?

    • Bagaimana menggunakan mesin primitif tsb?

What Makes All This Possible?

What Makes All This Possible?  Hal ini dimungkinkan oleh adanya: program komputer.  Melakukan tugas
  • Hal ini dimungkinkan oleh adanya: program komputer.

    • Melakukan tugas (task), pekerjaan tertentu:

      • Program dapat menghitung/membuat laporan keuangan.

      • Program lain dapat membantu membuat dokumen.

      • Program lain lagi memainkan musik (MP3), games dll.

  • Komputer mesin elektronis yang,

    • ..

  • bukan kalkulator!

    • menyimpan data (bilangan, kata, gambar, apa saja!),

    • interaksi dengan pemakai (keyboard, layar monitor, printer),

    • mengolah, analisa data, transformasi ke bentuk lain.

    Abstraction

    Abstraction  Bagaimana memudahkan pemberian instruksi ke mesin.  Bits: mudah untuk komputer tapi sulit, “impossible”
    • Bagaimana memudahkan pemberian instruksi ke mesin.

      • Bits: mudah untuk komputer tapi sulit, “impossible” untuk manusia

    0000 1001 1100 0110 1010 1111 0101 1000 (machine language)

    ---

    lw $to, 0($2) (assembly)

    ----

    temp = v[k]; (Program C)

    • Abstraksi Program:

      • Solusi/Komputasi/Instruksi dapat ditulis dalam bentuk yang mudah dimengerti representasi domain/lingkungan yang akrab dengan programmer.

      • Contoh: Macro Excel vs Fortran

    Levels of Presentation

    Levels of Presentation 7/11/2013 Algoritma & Pemrograman 19
    Levels of Presentation 7/11/2013 Algoritma & Pemrograman 19

    Programming Language

    • Human Readable

    Programming Language  Human Readable  Perlu ada simbol khusus yang dapat diartikan oleh manusia 
    • Perlu ada simbol khusus yang dapat diartikan oleh manusia bahasa.

    • Kumpulan aturan dan simbol urutan instruksi ke mesin komputer: Bahasa Pemrograman.

    • Program: urutan dan pemakaian simbol (keyword, notasi) yang dapat digunakan secara mudah oleh manusia (programmer)

      • Format, tata cara tertentu (sintaks)

      • Pengertian, tahapan solusi masalah (semantiks)

    • Big Idea: abstraksi dalam program membuat pemanfaatan (vs. pemakaian) komputer lebih mudah untuk user dari lingkungan tertentu.

    What is Computer Programming?

    • Program Komputer:

    What is Computer Programming?  Program Komputer:  Sebuah program komputer  menentukan urutan langkah yang
    • Sebuah program komputer menentukan urutan langkah yang diperlukan oleh mesin komputer untuk menyelesaikan sebuah tugas

    • Penjabaran dalam urutan tahapan yang jelas: awal, akhir dan selesai dalam waktu tertentu/terbatas (algoritma)

    • Kegiatan merancang dan implementasi program ini disebut computer programming

      • Masalah/Tujuan mencari solusi (algoritma)

      • Aktifitas: penulisan program (coding), testing/debugging, dan evaluasi

    Computer Program

    Computer Program  Mesin komputer sangat sederhana:  menerima input, representasi data, operasi, mengeluarkan output dalam
    • Mesin komputer sangat sederhana:

      • menerima input, representasi data, operasi, mengeluarkan output dalam bentuk bits

    • Bagaimana menulis program supaya mesin komputer dapat menjadi sangat “powerful”?

      • Konsep pemrograman: metodologi atau cara memberikan urutan instruksi ke komputer.

        • Jelas, prediktabilitas/pasti, efisien, dan “mudah”.

        • Mengolah data (bits) representasi data ke berbagai peralatan/media yang lain.

        • Formal: sintaks dan semantiks,

  • Bagaimana supaya program mudah ditulis, di-update, dan digunakan.

  • BIG IDEA: Bentuk program harus terstruktur dan moduler salah satu: Java Programming Languages

  • High Level Language

    High Level Language  Java ( High Level Language )  contoh: bunga bank if (intRate
    • Java (High Level Language)

      • contoh: bunga bank

    if (intRate > 100) {

    System.out.print(”Persen bunga salah");

    }

    Semantik: Jika nilai “interest rate” lebih besar 100,

    tampilkan pesan kesalahan.

    • HLL tidak tergantung dengan hardware atau Sistem Operasi

    • HLL code diterjemahkan ke bahasa mesin oleh program Compiler

    Machine Code [1]

    Machine Code [1]  Komputer hanya mengerti bahasa mesin  Setiap mesin yang berbeda mempunyai kumpulan
    • Komputer hanya mengerti bahasa mesin

    • Setiap mesin yang berbeda mempunyai kumpulan instruksi (bahasa mesin) yang berbeda

    • Setiap instruksi diberikan kode instruksi (opcode) yang berupa angka

      • contoh: load isi lokasi memory, opcode = 21 (decimal)

    Machine Code [2]

    Machine Code [2]  Contoh urutan instruksi mesin untuk program “bunga bank”:  Load isi lokasi
    • Contoh urutan instruksi mesin untuk program “bunga bank”:

      • Load isi lokasi memory 40

      • Load angka 100

      • Jika angka pertama lebih besar dari angka kedua,

    lanjutkan instruksi pada alamat memory 240

    • Dalam Java Virtual Machine (JVM), instruksi di atas akan dikodekan sebagai urutan angka: 21 40 16 100 163 240

    Assembly Code

    Assembly Code  Setiap perintah ( opcode ) diberikan nama singkat ( mnemonic ), misalkan: 
    • Setiap perintah (opcode) diberikan nama singkat (mnemonic), misalkan:

      • iload berarti “integer load”

      • bipush berarti “push integer” constant

      • if_icmpgt berarti “if integers compare greater than

  • Dengan instruksi di atas, urutan instruksi menjadi:

    • iload 40

    • bipush 100

    • if_icmpgt 240

  • Assembly code diterjemahkan ke bahasa mesin oleh program Assembler

  • Ex: Level of Presentation

    Ex: Level of Presentation  Urutan Instruksi ( Human Readable ): if (intRate > 100) {
    • Urutan Instruksi (Human Readable): if (intRate > 100) {

    System.out.print(”Persen bunga salah");

    }

    • Assembly (Assembly Programmer Readable):

    iload 40 (load integer)

    bipush 100 (push integer constant)

    if_icmpgt 240 (if compare integer greater than jump to instruction in location)

    • Instruksi mesin (Java Virtual Machine Readable):

    21 40 16 100 163 240 (dalam bentuk bits)

    Ex: Level Bahasa Pemrograman

    • High level

      • Pascal, Java

    • Intermediate level

      • C

    • Low level

      • Assembly

    • Machine code

    Ex: Level Bahasa Pemrograman  High level  Pascal, Java  Intermediate level  C 

    Programming Language Paradigm [1]

    Programming Language Paradigm [1]  Terdapat banyak bahasa program  Dirancang dengan pertimbangan khusus (misalkan Fortran
    • Terdapat banyak bahasa program

      • Dirancang dengan pertimbangan khusus (misalkan Fortran Formula Translator).

      • Perkembangan teknologi (bahasa baru, Parallel Fortran)

      • Bagian dari sistim komputer baru, sistim

    operasi, lingkungan yang berubah (C dan

    Unix, Java dan Internet).

    Programming Language Paradigm [2]

    Programming Language Paradigm [2]  Paradigma bahasa pemrograman:  Imperatif (general purpose)  C, Pascal, Basic
    • Paradigma bahasa pemrograman:

      • Imperatif (general purpose)

        • C, Pascal, Basic

      • Fungsional & Deklaratif

        • LISP, PROLOG

      • Object-Oriented Programming (OOP)

        • C++, Java

    Compiler and Interpreter

    Compiler and Interpreter  Komputer tidak mengerti bahasa manusia  Bahasa Mesin terlalu sulit untuk manusia
    • Komputer tidak mengerti bahasa manusia

    • Bahasa Mesin terlalu sulit untuk manusia

    • Jadi?

      • Dipermudah dengan membuat bahasa pemrograman tingkat tinggi

      • Kemudian dilakukan penerjemahan bahasa program menjadi bahasa mesin

  • Caranya?

    • Compiler: source machine code load execute

    • Intrepeter: source execute

  • Compiler: illustration

    Compiler: illustration  Keuntungan:  Lebih cepat  Kerugian:  Platform Dependent 7/11/2013 Algoritma & Pemrograman
    Compiler: illustration  Keuntungan:  Lebih cepat  Kerugian:  Platform Dependent 7/11/2013 Algoritma & Pemrograman
    • Keuntungan:

      • Lebih cepat

    • Kerugian:

      • Platform Dependent

    Interpreter: illustration  Keuntungan:  Platform Independence  Kerugian:  Lebih lambat 7/11/2013 Algoritma & Pemrograman

    Interpreter: illustration

    Interpreter: illustration  Keuntungan:  Platform Independence  Kerugian:  Lebih lambat 7/11/2013 Algoritma & Pemrograman
    • Keuntungan:

      • Platform Independence

    • Kerugian:

      • Lebih lambat

    The Java Compilation Model:

    illustration

    The Java Compilation Model: illustration 7/11/2013 Algoritma & Pemrograman 34
    The Java Compilation Model: illustration 7/11/2013 Algoritma & Pemrograman 34

    Compiler & Interpreter in Java [1]

    • Program Java:

    Compiler & Interpreter in Java [1]  Program Java:  Program: source code Java ( *.java
    • Program: source code Java (*.java) dalam bentuk file teks.

    • Compiler Java membaca source code dan menghasilkan byte-codes

    • Kompilasi dijalankan sekali saja

    • Bytecodes diartikan (diinterpretasi) oleh Java Intrepeter pada komputer tempat program java dijalankan.

    • Intrepeter dijalankan setiap kali program tersebut

    dieksekusi.

    • BIG IDEA: Java bytecodes keunikan dari Java sehingga dapat dijalankan pada berbagai jenis komputer (platform independent).

    Compiler & Interpreter in Java [2] 7/11/2013 Algoritma & Pemrograman 36

    Compiler & Interpreter in Java [2]

    Compiler & Interpreter in Java [2] 7/11/2013 Algoritma & Pemrograman 36
    “Write Once, Run Everywhere” 7/11/2013 Algoritma & Pemrograman 37

    “Write Once, Run Everywhere”

    “Write Once, Run Everywhere” 7/11/2013 Algoritma & Pemrograman 37

    Programming Environment

    Programming Environment  Java Standard Development Kit (SDK) 1.5.0 ( jdk1.5.0_04 )  Java Compiler 
    • Java Standard Development Kit (SDK) 1.5.0 (jdk1.5.0_04)

      • Java Compiler

      • Java Runtime Environment (JRE) interpreter

    Source Code  …  Running Program  Source code  dibuat oleh editor  Editor

    Source Code Running Program

    Source Code  …  Running Program  Source code  dibuat oleh editor  Editor
    • Source code dibuat oleh editor

    • Editor menghasilkan source code (file .java)

    • Compiler input dari file, menghasilkan file .class

    Example: Simple Program

    public class Hello {

    Example: Simple Program public class Hello { public static void main(String[] args) { System.out.println("Hello, World!"); }

    public static void main(String[] args)

    {

     

    System.out.println("Hello, World!");

    }

    }

    • Nama kelas dan nama file (.java) harus sama dan case-sensitive

    • Disimpan dalam file: Hello.java

    Install & Setup Java 2 SDK

    Install & Setup Java 2 SDK  Download J2SDK untuk platform yang digunakan (Windows/Linux/Solaris)  Windows:
    • Download J2SDK untuk platform yang digunakan (Windows/Linux/Solaris)

    • Windows:

      • Jalankan program installer tsb

      • Tambahkan environment PATH: (WinXP) SET PATH=%PATH%;C:\Program Files\Java\jdk1.5.0_04\bin

    Compile & Run

    Compile & Run  Contoh: Compile dan Run program Java  edit Hello.java (proses edit source
    • Contoh: Compile dan Run program Java

      • edit Hello.java (proses edit source code using command prompt - windows) atau

        • vi Hello.java (edit source code using

    Linux/Unix)

    • javac Hello.java (proses kompilasi)

    • java Hello (jalankan program)

    • Teks akan muncul di layar: Hello, World!

    Ringkasan

    • BIG IDEA:

    Ringkasan  BIG IDEA :  JAVA: “Write once, run everywhere”  Java:  Source code
    • JAVA: “Write once, run everywhere”

    • Java:

      • Source code compiler bytecodes

      • Bytecodes intrepreter executable code