Minggu, 21 Juni 2009

SEJARAH JAVA

Pendahuluan



 Sejarah Java
• Dimulai pada tahun 1991 dibentuknya suatu tim yang diberi nama green
• Tim ini dipimpin oleh Patrick Naughton dan James Gosling (Sekelompok insinyur Sun ).
• Awalnya mereka ingin membuat suatu bahasa komputer yang dapat digunakan oleh TV kabel ( Cable TV Box) yang memiliki memori kecil dan setiap perusahaan memiliki tipe yang berbeda.
• Untuk mengaplikasikan hal tersebut mereka menggunakan hal yang pernah dicoba oleh bahasa pascal.
• Sebelumnya Niclaus Wirth telah membuat sebuah bahasa yang portable yang akan digunakan dalam mesin bayangan selanjutnya ini disebut sebagai Virtual Mesin namun saat itu belum diumumkan.
• Akhirnya tim green mengunakan ide ini akhirnya mereka menciptakan Java Virtual Mesin.
• Vitual mesin inilah yang menbuat java dapat dijalankan diberbagai platform.
• Pada tahun 1992 tim green membuat produknya yang diberi nama *7 (Star Seven )
• Namun produk ini gagal dipasaran.
• Setelah itu dibuat produk yang baru. Inilah java, pada awalnya bahasa pemrograman yang dibuat tersebut diberi nama “oak “ (Kemungkinan nama ini diambil dari nama pohon yang ada didepan jendela James Gosling)
• Namun setelah diperiksa ternyata nama oak sudah pernah digunakan. Maka lahirlah nama “ Java “
• Pada tahun 1993 sampai pertengahan 1994 tim green yang mempunyai nama baru First person. Inc hanya menghabiskan waktu dengan memperhatikan penjualan dari produknya. Ternyata tidak satupun orang ditemukan. Akhirnya pada tahun 1994 First Person dibubarkan.
• Pada tahun itu Web berkembang sangat pesat saat itu browser yang banyak digunakan adalah Mosaic suatu broser yang gratis.
• Dalam suatu wawancara pada pertengahan tahun 94 James Gosling mengatakan “We could build a real cool browser. It was one of the few things in the client/serve mainstream that needed some of the weird things we'd done: architecture neutral, real-time,reliable, secure—issues that weren't terribly important in the workstation world. So we built a browser.”
• Akhirnya dibuatlah suatu browser oleh Patrick Naughton dan Jonathan Payne.
• Browser itu diberi nama Hot Java. Browser ini dibuat dengan menggunakan bahasa java untuk menunjukkan kemapuan dari java.
• Yang tidak kalah hebatnya mereka juga membuat teknologi yang disebut Aplet sehingga browser dapat menjalankan kode program didalam browser.
• Inilah bukti dari teknologi itu yang ditunjukkan java pada tanggal 25 mei 1995
• Sejak saat itu browser java memberikan lisensinya kepada browser lain untuk bisa menjalankan Applet dan pada tahun 1996 diberikan pada Internet Explorer.
• Akhirnya pada tahun 1996 dikeluarkan versi pertama dari java dengan mengeluarkan java 1.02
• Pada tahun 1998 dikeluarkan java 1.2 dan java mulai mengeluarkan slogannya “Write once, Run anywhre “




 Edisi Java
Java adalah bahasa yang dapat dijalankan dimanapun dan di sembarang platform apapun, di beragam lingkngan : internet, intranets,consumer electronic products, dan computer applications.The java 2 platform tersedia dalam 3 edisi untuk keperluan berbeda. Untuk beragam aplikasi yang dibuat dengan bahasa Java, java dipaketkan dalam edis – edisi berikut :
1. Java 2 Standard Edition ( J2SE )
2. Java 2 Enterprise dition ( J2EE )
3. Java 2 Micro Edition ( J2ME )
Masing – masing edisi berisi Java 2 Software Development Kit ( J2SDK ) untuk mengembangkan aplikasi dan Java 2 Runtime Environent ( J2RE ) untuk menjalankan aplikasi.
 Kelebihan Java di bandingkan dengan C++
 Pembuat program java telah merancang java untuk menghilangkan pengalokasian dan dealokasi memori secara manual, karena java memiliki Garbage Collection
 Diperkenalkannya deklarasi array yang sebenarnya dan menghilangkan aritmatika pointer. Hal ini yang sering menyebabkan memori overwrite.
 Dihilangkannya multiple inheritance, mereka menggantinya dengan interface.

Pertemuan 1

 Tujuan
1. Mengetahui dan memahami konsep pemrograman berbasis object
2. Mengetahui dan memahami konsep pemrograman Java
3. Mengetahui tipe-tipe data yang terdapat di Java
4. Mengetahui operator yang terdapat di Java

 Pengenalan Java

Apa itu Java ?
Java adalah salah satu bahasa pemrograman berorientasi objek (OOP-Object Oriented Programming). Paradigma OOP menyelesaikan masalah dengan merepresentasikan masalah ke model objek.

Keutamaan Java dibanding bahasa pemrograman lain:

- Cross platform, dengan adanya Java Virtual Machine(JVM)
- Pengembangannya didukung oleh programmer secara luas
- Automatic Garbage Collection, membebaskan programmer dari tugas manajemen memori

Pemrograman Berorientasi Obyek (OOP)

Pemisalan Objek dalam OOP
Objek-objek dalam dunia nyata, mempunyai 2 karakteristik khusus : Status dan Perilaku. Contohnya, sepeda punya status(jumlah gir, jumlah pedal, dua buah ban) dan perilaku(mengerem, mempercepat, ubah gir).

Bahasa yang berorientasi pada objek pun mempunyai karakteristik yang sama dengan objek-objek di dunia nyata. Yaitu status yang dalam bahasa pemrograman biasanya disimpan sebagai Variabel dan perilaku yang diimplementasikan sebagai Method.

Karakteristik OOP

1. Enkapsulasi(Pembungkusan)
Enkapsulasi adalah pelindung program dan data yang sedang diolah. Enkapsulasi mendefinisikan perilaku dan melindungi program dan data agar tidak diakses secara sembarangan oleh program lain.

Dalam Java, asar enkapsulasi adalah class. Anda membuat suatu class yang menyatakan bahwa variable atau method sebuah class tidak dapat diakses oleh class lain dengan menjadikan class tersebut private, atau menjadikan class tersebut protected – yaitu hanya bisa diakses oleh turunannya, atau menjadikan class tersebut public – yaitu bisa diakses oleh sembarang class.

2. Inheritansi

Objek-objek yang berada di sekitar kita adalah objek-objek yang saling terhubung secara hirarkis. Misalnya :










Lingkaran dan Bujur Sangkar adalah turunan dari bentuk 2D dan Bentuk 2D adalah turunan dari Objek Gambar
Lingkaran dan Bujur Sangkar mewarisi(inherit) sifat-sifat dari bentuk 2D, juga mewarisi sifat-sifat dari objek gambar
Lingkaran dan Bujur Sangkar dapat dikatakan subclass dari bentuk 2D. Bentuk 3D adalah superclass dari Bola dan Piramida, dan seterusnya.

3. Polimorfisme

Walaupun Lingkaran dan Bujur Sangkat sama-sama turunan dari Bentuk 2D, tetapi cara menubah ukuran masing-masing berbeda, untuk lingkaran anda harus merubah besar jari-jarinya, sedang untuk bujur sangkar anda harus mengubah panjang sisinya.
Dalam Java implementasi, method suatu parent-class dapat diubah oleh sub-class, hal ini dikenal dengan overriding method. Deklarasi method sama tetapi implementasi atau definisinya berbeda(Method atau perilaku yang sama tapi implementasinya/caranya yang berbeda-beda inilah yang disebut dengan Polimorfisme).

Menulis Program Java
Aturan penulisan program di Java
- Java adalah turunan dari C, sehingga Java memiliki sifat C yaitu Case sensitive, yaitu membedakan antara huruf besar dan kecil
- Dalam sebuah file program di Java, hanya diijinkan memiliki 1 buah class yang bersifat public
- Dalam sebuah file program Java, hanya ada satu method main(method yang pertama kali dibaca oleh interpreter Java)
- Nama sebuah file program Java harus sama dengan nama class yang memiliki method main() di dalam tubuhnya. Perhatikan bahwa tulisan nama file dengan nama class (huruf besar maupun kecilnya) haruslah persis sama. .

Berikut adalah contoh membuat program dengan menggunakan Java. Pada program akan ditampilkan tulisan “Hello World !“
//Nama File Hello.java
class Hello
{
public static void main(String args[])
{
System.out.println(“Hello World !”);
}
}
Langkah selanjutnya :
1. Simpan dengan nama: Hello.java
2. compile Hello.java : javac Hello.java
3. hasilnya akan menghasilkan : Hello.class
4. jalankan Hello.class: java Hello.class atau java Hello
5. akan keluar hasil :
Hello world!

Programming Tip :
Dalam penulisan bahasa program, disarankan :
1. Huruf depan dari sebuah class atau method menggunakan huruf besar
2. Menulis Komentar pada sebuah class atau method untuk memudahkan debug(pencarian kesalahan). Serta mempermudah orang lain membaca program kita. Ingat !!! Dalam dunia nyata, programmer bekerja secara team, jadi usahakan partner team mengerti apa yang kita buat dengan memberikan komentar(tentang pembuatan komentar akan dibahas dibawah)
3. Membuat indentasi(jarak antara induk perintah dan anak perintah). Identasi sebisa mungkin dibuat standard, semisal pada contoh diatas, jarak antara tulisan “class Hello” sebagai induk perintah dengan tulisan “public…..” sebagai anak perintah adalah 5 spasi. Sekali lagi, ini untuk mempermudah dalam pengertian program
Statement dan Identifier
1. Statement
Bentuk statement atau pernyataan dalam satu program di Java adalah sebagai berikut :
Int i=1;
String teman = “Iman Rochdilianto”;
import java.awt.Font;
System.out.println(“Selamat Datang “ + teman +
“di Praktikum SBP”);
pegawai.tetap=true;
total= a + b + c + d + e;

Setiap statement selalu diakhiri dengan titik koma (;)

Blok adalah 2 tanda kurung kurawal ({}) yang menyatukan statemen
{
x = x + 1;
y = y * 3;
}

Java memperbolehkan spasi dalam jumlah berapa saja (Spasi, tab, baris baru)
class Hello
{
public static void main(String args[])
{
System.out.println(“Hello World”);
}
}


bisa ditulis dalam bentuk sepeerti dibawah ini :
class Hello ( public static void main(String args[]) {
System.out.println(“Hello World!”); } }

Identifier
Dalam Java, identifier adalah nama yang diberikan untuk variable, class, atau method. Identifier boleh dimulai dengan huruf, underscore(_) atau tanda dollat($).
Identifier adalah case sensitive(membedakan huruf besar/kecil) dan tak ada batas maksimum.
Contoh :
username
user_name
_sys_var1
$change
Variabel dan Tipe Data
1. Variabel
Variabel adalah suatu item dari data yang diberi nama identifikasi(identifier), variable dapat diartikan lokasi di dalam memori yang mana suatu nilai(value) dapat disimpan.
2. Tipe Data
Java membagi tipe data menjadi 2 bagian :
(1) Tipe data primitive
Keyword Size Range
Bilangan Integer
Byte 8 bits -128 s/d 127
Short 16 bits -32768 s/d 32767
Int 32 bits -2.147.483.648 s/d 2.147.483.647
Long 64 bits 9223372036854775808 s/d 9223372036854775808
Bilangan Real
Float 32 bits Single Precision
Double 64 bits Double Precision
Tipe Data Lain
Char 16 bits Single Characte
Boolean True / false Nilai Boolean
Contoh cara pendeklarasian dan inisialisasi tipe data primitive sebagai berikut :

char ch; // deklarasi variable
ch = “R’; // inisialisasi variable
char ch1= “S”; // delarasi dan inisialisasi variable
int x,y,z; // deklarasi 3 variabel integer
boolean tetap= true;

(2) Tipe data reference

Reference adalah pointer ke tipe data atau penyimpan alamat data.
Terdapat tiga data reference yaitu : array, class, dan interface (mengenai tipe data reference akan diuraikan dalam bab selanjutnya)

Komentar
Komentar tidak akan menjadi bagian program yang dieksekusi. Kita dapat menambahkan senbanyak mungkin komentar.
Komentar di Java dapat didefinisikan dengan 3 cara berbeda .

Jenis Komentar :

/* komentar */ ===Semua karakter yang berada di antara /* dan */ akan diabaikan.
// komentar ===Semua karakter setelah // sampai akhir baris akan diabaikan.
/** komentar */ ===Serupa dengan /* */, kecuali bahwa komentar akan digunakan tool javadoc untuk menciptakan dokumentasi otomatis.





Berikut cara menyisipkan komentar pada program
class Hello
{
// kalimat ini adalah komentar
// yang tak akan dieksekusi

public static void main(String args[])
{
System.out.println(“Hello World!”);
}
/*
Kalimat ini adalah komentar
Yang tidak akan dieksekusi
*/
}

Literal
Karakter literal adalah karakter yang ditulis diantara kutip tunggal : ‘r’,’#’,’14’ dan sebagainya. Karakter ini disimpan sebagai 16 bit Unicode Characters. Berikut daftar special kode yang merepresentasikan karakter-karakter yang tidak dapat di print(non-printable characters)

Escape Meaning
\n Newline
\t Tab
\b Backspace
\r Carriage Return
\f Formfeed
\\ Backslash
\’ Single Quote
\” Double Quote
\ddd Octal
\xdd Hexadecimal
\udddd Unicode Character

Contoh :
“Trade Mark dari Java \u212”
Hasil output diatas adalah :
Trade Mark dari Java ™
Operator dan Ekspresi

Ekspresi : adalah statement yang mengembalikan suatu nilai
Operator : suatu symbol yang biasanya digunakan dalam ekspresi

1. Operator Aritmatika

Operator Meaning Example
+ Addition 3 + 4
- Substraction 5 – 7
* Multiplication 5 * 5
/ Division 14 / 7
% Modulus 20 % 7

Contoh :

// Nama File Aritmatika.java
class Aritmatika {
public static void main(String args[]) {
short x = 10’
int y = 4;
float a = 12.5f;
float b = 7f;
System.out.println(“X = “ + x + “, Y = “ +y);
System.out.println(“X +Y = “ + (x +y));
System.out.println(“X -Y = “ +(x-y));
System.out.println(“X / Y = “ +(x/y));
System.out.println(“X % Y = “ +(x%y));
System.out.println(“A = “ + a + “, B = “ +b); System.out.println(“A / B = “ + (a / b));
}
}

2. Operator Increment dan Decrement
Operator increment dan Decrement ( ++ dan -- ) menaikkan dan menurunkan variable dengan 1.
Contoh :
Y = ++ x;
Z= --x;


3. Assignment Operator

Ekspression Meaning
x += y x = x + y
x -= y X = x – y
x *= y x = x * y
x /= y x = x / y

Lebih jauh dengan Assignment

Variabel assignment adalah suatu bentuk ekspresi :

x = y = z = 0;

pada contoh diatas variable x,y,z bernilai 0.


4. Operator Relasional ( Perbandingan)

Java mempunyai beberapa ekspresi untuk menguji hasil suatu perbandingan :

Operator Meaning Example
== Equal x== 3
!= Not Equal x != 3
< Less Than x < 3
> Greater Than x > 3
<= Less Than Or Equal To x < = 3
>= Greater Than Or Equal To x > = 3

5. Operator Logika

Operator Meaning Example
&& And 2 && 2
|| Or 2 || 2
!= NOT 2 != 2

6. Operator Bitwise

Operator bitwise complement operator ( ~ ) melakukan negasi bitwise nilai bilangan bulat. Bitwise negation berarti masing – masing bit di angka maka semua bilangan biner 0 menjadi 1 dan semua bilangan biner 1 menjadi 0.

Contoh :
X=8;
Y=~x;
Pada contoh ini x diberi nilai literal 8, kemudian dilakuakn bitwise complement sebelum diberikan ke y.Hal ini bearti semua bit di varioabel x dinegasikan, hasilnya adalah bilangan bulat -9.
Contoh diatas terjadi karena bilangan int disimpan menggunakan metode two’s complement. Semua bilangan int ( kecuali char) direpresentasikan two’s complement yang berarti bilangan negative direpresentasikan dengan inverse semua bit menghasilkan 11110111 adalah angka -9, bila ditambah 1 maka 11111000 adalah -8.
Karena pengunaan two’s complement maka operator bitwise dapat menghasilkan nilai – nilai tidak diharapkan. Mengubah bit paling kiri akan berarti mengubah tanda bilangan dari positif menjadi neatif dan sebaliknya.


Object dan Class

Definisi class dan object :

class

Dalam dunia nyata, kita sering berinteraksi dengan banyak object. Kita tinggal di rumah, rumah adalah suatu object, dalam terminology OOP rumah kita adalah instance dari suatu class rumah.
Misal kita tinggal dalam suatu komplek perumahan, sebelum membangun rumah, developer akan berpanduan pada rancang bangun rumah(blue print) yang telah dibuat seorang arsitek. Blue print dari rumah adalah class, sedang rumah yang kita tinggal(rumah-rumah dalam komplek) disebut instance.
Manusia adalah sebuah class ; anda, saya, kita adalah instance dari class manusia




Object

Object adalah instance dari class. Jika class secara umum merepresentasikan(template) sebuah object, sebuah instance adalah representasi nyata dari class itu sendiri.
Bekerja dengan Object

Ketika anda membuat program dengan Java, anda akan mendefinisikan beberapa class, anda juga akan menggunakan class untuk membuat suatu instance dan tentu saja akan bekerja dengan instance-instance tersebut.

Membuat object

Untuk membuat object, kita menggunakan perintah new dengan sebuah nama class yang akan dibuat sebagai instance dari class tersebut.
String str = new String();
Random r = new Random();
Pegawai p2 = new PEgawai();
Date hari = new Date();

hari adalah object reference dari class Date yang akan digunakan untuk mengakses class Date.
Sedangkan operator new adalah operator yang akan menghasilkan hari sebagai reference ke instance dari class Date().

Contoh :

Kita akan menggunakan class Date untuk membuat suatu object Date.
import java.util.Date;
class CreateDates {
public static void main(String args[]){
Date d1,d2,d3;
d1 = new Date();
System.out.println(“Hari 1 : “ + d1);
d2 = new Date(71,4,14,8,35);
System.out.println(“Hari 2 : “ + d2);
d3 = new Date(“September 3 1976 2:25 PM”);
System.out.println(“Hari 3 : “ + d3);
}
}
Ketika anda memanggil operator new terjadi beberapa hal :
1. Instance baru yang telah diberikan oleh class dicipakan
2. Memori dialokasikan untuk instance tersebut
3. Special Method didefinisikan pada class (Konstruktor)

Konstruktor : Suatu method tertentu untuk membuat dan menginsialisasi sebuah instance baru dari class. Konstruktor menginisialiasasi object-object baru dan variable-variabel. Pemberian nama method Konstruktor harus sama dengan nama classnya. (Penjelasan tentang Konstruktor akan dibahas dalam pertemuan berikutnya)

Akses dan Setting Class dan Variabel Instance

Akses variable Instance

Untuk mengambil value dari suatu variable instance kita gunakan notasi titik(.)
Dengan notasi titik, sebuah instance atau variable class dibagi dua bagian. Object berada disebelah kiri titik, dan variable berada di kanan titik.

Pegawai.tugas;

Pegawai adalah object, tugas adalah variable. Misalkan tugas adalah object yang mempunyai variable instance sendiri yaitu status, penulisan dapat ditulis sebagai berikut

Pegawai.tugas.status;

Memberi Nilai variabel
Untuk memberi nilai variable kita gunakan operator sama dengan(=) disebelah kanan ekspresi.

Pegawai.tugas.status = SELESAI; // SELESAI==true





Contoh :

// Nama File : Testpoint.java
import java.awt.font;
class Testpoint {
public static void main(String args[]) {
Point poin = new Point(10,10);
System.out.println(“X = “ + point.x);
System.out.println(“Y = “ + point.y);

System.out.println(“Setting X = 6 “);
poin.x = 6;
System.out.println(“Setting Y = 14“);
poin.y = 14;

System.out.println(“X = “ + point.x);
System.out.println(“Y = “ + point.y);
}
}

Memanggil method

Untuk memanggil method didalam object, sama seperti memanggil variable instance; yaitu dengan dengan menggunakan notasi titik(.)
Object berada disebelah kiri titik, dan method beserta argumen-argumen berada di kanan titik.

ObjectSatu.methodDua(arg1, arg2, arg3);

Method tanpa argument :

ObjectSatu.methodNoArg();

Jika method yang dipanggil mempunyai object yang mempunyai method tersendiri

ObjectSatu.GetObjectLain().getNama();

Method dengan kombinasi memanggil variable instance

Pegawai.golongan.gaji(arg1, arg2);



Contoh :
//Nama File : TestString.java
classTestString {
public static void main(String args[]) {
String str=”Awalilah segala sesuatu pekerjaan dengan
Bismillah”;

System.out.println(“Kalimat bijak : “ +str);
System.out.println(“Panjang Kalimat : “ +str.length());
System.out.println(“Character pada posisi 4 adalah : “ +str.charAt(4));
}
}

Object Reference
Ketika bekerja dengan object-object, salah satu hal yang penting untuk dimengerti adalah bagaimana menggunakan reference ke suatu object.
Ketika kita meng-assign suatu object ke variable, atau menjadikan object-object sebagai argument pada suatu method, sesungguhnya kita telah membuat reference ke object-object tersebut, bukan object atau duplikasi(copy) dari object yang membuat suatu reference

Contoh berikut akan membuat kita jelas :
// Nama file : ReferencesTest.java
import java.awt.font;

class ReferenceTest {
public static void main(String args[]) {

Point poin1,poin2;
poin1 = new Point(100,100);
poin2 = poin1;

poin1.x = 200;
poin2.y = 200;
System.out.println(“Point 1 : “+poin1.x+”,”+poin1.y);
System.out.println(“Point 1 : “+poin1.x+”,”+poin1.y);
}
}
Dalam program diatas, kita mendeklarasikan dua variable bertipe Point, dan meng-assign suatu Point baru ke poin1. Kemudian meng-assign poin2 dengan nilai dari poin1.

Output yang terjadi adalah :

Point 1 : 200,200
Point 2 : 200,200

Terlihat poin2 juga berubah. Ketika kita meng-assign suatu nilai dari poin1 ke poin2, sesungguhnya kita menciptakan sebuah reference dari point2 menunjuk ke suatu object yang sama dengan poin1.


poin1 Point Object

poin2


Mendeklarasikan Class dan Variabel

Class adalah kumpulan kode atau cetak biru(blue print) dari suatu object. Didalam cetak biru menerangkan sifat dari objek dan identitas suatu variable.

Sintax untuk mendeklarasikan class :

[‘public’] [(‘abstract’ | ‘final’)] class nama_class
{
// sifat dari object dan identitas suatu variable dideklarasikan diantara {}
}

Menggunakan keyword public berarti class tersebut bisa di akses oleh class-class di seluruh package. Perlu diingat jangan menggunakan public jika class dibuat hanya di akses oleh class-class dalam satu package dengan class itu sendiri.

Gunakan keyword abstract untuk mendefinisikan suatu class abstract dimana object tidak bisa diciptakan dari class abstract, kelas abstract dibuat untuk diturunkan(di subclass) bukan untuk diinstansiasi langsung.

Gunakan keyword final untuk mendefinisikan suatu class yang tidak dapat diturunkan.

Penamaan class biasanya menggunakan huruf capital untuk karakter pertamanya.

Contoh :

class Mhs {

}

Jika class adalah sub class dari class lain gunakan keyword extends.

class Mhs extends Mahasiswa {

}

Dapat diartikan Mhs adalah subclass dari Mahasiswa.

Deklarasi Variabel

Sintax Deklarasi variable :

[(public | private | protected)]
[(final | volatile)]
[static][transient]
Tipe_data Nama_variabel [=ekspresi];

Contoh :

class Mahasiswa {
String npm;
int nilai;
}






Akses variable
Untuk akses dan scope variable digunakan keyword : public, private atau protected.
1. Tanpa keyword
Jika tidak digunakan keyword diatas sebagaimana contoh dibawah ini :
class MyClass
{
int nama;
}
Berarti : Hanya kode-kode yang terdapat dalam MyClass dan class-class lain yang dideklarasikan dalam package dimana MyClass dideklarasikan yang dapat mengakses variable nama.
2. private
class Pegawai
{
private double gaji
}
Berarti : Hanya kode-kode yang terdapat dalam class Pegawai yang dapat mengakses variable gaji.
3. public
public class Pegawai
{
public String nama;
}
Berarti : Kode-kode yang terdapat didalam class Pegawai dan class yang terdapat di dalam package lain dapat mengakses variable nama(class Pegawai harus dideklarasikan public juga agar dapat diakses class-class dalam package lain.
4. protected
public class Pegawai
{
protected String nama;
}
Berarti : Hanya kode-kode yang terdapat dalam class Pegawai dan class-class lain dalam satu package yang sama dengan class Pegawai dan seluruh sub class dari class Pegawai(yang dideklarasikan dalam package lain) dapat mengakses variable nama.

PERTEMUAN KE II

INHERITANCE,ARRAY, STRING
DAN
PERULANGAN
• Tujuan Praktikum :

1. Mengetahui pengertian objek,class dan penggunaannya dalam pemrograman java
2. Mengenal penurunan sifat (INHERITANCE) di dalam bahasa java.
3. Mengenal perulangan dengan menggunakan syntax perulangan di java.
4. Mengetahui penggunaan array dan string.


Array merupakan suatu struktur data yang sangat penting dalam suatu bahasa pemrograman . Suatu larik atau array merupakan suatu kumpulan data yang memiliki tipe yang sama. Misal suatu array bertipe string maka tidak boleh ada tipe lain didalamnya.
Ada 2 cara untuk mendeklarasikan array dalam bahasa java yaitu :
a. Dengan menggunakan operator New :
Bentuk Umum : tipe-array nama-array[ ] = new tipe-array[ ukuran array ]
Contoh : int nama [] = new int[10]
b. Dengan memberikan nilai awal array dengan menggunakan “{“ dan “}”
Contoh : String [ ] jurusan = {“ MI ”,” TI “,” TK “,” AKUNTANSI “ }
Untuk bentuk pertama ini array belum memiliki nilai awal sehingga sebelum digunakan kita harus memberikan nilai awal kepada array tersebut.
Contoh Program :
class larik {
String [] nama = {“JATI”,”SANTI”,”NISA”,”RINTO”};
String [] kelas = new String[nama.length];
Void cetakNama() {
Int I = 0;
System.out.println(nama[i] + ” “ + kelas[i];
i++;
System.out.println(nama[i] + ” “ + kelas[i];
i++;
System.out.println(nama[i] + ” “ + kelas[i];
i++;
System.out.println(nama[i] + ” “ + kelas[i];
}
public static void main (String[] args) {
larik a = new larik ();
System.out.println(“ “);
System.out.println(“------------------------“);
a.cetakNama();
System.out.println(-------------------------“);
a.kelas[0] = “3IA03”;
a.kelas[1] = “4IA01”;
a.kelas[2] = “2IA01”;
a.kelas[0] = “3IA07”;
a.cetakNama();
System.out.println(“--------------------“);
}
}
Untuk deklarasi array multi dimensi :
Type array nama array [] [] = new type array[ukuran-array] [ukuran array]
Contoh program :
import java.io.*;

class Array2D
{
public static void main(String[]args)
{
DataInputStream entry = new DataInputStream(System.in);

try
{
int[][]angka = new int[3][3];
for(int i = 0;i {
for(int j = 0;j {
System.out.print("Matrik [ " + (i+1)+ "] [ " + (j+1) + " ] = ");
angka[i][j] = Integer.parseInt(entry.readLine());
}
}
System.out.println("Data array 2 Dimaensi : ");
for(int i = 0; i {
for(int j = 0;j {
System.out.print(angka[i][j]+ " ");
}
System.out.println();
}
}
catch(Exception e)
{
System.out.println("Wah salah input tuh ");
}
}
}


Loop atau sering disebut juga sebagai iterasi adalah pengualangan suatu eksekusi dari suatu kode program. Pengulangan ini akan terus dilakukkan sampai sebuah kondisi dicapai atau perulangan tersebut telah diulang sebanyak n kali .
Didalam bahasa java terdapat beberapa macam perulangan yaitu :
a. while
Statemen while digunakan untuk mengeksekusi sebuah blok secara berulang selama memenuhi kondisi tertentu..
Bentuk Umum : while(ekspresi) {
…………… statemen …………….. }
Contoh Program :
class ulang1 {
public static void main (String []args ) {
System.out.println(“Masukkan angka kamu : “);
char c = (char) System.in.read();
while (c <> ‘7’ ) {
System.out.println(“Please try again ! “);
System.out.println(“Masukkan angka kamu : “);
char c = (char) System.in.read();
}
System.out.println(“Anda Benar !!!!! “);
}
}
b. do….while
Sama halnya dengan while, statemen do-while digunakan untuk mengeksekusi sebuah blok secara berulang sampai tidak memenuhi kondisi tertentu. Pada penggunaan while,ekspresi diperiksa pada saat awaL,jadi kemungkinan blok statemen dalam while tidak pernah dieksekusi. Pada penggunaan do-while, ekspresi tidak diperiksa pada saat awal eksekusi, jadi minimal blok statemen do-while akan di eksekusi sekali.
Bentuk Umum : do {
………….. statemen…………..
}while(ekspresi)
Contoh Program :
class DoWhile{
public static void main (String args[]) {
int n = 10 ;
do {
System.out.println(“tick tick “ + n);
n--;
}while(n > 0);
}
}
c. for
Statemen for digunakan untuk mengeksekusi sebuah blok secara berulang dalam sebuah range tertentu.
Bentuk Umum : for(inisialisai;terminasi;increment){
………………….. statemen ……………… }
Contoh Program :
class ForTick {
public static void main (String []args)
{
int n;
for(n=10;n>0;n--)
System.out.println(“tick tick “ + n);
}
}

INHERITANCE (PENURUNAN SIFAT )

Inheritance adalah pewarisan atribut-atribut dan method pada sebuah class yang diperoleh dari class yang telah terdefinisi tersebut.
Contoh Program :
// contoh inheritanace sederhana
// file disimpan dengan nama penurunansederhana.java
class A {
int i;
int j;
void show_ij(){
System.out.println(“I dan j = “ + I + “” + j);
}
}
class B extends A {
int K ;
void show_k () {
System.out.println(“k = “ +k);
}
void sum_all() {
System.out.println(“I + j + k = “ + (i+j+k));
}
}
class penurunansederhana {
public static void main (String args[]){
A objekBapak = new A();
B objekAnak = new B();

objekBapak.i = 13;
objekBapak.j = 17;

System.out.println(“Objek A -> objek superclass dari B : “)
objekBapak.show_ij();
objekAnak.i = 9;
objekAnak.j = 10;
objekAnak.k = 11;

System.out.println(“Objek A -> objek superclass dari B : “)
objekAnak.show_ij();
objekAnak.show_k();
objekAnak.sum_all();
}
}



Java string merupakan salah satu kelas dasar yang disediakan oleh java untuk manipulasi karakter. Kelas string diguinakan untuk mendefinisikan string yang constant(tidak bias berubah).
Contoh Program :
class panjang_string {
public static void main(String [] args) {
String s1 = “Perkenalan “;
String s2 = new String (“ Pertama “ );
Int pjg;
Pjg = s1.length;
System.out.println(“panjang String s1 = \” +s1+”\”= “ + pjg );
Pjg = s2.length();

System.out.println(“panjang String s2 = \” +s2+”\”= “ + pjg );
}
}


PERTEMUAN KE III

METHOD, KONSTRUKTOR
DAN EXCEPTION HANDLING

Tujuan Praktikum :

1. Mengetahui penggunaan Method didalam java.
2. Mengetahui peggunaan konstruktor dalam java.
3. Mengetahui cara menangani kesalahan dalam program di bahasa java.

• METHOD

Metode menentukan perilaku objek,yakni apa yang terjadiketika objek itu dibuat serta berbagai operasi yang dapat dilakukan objek sepanjang hidupnya.
Metode memiliki 4 (empat) bagian dasar :
• Nama metode
• Tipe Objek atau tipe primitive yang dikembalikan metode.
• Daftar parameter.
• Badan atau isi metode.
Tiga bagian pertama dari definisi metode membentuk apa yang disebut sebagai penanda (signature) metode dan mengindikasikan informasi penting tentang metode itu sendiri. Dengan kata lain, nama metode tersebut dari metode=-metode lain dalam program. Dalam java kita dapat memiliki metode-metode berbeda yang memiliki nama sama tetapi berbeda tipe kembalian atau daftar argumennya, sehingga bagian-bagian definisi metode ini menjadi penting. Ini disebut overloading metode.
Definisi dasar metode adalah sebagai berikut :
Tipekembalian namametode (type1 arg1, type2 arg2, type3 arg3 ..)
{
…………
}
dalam contoh diatas tipekembalian adalah tipe nilai yang dikembalikan oleh metode. Ini bias berupa salah satu tipe primitive,nama kelas, atau void bila metode tidak mengembalikan nilai sama sekali.

Contoh Program :
class KelasRentang {
int [] buatRentang(int lower, int upper) {
int arr[] = new int [ {upper – lower ) + 1 ];
for (int I = 0 ; i< arr.length;i++) {
arr[i] = lower++;
}
return arr;
}
public static void main(String [] args) {
int inilarik[];
KelasRentang iniRentang = new KelasRentang ();
Inilarik = iniRentang.buatRentang(5,20);
System.out.print(“Lariknya adalah : [ “ );
For (int i = 0; i < inilarik.length;i++) {
System.out.print(inilarik[i] + “ “);
}
System.out.println(“] “);
}
}
Pada bagian definisi metode terkadang kita ingin merujuk objek saat ini (yakni objek dimana metode berada untuk pertama kalinya). Untuk itu digunakanlah kata kunci this. Kata kunci this dapat digunakan dimanapun objek saat ini berada pada notasi titik untuk merujuk variabel instance objek, sebagai argument ke metode, sebagai nilai kembalian untuk metode saat ini, san sebagainya :
t = this.x // x variabel instance objek
return this // mengembalikan objek saat ini.

• KONSTRUKTOR

Metode konstruktor digunakan untuk menginisialisasi objek baru ketika metode-metode itu dibuat. Tidak seperti metode biasa, kita tidak dapat memanggil metode konstruktor dengan memanggilnya langsung. Metode konstruktor dipanggil oleh java secara otamatis ketika kita membauat objek baru.

Jika kita menggunakan new untuk membuat objek baru, java melakukan 3(tiga) hal :
• Mengalokasikan memori untuk objek baru
• Menginisialisasi variabel instance objek tersebut, baik dengan nilai awal maupun dengan nilai default (0 untuk bilangan, null untuk objek, false untuk Boolean, ‘\0’ untuk objek, false untuk Boolean, ‘\0’ untuk karakter).
• Memanggil Metode konstruktor kelas tersebut (mungkin satu dari beberapa metode)
Dengan mendefinisikan metode konstruktor pada kelas yang kita buat, kita dapat mengatur nilai awal variabel instance , memanggil metode berdasar variabel tersebut atau objek lain, atau menghitung property awal objek, kita juga dapat melakukan overloading konstruktor sebagaimana yang biasa kita lakukanh terhadap metode regular, juga membuat objek yang memiliki properti khusus berdarkan argumen yang kita berikan dalam ekspresi new.
Konstruktor mirip dengan metode regular, hanya saja ada dua perbedaan utama yaitu :
• Konstruktor selalu memiliki nama yang sama dengan class.
• Konstruktor tidak memiliki nilai kembalian.

Contoh Program :
class Asisten {
String nama ;
int umur;
Asisten(String n, int u) {
nama = n;
umur = u;
}
void tampilAsisten () {
System.out.print(“Hallo, namaku “ + nama );
System.out.println(“ Umurku “ + umur + “ tahun “);
}
public ststic void main(String [] args) {
Asisten a;
System.out.println(“ “);
a = new Asisten(“Widy Marinto Jati “ ,20);
a.tampilAsisten();
System.out.println(“--------------------“ );
a = new Asisten(“Iman R, ST “ ,22);
a.tampilAsisten();
System.out.println(“-----------------------“);
}
}
• Exception Handling

Exeption dimunculkan pada program saat menemukan keadaan yang dapat menyebabkan program menjadi error. Sebuah Exception akan menyebabkan aliran program keluar dari aliran yang normal .
Sebagai contoh program dimunculkan jika program menggil suatu file yang tida ada . untuk menanganinya dapat digunakan blok try – catch


Contoh Exception :
import java.io.* ;
class exc1 {
public static void main {
int d,a ;
try {
d = 0 ;
a = 42 / d;
System.out.println(“This will not be printed “ );
}
catch (Exception e ){
System.out.println(“Pembagian dengan nol );
}
System.out.println(“Setelah catch statemen “ );
}
}


















PERTEMUAN IV

STREAM DAN FILE

Tujuan Praktikum :

5. Mengetahui dan memahami jenis-jenis operasi file di Java
6. Memberikan penjelasan tentang konsep stream dan file di Java
7. Memberikan penjelasan serta memberikan contoh implementasi operasi stream
8. Memberikan penjelasan disertai contoh tentang operasi file di Java(teks dan biner)

 Stream

Stream adalah representasi abstrak dari input dan output device dimana aliran data bytes akan ditransfer seperti file dalam harddisk, file pada system remote atau printer. Kita dapat membaca data dari input stream, yang dapat berupa file,keyboard, atau computer remote. Sedangkan untuk operasi penulisan berarti kita menulis data pada output stream.
Package java.io mendukung dua tipe stream, yaitu binary dan karakter stream. Binari merupakan data berupa bit atau data binary, sedangkan karakter adalah tipe khusus untuk pembacaan dan penulisan teks/karakter.
Kemampuan untuk memproses output dalam Java dakam bentuk byte atau bytestream diwakili oleh class abstrak OutputStream sedangkan input diwakili class InputStream. Apabila kita memproses data karakter(karakter Unicode) atau disebut character stream seperti string atau bilangan maka Java menyediakan class abstrak Reader dan Writer.

Class Keterangan
File Objek dari class ini mewakili path, direktori atau file yang akan diakses untuk input atau output
OutputStream Class dasar untuk operasi output byte stream, merupakan class abstrak
InputStream Class dasar untuk operasi input byte strean, merupakan class abstrak
Writer Class dasar untuk operasi output karakter stream,merupakan class abstrak
Reader Class dasar untuk operasi input karakter stream,merupakan class abstrak
RandomAccessFile Class yang menyediakan dukungan untuk akses random ke file

 InputStream

Subclass-subclass dari InputStream adalah :
AudioInputStream,ByteArrayInputStream, FileInputStream, FilterInputStream, PipedInputStream, SequenceInputStream, dan StringBufferInputStream.
Dua method utama dari Input Stream adalah :
• read() : digunakan untuk membaca stream
• close() : digunakan untuk menutup koneksi input stream

 OutputStream

Subclass-subclass dari OutputStream adalah :
• ByteArrayOutputStream : untuk menuliskan stream menjadi byte array
• FileOutputStream : digunakan untuk menulis pada file
• FilterOutputStream : merupakan superclass dari subclass-subclass seperti DataOutputStream, BufferOutputStream, PrintStream, CheckedOutputStream.
• ObjectOutputStream : digunakan untuk menuliskan objek pada OutputStream
• PipedOutputStream : digunakan untuk menjadi output PipedOutputStream
Sebagian method-method OutputStream adalah :
• void close() : Menutup output stream yang aktif dan melepaskan sumber daya terkait dengan stream tersebut
• void flush() : Melakukan flush output stream dan memaksa semua byte buffer untuk dituliskan keluar
• void write(byte[] b) : menulis sebanyak b.length dari byte array ke output stream
• void write(byte [] b, int off, int len) : Menuliskan sebanyak len byte dari byte array b dimulai dari index offf

 DataOutputStream
DataOutputStream merupakan class yang menyediakan cara praktis untuk menuliskan tipe data primitive ke output stream, sedangkan DataInputStream berfungsi untuk membaca hasil penulisan DataOutputStream atau mendapatkan data kembali.
Sebagian method DataOutputStream :
• writeDouble : menuliskan data bertipe double ke output stream
• writeInt : menuliskan data Integer ke output stream
• writeBoolean : menuliskan data Boolean ke output stream
• writeUTF : menuliskan data string menggunakan encoding UTF-8 yang tidak tergantung pada mesin
 DataInputStream

DataInputStream berfungsi untuk saling melengkapi dengan DataOutputStream, yaitu untuk mendapatkan data yang ditulis dengan DataOutputStream.

Tipe data primitive yang ditulis oleh DataOutputStream didapatkan kembali dengan DataInputStream dengan tidak bergantung pada mesin computer.

Sebagian method DataInputStrean :
• readDouble()
• readInt()
• readBoolean()
• readUTF()

BufferedInputStream dan BufferedOutputStream

BufferedInputStream maupun BufferedOutputStream menyediakan fungsi buffer dalam proses output dan input untuk mempercepat dan mengefisienkan proses

Kedua class ini biasanya digunakan secara bersamaan dengan implementasi class output dan input stream lain seperti DataOutputStream, DataInputStream, FIleOutputStream dan FileInputStream atau yang lain. Kedua class ini menjadi semacam penengah yang menyediakan proses buffering

FileInputStream dan FIleOutputStream

Seringkali proses input dan output yang kita lakukan menggunakan file sebagai sarana penulisan maupun pembacaan data.
Oleh karena itu kita akan membahas class FileInputStream untuk membaca data dari file dan FIleOutputStream untuk menuliskan data ke file.
Class FileInputStream merupakan turunan langsung dari class InputStream sedangkan FileOutputStream merupakan turunan langsung dari class OutputStream.

Contoh dibawah akan mencoba mendeskripsikan sample penggunaan class DataOutputStream, DataInputStream, FileOutputStream, FileOutputStream, serta BufferedInputStream dan BufferedOutputStream.

//Nama File cobaDataStream.java
import java.io.*;

public class cobaDataStream{
public static void main(String args[])
{
try {

DataOutputStream out2 =
new DataOutputStream(
new BufferedOutputStream(
new FileOutputStream("Data.txt")));
out2.writeDouble(3.14159);
out2.writeDouble(1.41413);

out2.writeInt(2002);
out2.writeInt(1003);

out2.writeBoolean(true);
out2.writeBoolean(false);
out2.close();
}
catch(IOException ioe)
{
ioe.printStackTrace();
}

try
{
DataInputStream in5 =
new DataInputStream(
new BufferedInputStream(
new FileInputStream("Data.txt")));


System.out.println(in5.readDouble());
System.out.println(in5.readDouble());
System.out.println(in5.readInt());
System.out.println(in5.readInt());

boolean status = in5.readBoolean();
boolean status1 = in5.readBoolean();

System.out.println(status);
System.out.println(status1);

} catch(EOFException e) {
System.err.println("End of stream");
}
catch(IOException io)
{
io.printStackTrace();
}

}
}

 Class File

Class File merupakan langkah awal dalam mempelajari proses input output dengan Java karena File merupakan objek yang mewakili path, file atau direktori pada harddisk.
Ada 3 cara membuat objek File, yaitu :

1. Menggunakan objek String sebagai argument yang menginformasikan path untuk file atau direktori.
Contoh :
File direktori = new File(“c:/my documents/java/”);
File fileku = new File(“c:/my documents/java/dokumen.txt”);
2. Menggunakan dua langkah dimana yang pertama untuk mrndefinisikan direktori dan yang kedua untuk file
Contoh :
File dirku = new File(“c:/my documents/java”);
File filenya = new File(dirku, “dokumennya.txt”);
3. Menggunakan dua argument dimana yang pertama adalah argument String yang mendefinisikan direktori, dan yang kedua adalah argument String yang mendefinisikan nama file
Contoh :
File filesaya = new File(“c:/my documents/java/”,”dokumennya.txt”);


 Method dalam Class File

Selain mendefinisikan direktori atau file, objek File juga dapat digunakan untuk mendapatkan informasi file melalui method-method yang ada dalam objek File.

Method Keterangan
exists() Mengembalikan nilai true apabila file atau direktori itu ada
isDirectory() Mengecek apakah objek file menunjuk pada direktori atau file
getName() Mendapatkan nama file atau direktori dalam string(tanpa path) dari objek File
getPath() Mendapatkan path dalam String dari objek File,termasuk nama File / direktori
getAbsolutePath() Mendapatkan path absolute dari direktori / file yang direferensi oleh objek file
list() Bila objek File mewakili direktori maka akan mengembalikan array String yang mengandung nama dari isi direktori. Bila objek File merupakan file maka akan mengembalikan nilai null
listFiles() Bila objek file berupa direktori maka akan mengembalikan objek File yang ada dalam direktori
length() Mengembalikan nilai bertipe long yang merupakan panjang bytes dari file yang diwakili oleh objek File, bila berupa direktori akan mengembalikan nilai 0
lastModified() Mengembalikan nilai long yang mewakili waktu terakhir objek File terakhir kali dimodifikasi.
Penggunaan class File dan method-methodnya dapat dilihat pada program cekDirektori.java

//Nama File cekDirektori.java
import java.io.*;
import java.util.Date;

public class cekDirektori{

public static void main(String args[])
{
System.out.println("TESTING DIREKTORI DAN ISI DIREKTORI");

String dirnya="D:\\Lamaran_Kerja\\";

File direktori = new File (dirnya);
System.out.println(direktori+(direktori.isDirectory()?" adalah ": " bukan") + " direktori");
System.out.println("NAMA DIREKTORI: "+direktori.getName());
System.out.println("PATH DIREKTORI: "+direktori.getPath());

File[] isidirektori = direktori.listFiles();

if (isidirektori!=null)
{
System.out.println("Jumlah isi direktori adalah "+isidirektori.length);
System.out.println("ITEM dalam direktori:");

for (int i=0 ; i {
System.out.println(isidirektori[i]+"adalah " + (isidirektori[i].isDirectory( ? " direktori ":" file ")+
"\nterakhir dimodifikasi "+
new Date(isidirektori[i].lastModified()));
}
}
else
{
System.out.println("ISI DIREKTORI KOSONG");
}
String filenya="C:\\My Documents\\JAVA\\cekDirektori.java";
File fileku = new File (filenya);
System.out.println("\nCek eksistensi file :"+filenya);
System.out.println(fileku+(fileku.exists()?"benar":"tidak")+ "ada");

}
}

 Menuliskan String ke File Teks

Seperti telah disinggung diatas, bahwa terdapat dua macam stream, yaitu binary dan karakter stream dan yang akan digunakan untuk menulis karakter ke file teks adalah karakter stream.

Perbedaan utama apabila kita menggunakan karakter stream dan binary stream adalah tidak adanya konversi dari data output yang akan kita tuliskan menjadi karakter sesuai coding karakter yang digunakan oleh komputer kita.

 FileWriter

FileWriter merupakan subclass dari OutputStreamWriter dimana class OutputStreamWriter adalah subclass dari class abstrak Writer.

Class Writer memiliki Konstruktor yang umum seperti berikut :
• FileWriter(File objekfile);
• FilWriter(String pathkefile);
• FileWriter(String pathkefile, Boolean append);
Contoh penggunaan :
File inifile = (pathdirektori, namafile);
FileWriter outputnya = new FileWriter(inifile);



 PrintWriter

PrintWriter merupakan subclass dari class abstrak Writer yang digunakan melakukan output dari berbagai macam tipe data yang kemudian dikonversi ke bentuk karakter.
Penggunaan PrintWriter dengan FileWriter :
PrintWriter fileoutput = new PrintWriter (
New FileWriter(File objekfile);
);

Contoh penggunaan lebih lengkap dapat dilihat pada listing dibawah :

//Nama File : TulisFile.java
import java.io.*;

public class TulisFile{
public static void main(String args[])
{
boolean kondisi=false;
try
{
String direktori="C:\\ C:\My Documents\\JAVA";
String namafile="fileteks.txt";
File fileteks = new File(direktori,namafile);
if (fileteks.exists())
{
kondisi=true;
}
else
{
fileteks.createNewFile();
}

PrintWriter fileoutput = new PrintWriter (
new FileWriter (fileteks.getPath(),kondisi));

String[] identitas={"Iman Rochdilianto\n","Web Developer\n",
"PT Kreasi Riset Informatika Sistem SOlusi\n"};

for (int i=0 ; i {
fileoutput.println(identitas[i]);
}
fileoutput.close();
}
catch (IOException e)
{
System.out.println("ERROR Menulis ke file"+e);
}
}
}

 Membaca File Teks

Kali ini kita akan mempelajari bagaimana membaca karakter dari file teks.
Adapun class dasar yang dipakai adalah class Reader yang memiliki beberapa subclass yang dapat dipakai untuk membaca karakter. Yang akan diberikan contoh adalah penggunaan class FileReader.
- FileReader
Class yang dapat dipakai untuk membaca file teks adalah FileReader.
Konstruktor FileReader adalah :
- FileReader(File objekfile);
- FileReader(String pathkefile);
Method yang digunakan :
- read(char[] array);
- read(char[] array, int offset, int length);
Sebenarnya class ini memiliki method lain, tetapi kali ini kita akan membahas penggunaan method read(char[] array) saja. Lebih jelas lihat listing dibawah.
// Nama File : BacaFile.java
import java.io.*;

public class BacaFile{
public static void main(String args[])
{
System.out.println("Membaca file teks");
try
{
String direktori="C:\\My Documents\\JAVA";
String namafile="fileteks.txt";
File fileteks = new File(direktori,namafile);

BufferedReader baca =
new BufferedReader(new FileReader(fileteks));
int c;

StringBuffer temp=new StringBuffer();
String tempstring="";

While (true)
{
tempstring = baca.readLine();

if (tempstring !=null)
temp.append(tempstring+"\n");
else
break;
}

System.out.print(temp);
}
catch (IOException e)
{
System.out.println("ERROR membaca file"+e);
}

}
}
















1. Sebutkan sifat-sifat OOP serta tuliskan contohnya dalam kehidupan sehari-hari !
2. Tuliskan bentuk umum dari sebuah class di Java !
3. Apa yang dimaksud dengan method serta instance?
4. Sebutkan tipe data yang ada dijelaskan serta panjang(range) dari tipe data tersebut!
5. Sebutkan jenis perulangan yang terdapat dalam bahasa java ?
6. Apakah perbedaan perulangan menggunakan while dengan do-while ?
7. Bagaimana deklarasi array dalam bahasa java ?
8. Buat program untuk membuat matrik 2 dimensi dengan array ?
9. Buat program untuk mengabungkan 2 buah string ?
10. Buat bentuk umum dari while,do-while dan for dan juga berikan masing-masing contohnya.
11. Apa yang kamu ketahui tentang method dalam bahasa java, jelaskan ?
12. Bagaimana cara menangani kesalahan dalam bahasa java, berikan contohnya ?
13. Apa yang dimaksud dengan kostruktur , dan bagaimana cara menggunakannya dalam bahasa java.
14. Jelaskan definisi stream dan file.
15. Sebutkan class-class yang terdapat di stream dan file disertai dengan bentuk umumnya
16. Sebutkan macam-macam operasi file serta apa perbedaan dari operasi file tersebut.
17. Buatlah sebuah superclass yang bernama kendaraan, dimana kendaraan mempunyai : Roda , kemudi (stang), sadel, dan mempunyai action : Jalankan, rem, Buatlah subclass motor yang inherit superclass kendaraan, dengan atribute jumlahroda = 2 dan mempunyai method tambahan jumping. Buatlah subclass mobil yang inherit superclass kendaraan, dengan attribute jumlahroda = 4 dan mempunyai methode tambahan mundur.
18. Bentuklah dalam OOP yang merepresentasikan permasalahan berikut ini : Misal iketahui berbagai jenis pohon. Setiap pohon mempunyai akar, daun, batang. setiap pohon dapat tumbuh, berbunga . Pohon mangga merupakan salah satu jenis pohon yang dapat berbuah mangga. Pohon Jambu merupakan salah satu jenis pohon yang dapat berbuah jambu.




1. Cetak program – program yang dikerjakan pada saat praktikum.
2. Buat logika program untuk masing – masing program.





KONSEP DAN APLIKASI

A. Latar Belakang
Pasca pengesahan Undang-undang nomor 20 tahun 2003 tentang Sistem Pendididkan Nasional terjadi perubahan besar dalam konteks pengelolaan proses pendidikan di Indonesia. Dalam undang-undang tersebut tidak lagi dikenal istilah pengajaran, namun menggunakan istilah pembelajaran. UU no.20 tahun 2003 mendefinisikan pembelajaran adalah proses interaksi peserta didik dengan pendidik dan sumber belajar pada suatu lingkungan belajar.
Bertolak dari undang-undang sistem pendidikan nasional, pemerintah kemudian menyusun standar proses penyelenggaraan pendidikan. Dengan sebelumnya telah disahkan standar isi yang memuat standar kompetensi lulusan dan kompetensi dasar.
Pemunculan istilah pembelajaran dalam sistem pendidikan nasional tentu tidak terwujud begitu saja. Ada pergeseran paradigma yang cukup besar dari pengajaran menjadi pembelajaran. Pada konsep pengajaran akan memunculkan kondisi teacher center. Sedangkan pada konsep pembelajaran guru lebih bersifat fasilitator yang membuat siswa belajar sendiri. Pada konsep ini pula sangat mungkin dan relevan terwujudnya student center.
Dengan berpegang pada konsep pembelajaran dalam proses pendidikan maka diharapkan setiap siswa maupun guru dapat senantiasa belajar dan menemukan sendiri ataupun atas bantuan orang lain konsep-konsep yang dipelajari. Oleh karena itu maka dibutuhkan beragam sumber belajar yang dapat memberikan suport secara penuh agar pembelajaran dapat berlangsung secara optimal.
Sumber belajar pada dasarnya sangat banyak dan beragam. Keberagaman tersebut akan memberikan dampak positif maupun negatif. Dampak positif misalnya proses pembelajaran akan berlangsung lebih baik, menyenangkan dan sesuai kebutuhan. Dampak negatif misalnya guru memiliki tugas yang tidak mudah dalam menentukan sumber belajar maupun media belajar yang sesuai dengan pembelajaran yang akan diberikan. Terlebih jika ada kendala misalnya guru tidak tahu tentang peta sumber belajar yang dapat dioptimalkan.
Untuk itulah maka pengorganisasian sumber belajar menjadi kebutuhan cukup besar terutama dalam posisinya sebagai suport system dalam sistem pembelajaran. Pengelolaan dan pengorganisasian sumber belajar dalam sebuah institusi pendidikan dapat diwujudkan dalam bentuk pusat sumber belajar (PSB).
Nurul Fikri Boarding School (NFBS) sebagai sebuah lembaga pendidikan yang menyelenggarakan pendidikan untuk tingkat SMP dan SMA dengan konsep Boarding School (Sekolah Berasrama) tentu membutuhkan pengelolaan dan pengorganisasian sumber belajar. Sumber belajar di NFBS pada dasarnya terbagi dua macam yaitu sumber belajar yang sudah tersedia dan yang sengaja diadakan. Sumber belajar yang sudah tersedia misalnya danau, rawa, lembang, hutan dna lainnya. Sumber belajar yang dengan sengaja diadakan misalnya perpustakaan beserta buku-buku, laboratorium beserta alat dan bahan, komputer dan internet serta yang lainnya.

B. Sumber Belajar
Sumber belajar ialah asal yang mendukung terjadinya belajar, termasuk sistem pelayanan, bahan pembelajaran dan lingkungan. Menurut Barbara B. Seels (1994), sumber belajar mencakup apa saja yang dapat digunakan untuk membantu tiap orang untuk belajar dan orang tersebut dapat menampilkan kompetensinya. Sumber belajar tidak hanya terbatas pada bahan dan alat yang digunakan dalam proses belajar mengajar, melainkan juga tenaga, biaya, dan fasilitas. Dalam Yusufhadi Miarso (2005), sumber belajar untuk belajar termasuk orang (penulis buku, prosedur media, dan lain-lain), pesan (yang tertulis dalam buku-buku atau tersaji lewat media), media (buku, program kontrol, radio, dan lain-lain), alat (jaringan kontrol, radio, dan lain-lain), cara-cara tertentu dalam mengolah/ menyajikan pesan, serta lingkungan dimana proses pendidikan itu berlangsung.
Sumber belajar pada prinsipnya mencakup orang, isi, pesan, media, alat, teknik, dan latar lingkungan yang mengandung informasi dan dirancang atau dimanfaatkan untuk memfasilitasi seseorang belajar, sehingga memungkinkan peserta didik untuk belajar secara mandiri.
Menurut Asosiasi Teknologi Komunikasi Pendidikan sumber belajar meliputi semua sumber (baik data, orang atau benda) yang dapat digunakan untuk memberi kemudahan belajar. Menurutt Rahadi (2005) Sumber belajar meliputi orang, bahan, peralatan dan lingkungan/latar.
1. Orang: adalah manusia yang berperan sebagai pencari, penyimpan, pengolah dan penyaji pesan. Contohnya guru, dosen, tutor, pustakawan, laboran, instruktur, pelatih olah raga, tenaga ahli dan masih banyak lagi.
2. Bahan
Bahan adalah perangkat lunak yang biasanya berisikan pesan-pesan belajar yang disajikan dengan menggunakan peralatan tertentu. Contohnya adalah: transparansi, slide, filmstrip, video tape, piringan hitam, tape audio, bahan pengajaran terprogram, program pengajaran dengan menggunakan komputer, buku jurnal.
3. Alat
Alat adalah barang-barang yang lazim disebut perangkat keras “hardware”, digunakan untuk menyampaikan pesan. Contohnya: OHP, proyektor slide, proyektor filmstrips, perekaman tape video, perekaman audio, pesawat televisi, pesawat radio, mesin (konsul) penyimpan informasi, mesin belajar.
4. Latar/lingkungan
Latar/lingkungan adalah lingkungan (situasi sekitar), dimana pesan diterima oleh pelajar. Lingkungan dapat berupa lingkungan fisik (gedung sekolah, pusat penyimpanan paket instruksional, perpustakaan, studio, ruang kelas, auditorium) dan lingkungan non-fisik (penerangan, sirkulasi udara, akustik, pendinginan, pemanasan).

Sumber belajar dapat dibedakan menjadi dua, yaitu sumber belajar yang direncanakan (by design) dan sumber belajar karena dimanfaatkan (by utilization). Sumber belajar yang direncanakan adalah semua sumber yang secara khusus telah dikembangkan sebagai komponen sistem instruksional, untuk memberikan fasilitas belajar yang terarah dan bersifat formal. Sedangkan sumber belajar karena dimanfaatkan adalah sumber–sumber yang tidak secara khusus didesain untuk keperluan pembelajaran, namun dapat ditemukan, diaplikasikan, dan digunakan untuk keperluan belajar.

C. PUSAT SUMBER BELAJAR
Menurut F. Persifal dan H. Elington dalam Rahadi (2005), pusat sumber belajar adalah tempat atau bangunan yang dirancang secara khusus untuk tujuan menyimpan, merawat, mengembangkan, dan memanfaatkan berbagai sumber belajar, baik untuk kebutuhan belajar secara individual maupun kelompok. Oleh karena itu Ricard N. Tuker (1979), menyebutnya sebagai media center.
Merril dan Drop (1977), mendefinisikan Pusat Sumber Belajar sebagai suatu kegiatan yang terorganisir yang terdiri dari direktur, staf, peralatan dan bahan-bahan pembelajaran yang ditempatkan dalam satu lokasi serta mempunyai satu atau lebih fasilitas khusus untuk perencanaan, produksi, penyajian, dan pengembangan yang berhubungan dengan kurikulum dan pengajaran pada suatu universitas atau sekolah.
Jadi Pusat Sumber Belajar (PSB) adalah tempat atau lembaga yang mengorganisasikan berbagai sumber belajar ke dalam sistem pembelajaran untuk memenuhi kebutuhan belajar.
Konsep Pusat Sumber Belajar merupakan hasil perkembangan secara bertahap. Menurut Gary T. Peterson dalam Rahadi (2005) tahap perkembangan PSB terdiri dari:
Tahap pertama: Pemanfaatan dan pengelolaan sumber belajar tidak dikelola dan diorganisir oleh sebuah lembaga, melainkan hanya oleh perorangan saja.
Tahap kedua: dimulai dengan perpustakaan yang mengelola sumber belajar berupa bahan cetak.








Tahap ketiga: dengan perkembangan audio visual maka berkembanglah perpustakaan yang dilengkapi dengan pelayanan audio visual.










Tahap keempat: pada tahap ini ruang perpustakaan pada tahap ketiga dilengkapi dengan ruang belajar non tradisional.











Tahap kelima: pengembangan konsep perpustakaan dari tahap keempat ditambah dengan komponen pengembangan sistem pembelajaran.




















D. Konsep & Aplikasi Pengembangan Pusat Sumber Belajar NFBS
Nurul Fikri Boarsing School, sebagai sebuah lembaga pendidikan yang memiliki luas areal hingga 100 ha tentu memiliki potensi yang sangat besar untuk pemanfaatan alam sebagai sumber belajar. Jika dilihat dari ketersediaan ruang untuk tempat sumber belajar, NFBs memiliki ruangan yang cukup.
Namun, hal yang tampak ialah belum optimalnya pengelolaan sumber belajar yang ada. Baik sumber belajar yang dengan sengaja dirancang maupun yang sudah tersedia. Di sisi lain adanya tuntutan untuk meningkatkan prestasi belajar siswa. Peningkatan prestasi belajar siswa sendiri erat kaitannya dengan ketersediaan sumber belajar, pengelolaan dan pemanfaatannya dalam proses pembelajaran.
Berkenaan dengan proses pembelajaran dalam sebuah sekolah, tentu berkaitan erat dengan kompetensi profesionalitas Guru. Guru yang berkualitas tentu perlu memiliki kualifikasi akademik, kompetensi pedagogic, kompetensi kepribadian, kompetensi sosial dan kompetensi personal. Kompetensi akademik dan pedagogic erat kaitannya dengan peran guru sebagai sumber belajar maupun manajer pembelajaran.
Dalam kaitan Guru sebagai manajer pembelajaran, maka guru sangat perlu untuk dapat merencanakan, mengelola, mengevaluasi dan mengembangkan pembelajaran dan komponen-komponennya agar berjalan sesuai visi dan misi lembaga. Berdasarkan uraian-uraian di atas, tampak bahwa pengelolaan sumber belajar dan unsur-unsur yang terkait dengannya perlu dilembagakan. Konsep Pelembagaan Pusat Sumber Belajar Nurul Fikri Boarding School mengacu pada pengertian bahwa PSB NFBS ialah sebuah unit pendukung yang memiliki tugas menyediakan, merawat, melayani, mengembangkan dan mengelola sumber belajar. Dimana sumber belajar meliputi orang, alat, bahan dan latar. Konsep Pusat Sumber Belajar NFBS dapat dilihat dalam gambar 6 berikut ini:
























Semua komponen tersebut secara bersama-sama merancang program yang membentuk komunitas pemelajar. Artinya lembaga Pusat Sumber Belajar memiliki arah pembentukan learning comunity.
Untuk itu semua komponen mengambil peran masing-masing yang sesuai dengan lingkup amanahnya. Misalnya bagian laboratorium komputer dan staff ICT (TIK: Teknologi Informasi dan Komunikasi) merancang sistem jaringan untuk perwujudan e-learning, penyiapan software dan hardware pembelajaran berbasis komputer. Di sisi lain seperti perpustakaan perlu dideain agar mudah diakses peminjamannya, katalognya dan informasi ketersediaan buku oleh semua civitas akademika dimana saja sejauh masih dalam lingkungan NFBS. Dalam konteks perpustakaan dibangun pula perpustakaan digital agar sisiwa mudah membaca informasi yang bersifat segera.
Pada ranah pembinaan dan pengembangan guru yang banyak berperan adalah kepala sekolah dan staff akademik lainnya. Untuk membentuk learning comunity maka salah satu tugas yang perlu segera dilakukan adalah membiasakan guru untuk mau belajar dan sharing pengetahuan. Dalam konteks persiapan penerapan e-learning, kepada guru perlu dikembangkan kemampuan penguasaan teknologi informasi dan komunikasi seperti internet, instalasi sofware dan penggunaan berbagai sofware untuk pembelajaran.
Dalam kaitannya dengan laboratorium sains maupun laboratorium sosial dan bahasa perlu dikembangkan juga pembelajaran berbasis lab virtual. Baik melalui pengembangan video praktikum maupun pengembangan sofware. Sehingga ketika alat dan bahan praktikum tidak tersedia maka dapat dilakukan simulasi di lab komputer. Meskipun tersedia santri tetap dapat menggunakannya dalam tahap persiapan menuju praktikum.

Referensi
1. Pedoman Umum Ejaan Bahasa Indonesia Yang Disempurnakan. PT. Gramedia Widiasarana Indonesia, Jakarta, 1993.
2. Prawiradilaga, Dewi Salma., Evelina Siregar. Mozaik Teknologi Pendidikan. Prenada Media: Jakarta, 2004
3. Purwanto. Jejak Langkah Perkembangan Teknologi Pendidikan di Indonesia. Departemen Pendidikan Nasional: Jakarta, 2005.
4. Rothwell, William J., H.C Kazanas. Mastering the Instructional Design Process: a systematic approach. San Francisco: Jossey Bass, 1992
5. Sudjarwo. Beberapa Aspek Pengembangan Sumber Belajar. Medyatama sarana Perkasa. Jakarta, 1989
6. Suparman, Atwi M. Desain Instruksional. PAU – PPAI – UT: Jakarta, 2005.

REKAYASA PERANGKAT LUNAK

REKAYASA PERANGKAT LUNAK
(SOFTWARE ENGINEERING)

I. PENDAHULUAN
Rekayasa perangkat lunak telah berkembang sejak pertama kali ddiciptakan pada tahun 1940-an hingga kini. Focus utama pengembangannya adalah untuk mengembangkan praktek dan teknologi untuk meningkatkan produktivitas para praktisi pengembang perangkat luank dan kualitas aplikasi yang dapat digunakan oleh pemakai.

I.1 Sejarah Software Engineering
Istilah software engineering digunakan pertama kali pada akhir 1950-an dan awal 1960-an. Saat itu, masih terdapat perdebatan tajam mengenai aspek engineering dari pengembangan perangkat lunak. Pada tahun 1968 dan 1969, komite sains NATO mensponsori dua konferensi tentang rekayasa perangkat lunak, yang memberikan dampak kuat terhadap pengembangan rekayasa perangkat lunak. Banyak yang menganggap dua konferensi inilah yang menandai awal resmi profesi rekayasa perangkat lunak.
Pada tahun 1960-an hingga 1980-an, banyak masalah yang ditemukan para praktisi pengembangan perangkat lunak. Banyak project yang gagal, hingga masa ini disebut sebagai krisis perangkat lunak. Kasus kegagalan pengembangan perangkat lunak terjadi mulai dari project yang melebihi anggaran, hingga kasusu yang mengakibatkan kerusakan fisik dan kematian. Salah satu kasus yang terkenal antara lain meledaknya roket Ariane akibat kegagalan perangkat lunak. Selama bertahun-tahun, para peneliti memfokuskan usahanay untuk menemukan teknik jitu untuk memecahkan masalah krisi perangkat lunak. Berbagai teknik, metode, alat, proses diciptakan dan diklaim sebagai senjata pamungkas untuk memecahkan kasus ini. Mulai dari pemrograman terstruktur, pemrograman berorientasi objek, pernagkat pembantu pengembangan perangkat lunak (CASE tools), berbagai standar, UML hingga metode formal diagung-agungkan sebagai senjaat pamungkas untuk menghasilkan software yang benar, sesuai anggaran dan tepat waktu. Pada tahun 1987, Fred Brooks menulis artikel No Silver Bullet, yang berproposisi bahwa tidak ada satu teknologi atau praktek yang sanggup mencapai 10 kali lipat perbaikan dalam produktivitas pengembanan perngkat lunak dalam tempo 10 tahun.
Sebagian berpendapat, no silver bullet berarti profesi rekayasa perangkat lunak dianggap telah gagal. Namun sebagian yang lain justru beranggapan, hal ini menandakan bahwa bidang profesi rekayasa perangkat lunak telah cukup matang, karena dalam bidang profesi lainnya pun, tidak ada teknik pamungkas yang dapat digunakan dalam berbagai kondisi.

I.2 Pengertian Dasar
Istilah Reakayasa Perangkat Lunak (RPL) secara umum disepakati sebagai terjemahan dari istilah Software engineering. Istilah Software Engineering mulai dipopulerkan pada tahun 1968 pada software engineering Conference yang diselenggarakan oleh NATO. Sebagian orang mengartikan RPL hanya sebatas pada bagaimana membuat program komputer. Padahal ada perbedaan yang mendasar antara perangkat lunak (software) dan program komputer.
Perangkat lunak adalah seluruh perintah yang digunakan untuk memproses informasi. Perangkat lunak dapat berupa program atau prosedur. Program adalah kumpulan perintah yang dimengerti oleh komputer sedangkan prosedur adalah perintah yang dibutuhkan oleh pengguna dalam memproses informasi (O’Brien, 1999).
Pengertian RPL sendiri adalah suatu disiplin ilmu yang membahas semua aspek produksi perangkat lunak, mulai dari tahap awal yaitu analisa kebutuhan pengguna, menentukan spesifikasi dari kebutuhan pengguna, disain, pengkodean, pengujian sampai pemeliharaan sistem setelah digunakan. Dari pengertian ini jelaslah bahwa RPL tidak hanya berhubungan dengan cara pembuatan program komputer. Pernyataan ”semua aspek produksi” pada pengertian di atas, mempunyai arti semnua hal yang berhubungan dengan proses produksi seperti manajemen proyek, penentuan personil, anggaran biaya, metode, jadwal, kualitas sampai dengan pelatihan pengguna merupakan bagian dari RPL.
II. TUJUAN REKAYASA PERANGKAT LUNAK
Secara umunmm tujuan RPL tidak berbeda dengan bidang rekayasa yang lain. Hal ini dapat kita lihat pada Gambar di bawah ini.







Gambar 1. Tujuan RPL

Dari Gambar di atas dapat diartikan bahwa bidang rekayasa akan selalu berusaha menghasilkan output yang kinerjanya tinggi, biaya rendah dan waktu penyelesaian yang tepat. Secara leboih khusus kita dapat menyatakan tujuan RPL adalah:
a. memperoleh biaya produksi perangkat lunak yang rendah
b. menghasilkan pereangkat lunak yang kinerjanya tinggi, andal dan tepat waktu
c. menghasilkan perangkat lunak yang dapat bekerja pada berbagai jenis platform
d. menghasilkan perangkat lunak yang biaya perawatannya rendah









III. RUANG LINGKUP
Sesuai dengan definisi yang telah disampaikan sebelumnya, maka ruang lingkup RPL dapat digambarkan sebagai berikut:









Gambar 2. Ruang lingkup RPL (Abran et.al., 2004).

- software Requirements berhubungan dengan spesifikasi kebutuhan dan persyaratan perangkat lunak
- software desain mencakup proses penampilan arsitektur, komponen, antar muka, dan karakteristik lain dari perangkat lunak
- software construction berhubungan dengan detail pengembangan perangkat lunak, termasuk algoritma, pengkodean, pengujian dan pencarian kesalahan
- software testing meliputi pengujian pada keseluruhan perilaku perangkat lunak
- software maintenance mencakup upaya-upaya perawatan ketika perangkat lunak telah dioperasikan
- software configuration management berhubungan dengan usaha perubahan konfigurasi perangkat lunak untuk memenuhi kebutuhan tertentu
- software engineering management berkaitan dengan pengelolaan dan pengukuran RPL, termasuk perencanaan proyek perangkat lunak
- software engineering tools and methods mencakup kajian teoritis tentang alat bantu dan metode RPL
- software engineering process berhubungan dengan definisi, implementasi pengukuran, pengelolaan, perubahan dan perbaikan proses RPL
- software quality menitik beratkan pada kualitas dan daur hidup perangkat lunak

IV. REKAYASA PERANGKAT LUNAK DAN DISIPLIN ILMU LAIN
Cakupan ruang lingkup yang cukup luas, membuat RPL sangat terkait dengan disiplin dengan bidang ilmu lain. tidak saja sub bidang dalam disiplin ilmu komputer namun dengan beberapa disiplin ilmu lain diluar ilmu komputer.
Hubungan keterkaitan RPL dengan ilmu lain dapat dilihat pada gambar dibawah ini








Gambar 3. Keterkaitan RPL dengan bidang ilmu lain.

- bidang ilmu manajemen meliputi akuntansi, finansial, pemasaran, manajemen operasi, ekonomi, analisis kuantitatif, manajemen sumber daya manusia, kebijakan, dan strategi bisnis
- bidang ilmu matematika meliputi aljabar linier, kalkulus, peluang, statistik, analisis numerik, dan matematika diskrit
- bidang ilmu manajemen proyek meliputi semua hal yang berkaitan dengan proyek, seperti ruang lingkup proyek, anggaran, tenaga kerja, kualitas, manajemen resiko dan keandalan, perbaikan kualitas, dan metode-metode kuantitatif
- bidang ilmu ergonomika menyangkut hubungan ( interaksi) antar manusia dengan komponen-komponen lain dalam sistem komputer
- bidang ilmu rekayasa sistem meliputi teori sistem, analisis biaya-keuntungan, pemodelan, simulasi, proses, dan operasi bisnis

V. PERKEMBANGAN REKAYASA PERANGKAT LUNAK
Meskipun baru dicetuskan pada tahun 1968, namun RPL telah memiliki sejarah yang cukup yang panjang. Dari sisi disiplin ilmu, RPL masih reklatif muda dan akan terus berkembang.
Arah perkembangan yang saat ini sedang dikembangkan antara lain meliputi :

Tahun Kejadian
1940an Komputer pertama yang membolehkan pengguna menulis kode program langsung
1950an Generasi awal interpreter dan bahasa macro Generasi pertama compiler
1960an Generasi kedua compiler Komputer mainframe mulai dikomersialkan Pengembangan perangkat lunak pesanan
Konsep Software Engineering mulai digunakan
1970an Perangkat pengembang perangkat lunak Perangkat minicomputer komersial
1980an Perangkat Komputer Personal (PC) komersial Peningkatan permintaan perangkat lunak
1990an Pemrograman berorientasi obyek (OOP) Agile Process dan Extreme Programming Peningkatan drastis kapasitas memori Peningkatan penggunaan internet
2000an Platform interpreter modern (Java, .Net, PHP, dll) Outsourcing



VI. METODE REKAYASA PERANGKAT LUNAK
Pada rekayasa perangkat lunak, banyak model yang telah dikembangkan untuk membantu proses pengembangan perangkat lunak. Model-model ini pada umumnya mengacu pada model proses pengembangan sistem yang disebut System Development Life Cycle (SDLC) seperti terlihat pada Gambar berikut ini.









Gambar 4. System Development Life Cycle (SDLC).

• Kebutuhan terhadap definisi masalah yang jelas. Input utama dari setiap model pengembangan perangkat lunak adalah pendefinisian masalah yang jelas. Semakin jelas akan semakin baik karena akan memudahkan dalam penyelesaian masalah. Oleh karena itu pemahaman masalah seperti dijelaskan pada Bab 1, merupakan bagian penting dari model pengembangan perangkat lunak.
• Tahapan-tahapan pengembangan yang teratur. Meskipun model-model pengembangan perangkat lunak memiliki pola yang berbeda-beda, biasanya model-model tersebut mengikuti pola umum analysis – design – coding – testing - maintenance
• Stakeholder berperan sangat penting dalam keseluruhan tahapan pengembangan. Stakeholder dalam rekayasa perangkat lunak dapat berupa pengguna, pemilik, pengembang, pemrogram dan orang-orang yang terlibat dalam rekayasa perangkat lunak tersebut.
• Dokumentasi merupakan bagian penting dari pengembangan perangkat lunak. Masing-masing tahapan dalam model biasanya menghasilkan sejumlah tulisan, diagram, gambar atau bentuk-bentuk lain yang harus didokumentasi dan merupakan bagian tak terpisahkan dari perangkat lunak yang dihasilkan.
• Keluaran dari proses pengembangan perangkat lunak harus bernilai ekonomis. Nilai dari sebuah perangkat lunak sebenarnya agak susah di-rupiah-kan. Namun efek dari penggunaan perangkat lunak yang telah dikembangkan haruslah memberi nilai tambah bagi organisasi. Hal ini dapat berupa penurunan biaya operasi, efisiensi penggunaan sumberdaya, peningkatan keuntungan organisasi, peningkatan “image” organisasi dan lain-lain.

VII. TAHAPAN REKAYASA PERANGKAT LUNAK
Meskipun dalam pendekatan berbeda-beda, namun model-model pendekatan memiliki kesamaan, yaitu menggunaka pola tahapan analysis – design – coding(construction) – testing – maintenance.

1. Analisis sistem adalah sebuah teknik pemecahan masalah yang menguraikan sebuah sistem menjadi komponen-komponennya dengan tujuan mempelajari seberapa bagus komponen-komponen tersebut bekerja dan berinteraksi untuk meraih tujuan mereka.
Analisis mungkin adalah bagian terpenting dari proses rekayasa perangkat lunak. Karena semua proses lanjutan akan sangat bergantung pada baik tidaknya hasil analisis. Ada satu bagian penting yang biasanya dilakukan dalam tahapan analisis yaitu pemodelan proses bisnis.

2. Model proses adalah model yang memfokuskan pada seluruh proses di dalam sistem yang mentransformasikan data menjadi informasi (Harris, 2003). Model proses juga menunjukkan aliran data yang masuk dan keluar pada suatu proses. Biasanya model ini digambarkan dalam bentuk Diagram Arus Data (Data Flow Diagram / DFD). DFD meyajikan gambaran apa yang manusia, proses dan prosedur lakukan untuk mentransformasi data menjadi informasi.

3. Disain perangkat lunak adalah tugas, tahapan atau aktivitas yang difokuskan pada spesifikasi detil dari solusi berbasis computer (Whitten et al, 2004).
Disain perangkat lunak sering juga disebut sebagai physical design. Jika tahapan analisis sistem menekankan pada masalah bisnis (business rule), maka sebaliknya disain perangkat lunak fokus pada sisi teknis dan implementasi sebuah perangkat lunak (Whitten et al, 2004).
Output utama dari tahapan disain perangkat lunak adalah spesifikasi disain. Spesifikasi ini meliputi spesifikasi disain umum yang akan disampaikan kepada stakeholder sistem dan spesifikasi disain rinci yang akan digunakan pada tahap implementasi. Spesifikasi disain umum hanya berisi gambaran umum agar stakeholder sistem mengerti akan seperti apa perangkat lunak yang akan dibangun. Biasanya diagram USD tentang perangkat lunak yang baru merupakan point penting dibagian ini. Spesifikasi disain rinci atau kadang disebut disain arsitektur rinci perangkat lunak diperlukan untuk merancang sistem sehingga memiliki konstruksi yang baik, proses pengolahan data yang tepat dan akurat, bernilai, memiliki aspek user friendly dan memiliki dasar-dasar untuk pengembangan selanjutnya.
Desain arsitektur ini terdiri dari desain database, desain proses, desain user interface yang mencakup desain input, output form dan report, desain hardware, software dan jaringan. Desain proses merupakan kelanjutan dari pemodelan proses yang dilakukan pada tahapan analisis.

4. Konstruksi adalah tahapan menerjemahkan hasil disain logis dan fisik ke dalam kode-kode program komputer.

5. Pengujian sistem melibatkan semua kelompok pengguna yang telah direncanakan pada tahap sebelumnya. Pengujian tingkat penerimaan terhadap perangkat lunak akan berakhir ketika dirasa semua kelompok pengguna menyatakan bisa menerima perangkat lunak tersebut berdasarkan kriteria-kriteria yang telah ditetapkan.

6. Perawatan dan Konfigurasi. Ketika sebuah perangkat lunak telah dianggap layak untuk dijalankan, maka tahapan baru menjadi muncul yaitu perawatan perangkat lunak. Ada beberapa tipe perawatan yang biasa dikenal dalam dunia perangkat lunak seperti terlihat pada diagram di Gambar di bawah ini :









Gambar 5. Tipe-tipe perawatan.

• Tipe perawatan corrective dilakukan jika terjadi kesalahan atau biasa dikenal sebagai bugs. Perawatan bisa dilakukan dengan memperbaiki kode program, menambah bagian yang dirasa perlu atau malah menghilangkan bagian-bagian tertentu.
• Tipe perawatan routine biasa juga disebut preventive maintenance dilakukan secara rutin untuk melihat kinerja perangkat lunak ada atau tidak ada kesalahan.
• Tipe perawatan sistem upgrade dilakukan jika ada perubahan dari komponen-komponen yang terlibat dalam perangkat lunak tersebut. Sebagai contoh perubahan platform sistem operasi dari versi lama ke versi baru menyebabkan perangkat lunak harus diupgrade.

DAFTAR PUSTAKA

IEEE Xplore - Software Engineering, IEEE Transactions on.
http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=32. Diakses pada tanggal 25 Mei 2009 jam 23.05 WIB

Mulyanto, Aunur R. 2008. Rekayasa Perangkat Lunak Jilid 1 untuk SMK. Direktorat Pembinaan Sekolah Menengah Kejuruan, Direktorat Jenderal Manajemen Pendidikan Dasar dan Menengah, Departemen Pendidikan Nasional : Jakarta

Pengertian Software Engineering.
http://www.total.or.id/info.php?kk=Software%20Engineering. Diakses pada tanggal 25 Mei 2009 jam 22.50 WIB

Wikipedia, the free encyclopedia - Software engineering .
http://en.wikipedia.org/wiki/Software_engineering. Diakses pada tanggal 25 Mei 2009 jam 23.00 WIB

PENGENALAN DATA BASE

HAND OUT
DASAR TENTANG DATABASE

Pengertian :
a. “a collection of related data” (Elmazri & Navathe, 1994)
b. “an organized collection of logically related data” (McFadden, Hoffer, and Presscot, 2002)
c. “a collection of data, typically describing the activities of one or more related organizations” (Ramakrishnan & Gerke, 2000)
Beberapa definisi basis data adalah sebagai berikut:
 Sekumpulan data store(bisa dalam jumlah besar) yang tersimpan dalam magnetic disk, optical disk, dan media penyimpan sekunder lainnya.
 Sekumpulan program-program aplikasi umum yang bersifat “batch” yang mengeksekusi dan memproses data secara umum(hapus,cari,update,dll)
 Basis data terdiri dari data yang di-share bagi banyak user dan memungkinkan penggunaan data yang sama pada waktu bersamaan oleh banyak user
 Koleksi terpadu dari data-data yang saling berkaitan dari suatu enterprise.Mis. Basis data RS akan terdiri dari data-data seperti pasien, karyawam, dokter, dan perawat

Pola dalam penyimpanan data :
1. Sistem pemrosesan berkas tradisional.
a. tiap aplikasi memiliki berkas sendiri sendiri
b. Dependensi data-program
Perubahan data membuat sejumlah program perlu dimodifikasi
c. Duplikasi data
Data yang sama muncul pada beberapa berkas
d. Keterbatasan berbagi data (Isolasi data - banyak format file)
e. Waktu pengembangan lama
Perlu membuat program untuk mengakses data
f. Problem integritas (kekonsistensian)
Kekakangan integritas (misalnya saldo >) menjadi bagian dari program
g. Keamanan data tidak terjamin












Sistem penyimpanan dengan konsep database
Aplikasi database : adalah program aplikasi yang digunakan untuk melaksanakan sederet kegiatan yang ditentukan oleh pemakai.



Keunggulan penerapan konsep database
 Independensi program-data
 Meminimalkan redundansi data
 Meningkatkan konsitensi data
 Meningkatkan kemampuan berbagai data
 Meningkatkan produktivitas pengembangan aplikasi
 Meningkatkan pencapaian standarisasi
 Meningkatkan kualitas data
 Meningkatkan tanggapan dan kemudahan akses terhadap data
 Mengurangi pemeliharaan program

Model dasar database
 Hierarkis
Lebih dikenal dengan model pohon

 Jaringan
Tiap anak bisa memiliki lebih dari satu orang tua.


 Relasional
Menggunakan model berupa tabel berdimensi dua (yang disebut relasi atau tabel),Memakai kunci tamu (foreign key) sebagai penghubung dengan tabel lain.

Konsep Dasar Database
 Field
i. Field merupakan implementasi dari suatu atribut data.
ii. Field merupakan unit terkecil dari data yang berarti(meaningful data) yang disimpan dalam suatu file atau basis data.
 Record
i. Field-field tersebut diorganisasikan dalam record-record
ii. Record merupakan koleksi dari field-field yang disusun dalam format yang telah ditentukan.
iii. Selama desain sistem, record akan diklasifikasikan sebagai fixed-length record atau variable-length record.
1. Fixed-length record: tiap instance record punya field, jumlah field, dan ukuran logik yang sama
2. Variable-length record : mengijinkan record-record yang berbeda dalam file yang sama memiliki panjang yang berbeda.

 File dan Tabel
i. Record-record yang serupa diorganisasikan dalam grup-grup yang disebut file. Jadi file merupakan kumpulan semua kejadian dari struktur record yang diberikan.
ii. Tabel merupakan ekivalen basis data relasional dari sebuah file.

Beberapa operasi dasar yang dilakukan oleh aplikasi database:
• Menambah data
• Membaca data
• Mengubah data
• Menghapus data

Kunci (Key)
Kunci merupakan elemen record yang dipakai untuk menemukan record tersebut pada waktu akses atau bisa digunakan untuk identifikasi tiap record.
Jenis-jenis kunci :
 Superkey
 Candidat key
 Primary key
 Alternate key
 Foreign key
 External key

Superkey : kumpulan atribut dari suatu tabel yang dapat digunakan untuk mengidentifikasi entity atau record dari tabel tersebut secara unik

Candidate key : superkey dengan jumlah atribut minimal. Candidat key ini tidak boleh berisi atribut dari tabel yang lain





ID_Cus Name NoOfPay Amount
112233 Tim 890 9000
112231 Kate 891 8000
112241 Tyson 895 10000


Primary key :Salah satu atrribut dari candidat key dapat dipilih menjadi primary key dengan 3 kriteria sbb :
 Key tersebut lebih natural untuk dijadikan acuan
 Key tersebut lebih sederhana
 Key tersebut cukup uniqe

Alternate key :Setiap atribut dari candidate key yang tidak terpilih sebagai primary key akan dinamakan alternate key. Pada contoh sebelumnya bila untuk primary key dipilih ID_Cus maka alternate key nya adalah No.of Pay

Foreign key : merupakan sembarang atribut yang menunjuk kepada primary key pada tabel lain.
 Akan terjadi pada suatu relasi yang memiliki kardinalitas one to many atau many to many





KODE MK SKS KD-Dosen
TEL 100 Fisika 3 D-101
TEL 200 Isyarat 2 D-109
TEL 210 T.Kendali 2 D-101


KD-Dosen Nama_Dosen
D-100 Badu,S.T
D-101 Ir.Thomas
D-109 Harry,S.T,M.T






Tahap Perancangan Database
 Perancangan secara konseptual
 Diagram konteks
 DFD
 Model ER
 Perancangan secara logis
 Translasi model ER ke Model Relasional
 Perancangan secara fisik
 Penciptaan database, relasi, dan hal-hal terkait ke dalam bentuk fisik



Diagram Konteks
Merupakan gambaran kasar aliran informasi dan data yang akan dilakukan oleh system database yang akan dirancang. Contoh diagram konteks :



Diagram ini hanya menjelaskan secara umum gambaran aliran konteks dari rancangan system yang akan dibuat.

DFD ( Data Flow Diagram )

Gambar diatas merupakan contoh DFD. DFD merupakan detail rancangan dari diagram konteks yang sudah dibuat yang sudah memuat rancangan table database yang akan diimplementasikan pada database yang akan dibuat.

Diagram E-R ( Entity Relational ).
 ERD merupakan model jaringan yang menggunakan susunan data yang disimpan dalam sistem secara abstrak
 Diagram E-R berupa model data konseptual, yang merepresentasikan data dalam suatu organisasi.
 ERD menekankan pada struktur dan relationship data, berbeda dengan DFD(Data Flow Diagram) yang merupakan model jaringan fungsi yang akan dilaksanakan sistem
 Biasanya digunakan oleh profesional sistem untuk berkomunikasi dengan pemakai eksekutif tingkat tinggi dalam perusahaan yang tidak tertarik pada pelaksanaan operasi sistem sehari-hari, namun lebih kepada :
 Data apa saja yang diperlukan untuk bisnis mereka?
 Bagaimana data tersebut berelasi dengan data lainnya?
 Siapa saja yang diperbolehkan mengakses data tsb?

Notasi Yang digunakan pada perancangan E-R diagram


Contoh ER diagram terlampir.

Latihan :
a. Perancangan diagram E-R.
Rancanglah diagram E-R dari kasus aplikasi database sederhanauntuk sistem informasi akademis suatu universitas.
Dengan ketentuan sebagai berikut :
Entities yang dimuat adalah :
1. mahasiswa: menyimpan semua informasi pribadi mengenai semua mahasiswa
2. dosen: menyimpan semua informasi pribadi mengenai semua dosen
3. mata_kuliah: menyimpan semua informasi mengenai semua mata kuliah yang ditawarkan
4. ruang: menyimpan semua informasi mengenai ruang kelas yang digunakan



Normalisasi
• Normalisasi merupakan teknik analisis data yang mengorganisasikan atribut-atribut data dengan cara mengelompokkan sehingga terbentuk entitas yang non-redundant, stabil, dan fleksible
• Normalisasi dilakukan sebagai uji coba pada suatu relasi secara berkelanjutan untuk menentukan apakah relasi itu sudah baik, yaitu dapat dilakukan proses insert,update,delete, dan modifikasi pada satu atau beberapa atribut tanpa mempengaruhi integritas data dalam relasi tersebut.
Pada proses normalisasi terhadap tabel pada database dapat dilakukan dengan tiga tahap normalisasi antara lain :
1. Bentuk Normal ke Satu(1NF)
a. Syarat :
b. Tidak ada set atribut yang berulang atau bernilai ganda.
c. Telah ditentukannya primary key untuk tabel atau relasi.
d. Tiap atribut hanya memiliki satu pengertian.
e. Tiap atribut yang dapat memiiki banyak nilai sebenarnya menggambarkan entitas atau relasi yang terpisah.
2. Bentuk Normal ke Dua(2NF)
a. Syarat :
b. Bentuk data telah memenuhi kriteria bentuk normal ke satu.
c. Atribut bukan kunci(non-key attribute) haruslah memiliki ketergantungan fungsional sepenuhnya pada primary key
3. Bentuk Normal ke Tiga(3NF)
a. Syarat :
b. Bentuk data telah memenuhi kriteria bentuk normal ke dua.
c. Atribut bukan kunci(non-key attribute) tidak boleh memiliki ketergantungan fungsional terhadap atribut bukan kunci lainnya. Seluruh atribut bukan kunci pada suatu relasi hanya memiliki ketergantungan fungsional terhadap primary key di relasi itu saja.
Contoh Normalisasi pada beberapa tingkatan.
Diberikan tabel Mahasiswa di bawah ini, akan dilakukan normalisasi sampai bentuk normal ke tiga


Perhatikan bahwa tabel di atas sudah dalam bentuk normal ke Satu(1NF).


















Bentuk Normal 3 NF3










SQL (Structure Query Language).
merupakan bahasa yang digunakan untuk melakukan rekayasa terhadap data pada database, mulai dari memasukkan, mengganti, dan menampilkan data pada database. untuk lebih detail akan dibahas pada modul praktikum.

Implementasi E-R diagram dengan tools
Saat ini telah tersedia beberapa tools yang bisa digunakan untuk membuat desain ERD dan secara otomatis bisa di generate ke bentuk tabel database secara otomatis. Diantaranta adalah DB Designer, dan DB Wrench. Tools ini akan dipelajari secara lebih detail pada praktikum.


















Contoh ERD


Pengenalan PostgreSQL

PostgreSQL atau sering disebut Postgres merupakan salah satu dari sejumlah database besar yang menawarkan skalabilitas, keluwesan, dan kinerja yang tinggi. Penggunaannya begitu meluas di berbagai platform dan didukung oleh banyak bahasa pemrograman. Bagi masyarakat TI (teknologi informasi) di Indonesia, Postgres sudah digunakan untuk berbagai aplikasi seperti web, billing system, dan sistem informasi besar lainnya.
Karakteristik PostgreSQL
1. PostgreSQL adalah sebuah object-relational database management system (ORDBMS)
2. Bersifat open source
3. Mendukung standar SQL92 dan SQL99
4. Mendukung bahasa pemrograman C, C++, Java, Tcl, Perl, Python, PHP, dst.

Arsitektur PostgreSQL
1. Berbasis Client-Server.
2. Backend software untuk database server (server-side): Postmaster
3. Frontend software (client-side):
a. psql (disediakan dalam paket PostgreSQL)
b. Client berbasis GUI (PgAdmin, PgAccess, ApplixWare, dsb.)
c. Client berbasis Web (phpPgAdmin)
d. Buat aplikasi sendiri (C, C++, Java, PHP, dsb.)

TINJAUAN UMUM PENGEMBANGAN SISTEM

TINJAUAN UMUM PENGEMBANGAN SISTEM


I. PERLUNYA PENGEMBANGAN SISTEM
Pengembangan sistem dapat berarti menyusun suatu sistem yang baru untuk menggantikan sistem yang lama secara keseluruhan atau memperbaiki sistem yang telah ada.
Perlunya Pengembangan Sistem :
• Adanya permasalahan (problem) yang timbul pada sistem yang lama
Permasalahan yang timbul dapat berupa :
- Ketidakberesan
- Pertumbuhan Organisasi
• Untuk meraih kesempatan (opportunities)
Teknologi informasi telah berkembang dengan cepatnya
• Adanya instruksi-instruksi (directives)

II. PRINSIP PENGEMBANGAN SISTEM
• Sistem yang dikembangkan adalah unutk manajemen
• Sistem yang dikembangkan adalah investasi modal yang besar
Investasi modal harus mempertimbangkan 2 hal :
1. Semua alternatif yang ada harus diinvestigasi
2. Investasi yang terbaik harus bernilai
• Sistem yang dikembangkan memerlukan orang yang terdidik
Tahapan kerja dan tugas yang harus dilakukan dalam proses pengembangan sistem
• Proses pengembangan sistem tidak harus urut
• Jangan takut membatalkan proyek
• Dokumentasi harus ada untuk pedoman dalam pengembangan sistem

III. TAHAPAN PENGEMBANGAN SISTEM
Tahapan utama siklus hidup Pengembangan Sistem terdiri dari :
1. Perencanaan Sistem ( Systems Planning)
2. Analisis Sistem (System Analysis)
3. Perancangan Sistem (Systems Design) Secara Umum
4. Seleksi Sistem (System Selection)
5. Perancangan Sistem (Systems Design) Secara Umum
6. Implementasi dan Pemeliharaan Sistem (System Implementation & Maintenance)
Siklus hidup pengembangan sistem dengan langkah-
langkah utamanya adalah sebagai berikut :




































Gambar Siklus Hidup Pengembangan Sistem




PERENCANAAN SISTEM.

Perencanaan sistem menyangkut estimasi dari kebutuhan-kebutuhan fisik, tenaga kerja dan dana yang dibutuhkan untuk mendukung pengembangan sistem ini serta untuk mendukung operasinya setelah diterapkan.

Perencanaan sistem dapat terdiri :
1. Perencanaan jangka pendek meliputi periode 1 s.d. 2 tahun
2. Perencanaan jangka panjang meliputi periode sampai dengan 5 tahun

Perencanaan sistem biasanya ditanggani oleh staf perencanaan sistem bila tidak ada dapat juga dilakukan oleh departemen sistem.

Proses Perencanaan Sistem dapat dikelompokkan dalam 3 proses utama yaitu sbb :
1. Merencanakan proyek-proyek sistem yang dilakukan oleh staf perencana sistem
2. Menentukan proyek-proyek sistem yang akan dikembangkan dan dilakukan oleh komite pengarah.
3. Mendefinisikan proyek-proyek sistem dikembangkan dan dilakukan oleh analis sistem.

Adapun tahapan dari proses perencanaan sistem untuk ketiga bagian ini adalah :
1. Merencanakan proyek-proyek sistem
-Mengkaji tujuan,perencanaan strategi dan taktik perusahaan
- Mengidentifikasikan proyek-proyek sistem
- Menetapkan sasaran proyek-proyek sistem
- Menetapkan kendala proyak-proyek sistem
- Menentukan proyek-proyek sistem prioritas
- Membuat laporan perencanaan sistem
- meminta persetujuan manajemen

2. Mempersiapkan proyek-proyek sistem yang akan dikembangkan
- Menunjuk team analis
- Mengumumkan proyek pengembangan sistem

3. Mendefinisikan proyek-proyek dikembangkan
- Melakukan studi kelayakan
- Menilai kelayakan proyek sistem
- Membuat usulan proyek sistem
- Meminta persetujuan manajemen.

ANALISIS SISTEM
Analisis Sistem dapat didefinisikan sebagai :
Penguraian dari suatu sistem informasi yang utuh ke dalam bagian-bagian komponennya dengan maksud untuk mengidentifikasikan dan mengevaluasi permasalahan-permasalahan, kesempatan-kesempatan, hambatan-hambatan yang terjadi dan kebutuhan-kebutuhan yang diharapkan sehingga dapat diusulkan perbaikan-perbaikan.

Tahap analisis merupakan tahap yang kritis dan sangat penting, karena kesalahan di dalam tahap ini akan menyebabkan juga kesalahan di tahap selanjutnya.

Langkah-langkah di Analisis Sistem :
Langkah-langkah di dalam tahap analisis sistem hampir sama dengan langkah-langkah yang dilakukan dalam mendefinisikan proyek-proyeksistem yang akan dikembangkan di tahap perencanaan sistem. Perbedaannya pada analisis sistem ruang lingkup tugasnya lebih terinci.
Didalam tahap analisis sistem terdapat langkah-langkah dasar yang harus dilakukan oleh Analis Sistem Yaitu sbb:
1. Identify, Yaitu mengidentifikasikan masalah
- Mengindentifikasikan penyebab masalah
- Mengidentifikasikan titik keputusan
- Mengidentifikasikan personil-personil kunci
2. Understand, Yaitu memahami kerja dari sistem yang ada
- Menentukan jenis penelitian
- Merencanakan jadual penelitian
- Mengatur jadual wawancara
- Mengatur jadual observasi
- Mengatur jadual pengambilan sampel
- Membuat penugasan penelitian
- Membuat agenda wawancara
- Mengumpulkan hasil penelitian
3. Analyze, Yaitu Menganalis Sistem
- Menganalisis kelemahan Sistem
- Menganalisis kebutuhan Informasi pemakai / manajemen
4. Report, Yaitu membuat laporan hasil analisis
Tujuan :
- Pelaporan bahwa analisis telah selesai dilakukan
- Meluruskan kesalah-pengertian mengenai apa yang telah ditemukan dan dianalisis oleh analis sistem tetapi tidak sesuai menurut manajemen
- Meminta pendapat-pendapat dan saran-saran dari pihak manajemen
- Meminta persetujuan kepada pihak manajemen untuk melakukan tindakan selanjutnya .

PERANCANGAN SISTEM

Setelah tahap analisis sistem selesai dilakukan, maka analis sistem telah mendapatkan gambaran dengan jelas apa yang harus dikerjakan. Tiba waktunya sekarang bagi analis sistem untuk memikirkan bagaimana membentuk sistem tersebut. Tahap ini disebut dengan perancangan sistem .

Perancangan Sistem dapat dibagi dalam dua bagian yaitu :
1. Perancangan sistem sec.umum/perancangan konseptual, perancangan logikal/perancangan sec.makro
2. Perancangan sistem terinci / perancangan sistem secara phisik.

Perancangan sistem dapat diartikan sebagai berikut ini :
1. Tahap setelah analisis dari siklus pengembangan sistem
2. Pendefinisian dari kebutuhan-kebutuhan fungsional
3. Persiapan untuk rancang bangun implementasi
4. Menggambarkan bagaimana suatu sistem dibentuk
5. Yang dapat berupa penggambaran, perencanaan dan pembuatan sketsa atau pengaturan dari beberapa elemen yang terpisah ke dalam satu kesalahan yang utuh dan berfungsi
6. Termasuk menyangkut mengkonfigurasikan dari komponen-komponen perangkat lunak dan perangkat keras dari suatu sistem

Tahap perancangan sistem mempunyai 2 tujuan utama yaitu :
1. Untuk memenuhi kebutuhan kepada pemakai sistem
2. Untuk memberikan gambaran yang jelas dan rancang bangun yang lengkap kepada pemrogram komputer dan ahli-ahli teknik lainnya yang terlibat.

EVALUASI DAN SELEKSI SISTEM

Tahap seleksi sistem merupakan tahap untuk memilih perangkat keras dan perangkat lunak untuk sistem informasi. Tugas ini membutuhkan pengetahuan yang cukup bagi yang melaksanakannya supaya dapat memenuhi kebutuhan rancang-bangun yang telah dilakukan. Pengetahuan yang dibutuhkan oleh pemilih sistem diantaranya adalah pengetahuan tentang siapa-siapa yang menyediakan teknologi ini, cara pemilikannya dsb. Pemilih sistem juga harus paham dengan teknik-teknik evaluasi untuk menyeleksi sistem.

Langkah-langkah menyeleksi dan memilih sistem :
1. Memilih penyedia teknologi.
Kebutuhan dari teknologi sistem dapat dikelompokkan dalam empat kategori sbb :
a. perangkat keras yang sifatnya umum
b. perangkat keras yang spesifik untuk suatu aplikasi
c. perangkat lunak yang sifatnya umum
d. perangkat lunak yang spesifik untuk suatu aplikasi
2. Meminta proposal dari penjual
Jika terdapat beberapa penyedia produk dan jasa yang mungkin dapat memenuhi kebutuhan dari sistem dan tidak semua penyedia teknologi ini akan dipilih, maka pemilih sistem perlu meminta proposal dari semua penyedia teknologi yang dipilih.
3. Menyaring penjual
Tidak semua proposal yang masuk akan dievaluasi semuanya. Hanya proposal yang memenuhi syarat saja yang akan dievaluasi. Proposal yang tidak memenuhi syarat adalah proposal yang tidak sesuai.
4. Mengevaluasi penjual yang lolos saringan
Proposal yang telah lolos saringan lebih lanjut perlu dibandingkan satu dengan yang lainnya dan diranking untuk menentukan penjual mana yang direkomendasi. Sebelum itu perlu ditetapkan terlebih dahulu kriteria evaluasi yang akan dilakukan.

IMPLEMENTASI SISTEM

Setelah dianalisis dan dirancang secara rinci dan teknologi telah diseleksi dan dipilih. Tiba saatnya , sistem untuk diimplementasikan. Tahap implementasi sistem merupakan tahap meletakkan sistem supaya siap untuk dioperasikan. Tahap ini termasuk juga kegiatan menulis kode program jika tidak digunakan paket perangkat lunak aplikasi.

Tahap implementasi sistem terdiri dari langkah-langkah sebagai berikut ini :
1. Menerapkan rencana implementasi
Rencana Implementasi dimaksudkan terutama untuk mengatur biaya dan waktu yang dibutuhkan selama implementasi. Dalam rencana implementasi ini, semua biaya yang akan dikeluarkan untuk kegiatan implemntasi perlu dianggarkan dalam bentuk anggaran biaya. Anggaran biaya ini selanjutnya juga berfungsi sebagai pengendalian terhadap biaya-biaya yang harus dikeluarkan. Waktu yang diperlukan untuk melakukan kegiatan juga perlu diatur dalam rencana implementasi dalam bentuk skedul waktu. Skedul waktu berfungsi sebagai pengendalian terhadap waktu implementasi.

2. Melakukan kegiatan implementasi
- Pemilihan dan pelatihan personil
- Pemilihan tempat dan instalasi perangkat keras dan perangkat lunak
- Pemrograman dan pengetesan program
- Pengetesan sistem
- Konversi sistem
3. Tindak lanjut implementasi
Analis sistem masih perlu melakukan tindak lanjut berikutnya seteleh sistem baru diimplementasikan. Analis sistem masih perlu melakukan pengetesan penerimaan sistem. Pengetesan ini berbeda dengan pengetesan sistem yang telah dilakukan sebelumnya. Jika pada pengetesan sebelumnya digunakan data test/semu, tapi pada pengetesan ini dilakukan dengan menggunakan data sesungguhnya dalam jangka waktu tertentu yang dilakukan oleh analis sistem bersama-sama dengan user.


IV. PENDEKATAN PENGEMBANGAN SISTEM
Terdapat beberapa pendekatan untuk mengembangkan sistem yaitu :
• Dipandang dari metodologi yang digunakan :
Pendekatan Klasik (Classical Approach)
Pendekatan Terstruktur (Structured Approach)
• Dipandang dari sasaran yang dicapai :
Pendekatan Sepotong (Piecerneal Approach)
Pendekatan Sistem (Systems Approach)
• Dipandang dari cara menentukan kebutuhan dari sistem :
Pendekatan Bawah Naik (Bottom Up Approach)
Pendekatan Atas Turun
• Dipandang dari Cara Mengembangkannya :
Pendekatan Sistem Menyeluruh
Pendekatan Moduler
• Dipandang dari Teknologi yang digunakan :
Pendekatan Lompatan Jauh (Great Loop Approach)
Pendekatan Berkembang (Evolution Approcah)

V. METODOLOGI PENGEMBANGAN SISTEM
Metodologi adalah :
Kesatuan metode-metode, prosedur-prosedur, konsep-konsep pekerjaan, aturan-aturan dan postulat-postulat yang diugnakan oleh suatu ilmu pengetahuan, seni atau disiplin lainnya.

Metode adalah :
Suatu cara/teknik yang sistematik untuk mengerjakan sesuatu.
Metodologi pengembangan sistem yang ada biasanya dibuat atau diusulkan oleh:
• Penulis Buku
• Peneliti
• Konsultan
• System House
• Pabrik Software

Metodologi Pengembangan Sistem diklasifikasikan menjadi 3 golongan :
1. Functional Decomposition Methodologies (Metodologi Pemecahan Fungsional)
HIPO (Hierarchy Input Process Output),
SR (Stepwise Refinement),
ISR (Iterative Stepwise Refinement),
Information Hiding
2. Data Oriented Methodologies (Metodologi Orientasi Data)
Data Flow Oriented Methodologies : SADT, Composite Design, SSAD
Data Structure Oriented Methodologies : JSD, W/O
3. Prescriptive Methodologies
ISDOS, PLEXSYS, PRIDE, SPEKTRUM

VI. ALAT DAN TEKNIK PENGEMBANGAN SISTEM
Dapat berupa :
1. Grafik
HIPO, DFD, SADT, W/O, JSD
2. Bagan
a. Bagan untuk menggambarkan aktivitas
b. Bagan untuk menggambarkan tata letak
c. Bagan untuk menggambarkan hubungan personil

Teknik yang digunakan untuk pengembangan sistem antara lain :
• Teknik Manajemen Proyek : CPM, PERT
• Teknik Menemukan Fkata : Wawancara, Observasi, Kuesioner, Sampling
• Teknik Analisis Biaya
• Teknik Menjalankan Rapat
• Teknik Inspeksi