Sunday, September 30, 2012

Algoritma Threeleaf

Assalamualaikum sobat kreatif..
Nah, kali ini admin akan sharing tentang algoritma threeleaf pada grafika komputer..

Pada dasarnya, algoritma ini juga bertujuan sama seperti algoritma lainnya pada grafika komputer. Namun algoritma threeleaf ini akan menghasilkan gambar/grafik seperti threeleaf (3daun). Berhubung ada tugas tentang memodifikasi algoritma ini, Ini dia hasil modifikasinya ..





Melihat gambar diatas, sepertinya cocok kita beri nama "SPIDER ALGORITHM" kali ya? hehehe :)
Sekian dulu postingan kali ini ya sobat,
Salam kreatif ... :)





Read more »»  

Thursday, September 27, 2012

Finite State Automata (FSA)



Assalamualaikum sobat kreatif Indonesia,
Postingan kali ini yaitu tentang Finite State Automata.
What is it? Cekidot my writing below ---


FINITE STATE AUTOMATA (FSA)


·         FSA didefinisikan sebagai pasangan 5 tupel : (Q, ∑, δ, S, F).

Q : himpunan hingga state

∑ : himpunan hingga simbol input (alfabet)
δ : fungsi transisi, menggambarkan transisi state FSA akibat pembacaan simbol input.
       Fungsi transisi ini biasanya diberikan dalam bentuk tabel.
S Î Q : state AWAL
F Ì Q : himpunan state AKHIR

Contoh : FSA untuk mengecek parity ganjil
Q ={Gnp, Gjl}                                                                                                

                                                                     ∑ = {0,1}                                                                                

tabel transisi
δ
0
1
Gnp
Gnp
Gjl
Gjl
Gjl
Gnp

S = Gnp, F = {Gjl}



·         Ada dua jenis FSA :

·               Deterministic finite automata (DFA)
·               Non deterministik finite automata.(NFA)

-       DFA : transisi state FSA akibat pembacaan sebuah simbol bersifat tertentu.

δ  : Q ´® Q

-       NFA : transisi state FSA akibat pembacaan sebuah simbol bersifat tak tentu
                                            δ : Q ´® 2Q

DFA :

Q = {q0, q1, q2}        
δ diberikan dalam tabel berikut :
                       
∑= {a, b}
δ
a
b
S = q0
q0
q0
q1
F = {q0, q1}
q1
q0
q2

q2
q2
q2







Kalimat yang diterima oleh DFA : a, b, aa, ab, ba, aba, bab, abab, baba
Kalimat yang dittolak oleh DFA  : bb, abb, abba

DFA ini menerima semua kalimat yang tersusun dari simbol a dan b yang tidak mengandung substring bb.

Contoh :

Telusurilah, apakah kalimat-kalimat berikut diterima DFA di atas :

abababaa   è diterima
aaaabab            è diterima
aaabbaba         è ditolak

Jawab :

i)           δ (q0,abababaa) Þ δ (q0,bababaa) Þ δ (q1,ababaa) Þ
δ (q0,babaa) Þ δ (q1,abaa) Þ δ (q0,baa) Þ δ (q1,aa) Þ
δ (q0,a) Þ q0
   Tracing berakhir di q0 (state AKHIR) Þ kalimat abababaa diterima

ii)         δ (q0, aaaabab) Þδ (q0,aaabab) Þδ (q0,aabab) Þ
δ (q0,abab) Þ δ (q0,bab) Þ δ (q1,ab) Þ δ (q0,b) Þ q1

         Tracing berakhir di q1 (state AKHIR) Þ kalimat aaaababa  diterima


iii)       δ (q0, aaabbaba) Þ δ (q0, aabbaba) Þ δ (q0, abbaba) Þ
δ (q0, bbaba) Þ δ (q1,baba) Þ δ (q2,aba) Þ δ (q2,ba) Þ δ (q2,a) Þq2

         Tracing berakhir di q2 (bukan state AKHIR) Þ kalimat aaabbaba ditolak



Kesimpulan :

sebuah kalimat diterima oleh DFA di atas jika tracingnya berakhir di salah satu state AKHIR.


NFA :

Berikut ini sebuah contoh NFA (Q, ∑, δ, S, F). dimana :
Q = {q0, q1, q2,q3, q4}          δ diberikan dalam tabel berikut : 


∑= {a, b,c}
S = q1
F = {q4}


Ilustrasi graf untuk NFA adalah sebagai berikut :
kalimat yang diterima NFA di atas : aa, bb, cc, aaa, abb, bcc, cbb
kalimat yang tidak diterima NFA di atas : a, b, c, ab, ba, ac, bc


Sebuah kalimat di terima NFA jika :

·         salah satu tracing-nya berakhir di state AKHIR, atau
·         himpunan state setelah membaca string tersebut mengandung state AKHIR

Contoh :

Telusurilah, apakah kalimat-kalimat berikut diterima NFA di atas :
 ab, abc, aabc, aabb




Oke deh sekian dulu ya sobat postingan kali ini ..
Salam kreatif :)









Read more »»  

Wednesday, September 26, 2012

Apple Kalahkan Google dalam Daftar Perusahaan Paling Inspiratif 2012

OS Android dari Google memang diklaim menjadi sistem operasi mobile mengalahkan iOS milik Apple. Tak hanya itu, kantor Google pun dikatakan sebagai kantor dengan desain yang sangat kreatif. Namun, menurut Forbes, Apple lebih dianggap sebagai perusahaan yang inspiratif dibandingkan Google.



Hal tersebut terungkap dalam survei yang dilakukan oleh Forbes terhadap 2200 konsumen. Dalam hasil survei tersebut, Apple duduk di peringkat pertama sebagai perusahaan paling inspiratif di Amerika Serikat pada tahun 2012. Sedangkan Google berada di tempat ke empat dan disusul oleh Microsoft di tempat kelima.
Dalam sepuluh besar peringkat tersebut, terdapat empat perusahaan teknologi yang termasuk di dalamnya. Empat perusahaan tersebut adalah Apple, Google, Microsoft serta Amazon.
Dari hasil survei tersebut, sebanyak 86 persen responden yang mengaku akan merekomendasikan perusahaan tersebut kepada rekan atau keluarganya. Selain itu terdapat 82 persen yang mengaku loyal kepada perusahaan yang dianggapnya inspiratif. Berikut ini adalah daftar 10 perusahaan paling inspiratif di Amerika Serikat menurut Forbes.


Read more »»  

Algoritma Simetri 4X, Algoritma Lingkaran Bresenham, & Output Primitif

Sahabat kreatif Indonesia,
kali ini admin akan membahas sedikit tentang bagaimana cara mengimpementasikan Algoritma Simetri 4X, Algoritma Lingkaran Bresenham, & Output Primitif kedalam program dengan menggunakan delphi7.
Okay cekidot ya berikut listing programnya,


procedure TForm1.Button1Click(Sender: TObject);
var d,c,x,y,theta,theft:real;
    xc,yc,r,r2:integer;
begin
     xc:=170;
     yc:=200;
     r:=35;
     r2:=90;
     theft:=0.0;
     d:=2*PI;
     theta:=d/4;
     c:=1/(r);

     while (theft<theta) do
     begin
     x:=r*cos(theft)  ;
     y:= r2*sin(theft);

     canvas.Pixels[trunc(xc+x),trunc(yc+y)]:=clblue;
     canvas.Pixels[trunc(xc+x),trunc(yc-y)]:=clblue;
     canvas.Pixels[trunc(xc-x),trunc(yc+y)]:=clblue;
     canvas.Pixels[trunc(xc-x),trunc(yc-y)]:=clblue;
     canvas.Pixels[trunc(xc+y),trunc(yc+x)]:=clblue;
     canvas.Pixels[trunc(xc+y),trunc(yc-x)]:=clblue;
     canvas.Pixels[trunc(xc-y),trunc(yc+x)]:=clblue;
     canvas.Pixels[trunc(xc-y),trunc(yc-x)]:=clblue;
     theft:=theft+c;
end;


end;

procedure TForm1.Button2Click(Sender: TObject);
  var x,y,p,xc,yc,r:integer;
begin
  xc:=       170;
  yc:=200;
  r:=35;
  x:=0;
  y:=r;
  p:=(3-(2*r));

  while (x<y)do
  begin
  canvas.Pixels[xc+x,yc+y]:=clred;
  canvas.Pixels[xc+x,yc-y]:=clred;
  canvas.Pixels[xc-x,yc+y]:=clred;
  canvas.Pixels[xc-x,yc-y]:=clred;
  canvas.Pixels[xc+y,yc+x]:=clred;
  canvas.Pixels[xc+y,yc-x]:=clred;
  canvas.Pixels[xc-y,yc+x]:=clred;
  canvas.Pixels[xc-y,yc-x]:=clred;

   if (p<0) then p:=(p+(4*x)+6)
   else begin
   p:=(p+(4*(x-y))+10);
   y:=y-1;
   end;
   x:=x+1;
   end;

end;

procedure TForm1.Button3Click(Sender: TObject);
var c,x,y,theta,theta_b:real;
r,xc,yc:integer;

begin
r:=200;xc:=350;yc:=205;
c:=1/(r);
theta:=0.0;
theta_b:=2*PI;
  while(theta<theta_b)do
  begin
  x:=xc+r*cos(theta);
  y:=yc-r*sin(theta);
  canvas.pixels[trunc(x),trunc(y)]:=clblack;
  theta:=theta+c;

end;
end;
end.


Nah, ini dia output programnya ..


Gampang bukan?
Sekian dulu postingan kali ini yaaa ,
Salam Kreatif :)


Read more »»  

Tuesday, September 25, 2012

Riset Operasional 2 - Linear Programming


Sahabat Kreatif Indonesia..
Postingan kali ini yaitu tentang Linear programming, lanjutan dari pengantar Riset Opersaional (RO), Nah.. Apa itu Linear Programming?
Next ---

LINEAR PROGRAMMING

SEJARAH
            Ide Linear Programming pertama kali dicetuskan oleh seorang ahli matematika asal Rusia bernama L.V. Kantorivich dalam bukunya yang berjudul ”MATHEMATICAL METHODS IN THE ORGANIZATION AND PLANNING OF PRODUCTION”. Dengan buku ini, ia telah merumuskan pertama kalinya persoalan “Linear Programming”. Namun, cara-cara pemecahan persoalan in di Rusia tidak berkembang dengan baik dan ternyata para ahli di negara Barat dan AS yang menggunakan cara ini dimanfaatkan dengan baik.
            Pada tahun 1947, seorang ahli matematika dari AS yang bernama George B. Dantzig menemukan suatu cara untuk memecahkan persoalan-persoalan linear programming. Cara pemecahan ini dinamakan ” Simplex Method”, yang diuraikan dalam bukunya ”LINEAR PROGRAMMING AND EXTENTION”. Selanjutnya teori ini berkembang pesat sekali terutama dibidang kemiliteran yang menyangkut optimisasi dalam strategi perang dan di bidang-bidang lainnya.

LINEAR PROGRAMMING (LP)
            Linear programming adalah teknik matematika yang dirancang untuk membantu manager dalam merencanakan dan membuat keputusan dalam mengalokasikan sumber daya yang terbatas untuk mencapai tujuan perusahaan.

            Linear Programming memiliki empat ciri khusus, yaitu :
1.      Penyelesaian masalah mengarah pada pencapaian tujuan maksimisasi atau minimisasi.
2.      Kendala yang ada membatasi tingkat pencapaian tujuan
3.      Ada beberapa alternatif penyelesaian
4.      Hubungan matematis bersifat linier

Untuk membentuk suatu model linear programming perlu diterapkan asumsi-asumsi dasar, yaitu :
1.      Linearity
Fungsi obyektif dan kendala haruslah merupakan fungsi linier dan variabel keputusan. Hal ini akan mengakibatkan fungsi bersifat proporsional dan additif, misalnya untuk memproduksi 1 kursi dibutuhkan waktu 5 jam, maka untuk memproduksi 2 kursi dibutuhkan waktu 10 jam.
2.      Divisibility
Nilai variabel keputusan dapat berupa bilangan pecahan. Apabila diinginkan solusi berupa bilangan bulat (integer), aka harus digunakan metoda untuk integer programming.
3.      Non negativity variable
Nilai variabel keputusan haruslah tidak negatif ( ³ 0)
4.      Certainty
Semua konstanta (parameter) diasumsikan mempunyai nilai yang pasti. Bila nilai-nilai parameternya probabilistik, maka harus digunakan formulasi pemrograman masalah stokastik.

            Pada umumnya persoalan-persoalan yang dipecahkan dalam linear programming, yaitu :
a.       Allocation Problem
Ini merupakan pemecahan dalam alokasi bahan-bahan / barang dalam produksi
b.      Blending Problem
Ini merupakan cara pemecahan persoalan dari berbagai bahan campuran yang masing-masing unit dipecahkan dan digabung (blending) untuk menghasilkan output.
c.       Persoalan Transportasi
Ini merupakan pemecahan persoalan yang menyangkut adanya unit/barang/pasokan dan lain-lain pada beberapa tempat yang akan dipindahkan ke beberapa tempat lainnya. 
d.      Persoalan Personil
Ini merupakan penempatan personil sesuai dengan jabatan/tempatnya (assigment problem).

LP : METODE GRAFIK

Metode grafik hanya bisa digunakan untuk menyelesaikan permasalahan dimana hanya terdapat dua variabel keputusan. Untuk menyelesaikan permasalahan tersebut, langkah pertama yang harus dilakukan adalah memformulasikan permasalahan yang ada ke dalam bentuk Linear Programming (LP).
Contoh :
Perusahaan Krisna Furniture yang akan membuat meja dan kursi. Keuntungan yang diperoleh dari satu unit meja adalah $7,- sedang keuntungan yang diperoleh dari satu unit kursi adalah $5,-.
Namun untuk meraih keuntungan tersebut Krisna Furniture menghadapi kendala keterbatasan jam kerja. Untuk pembuatan 1 unit meja dia memerlukan 4 jam kerja. Untuk pembuatan 1 unit kursi dia membutuhkan 3 jam kerja. Untuk pengecatan 1 unit meja dibutuhkan 2 jam kerja, dan untuk pengecatan 1 unit kursi dibutuhkan 1 jam kerja. Jumlah jam kerja yang tersedia untuk pembuatan meja dan kursi adalah 240 jam per minggu sedang jumlah jam kerja untuk pengecatan adalah 100 jam per minggu. Berapa jumlah meja dan kursi yang sebaiknya diproduksi agar keuntungan perusahaan maksimum?

Dari kasus di atas dapat diketahui bahwa tujuan perusahaan adalah memaksimumkan profit. Sedangkan kendala perusahaan tersebut adalah terbatasnya waktu yang tersedia untuk pembuatan dan pengecatan. Apabila permasalahan tersebut diringkas dalam satu tabel akan tampak sebagai berikut:


Jam kerja untuk membuat 1 unit produk
Total waktu tersedia per minggu

Meja
Kursi
Pembuatan
4
2
240
Pengecatan
2
1
100
Profit per Unit
7
5


Mengingat produk yang akan dihasilkan adalah meja dan kursi, maka dalam rangka memaksimumkan profit, perusahaan harus memutuskan berapa jumlah meja dan kursi yang sebaiknya diproduksi. Dengan demikian dalam kasus ini, yang merupakan variabel keputusan adalah meja (X1) dan kursi (X2).

1.      Fungsi Tujuan
Profit = ($ 7 x jml meja yang diproduksi) + ($ 5 x jml kursi yang diproduksi)
Secara matematis dapat ditulis :
Maksimisasi : Z = 7 X1 + 5 X2

2.      Fungsi Kendala
·         Kendala : Waktu pembuatan
1 unit meja memerlukan 4 jam untuk pembuatan                  ->         4 X1
1 unit kursi memerlukan 3 jam untuk pembuatan                  ->         3 X2
Total waktu yang tersedia per minggu untuk pembuatan       ->          240 Jam
Dirumuskan dalam pertidaksamaan matematis                                   ->         4 X+ 3 X2 £ 240

·         Kendala : Waktu pengecatan
1 unit meja memerlukan 2 jam untuk pengecatan                  ->         2 X1
1 unit kursi memerlukan 1 jam untuk pengecatan                 ->         1 X2
Total waktu yang tersedia per minggu untuk pengecatan      ->          100 Jam
Dirumuskan dalam pertidaksamaan matematis                                   ->         2 X+  X2 £ 100

Formulasi masalah secara lengkap :
Fungsi Tujuan : Maks.  Z = 7 X1 + 5 X2
Fungsi Kendala :          4 X+ 3 X2 £ 240
                                    2 X+    X2  £ 100
                                           X1  , X2  ³ 0                       (kendala non-negatif)


            Setelah formulasi lengkapnya dibuat, maka Kasus Krisna Furniture tersebut akan diselesaikan dengan metode grafik. Keterbatasan metode grafik adalah bahwa hanya tersedia dua sumbu koordinat, sehingga tidak bisa digunakan untuk menyelesaikan kasus yang lebih dari dua variabel keputusan.
Langkah pertama dalam penyelesaian dengan metode grafik adalah menggambarkan fungsi kendalanya. Untuk menggambarkan kendala pertama secara grafik, kita harus merubah tanda pertidaksamaan menjadi tanda persamaan seperti berikut.
4 X1 + 3 X2 = 240
Untuk menggambarkan fungsi linear, maka cari titik potong garis tersebut dengan kedua sumbu. Suatu garis akan memotong salah satu sumbu apabila nilai variabel yang lain sama dengan nol. Dengan demikian kendala pertama akan memotong X1, pada saat X2 = 0, demikian juga kendala ini akan memotong X2, pada saat X1 = 0.
Kendala I :
 4 X1 + 3 X2 = 240
memotong sumbu X1 pada saat X2 = 0
4 X1 + 0 = 240
X1 = 240 / 4
X1 = 60.
memotong sumbu X2 pada saat X1 = 0
0 + 3 X2 = 240
X2 = 240/3
X2 = 80
Kendala I memotong sumbu X1 pada titik (60, 0) dan memotong sumbu X2 pada titik (0, 80).

Kendala II :
2 X1 + 1 X2 = 100
memotong sumbu X1 pada saat X2 = 0
2 X1 + 0 = 100
X1 = 100/2
X1 = 50
memotong sumbu X2 pada saat X1 =0
0 + X2 = 100
X2 = 100
Kendala I memotong sumbu X1 pada titik (50, 0) dan memotong sumbu X2 pada titik (0, 100).

 Titik potong kedua kendala bisa dicari dengan cara substitusi atau eliminasi

2 X1 + 1 X2 = 100         ->         X2 = 100 - 2 X1

4 X1 + 3 X2 = 240                                                         X2 = 100 - 2 X1
4 X1 + 3 (100 - 2 X1) = 240                                          X2 = 100 - 2 * 30
4 X1 + 300 - 6 X1 = 240                                               X2 = 100 - 60
- 2 X1 = 240 - 300                                                        X2 = 40
- 2 X1 = - 60
X1 = -60/-2 = 30.
Sehingga kedua kendala akan saling berpotongan pada titik (30, 40).

Tanda ≤ pada kedua kendala ditunjukkan pada area sebelah kiri dari garis kendala. Feasible region (area layak) meliputi daerah sebelah kiri dari titik A (0; 80), B (30; 40), dan C (60; 0).
Untuk menentukan solusi yang optimal, ada dua cara yang bisa digunakan yaitu
1. dengan menggunakan garis profit (iso profit line)
2. dengan titik sudut (corner point)

Penyelesaian dengan menggunakan garis profit adalah penyelesaian dengan menggambarkan fungsi tujuan. Kemudian fungsi tujuan tersebut digeser ke kanan sampai menyinggung titik terjauh dari dari titik nol, tetapi masih berada pada area layak (feasible region). Untuk menggambarkan garis profit, kita mengganti nilai Z dengan sembarang nilai yang mudah dibagi oleh koefisien pada fungsi profit. Pada kasus ini angka yang mudah dibagi angka 7 (koefisien X1) dan 5 (koefisien X2) adalah 35. Sehingga fungsi tujuan menjadi 35 = 7 X1 + 5 X2. Garis ini akan memotong sumbu X1 pada titik (5, 0) dan memotong sumbu X2 pada titik (0, 7).

Iso profit line menyinggung titik B yang merupakan titik terjauh dari titik nol. Titik B ini merupakan titik optimal. Untuk mengetahui berapa nilai X1 dan X2, serta nilai Z pada titik B tersebut, kita mencari titik potong antara kendala I dan kendala II (karena titik B merupakan perpotongan antara kendala I dan kendala II). Dengan menggunakan eliminiasi atau subustitusi diperoleh nilai X1 = 30, X2 = 40. dan Z = 410. Dari hasil perhitungan tersebut maka dapat disimpulkan bahwa keputusan perusahaan yang akan memberikan profit maksimal adalah memproduksi X1 sebanyak 30 unit, X2 sebanyak 40 unit dan perusahaan akan memperoleh profit sebesar 410.
Penyelesaian dengan menggunakan titik sudut (corner point) artinya kita harus mencari nilai tertinggi dari titik-titik yang berada pada area layak (feasible region). Dari peraga 1, dapat dilihat bahwa ada 4 titik yang membatasi area layak, yaitu titik 0 (0, 0), A (0, 80), B (30, 40), dan C (50, 0).
Keuntungan pada titik O (0, 0) adalah (7 x 0) + (5 x 0) = 0.
Keuntungan pada titik A (0; 80) adalah (7 x 0) + (5 x 80) = 400.
Keuntungan pada titik B (30; 40) adalah (7 x 30) + (5 x 40) = 410.
Keuntungan pada titik C (50; 0) adalah (7 x 50) + (5 x 0) = 350.

Karena keuntungan tertinggi jatuh pada titik B, maka sebaiknya perusahaan memproduksi meja sebanyak 30 unit dan kursi sebanyak 40 unit, dan perusahaan memperoleh keuntungan optimal sebesar 410.




















Read more »»