Anda di halaman 1dari 18

PANDUAN PRAKTIK

PEMROGRAMAN BERORIENTASI OBJEK

PROGRAM STUSI SISTEM INFORMASI


STMIK AKAKOM
PRAKTIK 1
PERMOGRAMAN BERORIENTASI OBJEK

Kompetensi
mandefinisikan masalah dan menganalisis kebutuhan sistem

Studi Kasus
Berikut ini adalah contoh dari sebuah studi kasus yang menagani Aplikasi pada sebuah ATM
dengan skenario sbb:
Sebuah bank mengoperasikan ATM dan mengelola banyak tabungan, setiap nasabah
memiliki setidaknya satu rekening tabungan pada satu bank tertentu. Setiap tabungan dapat
diakses melalui kartu debit. Proses utama sistem ATM berkomunikasi dengan pusat
komputer dan didesain untuk menangani beberapa transaksi. Setiap transaksi menunjuk
sebuah tabungan tertentu. Suatu transaksi akan menghasilkan satu dari dua hal berikut:
transaksi diterima atau mengeluarkan pesan
penolakan transaksi".
Untuk melakukan sebuah transaksi akan melalui dua tahap: pengecekan tabungan dan
pemroses transaksi. Proses pengecekan tabungan akan menetapkan persetujuan untuk
proses transaksi. Jika persetujuan ditolak, ATM akan mengeluarkan pesan penolakan,
namun jika diterima, transaksi akan diproses de ngan menggunakan nomor rekening
tabungan dan ATM membaca dari kartu debit.
Pengecekan tabungan dilakukan bersamaan pada saat ATM memvalidasi kartu debit dari
bank yang bersangkutan. Jika kartu valid, password akan dicek dengan nasabah.

Use Case Diagram


Adalah gambaran graphical dari beberapa atau semua actor, use case, dan interaksi
diantaranya yang memperkenalkan suatu sistem.

Gambar 1. Use Case Diagram


TUGAS
1. Buat Kelompok
2. Menentukan topik permasalahan
3. Membuat use case diagram
PRAKTIK 2
Perancangan Sistem

Kompetensi
Merancang sistem berorientasi objek untuk penyelasaian kasus

Tujuan praktik
1. Mahasiswa dapat menentukan candidate class dari skenario yang telah ada.

Teori
Object adalah gambaran dari entity, baik dunia nyata atau konsep dengan batasanbatasan dan
pengertian yang tepat. Object bisa mewakili sesuatu yang nyata seperti komputer, mobil atau dapat
berupa konsep seperti proses kimia, transaksi bank, permintaan pembelian, dll. Setiap object dalam
sistem memiliki tiga karakteristik yaitu State (status), Behaviour (sifat) dan Indentity (identitas).

Gambar 2. Kelas DIagram


Candidate Class

Gambar 3. Candidate Class


Gambar 4. Kelas Diagram Sistem ATM

TUGAS :
1. Gambarkan Kelas diagram dari kasus yang anda buat pada parktik 1
PRAKTIK 3
PERANCANGAN SISTEM

Kompetensi
Merancang sistem berorientasi objek untuk penyelasaian kasus

Tujuan praktik
Mahasiswa dapat menggambarkan interaction diagram baik dengan sequence atau collaboration
diagram.

Teori
Interaction Diagram
Sequence Diagram menggambarkan interaksi antara sejumlah object dalam urutan waktu.
Kegunaannya untuk menunjukkan rangkaian pesan yang dikirim antara object juga interaksi antar
object yang terjadi pada titik tertentu dalam eksekusi sistem.

Contoh :

Gambar 4. Penamaan Object

Dalam diagram sequence, setiap object hanya memiliki garis yang digambarkan garis putus-
putus ke bawah. Pesan antar object digambarkan dengan anak panah dari object yang
mengirimkan pesan ke object yang menerima pesan.
Gambar 5. Sequence Diagram for Authenticate User’s ATM

Gambar 6. Sequence Diagram for Withdrawal Transaction in ATM

CollaborationDiagram
Collaboration Diagram merupakan cara alternatif untuk menggambarkan skenario dari
sistem. Diagram ini menggambarkan interaksi object yang diatur object sekelilingnya dan
hubungan antara setiap object dengan object yang lainnya.
Collaboration diagram berisi :
• Object yang digambarkan dengan segiempat.
• Hubungan antara object yang digambarkan dengan garis penghubung.
• Pesan yang digambarkan dengan teks dan panah dari object yang mengirim pesan
ke penerima pesan.
Gambar 7. Collaboration Diagram Use Case Authenticate User

Contoh Perancangan
Requirement Analysis
Analisis Entry Data Dosen
Analysis Comunication diagram untuk Entry Data Dosen

2.1:addProsess
2:createDosen()

1:index

Administrator DosenUI
DBorangC
(from Actors) (from Use Case View)

2.1.1:addDosen($dosen,$user)

Dosen

Analysis Class Diagram untuk Entry Data Dosen

Sequence diagram untuk Entry Data Dosen


: Administrator : DosenUI : DBorangC : Dosen

index

createDosen

addProses

addDosen

TUGAS :
1. Gambarkan sequence diagram atau collaboratioun Diagram dari soal 1
PRAKTIK 4
PERANCANGAN SISTEM

Kompetensi
Merancang sistem berorientasi objek untuk penyelasaian kasus

Tujuan praktik
Membuat perancangan antarmuka sistem

Teori
User interface yang Anda desain dapat memiliki dampak yang signifikan terhadap
keberhasilan perusahaan Anda, terutama di lingkungan yang kompetitif untuk sistem e-
commerce di Internet.
Perubahan yang paling mencolok antara dua desain adalah penggunaan warna. Jika Anda
menggunakan warna dalam aplikasi Anda, Anda perlu memastikan bahwa layar Anda masih
dapat dibaca dengan mengikuti aturan kontras: Gunakan teks gelap di latar belakang cahaya
dan teks terang pada latar belakang gelap.

Contoh perancangan Antarmuka


Pemanbahan Data Dosen

Penambahan Mahasiswa
Gambar 8. Perancangan Antarmuka
Tugas :
1. Buat Rancangan antarmuka untuk penyelesaian kasus projek anda

Praktik 5, 6
Implemantasi Kelas Entitas
Tujuan :
Mengimplemtasi kelas entitas berdasarkan rancangan

Teori
Dari Kelas diagram yang telah dibuat, diimplemtasikan dalam bahasa pemrograman berorientasi
objek
Tugas Praktik Pertemuan 5. Implemantasi Kelas Entitas
Contoh :

Kelas Mahasiswa
class Mahasiswa {
var $nim='';
var $namaMahasiswa='';
var $minat='';
var $pembimbing='';

function setMahasiswa($nim_,$nama_,$minat_,$pembimbing_) {
$this->$nim=$nim_;
$this->$namaMahasiswa=$nama_;
$this->$minat=$minat_;
$this->$pembimbing=$pembimbing_;

}
...
function getPembimbing() {
return $this->$pembimbing;
}
}
?>

Kelas Dosen
<?php
<?php
class Dosen extends Model
{
var $nip;
var $namaDosen;

function Dosen(){
parent::Model();
}

function addDosen($dosen,$user)
{
$this->db->insert('dosen', $dosen);
$this->db->insert('user', $user);
}

function getDosen()
{
$sql="SELECT * FROM Dosen";
return $this->db->query($sql);
}

function getNama($nip)
{
$sql="SELECT namaDosen FROM dosen WHERE nip='$nip'";
return $this->db->query($sql);
}
}
?>

<?php
class Jadwal extends Model{
var $idJadwal='';
var $idTA='';
var $Tanggal='';
var $Ruangan='';
var $Ketua='';
var $Pembimbing='';
var $Anggota1='';
var $Anggota2='';

function setJadwal($idJadwal_,$idTA_,$Tanggal_,$Ruangan_,$Ketua_,
$Pembimbing_,$Anggota1_,$Anggota2_){
$this->$idJadwal=$idJadwal_;
$this->$idTA=$idTA_;
$this->$Tanggal=$Tanggal_;
$this->$Ruangan=$Ruangan_;
$this->$Ketua=$Ketua_;
$this->$Pembimbing=$Pembimbing_;
$this->$Anggota1=$Anggota1_;
$this->$Anggota2=$Anggota2_;
}
...
}
?>

Membuat kelas model/entitas dari kelas mahasiswa


<?php
class Mahasiswa extends Model{
var $nim='';
var $namaMahasiswa='';
var $minat='';
var $pembimbing='';
function Mahasiswa(){
parent::Model();

function setMahasiswa($nim_,$nama_,$minat_,$pembimbing_)
{
$this->$nim=$nim_;
$this->$namaMahasiswa=$nama_;
$this->$minat=$minat_;
$this->$pembimbing=$pembimbing_;
}

function getMahasiswa()
{
$mahasiswa = array('nim' => $this->$nim,
'namaMahasiswa' => $this->$namaMahasiswa,
'minat' => $this->$minat,
'pembimbing' => $this->$pembimbing
);
return $mahasiswa;
}

function addMahasiswa($mahasiswa){
$this->db->insert('mahasiswa', $mahasiswa);
}

function getPembimbing()
{
return $this->$pembimbing;
}
}
?>
Tugas :
Implementasikan kelas entitas pada projek anda dengan menggunakan bahasa pemrograman
berorientasi objek
PRAKTIK 7,8
Implementasi Kelas Boundary

TUJUAN
Mengimplemtasi kelas boundari/view berdasarkan rancangan

TEORI
Kelas boundary/view (tampilan) berisi elemen antar muka pengguna seperti teks, input form.
Membuat implementasi kelas boundary, dari kelas mahasiswa.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"


"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Untitled Document</title>
</head>

<body>
<form name="form1" method="post" action="<?php echo $form_action; ?>">
<p>Input Data Mahasiswa </p>
<table width="256" border="0">
<tr>
<td width="39">NIM</td>
<td width="3">:</td>
<td width="192"><input name="txtNIM" type="text" id="txtNIM"></td>
</tr>
<tr>
<td>Nama</td>
<td>:</td>
<td><input name="txtNama" type="text" id="txtNama" maxlength="30"></td>
</tr>
<tr>
<td>Minat</td>
<td>:</td>
<td><select name="cbMinat" id="cbMinat">
<option value="Ilmu Komputer">Ilmu Komputer</option>
<option value="Komputasi">Komputasi</option>
<option value="Cerdas Terapan">Cerdas Terapan</option>
</select></td>
</tr>
<tr>
<td>Dosen</td>
<td>:</td>
<td><select name="cbPembimbing" id="cbPembimbing">
<?php
foreach($allDosen as $dosen)
{
echo "<option value='$dosen->nip'>$dosen->namaDosen</option>";
}
?>
</select></td>
</tr>
</table>
<p>
<input type="submit" name="Submit" value="Simpan">
</p>
</form>
</body>
</html>

TUGAS
Buat implementasi untuk kelas boundary dari projek yang anda buat dengan menggunakan
bahasa pemrograman berorientasi objek.
PRAKTIK 9, 10
Implementasi Kelas Kontrol

TUJUAN
Mengimplemtasi kelas control berdasarkan rancangan

TEORI
controller mengatur komunikasi antar model dan view.
Membuat implentasi kelas Controler
<?php
class MahasiswaC extends Controller{
function MahasiswaC(){
parent::Controller();
$this->load->model('Mahasiswa', '', TRUE);
$this->load->model('Dosen', '', TRUE);
}

function index(){
$this->createMahasiswa();

function createMahasiswa(){
$data['main_view'] = 'MahasiswaUI';
$data['form_action'] = site_url('MahasiswaC/addProcess');
$data['allDosen']=$this->Dosen->getDosen()->result();
$this->load->view('template', $data);
}

function addProcess(){
$mahasiswa = array('nim' => $this->input->post('txtNIM'),
'namaMahasiswa' => $this->input->post('txtNama'),
'minat' => $this->input->post('cbMinat'),
'pembimbing' => $this->input->post('cbPembimbing')
);
$this->Mahasiswa->addMahasiswa($mahasiswa);
redirect('MahasiswaC/createMahasiswa');
}
}
?>
Contoh Kelas Controler dari kelas dosen
<?php
class DosenC extends Controller{

function DosenC(){
parent::Controller();
$this->load->model('Dosen', '', TRUE);
}

function index(){
$this->createDosen();

function createDosen(){
$data['main_view'] = 'dosenUI';
$data['form_action'] = site_url('DosenC/addProcess');
$this->load->view('template', $data);
}
function addProcess(){
if($this->input->post('txtPassword1')==$this->input->post('txtPassword2'))
{
//$this->Dosen->setDosen($this->input->post('txtNip'),$this->input->post('txtNama'));
$dosen = array('nip' => $this->input->post('txtNip'),
'namaDosen' => $this->input->post('txtNama')
);

$user = array('UserID' => $this->input->post('txtNip'),


'Password' => md5($this->input->post('txtPassword1')),
'HakAkses' => '2'
);

$this->Dosen->addDosen($dosen,$user);
redirect('DosenC/createDosen');
}

}
?>

TUGAS :
Implementasikan kelas kontroler dari projek yang anda buat
PRAKTIK 11
Membuat Dokumentasi

TUJUAN
Membuat dokumentasi sistem

Tugas :
Buat laporan dokumentasi dari project yang anda buat. Dokumentasi memuat
1. Topik permasalahan

2. Daftar fungsional system

3. Use case diagram

4. Class diagram

5. Sequence diagram/ collaboration diagram

6. Rancangan antar muka

7. Implementasi program

Anda mungkin juga menyukai