Sunday, April 22, 2012

Organisasi MIPS


Komponen  Utama Mips
·        Control unit: bagian pengendali
·        Program Counter(PC) : pencacah program
·        Instruksi memory: memori intruksi
·        32 registers: file register
·        ALU(arithmetic and logical unti): bagian pemroses aritmetik dan logika
·        Data memory: memori data

Komponen Pendukung Mips
·        Adder : penjumla
·        Shifter :penggeser
·        Mux(multiplexer) : mutiplekser
·        Sign extend
·        Alu control

Bagian Pengendali (Control unti)
Tujuan: mengendalikan semua aktifitas prosesor
Masukkan: Kode operasi(opcode) : 6 bit
Keluaran : kendali semua komponen : 9 bit

Tuesday, April 10, 2012

Sejarah MIPS

MIPS atau istilah lainnya jutaan intruksi per detik befungsi untuk mengukur kecepatan prosesor modern.
MIPS(Million Instructions per Secon) di rancang oleh John L. Hennesy(1981) berawal untuk peningkatan kinerja prosesor pipeline. pengeksekusian sebuah intruksi dilakukan dengan beberapa steps, intruksi dilakukan secara independen dengan probelm interlock

berikut summary dari sejarah MIPS

MIPS Computer System :
  • Pada tahun 1984 hannesy meninggalkan stanford dan beralih ke MIPS Computer System
  • MIPS merelease design pertamanya R2000 di tahun 1985
  • Dilanjutkan menjadi R3000 di tahun 1988
  • Bentuk CPU berbasis 32 bit
  • design ini mengimplementasikan hampir semua interlock di hardwarenya dan mensupply full multiple dan dividing instruction
MIPS Technologies
  • Pada tahun 1991, MIPS merelease mikroprosesor 64 bit untuk yang pertama kali yaitu R4000
  • SGI membeli MIPS computer system pada tahun 1992. Kemudian perusahaan ini beganti nama menjadi MIPS Technologies
  • Di awal tahun 90-an, MIPS mulai melisensi produknya ke 3 vendor
  • Pada tahun 1990-an MIPS menjadi sebuah powerhouse dalam embedded proccesor dan di tahun 1993, 48 juta perancang Cpu menggunakan microprocessor mips
  • MIPS menjadi sangat sukses setalah SGI mengubak proses MIPS technologies pada tahun 1998

Memahami PL/SQL

PL/SQL (Procedural Language/Structure Query language) merupakan bahasa yang menggabungkan antara kekuatan dan fleksibilitas SQL/non prosedural dengan bentuk bentuk prosedural.

pada PL/SQL kamu dapat menuliskan perintah perintah, seperti halnya pendeklarasian variabel, statement kondisional (if then else) pengulangan(loop), dsb. PL/SQL tidak mendukung data definition language(DDL) seperti create table, alter table atau drop table, selain itu juga mendukung data control language(DCL) seperti grant atau revoke.
beberapa karakteristik dari PL/SQL, antara lain:
  1. user friendly
  2. bahasa standard dan portabel dalam pengembangan oracle
  3. meruakan bahasa bawaan dari oracle yang berarti PL/SQL dapat dieksekusi di host maupun client
  4. integritas yang tinggi.
bentuk lain dari blok PL/SQL :
  • Anonymous Block : merupakan blok PL/SQL yang tidak bernama, tidak dapat disimpan dalam database dan biasanya dibangun secara dinamik dan dieksekusi hanya sekali.
  • Named Block : merupakan anonymous block dengan label yang diberi nama. named blok dapat dibagi menjadi :
    •  Subprograms : merupakan procedure, paket, dan fungsi" yang disimpan di dabtase. Blok-blok seperti ini dapat digunakan berulang kali dan dieksekusi secara explisit melalui call (pemanggilan prosedur, paket atau fungsi tersebut).
    • Triggers : merupakan named blocks yang juga disimpan di database. Blok ini dapat digunakan berulang kali dan dieksekusi secara implisit dimanapun event trigger terjadi
Structure blok PL/SQL
  1. Declaration Section : mendefinisikan/mendeklarasikan variable,konstanta,cursor.
  2. Excutable Section : mengeksekusi/menjalankan blok perintah PL/SQL.
  3. Exception Section : bagian yang diaktifkan bila terjadi kesalahan atau pengecualian pada saat menjalankan program PL/SQL.
 Exception Dasar
Jenis Error dengan keterangan
  • Syntax Error : kesalahan dalam penulisan sintaks. Misal kurang tanda';' dalam penulisan statement.
  • Logic Error : loop yang tanpa berhenti.
  • Compile error : penggunaan peintah yang salah dan baru diketahui pada saat di-compile.
  • Runtitem Error : error yang terjadi pada saat program dijalankan.

Monday, April 2, 2012

Java - Kamus Java

Perbedaan pemrograman prosedural dan pemrograman berorientasi objek ?
pada pemrograman prosedural semua data dan kode digabung menjadi satu bagian dalam satu program, tetapi dalam pemrograman berorientasi objek penyusun program secara konseptual akan dipecah menjadi bagian- bagian tersendiri yang disebut objek

pengertian
-class : suatu sifat dari suatu objek, misalnya class of human, yang berisikan sifat" human itu sendiri
-objek : sesuatu yang dimiliki dari class tersebut seperti class of human, human tersebut yang dinamakan objek dalam hal ini.

access modifier :
-private : hanya dapat diakses dalam class nya saja
-public : dapat diakses dimana saja
-protected : hanya dapat diakses dalam class nya saja dan pewarisannya

ADT
-konstruktor : fungsi yang dijalankan/dieksekusi secara otomatis ketika program dijalankan untuk proses inisialisasi
-selector : fungsi yang mempunyai kegunaan khusus untuk memberikan nilai
-mutator : fungsi untuk mengakses komponen dari suatu class dalam class yang berbeda.

Element dari konseptual objek model terdiri dari :
-Abstraksi : karakter yang membedakan sebuah objek dengan objek yang lain
-Encapsulasi : berfokus pada implementasi internal dari sebuah objek
-Modularity : proses pengelompokan objek menjadi sebuah kesatuan yang memiliki kesamaan tertentu
-Inheritance : pewarisan sifat dengan pengaturan hirarki dari sebuah objek agar memiliki kemampuan -reusability yang optimal
-polimorfisme : suatu konsep dimana suatu method objek memiliki banyak bentuk sesuai dengan kebutuhan
-overloading : merupakan bentuk dari polimorfisme, yaitu beberapa method dapat memiliki nama yang sama dengan isi dan parameter yang berbeda di dalam sebuah class.

notasi UML untuk mendefinisikan sebuah kelas lengkap dengan symbol access modfiernya :

<Nama Kelas>
Attribute
Method
Simbol akses modifier:
+ = public
- = private
# = protected


 contoh jenis" hubungan antar kelas
-agregasi : hubungan yang menyatakan bagian (“terdiri atas..”).
contoh satu jurusan memiliki banyak mahasiswa
-assosiasi : hubungan statis antar class. Umumnya menggambarkan class yang memiliki atribut berupa class lain, atau class yang harus mengetahui eksistensi class lain. Panah navigability menunjukkan arah query antar class.
contoh : segiempat berfungsi sebagai deklarasi objek untuk class driverutama
-inheritance : hubungan hirarkis antar class. Class dapat diturunkan dari class lain dan mewarisi semua atribut dan metoda class asalnya dan menambahkan fungsionalitas baru, sehingga ia disebut anak dari class yang diwarisinya. Kebalikan dari pewarisan adalah generalisasi.
contoh :  class matematika dengan class hitungan extends matematika
-komposisi : ketergantungan nya beberapa objek terhadap suatu objek
contoh : CPU memiliki objek , monitor, ram, procesor




Java - Program Utama(segiempat)


Nah setelah memahami array dan pendeklarasiannya , ayo kita membuat suatu program utama dimana program utama tersebut menyimpan nilai” array yang berisikan data panjang, lebar , luas , keliling dari segitiga


 pahamilah codingan sebagai berikut :

import java.io.*;  //membaca objek input output

class DriverArray {

  // Prosedur untuk membaca elemen array
  private static SegiEmpat readElement() {
    // Objek yang menjadi elemen array
    SegiEmpat s = new SegiEmpat();

    // Objek untuk pembacaan data dari keyboard
    InputStreamReader i = new InputStreamReader(System.in); //mendefinisikan alat input
    BufferedReader b = new BufferedReader(i);

    try {
      System.out.print("Panjang : ");
      String pString = b.readLine(); //pString membaca sebagai inputan
      System.out.print("Lebar   : ");
      String lString = b.readLine(); //lString membaca sebagai inputan
      float p = Float.parseFloat(pString); // mengkonversikan nilai string menjadi float
      float l = Float.parseFloat(lString); // mengkonversikan nilai string menjadi float
      s.setPanjang(p);
      s.setLebar(l);
    }
    catch (IOException err) {
      System.out.println("Proses pembacaan gagal!"); // bila input gagal
    }
    catch (NumberFormatException err) {
      System.out.println("Nilai input tidak valid!"); // bila nilai diluar dari yang diminta
    }
    return s;
  }

  // Program utama
  public static void main(String arg[]) { // menyatakan program utama

    // Penciptaan Objek
    Array a = new Array(); // mendefinisikan objek
    SegiEmpat e;

    // Penciptaan objek untuk pembacaan data
    InputStreamReader istream = new InputStreamReader(System.in) ;// mendifinisikan objek input
    BufferedReader bufRead = new BufferedReader(istream) ;

    int pilih = 10;
    do {
      // "Hapus" layar
      for (int i=0; i<15; i++) System.out.println();

      // Tampilkan pilihan menu
      try {
        System.out.println("Pengolahan Array Segi Empat");
        System.out.println();
        System.out.println("[1] Create Array Kosong");
        System.out.println("[2] Add Satu Elemen Array");
        System.out.println("[3] Delete Elemen Array");
        System.out.println("[4] Display Seluruh Elemen Array");
        System.out.println("[5] Search Elemen Tertentu");
        System.out.println();
        System.out.println("[0] Selesai");
        System.out.println();
        System.out.print("\nPilihan : ");
        String p = bufRead.readLine();
        pilih = Integer.parseInt(p);

        switch (pilih) {
          case 1:
            // Create array kosong
            a.createEmptyArray();
            bufRead.readLine();
            break;

          case 2:
            // Add elemen setelah elemen terakhir
            e = readElement();
            a.addElement(e);
            bufRead.readLine();
                    break;

          case 3:
            // Delete elemen terakhir
            a.delElement();
            bufRead.readLine();
                    break;

          case 4:
            // Display semua elemen array
            a.displayAllElement();
            bufRead.readLine();
                    break;

          case 5:
            // Search elemen array tertentu
            e = readElement();
            int x = a.searchElement(e);
            if (x != -9999)
              System.out.println("Posisi elemen yang dicari: "+x);
            else
              System.out.println("Elemen yang dicari tidak ditemukan");
            bufRead.readLine();
                    break;

          case 0:
            // "Hapus" layar
                    for (int i=0; i<25; i++)
                System.out.println();
                    break;

          default:
            // Beri pesan jika pilihan bukan 0-5
                    System.out.println("Pilihan Menu harus 0 sampai dengan 5");
            bufRead.readLine();
        }
      }
      catch (IOException err) {
        System.out.println("Proses pembacaan gagal. Ulangi lagi!");
      }
      catch (NumberFormatException err) {
        System.out.println("Data masukan tidak valid. Ulangi lagi!");
      }

    }
    while (pilih != 0);

  }
}