Rabu, 14 November 2012

Perkembangan Simulasi dan Teknologi Dibidang Kredit Mobil


Perkembangan simulasi sekarang ini sangat berkembang pesat. Banyak contoh-contoh simulasi yang ada sekarang ini seperti simulasi dibidang bangunan, simulasi pesawat, simulasi kredit mobil, simulasi kredit motor, simulasi kredit rumah, simulasi dibidang kedokteran, manufaktur, dan masih banyak lagi. Dan sekarang saya akan memberikan contoh simulasi teknologi dibidang kredit mobil. 

Simulasi Kredit Mobil
Disini anda diminta untuk memasukan harga mobil, jangka waktu kredit, bunga pertahun, uang muka (DP), asuransi, dan niaya administrasi. 

Selanjutnya setelah memasukan data-data yang diminta, klik kalkulasi. Maka akan keluar rinciannya seperti Pinjaman Anda, Hutang Pokok, Cicilan Anda, Pembayaran Pertama Kali, Total Kredit, dan Total Pengeluaran, dan Tabel Angsuran. Dapat dilihat pada gambar dibawah ini :  
  •  Pinjaman dan Hutang Pokok

  • Cicilan dan Pembayaran Pertama Kali


  • Total Kredit Dan Total Pengeluaran

  • Table Angsuran

Sumber :

Kamis, 18 Oktober 2012

Apakah Tugas Seorang TI (Pembuat Software) Wajib Menggunakan Simulasi ?

Menurut saya seorang TI  sangatlah penting menggunakan simulasi. Karena dengan menggunakan simulasi dapat memperkecil resiko-resiko yang ada dan simulasi dapat membatu agar suatu sistem dapat berjalan dengan baik.

Rabu, 03 Oktober 2012

Contoh Failed Simulation


Simulasi Event-Diskrit

Discrete-Event Simulation adalah simulasi dimana perubahan statusnya terjadi pada titik-titik diskrit dalam waktu yang dipicu oleh kejadian (event). Kejadian yang biasa terdapat dalam simulasi tersebut adalah kedatangan sebuah entitas ke sebuah stasiun kerja (workstation), kegagalan resource, selesainya sebuah aktivitas, dan ada akhir sebuah shift.

Kejadian (event) : 
  • Menggambarkan sistem dalam aliran proses. 
  • Aliran proses (process flow) adalah urutan kejadian untuk menjalankan simulasi. 
  • Event akan menciptakan keterlambatan dalam simulasi untuk mereplikasi satu lintasan waktu. 
  • Event juga memicu eksekusi logika yang dihubungkan dengan event.

Tipe event terdiri dari :
  • Kejadian terjadwal (scheduled event): sebuah event dimana saat terjadinya dapat ditentukan dan dijadwalkan sebelumnya 
  • Kejadian kondisional (conditional event): dipicu oleh kondisi yang ditemui, bukan oleh satu lintasan waktu.



Contoh kasus sistem ATM 



  • Pelanggan tiba untuk menggunakan ATM dengan waktu antar-kedatangan 3.0 menit yang terdistribusi eksponensial.
  • Antrian memiliki kapasitas untuk menampung pelanggan dalam jumlah tak terbatas.
  • ATM memiliki kapasitas satu pelanggan.
  • Pelanggan menghabiskan rata-rata 2.4 menit terdistribusi eksponensial untuk menyelesaikan transaksinya (waktu jasa / service time di ATM).
  • Simulasi mulai pada saat nol.
  • Simulasikan sistem ATM pada 22 menit pertama operasinya dan  estimasikan waktu tunggu (expected waiting time) pelanggan dalam antrian.

Asumsi 
  • Tidak ada pelanggan dalam sistem pada saat awal, sehinggaantrian kosong dan ATM tidak dipergunakan (idle)
  • Waktu bergerak dari antrian ke ATM sangat kecil, sehingga diabaikan
  • Pelanggan diproses dari antrian dengan dasar FIFO
  • ATM tidak pernah mengalami kerusakan

Cara mempersiapkan simulasi (setting up the simulation) sebagai berikut:
  • ti : nilai waktu simulasi (simulation clock) pada langkah i, untuk i=0 sampai jumlah discrete event
  • Asumsikan simulasi mulai pada saat nol, t0 =0
  • t1: nilai simulation clock saat discrete event pertama dalam daftar diproses
  • t2: nilai simulation clock saat discrete event kedua dalam daftar diproses

Atribut entitas 
  • Adalah karakteristik suatu entitas yang dipertahankan oleh entitas tersebut sampai entitas keluar dari sistem.   
  • Untuk simulasi ATM: atribut waktu kedatangan (Arrival Time)

Variabel status
  • Jumlah entitas dalam antrian pada langkah ke-i, NQi. 
  • Contoh dalam simulasi ATM, maka ATM statusi untuk menunjukkan apakah ATM sibuk atau menganggur (idle) pada langkah ke-i.

Akumulator Statistik (Statistical accumulators) 
  • Simple-average: waktu rata-rata pelanggan menunggu dalam antrian
  • Time-average:Jumlah rata-rata pelanggan di dalam antrian
  • Simple-average time in queue: Menghitung jumlah pelanggan yang melewati antrian. Saat pelanggan melalui antrian, waktu menunggu dicatat. Dihitung dari saat masuk antrian sampai saat meninggalkan antrian: Simple-average time in queue = ti – Arrival time.
  • Time-average number of customers in the queue: Untuk durasi langkah terakhir (ti – ti-1) dan jumlah pelanggan yang memasuki antrian selama langkah terakhir (NQi-1), hitung Time-Weighted Number of Entities in the Queue = (ti – ti-1) NQi-1

Kejadian (Event)
  • Arrival event: terjadi saat entitas pelanggan (customer entity) tiba dalam antrian
  • Departure event: terjadi saat entitas pelanggan menyelesaikan transaksi ATM
  • Termination event: untuk mengakhiri simulasi

SUMBER :
http://www.teknikindustri.org/SIM/r2/Sim4R2.pdf
http://alvinburhani.wordpress.com/2012/05/29/simulasi-event-diskrit/

Senin, 01 Oktober 2012

Pemanfaatan Simulasi & Grafik Dibidang Industri


Ada beberapa pengertian simulasi, yaitu : 
  • Simulasi adalah suatu prosedur kuantitatif, yang menggambarkan sebuah sistem dengan mengembangkan sebuah model dari sistem tersebut dan melakukan sederetan uji coba untuk memperkirakan perilaku sistem pada waktu tertentu. Simulasi juga bisa diartikan secara sederhana sebagai proses peniruan untuk mempresentasikan suatu kondisi nyata, sehingga mudah untuk dipelajari.
  • Simulasi adalah program (software) komputer yang berfungsi untuk menirukan perilaku sistem nyata yang memanipulasi sebuah model sedemikian rupa sehingga model tersebut bekerja dalam ruang dan waktu.
  • Simulasi adalah model dari suatu sistem, dimana sistem tersebut dimodelkan dengan sebuah software, dan ukuran numerik performansi diturunkan dari output.
  • Simulasi adalah suatu proses perancangan model dari suatu sistem nyata dan pelaksanaan eksperimen-eksperimen untuk memahami tingkah laku system.
  • Simulasi adalah suatu program komputer yang ditulis dalam suatu bahasa pemrograman (general purpose atau dedicated) dan memerlukan runtime yang terkadang besar.
Tujuan simulasi antara lain ;
  • Untuk mempelajari perilaku sistem
  • Mengembangkan pengertian mengenai interaksi bagian-bagian dari sebuah sistem, dan pengertian mengenai sistem secara keseluruhan.
  • Untuk pelatihan / training
  • Untuk hiburan / permainan (game)
Kelebihan Simulasi
  • Dapat dipadukan dengan model numerik untuk menganalisa sistem yang lebih kompleks.
  • Didukung data yang berhubungan langsung dengan angka acak, dengan tipe data probabilistik.
  • Mudah beradaptasi dan mudah digunakan untuk berbagai masalah.
Kekurangan Simulasi 
  • Model simulasi masih mahal dan bisa menyita waktu bila ingin dikembangkan,
  • Hasil simulasi terkadang masih kurang akurat,
  • Simulasi secara esensial adalah suatu proses eksperimen yang memerlukan perencanaan yang hati-hati.
Kesimpulannya adalah simulasi dalam bidang industi amatlah baik, karena dapat mempercepat kerja sistem yang sulit sehingga dapat mempermudah kerja sistem tersebut. Selain itu simulasi juga dapat membantu untuk pelatihan-pelatihan. Meskipun simulasi membutuhkan biaya yang mahal.

Sumber : 





Jumat, 20 April 2012

Inheritance dan Polimorfisme dalam Java


  • Inheritance

Inheritance yaitu penurunan sifat dari induk class kepada subclass atau anak class.
Contohnya dapat diambil dari contoh alami yaitu class zebra. Dalam dunia biologi, class zebra adalah hewan bertulang belakang atau vertebrata yang merupakan mamalia pemakan rumput/tumbuh-tumbuhan atau bertipe herbivora.
Didalam Java, penurunan sifat tersebut disebut Inheritance. Penurunan sifat alami tersebut sama dengan penurunan yang terjadi dalam Java sehingga bisa dijadikan contoh inheritance dan bisa dituangkan kedalam Java. 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 kode-kode itu.
Contoh program inheritance :
(pada program ini perhatikan kata kunci extends)

Listing :

class vertebrata{
    String status_vertebrata = "Hewan bertulang belakang";
    public void bertulang_belakang(String hewan, Boolean status){
        if (status==true){
            System.out.println(hewan+""+status_vertebrata);
        }
 else{
            status = false;
 }
    }
}
class mamalia extends vertebrata{
    String makanan;
    public void menyusui (String hewan){
        System.out.println(hewan + "adalah mamalia karena dia menyusui ");
    }
    public void herbivora (String hewan, Boolean status){
        makanan = "Makan Tumbuh-tumbuhan";
        if (status==true){
            System.out.println(hewan + "" + makanan);
        }
 else {
            status = false;
        }
    }
    public void karnivora (String hewan, Boolean status){
        makanan = " Makan Daging ";
        if (status==true){
            System.out.println(hewan + "" + makanan);
        }
 else{
            status = false;
        }
    }
    public void omnivora (String hewan, Boolean status){
        makanan = " Pemakan Segalanya ";
        if (status==true){
            System.out.println(hewan + "" + makanan);
        }
 else{
            status = false;
        }
    }
}
public class inheritance extends mamalia {
                public static void main(String[] args) {
        inheritance zebra = new inheritance();
        zebra.bertulang_belakang("Zebra ", true);
        zebra.menyusui("Zebra ");
        zebra.herbivora("Zebra ", true);

    }
}

Output :
ketiga class diatas tergabung dalam satu file yakni file inheritance.java. Didalam class inheritance terdapat methode public static void main() yang merupakan constructor utama atau main

ketiga class tersebut dapat di pisah ke dalam 3 file dengan masing2 nama file sesuai dengan nama classnya, hanya tinggal meng-import file java vertebrata.java dan mamalia.java kedalam file inheritance.java yang terdapat metode main/utama

  • Polimorfisme
Dalam pemrograman berorientasi object kita mengenal suatu istilah yaitu  Polimorfisme.
Polimorfisme adalah suatu teknik dalam programming yang lebih mengarahkan kita untuk memprogram secara general dari pada secara spesifik.  Polimorfisme juga dapat dikatakan kemampuan sebuah objek untuk memutuskan method mana yang akan diterapkan padanya, tergantung letak objek tersebut pada jenjang pewarisan. 
Contoh program java yang menggunakan polimorfisme :

Listing :
// Orang.java
public class Orang{
public String nama;
public String alamat;

//Constructor...
public Orang() {
}

public Orang (String nama) {
this.nama = nama;
}
public Orang(String nama,String alamat){
        this.nama=nama;
        this.alamat=alamat;
    }
    //accessor method mengembalikan nilai
    public String getName(){
        return nama;
        }
    //mutator methode untuk mengubah nilai dari instance.
   public void setName(String nama){
           this.nama = nama;
       }
}

//Mahasiswa1.java

public class Mahasiswa1 extends Orang{

    String jeniskelamin;

    public Mahasiswa1() {

        //super digunakan untuk memanggil constructor terdekat pada kelas Orang.

        super("Olivia");

    }

    //overidde methode dari kelas Orang..

    public String getName(){

        return nama;

        }

    public void setName(String nama){
        this.nama = nama;

        }
}

// Pekerja.java

public class Pekerja extends Orang{
                public Pekerja() {
                super("Mahasiswa");
     }
 //ovveride dari kelas Person

    public String getName(){
       return nama;

        }
     public void setName(String nama){
        this.nama = nama;

        }
 }

// CallOrang.java
public class CallOrang {
  public static void main(String[] args){
//contoh polimorfisme di java

        Orang call;

        Mahasiswa1 m = new Mahasiswa1();

        Pekerja n = new Pekerja();



        //memanggil dari kelas mahasiswa

        call = m;
        String smp = call.getName();

        System.out.println("Saya dari bagian Mahasiswa : " + smp);

        //memanggil dari kelas pekerja

        call = n;

        String sma = call.getName();

        System.out.println("Saya dari bagian Pekerja : " + sma);

       }
       }

Ke-empat class diatas tergabung dalam satu file yaitu “Polimorfisme”. Didalam class terdapat “Polimorfisme”. methode public static void main() yang merupakan constructor utama atau main
Ketiga class tersebut saya  pisah ke dalam tiga file, dengan masing-masing nama file, sesuai dengan nama classnya, hanya tinggal meng-import file java yaitu:
Orang.java , Mahasiswa1.java, dan Pekerja.java.
Kedalam file CallOrang.java yang terdapat metode main/utama.

Output :
Sumber :


Nama : Olivia Yulianda
NPM : 55410279
Kelas : 2IA13






Kamis, 12 April 2012

ENKAPSULASI

Enkapsulasi atau pengkapsulan (Encaptulation) adalah kombinasi data dan fungsionalitas dalam sebuah unti tunggal sebagai bentuk untuk menyembunyikan detail informasi. Proses enkapsulasi memudahkan kita untuk menggunakan sebuah objek dari suatu kelas. 
Enkapsulasi juga dapat diartikan mengelompokkan program menjadi mudah digunakan. Mampu menagani berbagai input yang diberikan dan menghasilkan output yang benar. Melindungi program dari pengaksesan variabel kritis oleh proses atau perubahan oleh programer selama tahap pembangunan program.

Manfaat enkapsulasi, yaitu;
  • Modularitas. Sorce code dari sebuah class dapat dike Lola secara independen dari source code class yang lain. Perubahan internal pada sebuah class  tidak akin berpengaruh bagi class yang menggunakannya.
  • Information Hiding. Penyembunyian informasi yang tidak perlu diketahui objek lain.
Macam - macam enkapsulasi, yaitu ;
  • private =  tidak dapat diakses oleh sembarang class
  • public = dapat diakses oleh siapapun, semua default method, class atau variable itu public jika tidak diberi enkapsulasi.
  • protected.
Contoh program enkapsulasi :

Listing

public class Tanggal{
private int tgl;
private int bln;
private int tahun;
public Tanggal (int tgl, int bln, int thn){
System.out.println(tgl+""+bln+""+thn);
}
}

public class TesTanggal{
public static void main (String []args){
Tanggal kalender = new Tanggal (12,10,1992);
TanggalNomer3 tgl = new TanggalNomer3(12);
TanggalNomer3 tglbln = new TanggalNomer3(12,10);
TanggalNomer3 tglblnthn = new TanggalNomer3(12,10,1992);
}
}

public class TangglNomer3{
private int tgl;
private int bln;
private int tahun;
public TanggalNomer3(int tgl){
System.out.println(tgl);
}
public TanggalNomer3(int tgl,int bln){
System.out.println(tgl+""+bln);
}
public TanggalNomer3(int tgl,int bln,int thn){
System.out.println(tgl+""+bln+""+thn);
}
}



Output







Sumber : http//ahmadsonarif.wordpress.com/2011/10/31/enkapsulasipengkapsulan-java-practikum-3-2/


Nama : Olivia Yulianda
NPM : 55410279
Kelas : 2IA13

Jumat, 06 April 2012

Perbedaan Pemrograman Berorientasi Objek dan Pemrograman Terstruktur

A. Pemrograman Berorientasi Objek

Pemrograman berorientasi objek, biasa kita kenal dengan OOP (Object Oriented Programing). OOP merupakan paradigma pemrograman yang berorientasikan kepada objek. Semua data dan fungsi didalam paradigma dibungkus kedalam kelas-kelas atau objek-objek. Konsep utama dari Pemrograman berorientasi objek terletak pada kondisi kode/line pemrogramanannya dimana merupakan sebuah kesatuan modular. 

B. Pemrograman Terstruktur

Pemrograman terstruktur adalah suatu proses untuk mengimplementasikan urutan langkah untuk menyelesaikan suatu masalah dalam bentuk program. Selain itu pemrograman terstruktur adalah suatu aktivitas pemrograman dengan memperhatikan urutan langkah-langkah perintah secara sistematis, logis, dan tersusun berdasarkan algoritma yang sederhana dan mudah dipahami.Untuk pemrograman terstruktur adalah kebalikan dari pemrograman berorientasi objek yaitu sebuah cara pemrosesan data yang terstruktur dalam analisa, cara dan penulisan pemrograman. Dikarenakan harus terstruktur sehingga dalam pembuatannya antara satu line pemrograman dengan yang lainnya berhubungan. 
Prinsip dari pemrograman terstruktur adalah jika suatu proses telah sampai pada satu titik / suatu langkah tertentu, maka proses selanjutnya tidak boleh mengeksekusi langkah sebelumnya atau kembali ke baris sebelumnya. Kecuali pada langkah-langkan untuk proses loop (berulang)

C. Perbedaan Pemrograman Berorientasi Objek dengan Pemrograman
   Terstruktur
  • Pemrograman berorientasi objek memliki beberapa keuntungan seperti :
  1. Maintenance, Program lebih mudah dibaca dan dipahami, dan pemrograman berorientasi obyek mengontrol kerumitan program hanya dengan mengijinkan rincian yang dibutuhkan untuk programmer.
  2. Pengubahan program (berupa penambahan atau penghapusan fitur tertentu), Perubahan yang dilakukan antara lain menyangkut penambahan dan penghapusan dalam suatu database program misalnya. 
  3. Kita dapat menyimpan objek-objek yang dirancang dengan baik ke dalam sebuah tolkit rutin, yang bermanfaat karena dapat disisipkan kedalam kode yang baru dengan sedikit perubahan atau tanpaperubahan pada kode tersebut.
  • Suatu program disebut dengan pemrograman berbasis obyek karena terdapat :

    –  Encapsulation (pembungkusan)
    Encapsulation adalah mekanisme pemrograman yang membungkus kode dan data yang dimanipulasi dan menjaganya supaya terhindar dari interferensi dan penggunaan yang tidak perlu. Salah satu caranya dengan membentuk objek.

    –  Inheritance (pewarisan)
    Inheritance memungkinkan programer meletakkan member yang sama dalam satu class dan class-class lain dapat mewarisi member tersebut. Class yang mengandung member yang sama dari beberapa class lain dinamakan superclass atau parent class. Class yang mewarisi dinamakan subclass atau child class. Inheritance menghasilkan class hierarchy.

    –  Polymorphism (polimorfisme –perbedaan bentuk)
    Polymorphisme artinya mempunyai banyak bentuk. Dua objek atau lebih dikatakan sebagai polymorphic, bila objek-objek itu mempunyai antar muka yang identik namun mempunyai perilaku-perilaku yang berbeda

  • Pemrograman terstruktur memiliki beberapa sifat-sifat seperti :
     a. Memuat teknik pemecah masalah yang logis dan sistematis.
     b. Memuat algoritma yang efisien, efektif dan sederhana.
     c. Pemrograman yang dibuat dengan logika yang mudah untuk dipahami.
     d. Tidak menggunakan perintah GOTO.
     e. Biaya pengujian program relatif rendah.
     f. Memiliki dokumentasi yang baik.
     g. Biaya perawatan dan dokumentasi relatif rendah. 

Bisa dikatakan pada pemrograman berorientasi objek, dapat dilakukan sebuah programming terhadap code yang lebih baik daripada pemrograman terstruktur, itu juga untuk yang skala rumit atau besar, sedangkan untuk coding yang skala kecil lebih mudah menggunakan pemrograman terstruktur dikarenakan lebih singkat dan mudah tanpa banyak perubahan yang penting.
Dari data diatas dapat dikatakan bahwa pemrograman tersktruktur lebih unggul dalam melakukan pemrograman sederhana. Karena lebih efisien dan lebih murah dalam hal perawatannya tetapi permodelan ini lebih susah untuk dipahami oleh orang – orang selain pembuat program itu sendiri (contohnya ketika dilakukan tracing program).


Refrensi :
2).  http://myblogar.blogspot.com/2011/02/perbedaan-pemrograman-terstruktur.html 

Nama : Olivia Yulianda
NPM  : 55410279
Kelas  : 2IA13