Minggu, 28 September 2014

 PENGERTIAN SRS/SKPL

 

Apa itu SRS/SKPL? 
  • Sebuah dokumen yang berisi pernyataan lengkap dari apa yang dapat dilakukan oleh perangkat lunak, tanpa menjelaskan bagaimana hal tersebut dikerjakan oleh perangkat lunak
  • Mencantumkan deskripsi perangkat lunak dengan lingkungannya (Mencakup antarmuka untuk perangkat keras, perangkat lunak, komunikasi dan pemakai).
  • SRS umumnya dikembangkan bersama oleh calon pengguna dan para pengembang system/perangkat lunak
Faktor-faktor yang dipertimbangkan dlm pembuatan SRS
  1. Untuk Siapa perangkat lunak dikembangkan ?
  • Siapa yang menyediakan dana ?
  • Kepada siapa proposal pengembangan perangkat lunak akan diberikan ?
  • Yakinkan calon pengguna bahwa perangkat lunak yang akan dibuat memang dibutuhkan
  1. Masalah apa yang akan diselesaikan dengan kehadiran perangkat lunak yang baru ?
  • Seorang analis perlu berfikir dengan seksama masalah apa yang akan diselesaikan dengan kehadiran perangkat lunak baru.
  • Harus dingat.! Komputer hanya alat bantu. Komputer tidak dapat memecahkan semua masalah yang ada pada suatu perusahaan.
  1. Dimana perangkat lunak akan diimplementasikan ?
  • Karakteristik yang berbeda terhadap kebutuhan calon pengguna akan mempengaruhi model dan desain perangkat lunak yang dikembangkan, termasuk implementasi di lapangan
  1. Kapan perangkat lunak yang baru sudah harus dijalankan ?
  • para pengembang harus memperhatikan kapan waktu dimulainya pengerjaan proyek pengembangan perangkat lunak baru dan kapan waktu perangkat lunak tersebut sudah harus dikembangkan
  • Berpengaruh terhadap model pengembangan perangkat lunak yang akan dipergunakaan.
Fungsi dokumen SRS
  1. Mencatat semua kebutuhan calon pengguna perangkat lunak.
  1. Sebagai kontrol saat proses pengembangan perangkat lunak dilakukan, sehingga setiap tahapan pengerjaan pengembangan sesuai dengan yang diharapkan.
  1. Digunakan sebagai acuan pada saat pengujian dilakukan sehingga hasil akhir sesuai dengan yang dibutuhkan.
  1. Dijadikan pedoman jika terdapat perbedaan pendapat antara calon pemakai dengan pengembang sistem terhadap hasil dari pengembangan perangkat lunak
  1. Bukti bahwa pengembang telah melakukan tahap software reguirements analysis.
Kriteria dokument SRS yang baik
  1. Benar (correct)
  1. Tepat (precise)
  1. Unambiguouity
  1. Lengkap (complete)
  1. Bisa diverifikasi (verifiable)
  1. Konsisten
  1. Understandable
  1. Bisa dimodifikasi (modifiedable)
  1. Dapat ditelusuri (traceable)
  1. Harus dapat dibedakan bagian what (bagian spesifikasi) dan how (bagian yang menjelaskan bagaimana menjelaskan what tadi)
  1. Dapat mencakup dan melingkupi seluruh sistem
  1. Dapat melingkupi semua lingkungan operasional, misalnya interaksi fisik dan operasional.
  1. Bisa menggambarkan sistem seperti yang dilihat oleh pemakai.
  1. Harus toleran (bisa menerima) terhadap ketidaklengkapan, ketidakpastian (ambiguous) dan  ketidak konsistenan.
  1. Harus bisa dilokalisasi dengan sebuah coupling, yaitu hubungan ketergantungan antara dua model yang tidak terlalu erat.
Hindari hal-hal berikut saat pembentukan SRS
  1. Over specification (penjelasan berlebih dan berulang-ulang sehingga menjadi tidak jelas)
  1. Tindakan unconcistency
  1. Ambiguity dalam kata atau kalimat
  1. Menuliskan “mimpi-mimpi” , yaitu hal-hal yang tidak bisa dilakukan
Orang yang terlibat dalam pembuatan SRS
  1. Pemakai (user)
  • Merupakan orang yang akan mengoperasikan/menggunakan produk final dari perangkat lunak yang dibuat.
  1.  Sponsor/ Client
  •  Orang atau perusahaan yang mau membuat sistem (yang menentukan).
  1.  Sistem analyst (sistem engineer)
  •  Adalah orang yang biasa melakukan kontak teknik pertama dengan client. Bertugas menganalisis persoalan, menerima requirement dan menulis requirement.
  1.  Software engineer
  •  Merupakan orang yang bekerja setelah kebutuhan perangkat lunak dibuat (bekerja sama dengan sistem engineer berdasarkan SRS)
  1.  Programmaer
  •  Orang yang akan menerima spesifikasi perancangan perangkat lunak, membuat kode dalam bentuk modul, menguji dan memeriksa (tes) modul.
  1. Test integration group
  • Kumpulan orang yang melakukan tes dan mengintegrasi modul.
  1.  Maintenance group
  •  Orang yang memantau dan merawat performansi sistem perangkat lunak yang dibuat selama pelaksanaan dan pada saat modifikasi muncul (80% dari pekerjaan).
  1. Technical Support
  • Orang-orang yang mengelola (manage) pengembang perangkat lunak, termasuk konsultan atau orang yang mempunyai kepandaian lebih tinggi.
  1. Staff dan Clerical Work
  • Bertugas mengetik, memasukkan data dan membuat dokumen.

Sabtu, 20 September 2014

Contoh program Enkapsulasi, Inheritance dan Polymorphism pada JAVA

ENKAPSULIASI
Enkapsulasi adalah pembungkus, pembungkus disini dimaksudkan untuk menjaga suatu proses program agar tidak dapat diakses secara sembarangan atau di intervensi oleh program lain. Konsep enkapsulasi sangat penting dilakukan untuk menjaga kebutuhan program agar dapat diakses sewaktu-waktu, sekaligus menjaga program tersebut.




INHERITANCE
Inheritance (penurunan sifat / pewarisan), ini merupakan ciri khas dari OOP yang tidak terdapat pada pemrograman prosedural gaya lama. Dalam hal ini, inheritance bertujuan membentuk obyek baru yang memiliki sifat sama atau mirip dengan obyek yang sudah ada sebelumnya (pewarisan). Obyek turunan dapat digunakan membetuk obyek turunan lagi dan seterusnya. Setiap perubahan pada obyek induk, juga akan mengubah obyek turunannya. Susunan obyek induk dengan obyek turunannya disebut dengan hirarki obyek.






POLYMORPHISM
Polymorphism adalah suatu aksi yang memungkinkan pemrogram menyampaikan pesan tertentu keluar dari hirarki obyeknya, dimana obyek yang berbeda memberikan tanggapan/respon terhadap pesan yang sama sesuai dengan sifat masing-masing obyek.




Sekian dan maaf kalo ada salah komentar aja :D

Kamis, 11 September 2014

Tentang OOP (OBJECT ORIENTED PROGRAMMING)

PENGERTIAN & KONSEP OOP (OBJECT ORIENTED PROGRAMMING)

A. Pengertian OOP (Object Oriented Programming) 

OOP (Object Oriented Programming) adalah suatu metode pemrograman yang berorientasi kepada objek. Tujuan dari OOP diciptakan adalah untuk mempermudah pengembangan program dengan cara mengikuti model yang telah ada di kehidupan sehari-hari. Jadi setiap bagian dari suatu permasalahan adalah objek, nah objek itu sendiri merupakan gabungan dari beberapa objek yang lebih kecil lagi. Saya ambil contoh Pesawat, Pesawat adalah sebuah objek. Pesawat itu sendiri terbentuk dari beberapa objek yang lebih kecil lagi seperti mesin, roda, baling-baling, kursi, dll. Pesawat sebagai objek yang terbentuk dari objek-objek yang lebih kecil saling berhubungan, berinteraksi, berkomunikasi dan saling mengirim pesan kepada objek-objek yang lainnya. Begitu juga dengan program, sebuah objek yang besar dibentuk dari beberapa objek yang lebih kecil, objek-objek itu saling berkomunikasi, dan saling berkirim pesan kepada objek yang lain.

B. Konsep OOP (Object Oriented Programming) 

1. Kelas Abstrak (Class Abstraksi)
2. Enkapsulasi (encapsulation)
3. Pewarisan (Inheritance)
4. Polimorfisme (polymorphism)
1. Kelas Abstrak (Class Abstraksi)
Kelas merupakan deskripsi abstrak informasi dan tingkah laku dari sekumpulan data.
Kelas dapat diilustrasikan sebagai suatu cetak biru(blueprint) atau prototipe yang digunakan untuk menciptakan objek.
Kelas merupakan tipe data bagi objek yang mengenkapsulasi data dan operasi pada data dalam suatu unit tunggal.
Kelas mendefinisikan suatu struktur yang terdiri atas data kelas (data field), prosedur atau fungsi (method), dan sifat kelas (property).
2. Enkapsulasi (encapsulation)
Istilah enkapsulasi sebenarnya adalah kombinasi data dan fungsionalitas dalam sebuah unit tunggal sebagai bentuk untuk menyembunyikan detail informasi.
Proses enkapsulasi memudahkan kita untuk menggunakan sebuah objek dari suatu kelas karena kita tidak perlu mengetahui segala hal secara rinci.
Enkapsulasi menekankan pada antarmuka suatu kelas, atau dengan kata lain bagaimana menggunakan objek kelas tertentu.
Contoh: kelas mobil menyediakan antarmuka fungsi untuk menjalankan mobil tersebut, tanpa kita perlu tahu komposisi bahan bakar, udara dan kalor yang diperlukan untuk proses tersebut.
3. Pewarisan (Inheritance)
Kita dapat mendefinisikan suatu kelas baru dengan mewarisi sifat dari kelas lain yang sudah ada.
Penurunan sifat ini bisa dilakukan secara bertingkattingkat, sehingga semakin ke bawah kelas tersebut menjadi semakin spesifik.
Sub kelas memungkinkan kita untuk melakukan spesifikasi detail dan perilaku khusus dari kelas supernya.
Dengan konsep pewarisan, seorang programmer dapat menggunakan kode yang telah ditulisnya pada kelas super berulang kali pada kelas-kelas turunannya tanpa harus menulis ulang semua kodekode itu.
4. Polimorfisme (polymorphism)
Polimorfisme merupakan kemampuan objekobjek yang berbeda kelas namun terkait dalam pewarisan untuk merespon secara berbeda terhadap suatu pesan yang sama.
Polimorfisme juga dapat dikatakan kemampuan sebuah objek untuk memutuskan method mana yang akan diterapkan padanya, tergantung letak objek tersebut pada jenjang pewarisan.
Method overriding.
Method name overloading.
C. Karakteristik OOP (Object Oriented Programming) 
Semua adalah objek.
Komputasi dilakukan dengan komunikasi antar objek. Setiap objek berkomunikasi dengan objek yang lain melalui pengiriman dan penerimaan pesan.
Sebuah pesan merupakan permintaan atas sekumpulan aksi dengan semua argumen yang diperlukan untuk menyelesaikan suatu tugas tertentu.
Setiap objek memiliki memori sendiri, yang dapat terdiri dari objek-objek lainnya.
Setiap objek adalah wakil atau representasi dari suatu kelas. Sebuah kelas dapat mewakili sekelompok objek yang sama.
Kelas merupakan kumpulan tingkah laku yang berkaitan dengan suatu objek. Jadi, semua objek yang merupakan wakil dari kelas yang sama dapat melakukan aksi yang sama pula.
Kelas-kelas diorganisasikan ke dalam struktur pohon yang berakar tunggal, yang dinamakan dengan jenjang pewarisan (inheritance hierarchy).
Setiap objek pada umumnya memiliki tiga sifat, yaitu keadaan, operasi dan identitas objek.
Operasi merupakan tindakan yang dapat dilakukan oleh sebuah objek.
Keadaan objek merupakan koleksi dari seluruh informasi yang dimiliki oleh objek pada suatu saat.
Informasi yang terkandung pada objek tersebut pada akhirnya memberikan identitas khusus yang membedakan suatu objek dengan objek lainnya.
Contoh Program
class Kendaraan{

int posisi1;
int kecepatan;
int posisi2;
int pergerakan;

int getPosisi1(){
return posisi1;
}

void setPosisi1(int theposisi1){
posisi1 = theposisi1;
}

int getKecepatan(){
return kecepatan;
}

void setKecepatan(int thekecepatan){
kecepatan = thekecepatan;
}

posisi2 bergerak(){

int jarak;
int waktu;

posisi2 = getKecepatan * waktu;
}
}

class Mobil extends Kendaraan{
}

class KendaraanTestDrive{
Mobil avanza = new Mobil;
avanza.setPosisi1(30);
avanza.setKecepatan(45);
avanza.bergerak();
}

Referensi :
1. http://id.wikipedia.org/
2. Jeni-dasarpemrogramanjava.pdf
3. Codenhead-javabasic.pdf