Start Using Zend Framework 1.11


Zend Framework is one of popular PHP Framework which mostly use for enterprise application. So it will be a little bit complex for the beginers. But don’t worry, I am a beginers to🙂. I assume that your server is the same with mine, it use linux/unix operating system and can be accessed by ssh/telnet.

Ok then, lets rock !

1. Get Zend Framework and prepare your site based on Zend Framework

We will get the latest zend framework ini minimal configuration , extract and rename it (I choose ZendFramework-1.11.9-minimal) to ZendFramework then place it under public_html directory (or you can place as you like).

# cd /home/username/public_html

# tar -zxvf  ZendFramework-1.11.9-minimal.tar.gz

# mv ZendFramework-1.11.9-minimal ZendFramework

We will use Zend Tools which located in ZendFramework/bin/zf.sh, so we need to create an alias. You need to modify /home/username/.bashrc by add the text bellow at the end of file :

alias zf.sh=/home/username/public_html/ZendFramework/bin/zf.sh

After you modify this file, you need to re-login. Now, every time You login, Zend tools is ready to use🙂

Check your Zend Tools :

# zf.sh show version

Zend Framework Version: 1.11.9

2. Create a ZF project (let say “zfstart”).

# cd /home/username/public_html

# zf.sh create project zfstart

3. Create a symbolic link of your zend library to your project library directory

# cd /home/username/public_html/zfstart/library

# ln -s /home/username/public_html/ZendFramework/library/Zend

4. And finaly you will have zfstart project directory structure bellow:

5. Test your project

http://yourdomain/zfstart/public

Then you should see like this bellow :

Congratulation !

Variabel Acak Binomial


Source : http://people.wku.edu/david.neal/statistics/discrete/binomial.html

Suppose there is probability p of occurrence on any one attempt. If we make n independent attempts, then the binomial random variable, denoted by X ~ b(n, p), counts the total number of occurrences in these n attempts.
The probability of having exactly k occurrences, for 0 <= k <= n, is given by
P(X = k) = C(n, k) * p^k * q^(n – k) , where q = 1 – p.

Simulasi dengan perantara Kejadian Diskrit


Elemen kunci dari simulasi kejadian diskrit adalah variabel-variabel dan kejadian-kejadian . Untuk melakukan simulasi kita secara kontinyu mengamati beberapa variabel tertentu. Secara umum, ada tiga jenis variabel yang sering digunakan, variabel waktu, variabel penghitung (counter), dan variabel status sistem (system state).

Variabel

Variabel waktu t . Banyaknya waktu (simulasi) yang telah berlalu

Variabel penghitung (counter). Variabel ini menyimpan banyaknya suatu kejadian terjadi / muncul sepanjang waktu t.

Variabel Status sistem (System state). Varibel ini menjelaskan status dari sistem pada waktu t tertentu.

cKetika sebuah kejadian muncul, nilai-nilai di atas akan berubah atau diperbaharui, dan kita akan mengambilnya sebagai keluaran untuk suatu data pengamatan. Untuk tujuan menentukan kapan kejadian berikutnya akan muncul, kita akan memelihara sebuah “daftar kejadian”, yang akan berisi daftar kejadian masa depan terdekat yang akan terjadi dan kapan kejadian tersebut dijadwalkan akan terjadi.

Ketika sebuah kejadian terjadi, kita kemudian mengatur kembali waktu dan semua status serta variabel penghitung serta mengambil data yang berkaitan. Dengan cara ini, kita akan dapat mengikuti/menelusuri sistem ketika berproses sepanjang waktu.

Pendekatan Simulasi Kejadian Diskrit (The Discrete Event Simulation Approach)


Mensimulasikan suatu model probabilistik akan melibatkan pembangkitan mekanisme stokastik dari model yang bersangkutan dan kemudian melakukan pengamatan terhadap aliran resultante dari model tersebut sepanjang waktu tertentu.

Berdasarkan kepada alasan pembuatan simulasi tersebut, akan ada beberapa kuantitas pengamatan tertentu yang akan kita cari. Tetapi , walaupun demikian karena evolusi model yang mengikuti waktu itu sering kali melibatkan suatu struktur logis yang rumit dari elemen-elemennya, karenanya tidak selalu mudah untuk melakukan penelusuran/mengikuti perjalanan dari evolusi tersebut, demikian juga dalam menentukan kuantitas yang akan diamati.

Sebuah kerangka kerja (framework) umum, dibangun seputar ide dari “kejadian diskrit”, telah dibuat untuk membantu kita untuk mengikuti sebuah model sepanjang waktu dan menentukan kuantitas pengamatan yang relevan/wajar. Pendekatan pada simulasi yang berdasarkan pada kerangka kerja ini sering disebut dengan Pendekatan Simulasi Kejadian Diskrit.

Sistem Antrian dengan 2 (dua) Server Paralel


Sistem ini terdiri dari 2 (dua) server, dimana ketika pelanggan datang pada saat kedua server dalam keadaan sibuk, maka pelanggan tersebut akan masuk dalam antrian. Dan ketika salah satu server kosong/bebas, maka segera pelanggan yang datang lebih dahulu dalam antrian akan masuk ke dalam server yang kosong/bebas itu, tidak tergantung server nomor berapa yang sedang kosong. Distribusi layanan dari server ke i adalah G_i , i=1,2 (lihat gambar)

2 paralel server

Misalkan kita akan mensimulasikan model ini, sambil mengamati waktu yang dihabiskan oleh setiap pelanggan didalam sistem dan banyaknya layanan yang diberikan/dilakukan oleh setiap server.

Karena disini kita memiliki lebih dari satu server, maka akan berdampak bahwa nanti ketika pelanggan meninggalkan sistem, urutannya mungkin tidak sama dengan urutan ketika dia datang. Karenanya untuk mengetahui pelanggan mana yang akan meninggalkan sistem pada saat layanannya selesai kita akan mencermati pelanggan mana saja yang sedang dalam sistem.

Kita akan memberi nomor pada setiap pelanggan yang baru saja sampai di sistem, yang pertama kali datang diberi nomor 1, berikutnya 2, dan selanjutnya. Kita akan menggunakan variabel-variabel berikut :

Variabel waktu  t

System State Variable  (SS)

Variabel yang mencatat kondisi sistem (System State) pada waktu tertentu.

n, i_1, i_2, . . ., i_n  )  jika ada n pelanggan di dalam sistem i_1 akan bersama dengan server 1, i_2 akan bersama dengan server 2, i_3 akan bersama dengan server 3 dan seterusnya.

Catatan : SS = (0) ketika sistem kosong/bebas, dan SS = (1,j,0) atau (1,0,j) ketika hanya pelanggan j dan dia sedang dilayani di server 1 atau server 2.

Counter Variables (variabel penghitung)

N_A : banyaknya kedatangan dalam waktu t .

C_j : banyaknya pelanggan yang dilayani oleh j, j= 1,2, dalam waktu t .

Output Variables

Variabel yang mencatat kejadian apa saja dan berapa yang dihasilkan dari sistem.

A(n) : waktu kedatangan dari pelanggan n, n \geq 1

D(n) : waktu keberangkatan pelanggan n, n \geq 1

Event list t_A , t_1 , t_2

Dimana t_A adalah waktu kedatangan berikutnya, dan t_1 adalah waktu penyelesaian dari pelanggan yang pada saat itu sedang dilayani oleh server i, i = 1, 2. Jika tidak ada lagi pelanggan yang saat itu berada di server i, maka kita jadikan t_i = \infty , i = 1, 2. Berikut ini, daftar kejadian akan selalu berisi tiga variabel yaitu t_A , t_1 , t_2 .

Untuk memulai simulasi, kita berikan nilai awal pada variabel-variabel dan daftar kejadian tersebut sebagian berikut :

Pemberian nilai awal (Initialize)

Set t = t_A = C_1 = C_2 = 0

Set SS = (0)

Bangkitkan T_0, dan set t_A = T_0, T_1 = t_2 = \infty .

Untuk mengupdate sistem. kita bergerak dalam waktu tertentu hingga kita mencapai event/kejadian berikutnya. Pada kasus-kasus berikut, Y_i selalu berasal dari variabel acak yang berdistribusi G_i , i=1,2

Kasus 1 SS = (n, i_1, i_2, ... , i_n) dan t_A = min (t_A, t_1, t_2 )

Reset : t = t_A

Reset : @latex N_A = N_A + 1 $

Bangkitkan T_t dan reset t_A = T_t

Ambil output data A(N_A) = t

Jika SS = (0):

Reset : @latex SS = (1, N_A  ,0) $

Bangkitkan Y_1 dan reset t_1 = t + Y_1

Jika SS = (1, j, 0) :

Reset : SS = (2, j,  N_A)

Bangkitkan $latex Y_2 dan reset t_2

[ Sumber : Simulation, Sheldon M. Ross]

Open Source, Matematika dan Statistika

Ikuti

Kirimkan setiap pos baru ke Kotak Masuk Anda.