Wednesday, 26 July 2017

Apa itu Pemogramman Event Driven?

PEMROGRAMAN BERBASIS EVENT ( EVENT-DRIVEN PROGRAMMING )


         Event-Driven Programming adalah salah satu teknik pemogramman, yang konsep kerjanya tergantung dari kejadian atau event tertentu. misalnya ketika tombol A diklik maka nilai label 2 di tambah nilai label 3 dibagi nilai label 4.  tapi jika tombol A diklik dan ternyata label satu berisikan penjumlahan. maka program yang dijalankan label 2 ditambah label 3.
         Konsep Event-Driven Programming sama seperti konsep pemogramman menggunakan Procedure.  pemograman yang memiliki input, proses dan output. Namun, ada satu penambahan yang berbeda, yaitu konsep pemilihan untuk mengeksekusi proses programnya. Event-Driven programming juga bisa dibilang suatu paradigma pemrograman yang alur programnya ditentukan oleh suatu event / peristiwa yang merupakan keluaran atau tindakan pengguna atau bisa berupa pesan dari program lainnya. 

         Menurut Berson, 1992, Sistem Event-Driven adalah satau sistem objek yang saling berinteraksi satu dengan yang lain dengan menggunakan mekanisme pesan. Mekanisme ini dikontrol oleh satu komponen berbeda yang biasanya disebeut event dispatcher.
        Data yang dikomunikasikan disebut dengan event dan data tersebut dapat dimulai dari masukan yang tidak diproses di raw event ( peristiwa mentah) atau data tersebut mendapatkan hasil komunikasi di antara objek. Objek dapat menerima event yang berbentuk pesan event, secara khusus yang disusun dari jenis event dan parameter event. 

         Berikut adalah komponen pemograman berbasis event (Event-Driven Programming)

  • Event
    Event / kejadian adalah sebuah aksi yang muncul pada sebuah sistem. Kejadian atau aksi ini bisa dipicu oleh misalkan penekanan tombol mouse, penekanan sebuah tombol keyboard atau timer
  • Trigger
    Trigger adalah sebuah fungsi yang mempunyai kesesuaian dengan kejadian. contoh gampangnya adalah fungsi ketika tombol mouse ditekan : onMouseClick(). Tujuannya dari Trigger tidak lain adalah sebagai atau untuk memicu komponent event handler
  • Event Handler
    Event Handler adalah komponen yang melakukan aksi ketika terjadi sebuah event.
  • Event Loop
    Event Loop berfungsi mencari event-event yang ada pada sebuah sistem berbasih event. Proses event loop berlangsung secara terus menerut (loop), sampai sebuah aksi atau event muncul yang mengakhiri proses event loop tersebut. 
        Beberapa kelebihan pemrograman berbasis event dapat dilihat pada ilustrasi berikut :
        Suitable for GUI
          Pemrograman berbasis event sangat mudah dijumpai atau dilakukan pada pembuatan aplikasi berbasis GUI dimana pada aplikasi berbasis GUI aktivitasnya berdasarkan pada sebuah event contohnya penekanan tombol mouse dan penekanan tombol pada menu.

         Simplicity of Programming
     Pemrograman berbasis event berfokus hanya pada komponen Event Handlers, sehingga memudahkan pembuatan aplikasi yang responsif dengan proses yang dinamis.
        Ease of Development
       Kemudahan dalam melakukan penulisan program akan berdampak pada kemudahan dalam melakukan pengembangan aplikasi, dikarenakan aplikasi dipecah ke dalam handler untuk setiap event dan mendukung pembuatan aplikasi yang reusable.
         Service Oriented
       Aplikasi berbasis event dapat terdiri dari beberapa layanan (services) yang kesemuanya tergabung dalam membentuk sebuah aplikasi.
           Time Driven
            Aplikasi berbasis event dijalankan oleh pewaktu (time) dibandingkan oleh perintah.
            Flexibility
            Aplikasi berbasis event sangat mudah untuk dimodifikasi.
Berikut adalah beberapa bahasa pemrograman yang mendukung dalam pembuatan aplikasi berbasis event

  1. Visual Basic / VB.Net
  2. C#
  3. C++
  4. Java
  5. ColdFusion
  6. Python

Read more »

Saturday, 13 May 2017

K-MEANS

1.1  K-Means
       Dalam statistik dan mesin pembelajaran, pengelompokan K-Means merupakan metode analisis kelompok yang mengarah pada pemartisian N objek pengamatan ke dalam K kelompok (cluster) dimana setiap objeck pengamatan dimiliki oleh sebuah kelompok dengan mean (rata-rata) terdekat, mirip dengan algoritma Expectation-Maximization untuk Gaussian Mixture dimana keduanya mencoba untuk menemukan pusat dari kelompok dalam data sebanyak iterasi perbaikan yang dilakukan oleh kedua algoritma. K-Means merupakan salah satu metode pengelompokan dan nonhierarki (sekatan) yang berusaha mempartisi data yang ada ke dalam bentuk dua atau lebih kelompok. Metode ini mempartisi data kedalam kelompok sehingga data berkarakteristik sama dimasukan kedalam satu kelompok yang sama dan data yang berkarakteristik berbeda dikelompokan ke dalam kelompok yang lain. Adapun tujuan pengelompokan data ini adalah untuk meminimalkan fungsi objektif dalam suatu kelompok dan memaksimalkan variasi antar kelompok.

2.1.1      Metode K-Means
Dari beberapa teknik yang paling sederhana dan umum dikenal adalah clustering k-means. Dalam teknik ini, objek-objek dikelompokan ke dalam K kelompok atau cluster. Untuk melakukan clustering ini, nilai k harus ditentukan terlebih dahulu. Biasanya user atau pemakai sudah mempunyai informasi awal tentang objek yang sedang dipelajari, termasuk berapa jumlah cluster yang paling tepat.
Secara detail dapat digunakan ukuran ketidakmiripan untuk pengelompokan objek. Ketidak miripan dapat diterjemahkan dalam konsep jarak. Jika dua objek atau data titik cukup dekat, maka dua objek itu mirip. Semakin dekat semakin tinggi kemiripannya. Hasil klastering dikatakan baik jika nila interclass similiarity (kesamaan antar kelas/ WVC (withing cluster variation) tinggi dan nilai interclass similarity (kesamaan antar kelas/ BVC (between cluster variation) rendah. Nilai WVC dapat dilihat dari nilai SSE-nya sedangkan BVC dihitung dengan rumus : BVC = d(m1,m2,…,mn) dimana d adalah jarak antara centroid m.
2.1.2      Algoritma K-Means
K-means bertujuan untuk membagi objek-objek atau data data yang diberikan menjadi beberapa cluster sejumlah K cluster-cluster tersebut mempunyai suatu nilai tengah / nilai pusat yang disebut dengan centroid. Tujuan dari algoritma k-means adalah meminimalisir total dari jarak elemen-elemen antar cluster (jarak antar cluster dengan cluster lainnya). Algoritma pengelompokan data dengan k-means dapat diringkas dengan sebagai berikut :
1.     Tentukan jumlah kelompok
2.     Alokasikan data ke dalam kelompok secara acak
3.     Hitung pusat (sentroid/rata-rata) dari data yang ada di masing-masing kelompok
4.     Alokasikan masing-masing data ke sentroid/rata-rata terdekat
5.     Kembali kelangkah 3, apabila masih ada data yang berpindah kelompok, atau apabila ada perubahan nilai sentroid diatas nilai ambang yang ditentukan, atau apabila perubahan nilai pada fungsi objektif yang digunakan masih diatas nilai ambang yang ditentukan.
Pada langkah ke 3, lokasi sentroid (titik pusat) setiap kelompok yang di ambil dari rata-rata (mean) semua nilai data pada setiap fiturnya harus dihitung kembali. Jika M menyatakan jumlah data dalam sebuah kelompok, i menyatakan fitur ke-I dalam sebuah kelompok dan p menyatakan dimensi data, untuk menghitung sentroid fitur ke-I digunakan formula :
CI =
Formula tersebut dilakukan sebanyak p dimensi sehingga I mulai dari 1 sampai p.
Ada beberapa cara yang dapat digunakan untuk mengukur  jarak data ke pusat kelompok, di antaranya Euclidean (Bezdek, 1981), Manhattan/City Block (Miyamoto dan Agusta, 1995) dan Minkowsky (Miyamoto dan Agusta, 1995). Masing-masing cara mempunyai kelebihan dan kekurangan.
Pengukuran jarak pada ruang jarak (distance space) Euclidean menggunakan formula
D(x­2 , x1) = || x2 – x1 ||2 = 2j – x1j 2
D adalah jarak antara data x2 dan x­­1, dan | . | adalah nilai mutlak. Pengukuran jarak pada ruang jarak manhattan menggunakan formula
D(x­2 , x1) = || x2 – x1 ||1 = 2j – x1j
Pengukuran jarak pada ruang jarak Minkowsky menggunakan formula
D(x­2 , x1) = || x2 – x1 |  = 2j – x1j
λ adalah parameter Minkowsky. Secara umum, λ merupakan parameter penentu dalam karakteristik jarak. Jika λ = 1, ruang jarak pada Minkowsky sama dengan manhattan. Jika λ = 2, ruang jaraknya akan sama dengan Euclidean. Jika λ = ∞, ruang jaraknya akan sama dengan ruang jarak Chebyshev. Namun demikian, cara yang paling banyak digunakan adalah Euclidean dan Manhattan. Euclidean menjadi pilihan jika kita ingin member jarak terpendek antara dua titik (jarak lurus). Sedangkan manhattan memberikan jarak terjauh pada dua data. Manhattan juga sering digunakan karena kemampuannya dalam mendeteksi keadaan khusus, seperti keberadaan outlier, dengan lebih baik (Agusta, 2005).
Pada langkah ke 4, pengalokasian kembali data ke dalam masing-masing kelompok dalam metode k-means didasarkan pada perbandingan jarak antara data dengan sentroid setiap kelompok yang ada. Data di alokasikan ulang secara tegas ke kelompok yang mempunyai sentroid dengan jarak terdekat dari data tersebut. Data dialokasikan ulang secara tegas ke kelompok yang mempunyai sentroid dengan jarak terdekat dari data tersebut. Pengalokasian ini dapat dirumuskan sebagai berikut (MacQueen, 1967):
a­­il adalah nilai keanggotaan titik xi ke pusat kelompok Cl, d adalah jarak terpendek dari data x ke K kelompok setelah dibandingkan, dan Cl adalah sentroid (pusat kelompok) ke-l.
fungsi objektif yang digunakan untuk K-means ditentukan berdasarkan jarak dan nilai keanggotaan data dalam kelompok, fungsi objektif yang digunakan adalah sebagai berikut. (MacQueen, 1957):
N adalah jumlah data, K adalah jumlah kelompok, ail adalah nilai keanggotaan titik data xi ke pusat data kelompok Cl, Cl adalah pusat kelompok ke-l, dan D(xi,Cl) adalah jarak titik xi ke kelompok Cl yang diikuti, a mempunyai nilai 0 atau 1. Apabila suatu data merupakan anggota suatu kelompok, nilai ail = 1, jika tidak nilai a­il­ = 0.




Read more »
Web Hosting

ADS

DogeMiner - Mine and Earn free Dogecoin

Call Me

Call Me