Rabu, 31 Maret 2010

Tugas Kecerdasan Buatan

Breadth-first Search
2.1 Pengertian Breadth First Search
Breadth-first search adalah algoritma yang melakukan pencarian secara melebar yang mengunjungi simpul secara preorder yaitu mengunjungi suatu simpul kemudian mengunjungi
semua simpul yang bertetangga dengan simpul tersebut terlebih dahulu. Selanjutnya, simpul yang belum dikunjungi dan bertetangga dengan simpulsimpul yang tadi dikunjungi , demikian seterusnya. Jika graf berbentuk pohon berakar, maka semua simpul pada aras d dikunjungi lebih dahulu sebelum simpul-simpul pad aras d+1. Algoritma ini memerluka-n sebuah antrian q untuk
menyimpan simpul yang telah dikunjungi. Simpulsimpul ini diperlukan sebagai acuan untuk
mengunjungi simpul-simpul yang bertetanggaan dengannya. Tiap simpul yang telah dikunjungu
masuk ke dalam antrian hanya satu kali. Algoritma ini juga membutuhkan table Boolean
untuk menyimpan simpul yang te lah dikunjungi sehingga tidak ada simpul yang dikunjungi lebih dari satu kali.
2
2.2 Metode Pencarian
Salah satu contoh kakas pencarian yang menggunakan metode BFS adalah WebCrawler. WebCrawler adalah suatu kakas yang membuat indeks isi dari suatu dokumen di Web yang
selanjutnya akan dimanfaatkan oleh mesin pencari. Terdapat tiga langkah yang dilakukan oleh
WebCrawler ini ketika mengunjungi dokumen, yaitu menandai bahwa suatu dokumen telah
dikunjungi, mengenali link yang terdapat pada dokumen tersebut, kemudian isinya didaftarkan
pada daftar indeks. Pada akhirnya, WebCrawler aakan menampilkan
file yang paling banyak berkaitan dengan kata kunci.
Contoh hasil pencarian dengan WebCrawler
Kata kunci : "molecular biology human genome
project"
Hasil pencarian :
1000 Guide to Molecular Biology Databases
0754 Guide to Molecular Biology Databases
0562 Biology Links
0469 bionet newsgroups
0412 Motif BioInformatics Server
0405 LBL Catalog of Research Abstracts (1993)
0329 Molecular Biology Databases
0324 GenomeNet WWW server
0317 DOE White Paper on Bio-Informatics
0292 Molecular biology
0277 Oxford University Molecular Biology Data
Centre Home Page
0262 Biology Internet Connections
0244 Harvard Biological Laboratories - Genome
Research
0223 About the GenomeNet
0207 Biology Index
Algoritma BFS yang diterapkan pada WebCrawler ini adalah mendaftarkan setiap link yang ada dan menyimpannya dalam data base kemudian mengunjunginya satu persatu sambil mencatat linkyang berhubungan
3. Depth-first Search
3.1 Pengertian Depth First Search
Depth-first search (DFS) melakukan pencarian secara preorder. Mengunjungi anak suatu simpul
sebelum simpul tetangganya. Berkaitan dengan mesin pencari, DFS ini cenderung mengindeks
dokumen berdasarkan suatu link.
3.2 Metode Pencarian
Algoritma DFS yang diterapkan pada mesin pencari dalam melakukan pengindeksan adalah
mengunjungi suatu server kemudian menyimpan semua link yang berhubungan dengan server
tersebut baru kemudian mengunjungi server lain. Salah satu yang menerapkan algoritma DFS pada mesin pencarian adalah FTPSearch. FTPSearch adalah suatu mesin pencari dokumen
yang tersimpan di jaringan ITB. Dapat diakses pada http://ftpsearch.itb.ac.id. FTPSearch akan menampilkan daftar hasil pencarian berdasarkan server. File-file yang tersimpan pada suatu server akan ditampilkan terlebih dahulu kemudian baru berpindah pada server lain. FTPSearch tidak memperhatikan file mana yang lebih berkaitan dengan kata kunci karena FTPSearch tidak melakukan observasi sampai pada isi dokumen tapi hanya melihat judul dokumen.

4. Pola strategi menemukan file pada suatu
mesin pencari
Secara umum terdapat 3 pola strategi yang dilakukan oleh user mesin pencari untuk menemukan file yang sesuai dengan kata kunci yaitu strictly depth-first strategy, extreme breathfirst
strategy dan partially breath-first pattern)
4.1 Pengertian
Metode strictly depth-first srategy berarti pengguna mengamati tiap link hasil dari mesin pencari mulai dari atas, dan memutuskan segera untuk membuka dokumen atau tidak.
Metode extreme breath-first strategy berarti pengguna melihat keseluruhan link daftar hasil
pencarian kemudian memilih link yang mengacu ke dokumen yang paling sesuai lalu mengunjungi link tersebut. Sekali-kali pengguna juga melihat kembali daftar hasil pencarian lalu mengunjungi ulang beberapa link yang menurut dia berkaitan. Metode partially breath-first pattern merupakan metode campuran dimana pengguna melihat beberapa link baru memutuskan link mana yang akan dibuka.
4.2 Hasil Eksperimen
Pada eksperimen yang dilakukan oleh penelitian yang dilakukan oleh Kerstin Klockner, Nadine
Wirshum, Anthony Jameson, empat puluh satu subjek diberi waktu sepuluh menit untuk mendapatkan informasi tentang “Assessment centers” dengan cara membuka dokumen yang
relevan yang dikembalikan oleh Google sebagai respon pencarian. Sebuah daftar hasil pencarian
terdiri dari 25 hasil telah disiapkan sebelumnya dan disajikan dalam sebuah halaman web. Subjek harus menggulung layer untuk dapat melihat keseluruhan halaman. Gerakan mata para subjek dan aksi klik tetikus direkam dengan bantuan pendeteksi ASL
3
504. Berdasarkan rekaman video yang dibuat melalui pendeteksi itu, pemrosesan hasil pencarian
yang dilakukan para subjek dianalisis. Tiga kategori diidentifikasi : Sebagian besar subjek
(65%) mengaplikasikan strategi DFS. Kebalikannya, minoritas subjek mengaplikasikan pola strategi BFS yang ekstrim, melihat ke seluruh daftar hasil pencarian sebelum membuka sebuah
dokemen. Pola BFS yang parsial ditunjukkan oleh sisa 20% subjek, yang terkadang melihat ke
beberapa entri berikutnya sebelum memilih dokumen yang akan dibuka. Pada eksperimen dua, dua puluh tujuh subjek diminta untuk melakukan dua aktivitas yang sama dengan eksperimen satu, dengan waktu 5 menit untuk masing-masing aktivitas. Untuk menciptakan situasi yang membuat BFS terlihat relative menarik, kita memperbolehkan subjek untuk membuka maksimal sepuluh dari 25 dokumen yang di daftar, memberi penghargaan kepada mereka untuk setiap penemuan dokumen yang relevan (hamper setengah dari dokumen relevan). Di sini,
strategi yang berlawanan ditemukan lagi : 52% subjek tidak menunjukkan niat untuk melihat
keseluruhan daftar. Minoritas subjek sebanyak 11% menggunakan strategi BFS yang ekstrim, melihat ke seluruh daftar sebelum membuka sebuah dokumen; sisanya sebanyak 37% mengaplikasikan strategi campuran, melihat dulu ke dua sampai enam dokumen berikutnya dalam daftar.
4. Analisis
Berdasarkan penelitian yang dilakukan oleh Kerstin Klockner, Nadine Wirshum, Anthony Jameson pada makalahnya yang berjudul “Depth- and Breadth-First Processing of Search Result” kita dapat menyimpulkan bahwa pengguna cenderung melakukan pencarian secara strictly depth-first strategy . Yaitu melihat suatu link yang paling atas dari hasil pencarian kemudian mengaksesnya dan terus menelusuri link yang terdapat pada document tersebut yang berkaitan dengan kata kunci yang dicari.
Sehingga agar pencarian oleh FTP search lebih efektif perlu ada penyesuaian dengan algoritma
mesin pencari. Algoritma yang menurut kami paling sesuai adalah algoritma BFS pada mesin
pencari yang akan menampilkan daftar file yang paling dekat relefansinya dengan kata kunci.
Metode FTP search melakukan hal yang sama dengan WebCrawler yaitu mengunjungi setiap server, mencatat link file dan memasukkannya ke dalam basis data. Sehingga file yang paling relevan ditempatkan di bagian paling atas daftar hasil pencarian. Perbedaan dengan web crawler ftp search akan mengelompokkan file-file tersebut
berdasarkan server. Kelebihan metode baru ini bagi pengguna FTP search adalah pengguna akan dapat langsung melihat file yang paling relevan pada bagian atas daftar hasil pencarian dan meminimalisasi pengaksesan lintas server.
5. Kesimpulan
Berdasarkan analisis yang dilakukan maka algoritma BFS pada mesin pencarian dengan memperhatikan kebiasaan pengguna dalam membuka file daftar hasil pencarian akan mengefektifkan pencarian file di ftp search. Sehingga daftar hasil pencarian FTP search dapat lebih memudahkan pengguna dalam melakukan pencarian.

SEJARAH PSS elang Jawa

SEJARAH SINGKAT PERJALANAN TEAM HIJAU PSS MENUJU SEPAKBOLA NASIONAL

SUDAH lama dan berpanjang lebar orang membicarakan bagaimana sebuah permainan sepakbola bisa baik, berkualitas tinggi. Bahkan, dalam konteks nasional, Indonesia pernah kebingungan mencari jawaban itu. Berbagai pelatih atau instruktur didatangkan dari Brasil, Jerman, Belanda dan sebagainya. Namun, toh sepakbola Indonesia tak pernah memuaskan, bahkan tekesan mengalami kemunduran.

Dari pengalaman upaya Tim Nasional Indonesia untuk membangun sebuah permainan sepakbola yang baik itu, sebenarnya ada kesimpulan yang bisa diambil. Kesimpulan itu adalah, selama ini Indonesia hanya mencoba mengkarbit kemampuan sepakbolanya dengan mendatangkan pelatih berkelas dari luar negeri. Indonesia tidak pernah membangun kultur atau budaya sepakbola secara baik. Dengan kata lain, upaya PSSI selama ini lebih membuat produk instan daripada membangun kultur dimaksud.

Pelatih berkualitas, teori dan teknik sebenarnya bukan barang sulit untuk dimiliki. Elemen-elemen itu ada dalam textbook, atau bahkan sudah di luar kepala seiring dengan meluasnya popularitas sepakbola. Indonesia termasuk gudangnya komentator. Bahkan, seorang abang becak pun bisa berbicara tentang sepakbola secara teoritis dan analitis.

Sebab itu, seperti halnya sebuah kehidupan, sepakbola membutuhkan kultur. Artinya, sepakbola harus menjadi kebiasaan atau tradisi yang melibatkan daya upaya, hasrat jiwa, interaksi berbagai unsur dan berproses secara wajar dan jujur, bertahap dan hidup.

Untuk membangun kultur sepakbola itu, jawaban terbaik adalah membangun kompetisi yang baik pula. Lewat kompetisi, tradisi sepakbola lengkap dengan segala elemennya akan berproses dan berkembang ke arah yang lebih baik. Akan lebih baik lagi kompetisi itu terbangun sejak pelakunya masih kecil, tanpa rekayasa dan manipulasi. Pada gilirannya, tradisi itu akan melahirkan sebuah permainan indah dan berkualitas, serta memiliki bentuk dan ciri khasnya tersendiri. Itu sebabnya, kenapa sepakbola Brasil, Belanda, Inggris, Jerman dan Italia tidak hanya berkualitas, tapi juga punya gaya khasnya sendiri- sendiri.

Dalam konteks kecil dan lokal, Persatuan Sepakbola Sleman (PSS), sadar atau tidak, sebenarnya telah membangun sebuah kultur sepakbolanya melalui kompetisi lokal yang rutin, disiplin dan bergairah. Berdiri tahun 1976, PSS termasuk perserikatan yang muda jika dibandingkan dengan PSIM Yogyakarta, Persis Solo, Persib Bandung, Persebaya Surabaya, PSM Makassar, PSMS Medan, Persija dan lainnya.

Namun, meski muda, PSS mampu membangun kompetisi sepakbola secara disiplin, rutin dan ketat sejak pertengahan tahun 1980-an. Kompetisi itu tak bernah terhenti sampai saat ini. Sebuah konsistensi yang luar biasa. Bahkan, kompetisi lokal PSS kini dinilai terbaik dan paling konsisten di Indonesia. Apalagi, kompetisi yang dijalankan melibatkan semua divisi, baik divisi utama, divisi I maupun divisi II. Bahkan, pernah PSS juga menggelar kompetisi divisi IIA.

Maka, tak pelak lagi, PSS kemudian memiliki sebuah kultur sepakbola yang baik. Minimal, di Sleman telah terbangun sebuah tradisi sepakbola yang meluas dan mengakar dari segala kelas. Pada gilirannya, tak menutup kemungkinan jika suatu saat PSS mampu menyuguhkan permainan fenomenal dan khas.

Ini prestasi luar biasa bagi sebuah kota kecil yang berada di bawah bayang-bayang Yogyakarta ini. Di Sleman tak ada sponsor besar, atau perusahaan-perusahaan raksasa yang bisa dimanfaatkan donasinya untuk mengembangkan sepakbola. Kompetisi itu lebih berawal dari kecintaan sepakbola, tekad, hasrat, motivasi dan kemauan yang tinggi. Semangat seluruh unsur #penonton, pemain, pelatih, pengurus dan pembina #terlihat begitu tinggi.

Meski belum optimal, PSS akhirnya menuai hasil dari tradisi sepakbola mereka. Setidaknya, PSS sudah melahirkan pemain nasional Seto Nurdiantoro. Sebuah prestasi langka bagi DIY. Terakhir, pemain nasional dari DIY adalah kiper Siswadi Gancis. Itupun ia menjadi cadangan Hermansyah. Yang lebih memuaskan, pada kompetisi tahun 1999/2000, PSS berhasil masuk jajaran elit Divisi Utama Liga Indonesia (LI).

Perjalanan PSS yang membanggakan itu bukan hal yang mudah. Meski lambat, perjalanan itu terlihat mantap dan meyakinkan. Sebelumnya, pada kompetisi tahun 1990-an, PSS masih berada di Divisi II. Tapi, secara perlahan PSS bergerak dengan mantap. Pada kompetisi tahun 1995/96, tim ini berhasil masuk Divisi I, setelah melewati perjuangan berat di kompetisi-kompetisi sebelumnya.

Dengan kata lain, PSS mengorbit di Divisi Utama LI bukan karena karbitan. Ia melewatinya dengan proses panjang. Kasus PSS menjadi contoh betapa sebuah kulturisasi sepakbola akan lebih menghasilkan prestasi yang mantap daripada produk instan yang mengandalkan ketebalan duit.

Dan memang benar, setelah bertanding di kompetisi Divisi Utama, PSS bukanlah pendatang baru yang mudah dijadikan bulan- bulanan oleh tim-tim elit. Padahal, di Divisi Utama, PSS tetap menyertakan pemain produk kompetisi lokalnya. Mereka adalah M Iksan, Slamet Riyadi, Anshori, Fajar Listiantoro dan M Muslih. Bahkan, M Ikhsan, Slamet Riyadi dan Anshori merupakan pemain berpengaruh dalam tim.

Pada penampilan perdananya, PSS langsung mengagetkan insan sepakbola Indonesia. Di luar dugaan, PSS menundukkan tim elit bergelimang uang, Pelita Solo 2-1.

Bahkan, Gubernur DIY Sri Sultan Hamengku Buwono sendiri yang saat itu berada di Brunei Darussalam dalam rangka promosi wisata juga kaget. Kepada Bupati Sleman Ibnu Subianto yang mengikutinya, Sri Sultan mengatakan, "Ing atase cah Sleman sing ireng-ireng biso ngalahke Pelita." Artinya, anak-anak Sleman yang hitam-hitam itu (analog orang desa) kok bisa mengalahkan tim elit Pelita Solo.

Saat itu, Ibnu Subianto menjawab, "Biar hitam nggak apa- apa tho pak, karena bupatinya juga hitam." Ini sebuah gambaran betapa prestasi PSS memang mengagetkan. Bahkan, gubernur sendiri kaget oleh prestasi anak-anaknya. Akan lebih mengagetkan lagi, jika Sri Sultan tahu proses pertandingan itu. Sebelum menang, PSS sempat ketinggalan 0-1 lebih dulu. Hasil ini menunjukkan betapa permainan PSS memiliki kemampuan dan semangat tinggi, sehingga tak minder oleh tim elit dan tak putus asa hanya karena ketinggalan. Berikutnya, tim cukup tua Gelora Dewata menjadi korbannya. Bahkan, di klasemen sementara, PSS sempat bertengger di urutan pertama.

Ketika tampil di kandang lawan, Malang United dan Barito Putra, PSS juga tak bermain cengeng. Bahkan, meski akhirnya kalah, PSS membuat tuan rumah selalu was-was. Sehingga, kekalahan itu tetap menjadi catatan mengesankan. Maka, tak heran debut PSS itu kemudian menjadi perhatian banyak orang. Hanya dalam sekejap, PSS sudah menjadi tim yang ditakuti, meski tanpa bintang.

Pembinaan sepakbola ala PSS ini akan lebih tahan banting. Sebab itu, terlalu berlebihan jika menilai PSS bakal numpang lewat di Divisi Utama.

Dengan memiliki tradisi sepakbola yang mantap dan mapan, tak menutup kemungkinan jika PSS akan memiliki kualitas sepakbola yang tinggi. Bahkan, bukan hal mustahil jika suatu saat PSS bisa juara LI.

Apa yang terjadi di Sleman sebenarnya mirip dengan yang terjadi di Bandung dengan Persib-nya dan di Surabaya dengan Persebaya-nya. Di kedua kota itu, kompetisi lokal juga berjalan dengan baik, bahkan sepakbola antarkampung (tarkam) pun kelewat banyak. Maka tak heran jika sepakbola di Bandung dan Surabaya sangat tangguh dan memiliki ciri khas tersendiri. Oleh karena itu, jika tradisi sepakbola di Sleman bisa dipertahankan bahkan dikembangkan, tak menutup kemungkinan PSS akan memiliki nama besar seperti halnya Persib atau Persebaya. Semoga!

Tugas TEKNIK BAHASA DAN OTOMATA

Finite State Automata (FSA)

♦ model matematika yang dapat menerima input dan mengeluarkan output
♦ Memiliki state yang berhingga banyaknya dan dapat berpindah dari satu state ke state lainnya berdasar input dan fungsi transisi
♦ Tidak memiliki tempat penyimpanan/memory, hanya bisa mengingat state terkini.
♦ Mekanisme kerja dapat diaplikasikan pada : elevator, text editor, analisa leksikal, pencek parity.

Contoh pencek parity ganjil



Misal input : 1101
Genap 1 Ganjil 1 Genap 0 Genap 1 Ganjil
diterima mesin
Misal input : 1100
Genap 1 Ganjil 1 Genap 0 Genap 0 Genap
ditolak mesin
Def 1. Finite State Automata dinyatakan oleh 5 tuple
M=(Q , Σ , δ , S , F )
Q = himpunan state
Σ = himpunan simbol input 6
δ = fungsi transisi δ : Q × Σ
S = state awal / initial state , S ∈ Q
F = state akhir, F ⊆ Q
Contoh diatas,
Q = {Genap, Ganjil}
Σ = {0,1}
S = Genap
F = {Ganjil }




atau δ(Genap,0) = Genap
δ(Genap,1) = Ganjil
δ(Ganjil,0) = Ganjil
δ(Ganjil,1) = Genap

Jenis FSA
Deterministic Finite Automata (DFA) : dari suatu state ada tepat satu state berikutnya
untuk setiap simbol masukan yang diterima
Non-deterministic Finite Automata (NFA) : dari suatu state ada 0, 1 atau lebih state
berikutnya untuk setiap simbol masukan yang diterima
Deterministic Finite Automata
♦ Contoh : pengujian parity ganjil.
♦ Contoh lain : Pengujian untuk menerima bit string dengan banyaknya 0 genap,
serta banyaknya 1 genap.
♦ 0011 : diterima.
♦ 10010 : ditolak, karena banyaknya 0 ganjil
♦ Diagram transisi-nya :

♦ DFA nya
Q = {q0 , q1 , q2 , q3 }
Σ = {0,1}
S = q0
F = { q0}
fungsi transisi

δ( q0,011)= δ( q2,11) =δ( q3,1)= q2 Ditolak
δ( q0,1010)= δ( q1,010) =δ( q3,10)=δ( q2,0)= q0 Diterima
♦ Contoh lain DFA : Variabel dalam bahasa pascal diawali oleh huruf (besar/kecil),
dan diikuti dengan huruf atau angka.



♦ Contoh DFA lainnya :



















Nondeterministic Finite Automata (NFA)

♦ Perbedaan dengan NFA: fungsi transisi dapat memiliki 0 atau lebih fungsi transisi
♦ G = ({q0 , q1 , q2 , q3, q4 }, {0,1}, δ , q0 , { q2 , q4}}

♦ String diterima NFA bila terdapat suatu urutan transisi berdasar input, dari state awal ke state akhir.
♦ harus mencoba semua kemungkinan.





♦ Contoh : string 01001
Def 2. Dua buah FSA disebut ekuivalen apabila kedua FSA tersebut menerima bahasa
yang sama
Contoh : FSA yang menerima bahasa {an | n≥0 }


Def 3. Dua buah state dari FSA disebut indistinguishable (tidak dapat dibedakan)
apabila :
δ(q,w)∈F sedangkan δ(p,w)∉F dan
δ(q,w) ∉F sedangkan δ(p,w) ∈F untuk semua w ∈ Σ*
Def 4. Dua buah state dari FSA disebut distinguishable (dapat dibedakan) bila terdapat
w ∈ Σ* sedemikian hingga:
δ(q,w)∈F sedangkan δ(p,w)∉F dan
δ(q,w) ∉F sedangkan δ(p,w) ∈F untuk semua w ∈ Σ*

Prosedur menentukan pasangan status indistinguishable
1. Hapus semua state yang tak dapat dicapai dari state awal.
2. Catat semua pasangan state (p,q) yang distinguishable, yaitu {(p,q) | p ∈ F ∧ q ∉ F}
3. Untuk setiap pasangan (p,q) sisanya,
untuk setiap a∈ Σ, tentukan δ(p,a) dan δ(q,a)
Contoh
1. Hapus state yang tidak tercapai -> tidak ada
2. Pasangan distinguishable (q0,q4), (q1,q4), (q2,q4), (q3,q4).
3. Pasangan sisanya (q0,q1), (q0,q2), (q0,q3), (q1,q2) (q1,q3) (q2,q3)

Catatan : jumlah pasangan seluruhnya :

Prosedur Reduksi DFA
1. Tentukan pasangan status indistinguishable.
2. Gabungkan setiap group indistinguishable state ke dalam satu state dengan relasi pembentukan group secara berantai : Jika p dan q indistingishable dan jika q dan r indistinguishable maka p dan r indistinguishable, dan p,q serta r indistinguishable semua berada dalam satu group.
3. sesuaikan transisi dari dan ke state-state gabungan.
Contoh
1. pasangan status indistinguishable (q1,q2), (q1,q3) dan (q2,q3).
2. q1,q2,q3 ketiganya dapat digabung dalam satu state q123
3. Menyesuaikan transisi, sehingga DFA menjadi








Ekuivalensi NFA-DFA

♦ Ada apa dengan NFA ? konsep yang sulit diimplemen-tasikan. Komputer
sepenuhnya deterministic.
♦ Kenapa dipelajari ? Lebih dekat ke sistem nyata
♦ Contoh : permainan catur, banyak alternatif pada suatu posisi tertentu ->
nondeterministic
♦ Non deterministik dapat menyelesaikan problem tanpa backtrack, namun dapat
diekuivalensikan ke DFA.
Algoritma
1. Buat semua state yang merupakan subset dari state semula. jumlah state menjadi 2Q
2. Telusuri transisi state–state yang baru terbentuk, dari diagram transisi.
3. Tentukan state awal : {q0}
4. Tentukan state akhir adalah state yang elemennya mengandung state akhir.
5. Reduksi state yang tak tercapai oleh state awal.
Contoh Ubahlah NFA berikut menjadi DFA
M={{q0,q1}, {0,1}, δ, q0,{q1}} dengan tabel transisi

1. State yang akan dibentuk : {}, {q0} {q1},{q0,q1}
2. Telusuri state

3. State awal : {q0}
4. State akhir yang mengandung q1, yaitu {q1},{q0,q1}









Contoh : Ubahlah NFA berikut menjadi DFA
M={{q0,q1 ,q2}, {p,r}, δ, q0,{q1}} dengan tabel transisi

1. State yang akan dibentuk : {}, {q0} {q1},{q2}, {q0,q1}, {q0,q2}, {q1,q2}, {q0,q1,q2}

2. Telusuri state:

3. State awal : {q0}
4. State akhir yang mengandung q1, yaitu {q1},{q1,q2}



5. Reduksi {q0,q1}{q0,q2}{q0,q1,q2 } sehingga FSA menjadi
NFA dengan ε-move
Def 1. ε-move adalah suatu transisi antara 2 status tanpa adanya input. Contoh gambar :
transisi antara status q1 ke q3
Def 2. ε-closure adalah himpunan state yang dapat dicapai dari suatu state tanpa adanya input. Contoh gambar :
ε-closure(q0) = [q0,q1,q3]
ε-closure(q1) = [q1,q3]
ε-closure(q3) = [q3]

Ekuivalensi NFA dengan ε-move ke NFA
tanpa ε-move
1. Buat tabel transisi NFA dengan ε-move
2. Tentukan ε-closure setiap state
3. Carilah fungsi transisi /tabel transisi yang baru, rumus :
δ’(state,input)=ε-closure(δ(ε-closure(state,input))
4. Tentukan state akhir ditambah dengan state yang ε-closure nya menuju state akhir,
rumusnya 14
F’ = F ∪ {q | (ε-closure(q) ∩ F ≠ ∅}
Contoh
Tabel transisi-nya

ε-closure dari FSA tersebut
ε-closure(q0) = [q0,q1]
ε-closure(q1) = [q1]
ε-closure(q2) = [q2]
ε-closure(q3) = [q3]
Cari tabel transisi yang baru (δ’) :
Hasilnya menjadi

Penggabungan FSA
Bila diketahui L1 adalah bahasa yang diterima oleh M1 dan L2 adalah bahasa yang
diterima oleh M2 maka
1. FSA M3 yang dapat menerima L1+L2 dibuat dengan cara
♦ Tambahkan state awal untuk M3, hubungkan dengan state awal M1 dan state awal M2 menggunakan transisi ε
♦ Tambahkan state akhir untuk M3, hubungkan dengan state-state akhir M1 dan state-state akhir M2 menggunakan transisi ε
2. FSA M4 yang dapat menerima L1L2 dibuat dengan cara
♦ State awal M1 menjadi state awal M4
♦ State-state akhir M2 menjadi state-state akhir M4
♦ Hubungkan state-state akhir M1 dengan state awal M2 menggunakan transisi ε
Contoh FSA M1 dan M2










FSA M3

FSA M4

Rabu, 24 Maret 2010

Tentang CISC dan RISC

BAB I

PENDAHULUAN

MASALAH

Sejak perkembangan komputer penyimpanan program pada sekitar 1950-an, telah terjadi sejumlah inovasi penting dalam bidang organisasi dan arsitektur komputer. Walaupun tidak memuat seluruh inovasi tersebut, berikut ini akan diuraikan beberapa kemajuan yang besar dalam bidang komputer sejak kelahirannya.

· Family Concept : diperkenalkan oleh IBM dengan system/360-nya pada 1964, dan kemudian diikuti oleh DEC dengan PDP-8-nya. Konsep keluarga (Family Concept) melepaskan arsitektur mesin dari implementasinya. Sejumlah komputer yang yang karakteristik kinerja dan harganya berlainan dengan arsitektur yang sama telah ditawarkan kepada pengguna. Perbedaan harga dan kinerja terjadi karena adanya perbedaan implementasi dari arsitektur yang sama.

· Microprogrammed Control Unit : Dibuat oleh Wilkes pada 1951, dan pertama kali diluncurkan oleh IBM pada S/360 pada 1964. Pemrograman mikro mempermudah pekerjaan perencanaan dan implementasi unit control dan mempermudah konsep keluarga.

· Cache Memmory : Pertama kali diperkenalkan secara komersial pada mesin IBM S/360 model 85 pada 1968. Penambahan model ini kedalam hirarki memory telah berhasil meningkatkan kinerja secara dramatis.

· Pipelining : Suatu cara unutk menerapkan paralelisme kedalam sifat sekuansial penting bagi program instruksi mesin. Contoh – contohnya adalan pengolahan pipelining dan vector.

· Multiple Processor : kategori ini mencakup sejumlah organisasi dan tujuan.

Dan salah satu bentuk evolusi komputer yang dirasakan adalah evolusi bahasa pemrograman. Dengan semakin murahnya harga perangkat keras, harga perangkat lunak relatif telah mengalami peningkatan. Pada waktu yang bersamaan, kurangnya pemrogram telah mengakibatkan harga perangkat lunak semakin mahal. Akibaynya, biaya terbesar dalam siklus kehidupan sistem dihabiskan untuk keperluan perangkat lunak, bukannya perangkat keras. Sebagai tambahan terhadap biaya dan ketidaknyamanan tersebut, terhadap elemen ketidakreabilitasan, adalah suatu hal yang umum bagi pemrogram, baik system maupun aplikasi, untuk terus mengandung bug – bug baru setelah dioperasikan beberapa lama.

PEMECAHAN

Sebagai jawaban dari para peneliti dan industri adalah dengan membuat program bahasa tingkat tinggi yang lebih baik dan lebih kompleks. Bahasa – bahasa tingkat tinggi (HLL-High Level Language) ini memungkinkan program dapat mengekspresikan algoritma lebih singkat., lebih memperhatikan rincian, dan seringkali mendukung secara alami penggunaan pemrograman secara terstruktur.

Solusi ini menimbulkan masalah lainnya, yang dikenal sebagai semantic gap, yaitu perbedaan antara operasi – operasi yang disediakan HLL dengan operasi – operasi yang disediakan oleh arsitektur komputer. Tanda – tanda adanya gap ini dinyatakan dengan terjadinya ketidakefisienan eksekusi, program mesin yang berukuran besar, dan kompleksitas kompiler. Untuk mengurangi kesenjangan ini, para perancang menjawabnya dengan arsitektur. Feature- feature pentingnya meliputi set – set instruksi yang banyak, lusinan mode pengalamatan dan bermacam – macam statemen HLL yang diimplementasikan didalam perangkat keras. Sebagai contoh implementasi perangkat keras tersebut adalah instruksi mesin CASE pada VAX.

ALAT

Sebelum proses RISC didesain untuk pertama kalinya, banyak arsitek komputer mencoba menjembatani celah semantik, yaitu bagaimana cara untuk membuat set-set instruksi untuk mempermudah pemrograman level tinggi dengan menyediakan instruksi "level tinggi" seperti pemanggilan procedure, proses pengulangan dan mode-mode pengalamatan kompleks sehingga struktur data dan akses array dapat dikombinasikan dengan sebuah instruksi. Karakteristik CISC yg "sarat informasi" ini memberikan keuntungan di mana ukuran program-program yang dihasilkan akan menjadi relatif lebih kecil, dan penggunaan memory akan semakin berkurang. Karena CISC inilah biaya pembuatan komputer pada saat itu (tahun 1960) menjadi jauh lebih hemat.

BAB II

LANDASAN TEORI

CISC merupakan kepanjangan dari Complex Instruction Set Computing atau Complex Instruction Set Komputer (CISC; "Kumpulan instruksi komputasi kompleks") adalah sebuah arsitektur dari set instruksi dimana setiap instruksi akan menjalankan beberapa operasi tingkat rendah, seperti pengambilan dari memory, operasi aritmetika, dan penyimpanan ke dalam memory, semuanya sekaligus hanya di dalam sebuah instruksi. Di lain pihak, banyaknya instruksi dalam CISC dapat mengurangi kecepatannya. Chip Intel x86 merupakan chip dari jenis CISC karena ia menggunakan set instruksi kompleks.

Pada arsitektur CISC seperti Intel x86, yang diperkenalkan pada tahun 1978, bisa terdapat ratusan instruksi program - perintah-perintah sederhana yang menyuruh sistem menambah angka, menyimpan nilai, dan menampilkan hasilnya. Bila semua instruksi panjangnya sama, instruksi sederhana akan memboroskan memori. Instruksi sederhana membutuhkan ruang penyimpanan 8 bit, sementara instruksi yang paling kompleks mengkonsumsi sebanyak 120 bit. Sehingga hal tersebut akan mengurangi kecepatannya.

Arsitektur berbasis CISC juga memungkinkan para perancang prosesor untuk menambahkan set instruksi tambahan untuk keperluan tertentu disamping set instruksi standar yang sudah ada, misalnya set instruksi MMX (Multimedia Extension) yang ditambahkan pada prosesor buatan Intel, dan 3Dnow! pada prosesor keluaran AMD. Karena itulah maka keluarga prosesor CISC lebih banyak digunakan dalam komputer pribadi dimana aplikasinya lebih luas, sementara keluarga prosesor RISC hanya digunakan pada workstation yang biasanya memiliki lingkup aplikasi yang lebih sempit.

Diantara kelebihan dan kekurangan dari arsitektur RISC dan arsitektur CISC sampai sekarang masih menjadi sebuah perdebatan. CISC yang merupakan kebalikan dari RISC, biasanya digunakan pada keluarga processor untuk PC (AMD, Cyrix). Para pesaing Intel seperti Cyrix dan AMD juga telah menggunakan chip RISC tetapi ia telah dilengkapi dengan penukar (converter) CISC. Ada juga teknologi yang menggabungkan kedua arsitektur tersebut, contohnya : Prosesor Intel dan AMD yang dijual secara komersil sekarang adalah pengembangan dari prosesor x86 yang menggunakan basis prosesor CISC. Lucunya, instruksi set yang didukung oleh kedua prosesor tersebut menggunakan instruksi RISC yang lebih efisien dalam menangani data.

BAB III

PEMBAHASAN

Mengenal Lebih Dekat Prosesor Mikro

Bila sebuah komputer diibaratkan sebagai tubuh manusia, maka prosesor mikro (processor) adalah otaknya. Kecepatan sebuah komputer sebagian besar bergantung kepada kecepatan prosesor yang terpasang didalamnya. Makin cepat prosesor yang digunakan sebuah PC, maka makin kencang kerja PC tersebut. Salah satu faktor penentu kecepatan sebuah prosesor adalah jumlah transistor yang berada didalamnya.

Pada komputer tempo dulu seperti ENIAC, transistor yang digunakan berupa tabung-tabung hampa udara. Sedangkan transistor pada komputer masa kini berupa rangkaian silikon yang tersusun sebagai sebuah IC (Integrated Circuit) yang berada dalam keping sebuah prosesor. Keping IC ini cuma berukuran tidak lebih dari satu inchi persegi (kira-kira seukuran kuku ibu jari), tapi dapat menampung sampai jutaan transistor.

Jumlah transistor dalam keping sebuah prosesor terus meningkat dari waktu ke waktu, seiring dengan kemajuan dalam bidang desain dan pabrikasi prosesor. Dalam sebuah prosesor 8088 (PC-XT) dengan clock speed 5 MHz yang diperkenalkan pada 1979, menampung 29.000 transistor dengan ukuran 3 mikron lebih tipis dari rambut manusia yang tebalnya 100 mikron.

Peningkatan yang signifikan terjadi pada pada era prosesor 80286 (PC-AT) menjadi 134.000 transistor dengan ukuran 1,5 mikron yang bekerja pada clock speed 6 MHz. Berikutnya, pada era prosesor 80486, yang jumlah transistornya menjadi 1.200.000 dengan ukuran 1 mikron dan bekerja dengan clock speed 25 MHz. Era Pentium oleh Intel tahun 1993 melipatgandakan jumlah transistor menjadi 3.100.000 dengan ukuran 0.8 mikron pada 60 MHz. Jumlah ini meningkat sangat tajam pada generasi prosesor keluaran Intel selanjutnya hingga pada keluarga prosesor Pentium 4. Intel berhasil menjejalkan 42.000.000 transistor seukuran 0,18 mikron kedalam keping chip yang luasnya tidak berubah. Jumlah transistor sedemikian mendongkrak clock speed prosesor tersebut hingga diatas 1.5 GHz.

Lebih banyak transistor juga memungkinkan berkembangnya teknologi pipelining. Dalam arsitektur pipeline, beberapa set instruksi dapat dijalankan dalam waktu yang bersamaan. Dengan demikian, biar pun setiap instruksi dapat membutuhkan 5 clock cycle, setiap instruksi dapat dieksekusi secara simultan dalam tingkatan (stage) yang berbeda. Sehingga seolah-olah prosesor dapat menyelesaikan satu instruksi / beberapa set instruksi setiap satu clock cycle. Namun, apakah anda sudah mengenal apa yang dinamakan Set Instruksi?? Dalam pembahasan selanjutnya, akan diterangkan sedikit tentang Set Instruksi.

Definisi Set Instruksi

Set instruksi adalah kode-kode dari instruksi-instruksi (instruction mesin) yang dapat diterjemahkan dalam bahasa mesin (machine language). Set instruksi tersebut yang nantinya menjadi bahan dasar dari proses CPU. Setiap CPU memiliki berbeda-beda set insruksinya tergantung dari bagaimana arsitektur CPU dibuat, seorang programmer akan kesulitan memprogram jika tidak mengetahui arsitektur CPU, karena set instruksi yang menjadi acuan seorang programmer untuk memprogram mesin tersebut. Set instruksi terdiri dari kode operasi (opcode) dan operand, Banyak type dari set instruksi sebuah CPU seperti: data processing, data storage, data movement, dan control. Type-type tersebut merupakan dasar dari type-type saat ini dan setiap CPU baik Intel dan AMD akan berbeda-beda.

Perbedaan dari set instrusi akan memberikan perbedaan karakteristik dari sebuah CPU. Ada dua model set instruksi yang menjadi dasar dari mesin (CPU) saat ini, yaitu: RISC (reduce Instruction Set Komputer) dan CISC (Complex Instrution Set Komputer).

Kriteria Rancangan Untuk Format – Format Instruksi

Ketika suatu tim rancangan komputer harus memilih format – format instruksi untuk mesinnya, mereka harus mempertimbangkan sejumlah faktor. Kesulitan dalam membuat pilihan ini tidak boleh dianggap mudah. Keputusan mengenai format instruksi harus dibuat sejak dini dalam merancang sebuah komputer baru. Jika komputer tersebut berhasil secara komersial, kumpulan instruksi bisa bertahan selama 20 tahun atau lebih. Kemampuan untuk menambah instruksi – instruksi baru dan memanfaatkan kesempatan – kesempatan lain yang muncul selama jangka waktu yang lama sangatlah penting, dengan syarat arsitektur tersebut dan perusahaan mengembangkannya mampu bertahan cukup lama agar arsitektur tersebut bisa bertahan lama. Efisiensi dari suatu level set instruksi tentu sangat bergantung pada teknologi yang akan digunakan untuk mengimplementasikan teknologi tersebut.

Asalkan segala sesuatu tetap sama, instruksi – instruksi singkat lebih bagus daripada instruksi – instruksi panjang. Sebuah program yang berisi n instruksi 16 bit membutuhkan hanya separuh ruang memori sebanyak yang dibutuhkan n instruksi 32 bit. Dengan harga memori yang semakin murah, faktor ini mungkin kurang penting di masa mendatang, jika itu karena bukan fakta bahwa software mengalami perubahan lebih cepat daripada penurunan harga memori.

Di sisi lain, dengan menggunakan instruksi – instruksi singkat justru mungkin akan semakin menyulitkan unutk mendekode atau melengkapi instruksi – instruksi tersebut. Oleh karena itu, untuk mencapai ukuran instruksi yang singkat, harus mempertimbangkan waktu yang dibutuhkan untuk mendekodekan dan menjalankan instruksi – instruksi tersebut.

Alasan lain untuk mengurangi panjang instruksi menjadi semakin penting berkat adanya prosesor – prosesor yang lebih cepat dan mempunyai lebar pita memori (jumlah bit - bit per detik yang dapat disuplai oleh memori) yang lebih cepat pula. Pertumbuhan mengesankan dalam kecepatan prosesor selama dekade terakhir ini tidak diimbangi oleh peningkatan serupa dalam bandwidth memori. Salah satu kelemahan umum pada prosesor – prosesor bersumber dari ketidakmampuan system memori untuk mensuplai instruksi- instruksi dan operand – operand secepat prosesasor menggunakan mereka. Setiap memori memiliki sebuah bandwidth yang ditentukan oleh teknologi dan rancangan pembuatannya. Kendala bandwidth bukan hanya berlaku pada memori utama, tetapi juga pada semua cache.

Menjalankan Instruksi

CPU menjalankan setiap instruksi dalam beberapa langkah kecil. Jelasnya, langkah – langkah tersebut adalah :

1. Mengambil instruksi berikutnya dari memori dan membawanya kedalam register instruksi.

2. Mengubah PC (Program Counter = Pencacah Program) agar menunjuk ke instruksi selanjutnya.

3. Menentukan jenis instruksi yang baru saja diambil.

4. Jika instruksi tersebut menggunakan sebuah word dalam memori, ditentukan dimana instruksi tersebut berada.

5. Mengambil word tersebut, jika diperlukan, dan membawanya kedalam sebuah register CPU.

6. Menjalankan instruksi.

7. Kembali ke langkah 1 untuk memulai menjalankan instruksi selanjutnya.

Rangkaian langkah – langkah ini sering disebut sebagai siklus baca-decode-execute. Langkah – langkah ini sangat penting bagi pengoperasian semua komputer.

Komputeer – komputer zaman dahulu memiliki instruksi yang sederhana dan dalam jumlah yang kecil. Adanya permintaan untuk komputer – komputer yang lebih unggul telah menghasilkan instruksi – instruksi individu yang lebih unggul pula. Sejak awal, telah diketahui bahwa instruksi – instruksi yang lebih rumit sering membuat program – program dijalankan lebih cepat meskipun masing – masing instruksi mungkin membutuhkan waktu lebih lama untuk dijalankan.

Instruksi – instruksi yang lebih complex masih dapat dijalankan dengan baik karena pelaksanaan – pelaksanaan operasi individu kadang – kadang dapat ditumpangtindihkan atau dapat juga dijalankan secara parallel dengan menggunakan hard ware berbeda. Untuk komputer – komputer mahal berkinerja tinggi, biaya tambahan hardware ini tidak menjadi masalah. Jadi, komputer – komputer mahal dan berkinerja tinggi tampaknya memiliki lebih banyak instruksi daripada komputer – komputer murah. Adanya perkembangan software memerlukan persyaratan – persyaratan kompatibilitas instruksi dalam mengimplementasikan instruksi – instruksi kompleks. Tuntutan ini juga berlaku untuk komputer – komputer murah pada satu sisi, di sisi lain adanya pertimbangan biaya yang cukup tinggi.

Procedure Call

Procedure call merupakan operasi yang paling banyak membutuhkan waktu dalam program – program yang di kompilasi. Dengan demikian, akan sangat berguna apabila memperhatikan cara implementasi operasi – operasi ini secara efisien.

Suatu prosedur adalah sekelompuk instruksi – instruksi yang menjalankan tugas tertentu dan dapat dipanggil dari beberapa tempat dalam program. Istilah soubroutine sering digunakan daripada istilah procedure, terutama ketika menunjuk ke program – program bahasa asembli. Dalam Java, istilah yang digunakan adalah metode. Ketika prosedur telah menyelesaikan tugasnya, ia harus kembali ke pernyataan setelah panggilan tersebut. Karena itu, alamat kembali harus ditranmisikan ke prosedur atau disimpan di tempat lain sehingga alamat tersebut dapat dilokasikan ketika tiba waktunya untuk kembali.

Alamat kembali bisa ditempatkan pada salah satu dari tiga tempat : memori, register, atau stack. Jelas sekali solusi terburuk adalah menempatkan alamat tersebut kedalam lokasi memori tunggal yang bersifat tetap. Dalam skema ini, jika prosedur memanggil prosedur lain, panggilan kedua akan menyebabkan alamat kembali dari prosedur pertama akan hilang.

Suatu perkembangan kecil adalah meminta instruksi panggilan prosedur menyimpan alamat kembali dalam word pertama dari prosedur itu, dengan instruksi yang dapat dijalankan pertama ditempatkan di kata kedua. Kemudian prosedur itu dapat kembali dengan mencabangkan secara langsung ke kata pertama atau jika hardware menempatkan opcode untuk cabang di kata pertama bersama dengan alamat kembali, dengan membuat cabang secara langsung ke kata tersebut. Prosedur itu bisa memanggil prosedur – prosedur lain, karena setiap prosedur memiliki ruang untuk satu alamat kembali. Jika porsedur itu memanggil dirinya sendiri, skema ini tidak akan berjalan, karena alamat kembali yang pertama akan dihancurkan oleh panggilan kedua. Kemampuan sebuah prosedur untuk memanggil dirinya sendiri, yang disebut rekursi, sangat penting baik bagi teoris maupun para pemrogram praktik. Di samping itu, jika prosedur A memanggil prosedur B, dan prosedur B memanggil prosedur C, dan prosedur C memanggil prosedur A (rekursi tidak langsung atau daisy-chain), skema ini juga akan gagal.

Kemajuan yang lebih besar adalah meminta instruksi panggilan prosedur menempatkan alamat kembali didalam sebuah register, jadi tanggungjawab untuk menyimpannya di sebuah tempat yang aman diserahkan kepada prosedur itu. Jika prosedur itu rekursi, ia harus menempatkan alamat kembali disebuah tempat berbeda setiap kali ia dipanggil.

Hal terbaik yang bisa dilakukan instruksi panggilan prosedur atas alamat kembali adalah mendorongnya ke sebuah stack. Ketika prosedur tersebut selesai, ia mengeluarkan alamat kembali tersebut dari stack dan memasukkannya kedalam pencacah program. Jika panggilan prosedur semacam ini ada, rekursi tidak menimbulkan masalah tertentu apapun, alamat kembali itu secara otomatis akan disimpan sedemikian rupa sehingga tidak menghancurkan alamat – alamat kembali sebelumnya.

Pipelining

Telah lama diketahui bahwa membaca instruksi dari memori merupakan hambatan utama dalam hal kecepatan untuk menjalankan suatu instruksi. Untuk mengatasi masalah ini, komputer – komputer generasi IBM Strech (1959) telah memiliki kemampuan untuk mengambil terlebih dahulu instruksi – instruksi dari memori, sehingga instruksi – instruksi tersebut akan selalu siap ketika mereka dibutuhkan. Instruksi – instruksi ini dikumpulkan dalam sekumpulan register yang disebut penyangga prabaca. Dengan cara ini, ketika sebuah instruksi dibutuhkan, instruksi tersebut biasanya dapat segera diambil dari penyangga prabaca daripada menunggu sebuah memori membaca hingga selesai.

Oleh karena itu, system prabaca membagi pelaksanaan instruksi menjadi dua bagian; membaca dan pelaksanaan actual. Konsep pipeline menjelaskan startegi ini lebih jauh. Pelaksanaan instruksi sering dibagi kedalam banyak bagian dan bukan hanya kedalam dua bagian saja, dimana masing – masing bagian ditangani oleh seperangkat hardware khusus, dan keseluruhan bagian tersebut dapat beroperasi secara parallel.

membaca instruksi

Mendekode Instruksi

Membaca operand

Menjalankan instruksi

Menulis kembali ke register


Gambar diatas mengilustrasikan sebuah pipeline dengan lima unit, atau lima stage (5 tahap). Tahap 1 mengambil instruksi dari memori dan menempatkannya dalam sebuah penyangga sampai instruksi itu dibutuhkan. Tahap 2 mendekodekan instruksi tersebut, menentukan jenisnya dan operand apa yang dibutuhkan instruksi tersebut. Tahap 3 melokasi dan mengambil operand – operand, baik itu dari register – register maupun memori. Tahap 4 sebenarnya melaksanakan pekerjaan menjalankan instruksi tersebut, terutama dengan menjalankan instruksi tersebut, terutama dengan menjalankan operand – operand pada jalur data. Terakhir, tahap 5 menulis hasilnya kembali ke register yang sesuai.

Apa CISC Itu ??

Complex Instruction Set Computing disingkat CISC merupakan rangkaian instruksi built-in pada processor yang terdiri dari perintah-perintah yang kompleks. Instruksi-instruksi yang tersedia bertujuan untuk memudahkan para programmer untuk mengembangkan aplikasi untuk plattform CISC.

Setelah ditemukannya CISC, banyak desain yang memberikan hasil yang lebih baik dengan biaya yang lebih rendah, dan juga mengakibatkan pemrograman level tinggi menjadi lebih sederhana, tetapi pada kenyataannya tidaklah selalu demikian. Contohnya, arsitektur kompleks yang didesain dengan kurang baik (yang menggunakan kode-kode mikro untuk mengakses fungsi-fungsi hardware), akan berada pada situasi di mana akan lebih mudah untuk meningkatkan performansi dengan tidak menggunakan instruksi yang kompleks (seperti instruksi pemanggilan procedure), tetapi dengan menggunakan urutan instruksi yang sederhana.

Satu alasan mengenai hal ini adalah karena set-set instruksi level-tinggi, yang sering disandikan (untuk kode-kode yang kompleks), akan menjadi cukup sulit untuk diterjemahkan kembali dan dijalankan secara efektif dengan jumlah transistor yang terbatas. Oleh karena itu arsitektur -arsitektur ini memerlukan penanganan yang lebih terfokus pada desain prosesor. Pada saat itu di mana jumlah transistor cukup terbatas, mengakibatkan semakin sempitnya peluang ditemukannya cara-cara alternatif untuk optimisasi perkembangan prosesor. Oleh karena itulah, pemikiran untuk menggunakan desain RISC muncul pada pertengahan tahun 1970 (Pusat Penelitian Watson IBM 801 - IBMs). Contoh-contoh prosesor CISC adalah System/360, VAX, PDP-11, varian Motorola 68000 , dan CPU AMD dan Intel x86.

Istilah RISC dan CISC saat ini kurang dikenal, setelah melihat perkembangan lebih lanjut dari desain dan implementasi baik CISC dan RISC. Implementasi CISC paralel untuk pertama kalinya, seperti 486 dari Intel, AMD, Cyrix, dan IBM telah mendukung setiap instruksi yang digunakan oleh prosesor-prosesor sebelumnya, meskipun efisiensi tertingginya hanya saat digunakan pada subset x86 yang sederhana (mirip dengan set instruksi RISC, tetapi tanpa batasan penyimpanan/pengambilan data dari RISC). Prosesor-prosesor modern x86 juga telah menyandikan dan membagi lebih banyak lagi instruksi-instruksi kompleks menjadi beberapa "operasi-mikro" internal yang lebih kecil sehingga dapat instruksi-instruksi tersebut dapat dilakukan secara paralel, sehingga mencapai performansi tinggi pada subset instruksi yang lebih besar.

Prosesor CISC

Set instruksi sangatlah berpengaruh terhadap kinerja sebuah prosesor. Berdasarkan set perintah didalamnya, prosesor dapat dibedakan menjadi 2 tipe, yaitu RISC (Reduced Instruction Set Komputer) dan CISC (Complex Instruction Set Komputer). Prosesor bertipe RISC dirancang untuk memiliki sedikit set instruksi, yaitu hanya instruksi-instruksi dasar yang dibutuhkan saja. Dengan sedikit instruksi, maka prosesor dapat bekerja dalam kecepatan yang lebih tinggi. Berbeda dengan konsep RISC, prosesor dengan konsep CISC memiliki set instruksi yang jauh lebih kompleks. Konsep CISC lebih menekankan untuk menyediakan kapasitas yang dibutuhkan dengan cara yang lebih efisien. Banyaknya instruksi yang tersedia memudahkan para programmer mengembangkan aplikasi untuk plattform CISC.

Di lain pihak, banyaknya instruksi dalam CISC dapat mengurangi kecepatannya. Chip Intel x86 merupakan chip dari jenis CISC karena ia menggunakan set instruksi kompleks. Karakteristik CISC dapat dikatakan bertolak-belakang dengan RISC. CISC yang merupakan kebalikan dari RISC, biasanya digunakan pada keluarga processor untuk PC (AMD, Cyrix). Para pesaing Intel seperti Cyrix dan AMD juga telah menggunakan chip RISC tetapi ia telah dilengkapi dengan penukar (converter) CISC. Prosesor yang digunakan dalam komputer pribadi masa kini, Intel Pentium misalnya, umumnya berbasis CISC.

Para perancang mikroprosesor mencari kinerja lebih bagus di dalam keterbatasan teknologi kontemporer. Pada tahun 1970-an misalnya, memori diukur dengan kilobyte dan sangat mahal saat itu. CISC merupakan pendekatan dominan karena menghemat memori.

Pada arsitektur CISC seperti Intel x86, yang diperkenalkan pada tahun 1978, bisa terdapat ratusan instruksi program perintah - perintah sederhana yang menyuruh sistem menambah angka, menyimpan nilai dan menampilkan hasilnya. Bila semua instruksi panjangnya sama, instruksi sederhana akan memboroskan memori. Instruksi sederhana membutuhkan ruang penyimpanan 8 bit, sementara instruksi yang paling kompleks mengkonsumsi sebanyak 120 bit.

Walaupun instruksi dengan panjang bervariasi lebih sulit diproses oleh chip, instruksi CISC yang lebih panjang akan lebih kompleks. Bagaimanapun, untuk memelihara kompatibilitas software, chip x86 seperti Intel Pentium III dan AMD Athlon harus bekerja dengan instruksi CISC yang dirancang pada tahun 1980-an, walaupun keuntungan awalnya yaitu menghemat memori tidaklah penting sekarang.

Kelebihan dan kekurangan dari dua arsitektur tersebut sering menjadi perdebatatan diantara para ahli. Lantas mana yang lebih baik, CISC atau RISC? Di atas kertas, dari segi kecepatan memang RISC lebih unggul, namun dari segi kinerja sesungguhnya belum tentu. Hal ini disebabkan keluarga prosesor RISC hanya menyediakan instruksi untuk fungsi-fungsi dasar, maka untuk fungsi-fungsi lanjutan yang lebih kompleks, akan diambil alih oleh software. Sementara untuk fungsi yang sama, prosesor berbasis CISC dapat memanfaatkan instruksinya sendiri. Padahal instruksi berbasis prosesor, lebih cepat dijalankan ketimbang instruksi berbasis software. Alhasil diperoleh akumulasi kecepatan untuk prosesor CISC. Ada juga teknologi yang menggabungkan kedua arsitektur tersebut, contohnya : Prosesor Intel dan AMD yang dijual secara komersil sekarang adalah pengembangan dari prosesor x86 yang menggunakan basis prosesor CISC. Lucunya, instruksi set yang didukung oleh kedua prosesor tersebut menggunakan instruksi RISC yang lebih efisien dalam menangani data.

Tujuan utama dari arsitektur CISC adalah melaksanakan suatu perintah cukup dengan beberapa baris bahasa mesin sedikit mungkin. Hal ini bisa tercapai dengan cara membuat perangkat keras prosesor mampu memahami dan menjalankan beberapa rangkaian operasi. Untuk tujuan contoh kita kali ini, sebuah prosesor CISC sudah dilengkapi dengan sebuah instruksi khusus, yang kita beri nama MULT. Saat dijalankan, instruksi akan membaca dua nilai dan menyimpannya ke 2 register yag berbeda, melakukan perkalian operan di unit eksekusi dan kemudian mengambalikan lagi hasilnya ke register yang benar. Jadi instruksi-nya cukup satu saja. MULT dalam hal ini lebih dikenal sebagai “complex instruction”, atau instruksi yang kompleks. Bekerja secara langsung melalui memori komputer dan tidak memerlukan instruksi lain seperti fungsi baca maupun menyimpan. Satu kelebihan dari sistem ini adalah kompailer hanya menerjemahkan instruksi-instruksi bahasa tingkat-tinggi ke dalam sebuah bahasa mesin. Karena panjang kode instruksi relatif pendek, hanya sedikit saja dari RAM yang digunakan untuk menyimpan instruksi-instruksi tersebut.

Arsitektur berbasis CISC juga memungkinkan para perancang prosesor memperbanyak set instruksi tambahan untuk keperluan tertentu. Disamping set instruksi standar yang sudah ada. Misalnya set instruksi MMX (Multimedia Extension) yang ditambahkan pada prosesor buatan Intel, dan 3Dnow pada prosesor keluaran AMD. Karena itulah maka keluarga prosesor CISC lebih banyak digunakan dalam komputer pribadi karena aplikasinya lebih luas. Sementara keluarga prosesor RISC hanya digunakan pada workstation yang biasanya memiliki lingkup aplikasi yang lebih sempit.

RISC VS CISC

Selama akhir 1970-an, karena keberadaan interprenter, telah dilakukan eksperimen – eksperimen dengan instruksi – instruksi yang sangat kompleks. Para perancang mencoba untuk menutupi “perbedaan semantik” antara mesin apa yang dapat menjalankan instruksi – instruksi dan bahasa – bahasa pemrograman tingkat tinggi apa yang dibutuhkan. Hampir tidak seorangpun berpikir tentang upaya untuk mendesain mesin – mesin yang lebih sederhana, sama seperti sekarang tidak banyak penelitian yang dilakukan untuk mendesain system – system pengoperasian, jaringan – jaringan, dan prosesor – prosesor word, dan lain – lain yang kurang berkinerja tinggi.

Satu kelompok yang menentang trend tersebut dan mencoba memadukan sebagian dari ide – ide dari Seymor Cray dalam sebuah komputer berkinerja tinggi, dipimpin oleh John Cocke di IBM. Upaya ini menghantar ke upaya pengenbangan sebuah mini komputer eksperimental, yang dinamakan 801. Meskipun IBM tidak pernah memasarkan mesin ini, dan hasil – hasilnya tidak dipublikasikan hingga beberapa tahun kemudian, komentar – komentar bermunculan dan orang lain mulai meneliti arsitektur – arsitektur yang sama.

Pada tahun 1980, suatu kelompok di Barkeley yang dipimpin oleh David Patterson da Carlo Sequin mulai merancang keeping VLSI CPU yang tidak menggunakan interpretasi. Mereka menggunakan istilah RISC untuk konsep ini dan menamakan chip CPU mereka RISC I yang langsung disusul oleh RISC II. Setahun kemudian, pada 1981, di Standford John Hennesy mendesain dan membuat sebuah chip yang agak berbeda yang dinamakannya MIPS.

Prosesor – prosesor baru ini sangat berbeda dibanding prosesor – prosesor komersial dewasa ini. Karena CPU – CPU ini tidak harus disesuaikan kembali dengan produk – produk yang telah ada, para perancang mereka bebas untuk memilih perangkat – perangkat instruksi baru yang akan memaksimalkan kinerja system seluruhnya. Pada awalnya perhatian utama diberikan kepada seberapa cepat suatu instruksi menyelesaikan proses implementasi. Tapi kemudian disadari bahwa mendesain instruksi – instruksi dengan kinerja yang baik harus didasarkan pada seberapa cepat suatu instruksi dapat di mulai. Berapa lama waktu yang diberikan instruksi kurang menjadi masalah dibanding berapa banyak instruksi yang dapat dimulai per detik.

Pada saat pertama kali prosesor – prosesor sederhana ini pertama kali dirancang, karakteristik – karakteristik yang menarik perhatian banyak banyak kalangan adalah jumlah instruksi yang tersedia relative sedikit, kira – kira sekitar 50. Jumlah ini jauh lebih kecil disbanding jumlah 200 hingga 300 pada komputer – komputer tertentu seperti DEC VAX dan mainframe – mainframe IBM yang berukuran besar. Kepanjangan dari RISC adalah Reduce Instruction Set Komputer, yang dilawan dengan CISC, yang merupakan kepanjuangan dari Complex Instruction Set Computer. Kini, segelintir orang berpikir bahwa ukuran perangkat instruksi merupakan suatu isu utama, meskipun namanya tidak berubah.

Singkatnya, perang pendapatpun timbul, dengan para pendukung RISC menyerang tatanan yang telah mapan (VAX, Intel, dan mainframe – mainframe IBM yang berukuran besar). Mereka mengklaim bahwa cara paling tepat untuk mendesain komputer adalah menyediakan sejumlah instruksi kecil sederhana yang beroperasi dalam satu siklus jalur data yakni, mengambil dua register, menggabungkan kedua register tersebut dan menyimpan kembali hasilnya dalam sebuah register. Pendapat para pendukung RISC ini adalah bahwa meskipun sebuah mesin RISC membutuhkan empat atau lima instruksi untuk menjalankan apa yang dilakukan mesin CISC hanya dengan satu instruksi saja. Jika instruksi – instruksi RISC 10 kali lebih cepat (karena instruksi – insterusi tersebut tidak diimplementasikan), maka RISC jauh lebih unggul. Penting juga untuk diperhatikan bahwa dewasa ini kecepatan memori utama telah melampaui kecepatan control store yang dikhususkan hanya untuk membaca.

Seorang mungkin beranggapan bahwa dengan mempertimbangkan keunggulan – keunggulan kinerja dari teknologi RISC, mesin – mesin RISC (seperti DEC Alpah) akan mengungguli mesin – mesin CISC (seperti Intel Pentium) di pasaran. Hal ini belum pernah terjadi. Mengapa tidak?

Pertama, terda[pat isu mengenai kompatibilitas mundur dan dana software miliaran dollar yang telah diinvestasikan perusahaan – perusahaan untuk jalur porduksi Intel. Kedua, yang mengejutkan, Intel telah mampu memanfaatkan ide – ide yang sama, bahkan dalam suatu arsitektur CISC. Dimulai dengan 486, CPU – CPU Intel berisi sebuah inti RISC yang menjalankan instruksi – instruksi paling sederhana (dan sangat umum) dalam satu siklus jalur data saja, sekaligus mengimplementasikan instruksi – instruksi yang lebih kompleks dengan cara CISC biasa. Hasil nyatanya adalah bahwa instruksi – instruksi bisa menjadi lebih cepat dan instruksi – instruksi yang kurang biasa menjadi lebih lambat. Meskipun pendekatan tiruan ini tidak secepat seperti sebuah desain RISC murni, pendekatan ini menghasilkan kinerja keseluruhan yang kompetitif asalkan software yang lama tetap dapat diaplikasikan dan tidak berubah

BAB IV

PENUTUP

Kesimpulan

Set instruksi adalah kode-kode dari instruksi-instruksi (instruction mesin) yang dapat diterjemahkan dalam bahasa mesin (machine language). Set instruksi tersebut yang nantinya menjadi bahan dasar dari proses CPU. Setiap CPU memiliki berbeda-beda set insruksinya tergantung dari bagaimana arsitektur CPU dibuat.

Ada dua model set instruksi yang menjadi dasar dari mesin (CPU) saat ini, yaitu: RISC (reduce Instruction Set Komputer) dan CISC (Complex Instrution Set Komputer). CISC merupakan kepanjangan dari Complex Instruction Set Computing atau Complex Instruction Set Komputer (CISC; "Kumpulan instruksi komputasi kompleks") adalah sebuah arsitektur dari set instruksi dimana setiap instruksi akan menjalankan beberapa operasi tingkat rendah, seperti pengambilan dari memory, operasi aritmetika, dan penyimpanan ke dalam memory, semuanya sekaligus hanya di dalam sebuah instruksi.

Tujuan utama dari arsitektur CISC adalah melaksanakan suatu perintah cukup dengan beberapa baris bahasa mesin sedikit mungkin. Untuk fungsi-fungsi lanjutan yang lebih kompleks, CISC dapat memanfaatkan instruksinya sendiri. CISC yang menggunakan instruksi berbasis prosesor, lebih cepat dijalankan ketimbang instruksi berbasis software (RISC).

Prosesor CISC sudah dilengkapi dengan sebuah instruksi khusus, yang kita beri nama MULT. Satu kelebihan dari sistem ini adalah kompailer hanya menerjemahkan instruksi-instruksi bahasa tingkat-tinggi ke dalam sebuah bahasa mesin. Karena panjang kode instruksi relatif pendek, hanya sedikit saja dari RAM yang digunakan untuk menyimpan instruksi-instruksi tersebut.

Arsitektur berbasis CISC juga memungkinkan para perancang prosesor memperbanyak set instruksi tambahan untuk keperluan tertentu. Disamping set instruksi standar yang sudah ada.

DAFTAR PUSTAKA

Tanembaum, Andrew S. Organisasi Komputer Terstruktur. Jilid 1. Salemba Teknika. 2001.

Tanembaum, Andrew S. Organisasi Komputer Terstruktur. Jilid 2. Salemba Teknika. 2002.

http://agfi.staff.ugm.ac.id/blog/index.php

http://www.suaramerdeka.com/harian/0409/27

http://margono.staff.uns.ac.id/2008/10/17

http://irfrans1987.wordpress.com/2008/12/05/risc-cisc-pipelining

http://intan.savitri.web.id/

http://www.anwarfuadi.co.cc/?p=40

http://buku.total.or.id/info_buku.php?id=1202&judul=Kamus%20Komputer%20dan%20Teknologi%20Informasi'

http://www.anwarfuadi.co.cc/