Senin, 28 November 2016

Bridge pattern

Apa itu design pattern?

Design Pattern adalah sebuah solusi untuk menyelesaikan masalah umum yang sering di temui dan dihadapi, yang membentuk sebuah pola (pattern) tertentu dalam membuat sebuah program.

Ada beberapa macam design pattern yaitu
1. Creational Design Pattern
2. Structural Design Pattern
3. Behavioral Design Pattern

Di dalam macam2 design tersebut masih terbagi beberapa metode. 
Dalam blog ini saya akan membahas tentang structural design patern.

  Di dalam structural sendiri masih terbagi menjadi 10 bagian. Namun saya akan membahas tentang Bridge pattern.

Apa itu bridge pattern??
Sesuai namanya langkah ini adalah menjembatani 2 class atau method, dimana semuanya berdiri sendiri. Banyak abstraksi yang ada terkadang membuat kita untuk menjadikan satu, tapi bukan berarti 2 method dijadikan 1, namun bagaimana 2 method tersebut saling bekerja sama dan akan saling memanggil jika dibutuhkan.

Mengapa tidak dijadikan satu method?
Banyak kasus dalam program jika semua method dijadikan satu maka langkah ini sering menjadikan masalah, contoh paling simple di kehidupan sehari hari adalah switch pada kipas angin, jika kalian perhatikan switchnya dia terdapat sebagai on/off. nah jika on maka kipas akan menjalankan method sendiri, jika off maka kipas tersebut melakukan method sendiri. Disinilah terlihat dimana jika dipaksakan menjadi satu maka akan terjadi permasalahan. Mengapa?
Jika diperhatikan kipas angin pada on memiliki sub method sehingga jika off ikut masuk dalam class tersebuut maka akan memperumit. Yang dimaksud sub method adalah kipas memungkinkan untuk menyalakan baling2,lampu,dan swing bersamaan. Disinilah peran bridge dimana ketika beberapa method bersamaan maka akan dipilah2 mana yang akan digunaakan mana yang tidak.

Inti dari bridge sndiri adalah dimana terdapat 2 class independen atau berdiri sendiri kmudian dihubungkan .

Berikut ini adalah contoh pengimplementasian bridge sederhana pada sistem Ktp dan ktm, dimana fungsi ini sama2 menjadi class independen namun dipanggil bersama dalam satu UI.
 

Dalam diagram diatas dijelaskan bahwa sebenarnya KTp dan ktm memiliki method/Class independen namun akan dipanggil bersamaan menggunakan run control. 
Untuk lebih jelasnya mari kita perhatikan code.php dibawah ini. 


<?php

interface Biodata{
function DisplayText();
}

abstract class Controler{
protected $biodata;
function SetBiodata($biodata){
$this->biodata = $biodata;
}
function DisplayText(){
$this->biodata->DisplayText();
}
}

class RunController extends Controler{}

class KTP implements Biodata{
function __construct($name,$alamat,$status_hubungan) {
$this->name = $name;
$this->alamat = $alamat;
$this->status_hubungan = $status_hubungan;
}

private $name,$alamat,$status_hubungan;


function DisplayText() {
echo("<b>Class KTP implementasi dari interface Biodata</b>< br />< br />");
echo("Nama \t: ".$this->name.'< br />');
echo("Alamat \t: ".$this->alamat.'< br />');
echo("Status \t: ".$this->status_hubungan.'< br />');
}
}

class KTM implements Biodata{
function __construct($nim,$nama,$alamat) {
$this->nim = $nim;
$this->nama = $nama;
$this->alamat = $alamat;
}

private $nim,$nama,$alamat;


function DisplayText() {
echo("<b>Class KTM implementasi dari interface Biodata</b><br /><br />");
echo("No-> Induk \t: ".$this->nim.'< br />');
echo("Nama \t\t: ".$this->nama.'< br />');
echo("Alamat \t\t: ".$this->alamat.'< br />');
}
}

$run = new RunController();

$run->SetBiodata(new KTP("irzal as","ndarjo","Jomblo"));
$run->DisplayText();
echo "< br />";
//echo("--------------------------------------------------------< br />");
$run->SetBiodata(new KTM("123", "iirzal", "jangan tanya2"));
$run->DisplayText();
?>


Jika diperhatikan class ktp maupun ktm dipanggil oleh run controler. Nah itulah yang dimaksud dengan bridge(menjembatani) . Hasilnya bagaimana?


 
Gambar disamping menunjukan dimana kedua ktp maupun ktm ditampilkan bersama2 meskitpun terdiri dari dua class yang berbeda.

Senin, 24 Oktober 2016

Use case diagram dan Sequence diagram pada persewaan mobil

Studi kasus
  • Pada waktu itu saya sedang membutuhkan mobil dan mencari di dekat daerah rumah saya.
  • Saya mencoba ke beberapa perusahaan persewaan mobil dan membandingkan harga masing2 Perusahaan.
  • Kemudian saya mengikuti alur dari persewaan tersebut.
  • Dari kasus tersebut ternyata saya adalah orang yang berhuntung karena saya mencari persewaan mobil langsung dengan manager dan pemilik.
  • Singkat cerita karena dari pengalaman temen saya yang menyewa rerata2 mereka mendapatkan harga yang tinggi dikarenakan melalui calo dan yang paling mengilukan ketika hari H mobil tidak datang dan calo tersebut tidak bisa dihubungi, sehingga buat teman2 hati2 ya gan !!!!!!!
  • kemudian saya meneliti alur dari teman saya yang tertipu oleh calo tersebut.
  • Alur dari calo tersebut sangatlah terlalu singkat hanya membayar lalu tinggal menunggu, namun pihak pelanggan tidak diberitahu plat no mobil dan mobil apa yang akan datang.
  • Maka dari itu dari kasus diatas sebaiknya teman2 jika ingin menyewa pastikan langsung dengan MANAGER atau PEMILIK bukan melewati CALO atau BIROJASA yang lainnya.
Tips dan trik:
  • Maka dari itu saya disini akan menyampaikan alur dari pengalaman saya menyewa mobil dengan aman .
  • Jika alur persewaan tersebut sama dipastikan aman.
  • Usahakan bayar hanya dp, pelunasan di akhir.
  • Ketahui alamat pasti kantor maupun pemilik.
  • Saya akan meimplementasikanya melalui Usecase dan sequence diagram.
Proses Peminjaman:
  • Untuk meminjam mobil, customer harus mengisi beberapa formulir kemudian customer memilih mobil yang akan disewa dan jika ingin memakai supir, makan petugas akan menyiapkan supir. Kemudian petugas mencatat data mobil yang di pinjam, data supir yang dipakai dan data customer yang menyewa mobil tersebut.
Proses Pengembalian :
  • Setelah batas waktu penyewaan mobil telah habis, maka customer wajib mengembalikan mobil yang disewa dan menyerahkan bukti penyewaan, kemudian petugas akan memeriksa keadaan mobil yang disewa. Jika mobil yang disewa tersebut dalam keadaan rusak atau customer telah melampaui batas waktu penyewaan, maka customer tersebut dikenakan denda. Jika mobil tersebut dalam keadaan baik dan pengembalian mobil sesuai dengan batas waktu yang ditentukan maka petugas akan memberikan bukti pengembalian. 


Use Case Diagram


Class Diagram

 


Activity Diagram
 

 

Sequence Diagram

  

Sekian dari alur persewaan mobil yang saya ketahui. Semoga bermanfaat. 

Senin, 26 September 2016

Uml Use case diagram Mesin ATM

Di dalam Ranah use case diagram ini akan di bedakan menjadi 3 pihak yang terlibat.
Yaitu Atm,Operator control,User/pengguna


nah bab kali ini saya akan membahas alur dan keterkaitan semuanya dan tugas/fungsi2 yang ada di dalam sistem tersebut.

operator

sebenarnya jika menyinggung operator, dari sistem perbankan sangatlah banyak operator2 yang bekerja, karena distribusi uang dari kantor pusat
bank menuju mesin2 atm membutuhkan setidaknya lebih dari 3x jasa/bidang yang berbeda beda tugasnya.

Operator Bank pusat.
-Bank pusat akan menghitung dan menyeleksi kebutuhan jumlah uang yang harus di setorkan/dikirimkan ke mesin ATM
-Sebelum dikirimkan uang hingga sitem dan petugas yang mengambil serta tujuan yang dituju harus lengkap sesuai prosedur dan disaksikan oleh team keamanan(polisi) sebagai uang
yang sah dan legal untuk di pasarkan ke mesin2 atm.
-Jumlah dan tujuan tak luput diseleksi.
-Setelah pihak bank secara resmi melepas uang tersebut untuk dikirimkan. Selama itu juga tanggung jawab pemegang uang berpindah kepada operator pengiriman.
-Namun bank pusat juga tidak hanya melayani pendistribusian uang mereka juga harus melayani transaksi2 yang sifatnya online seperti data2 yang bisa diakses oleh user dll.

Operator pengiriman uang.
-Operator ini adalah yang bertugas sebagai mendistribusi/mengantarkan uang yang telah di lepas oleh bank.
-Peran operator ini sangatlah sulit karena tanggung jawab yang besar serta menjadi sasaran kriminal.
-Namun dari pihak bank sendiri tidak ambil pusing/ tidak mengalami kerugian bila mana operator ini mengalami kendala di jalan,dikarenakan operator ini adalah pihak ke2 yang berbeda perusahaan/tidak
ada sangkut pautnya dengan bank itu sendiri.
-Ketika paket uang tiba di atm, semua uang dan catatan dimasukan ke dalam mesin. Biasanya untuk mengecek jumlah sesuai atau tidak akan dihitung lewat mesin atm.

operator ATM
- sebenarnya operator ini di control oleh bank pusat , karena tugasnya juga tak luput dari bank pusat.
- operator ini akan melayani transaksi2 yang dilakukan oleh permintaan user.
- dan tak luput mesin akan mencatat dan menyimpan di data server bank pusat.
- Untuk memastikan uang di dalam mesin atm sesuai dengan jumlah uang yang dikirimkan oleh bank pusat yaitu dengan cara menghitung jumlah tranksaksi pengambilan uang. dan langsung di cek oleh server jumlahnya sesuai atau tidak


User/nasabah.
-Peran nasabah adalah pengguna dari bank pusat dan mesin atm
- Secara umum menu yang bisa dipilih nasabah antara lain : 1.pembayaran listrik,telepon dkk
2.cek saldo
3.transfer
4.mengubahpin
5.pembayaran kartu kredit
6.dll


Berikut contoh use case diagram antara user/pengguna,mesin atm
secara kasar keterkaitan antara user dan bank adalah seperti berikut.






Use case sebagai user/nasabah
 

Use case sebagai mesin ATM

Selasa, 13 September 2016

Sistem Singkat cara kerja AC

USE CASE DIAGRAM PADA AC

Apa itu use case diagram?
   Use case diagram adalah suatu model yang dangat fungsional dalam sebuah sistem yang menggunakan actor dan use case. Sedangkan pengertian dari use case sendiri adalah layanan atau fungsi-fungsi yang tersedia pada sistem untuk penggunannya.
   Use case diagram menggambarkan efek fungsionalitas yang telah diharapkan oleh sistem.  Use case diagram dapat sangat membantu bila kita sedang menyusun requitment sebuah sistem, mengkomunikasikan sebuah rancangan aplikasi dengan konsumen, serta merancang test case untuk semua feature yang ada pada sistem.

Salah satu contoh penggunaan Use case diagram pada AC.

   Yang dimaksud gambar diatas adalah: sofware dari user menuju Hardware
1.user/actor adalah perangkat yang memberi perintah untuk hardware/actor lainya. Actor diatas adalah remote AC itu sendiri
2. Terdapat 2 pilihan yang paling utama di dalam remote tersebut, yaitu on/off
3.Ketika on si remote akan menampilkan data yang akan disesuaikan oleh user/pengguna.
4. Temperature,fan speed,mode,Timer,lighting,air swing adalah layanan software yang ada di remote dan ketika di pilih remote akan mengirim kode kepada blower in akan menerjemahkan kode tersebut dan mensinkronisasikan dengan evapurator.
5.Sebenarnya evapurator disini sepaket dengan blower indor namun evapurator hanya menyala dan dikendalikan oleh blower indor. Tugasnya sendiri adalah menekan kompresi freon sehingga menghasilkan udara dingin.
6.Ketika off sendiri blower akan memutus/menyetop semua aliran listrik maupun sofware karena tujuanya adalah mematikan AC.



Cara kerja sistem Hardware pada AC:
1. Sebenarnya simple Harware sendiri bekerja hanya ketika ada aliran listrik.
2. Ketika aliran listrik masuk maka Perangkat tersebut akan bekerja.
3. Aliran listrik sendiri diatur oleh software yang sudah dijelaskan diatas.
4. Meskipun pada AC memiliki berbagai fitur pada dasarnya hardwarenya sama yaitu on/off, Temperature sendiri hanyalah manipulasi timer seberapa lama evapurator bekerja. Sehingga semakin lama bekerja akan semakin banyak pula menghasilkan udara dingin.
5. Sehingga dapat disimpulkan bahwa AC yang dingin bukan berasal dari sofwarenya maupun fiturnya, Akan tetapi seberapa besar kinerja dari hardware tersebut. 

Video diatas adalah prinsip dasar kerja AC. Sehingga para pabrikan elektronik berupaya menciptakan bagaimana sofware terbaik untuk pasar dengan memanfaatkan hardware yang ada. Kembali ke awal bahwa semua perangkat sistemnya hampir sama namun yang membedakan adalah cara mengefisienkan hardware tersebut sehingga setiap pabrikan menciptakan produk yang terlihat berbeda beda.