Friday, October 31, 2008

Rapidshare, Mulai Membatasi Upload & Download






Berita terbaru dari situs Rapidshare.com, situs file sharing ternama. Mereka yang mengupload file tanpa nama hanya diberikan ijin sampai 10x. Belum diketahui apa alasan perubahan aturan dari Rapidshare.com dengan kebijaksanaan hukum Jerman yang mengharuskan anggota Rapidshare akan dicatat atas log dan nomor IP.

Rapidshare juga kembali ditekan untuk tidak menyebarkan kontain digital yang terkait hak cipta. Pengadilan Jerman meminta Rapidshare mengunakan MD5 atau pencatat file dan melakukan penyaringan untuk memblok data yang dinilai illegal.

Pengadilan Jerman juga meminta layanan Rapidshare hanya untuk mereka yang telah menjadi member. Tujuannya agar dapat mencatat IP para pendownload dari situs Rapidshare.

Situs file sharing yang paling digemari netter di dunia ini harus menghadapi 3 tuntutan hukum. Bila terus melanggar dan tidak mengikuti ketentuan hukum maka Rapidhsare akan berhadapan dengan denda € 250,000.

Google SearchWiki Hampir Rampung

Wajah industri pencarian mungkin akan berubah drastis dalam waktu dekat ini. Minggu lalu Microsoft telah mengumumkan mesin pencari U Rank, sebuah eksperimen menambahkan elemen jejaring sosial ke dalam sebuah mesin pencari. Google juga tengah menyiapkan sebuah mesin pencari bernama SearchWiki yang memungkinkan pengguna untuk meningkatkan hasil pencariannya dengan menandakan relevan atau tidaknya hasil pencarian atau bahkan menambahkan situs baru kepada hasil pencarian, mirip seperti Wikia Search.

Rumor tentang Google yang tengah menguji coba fitur pencarian dengan konsep "Digg" sudah beredar sejak beberapa bulan lalu. Garett Rogers dari ZDNet berpendapat bahwa SearchWiki akan dirilis sebentar lagi, mengatakan bahwa Google telah meminta bantuan dari para sukarelawan untuk membantu menerjemahkan beberapa kalimat yang berhubungan dengan SearchWiki:
  • "SearchWiki" - The name of the search feature that allows you to edit results.
  • "Make a public comment" - Text for the comment save button
  • "Could not retrieve comments for this page" - Error message shown when other users’ comments could not be fetched for a particular webpage.
  • "Customize your search results with your rankings, deletions, and notes — plus, see how other people using Google have tailored their searches" - The first part of the notice shown when a user first edits a result.
  • "Please remember that your SearchWiki notes will be visible to other users, identified with your Google Account nickname" - The second part of the notice shown when a user first edits a result.


Dari kalimat-kalimat di atas kita dapat menyimpulkan bahwa selain memungkinkan pengguna untuk mengkustomisasi hasil pencariannya, SearchWiki memperbolehkan pengguna untuk meninggalkan komentar pada pencarian maupun membaca komentar yang ditinggalkan pengguna lain. Yang masih belum jelas adalah apakah Google akan menggunakan kontribusi pengguna untuk meningkatkan kualitas pencarian secara umum, ataukah hanya akan berlaku untuk pengguna sendiri dan apakah SearchWiki diposisikan sebagai produk yang suatu hari akan digunakan sebagai layanan pencarian utama Google.

Seperti biasa, Google selalu menguji fitur-fiturnya dengan merilis fitur baru ke sebagian kecil pengguna. Untuk saat ini SearchWiki masih belum dibuka untuk semua pengguna, walaupun Anda dapat melihat sedikit persiapan yang sudah dilakukan Google dengan menambahkan "&swm=2" ke dalam akhir URL pencarian Google Anda.

Screenshot SearchWiki

Kiyai Pedofilia

Pernikahan syeh puji dengan alfa, bocah 12 tahun adalah kejahatan terhadap kemanusiaan. Mentang-mentang syeh fuckin puji itu orang kaya monyet terus bisa seenaknya dengan menikahi seoarang bocah kecil. Memang kekayaan duit saat ini hampir bisa membeli semuanya, bahkan untuk memuaskan hobi pedofilianya ia bisa membeli seorang gadis dibawah umur untuk disetubuhi, dinikahi hanya formalitas belaka yang dengannya orang merasa dihormati. Tapi bisa dilihat apakah si ulfa itu terlihat senang? air mukanya sama sekali tidak menunjukkan wajah yang gembira bahkan malah sedih meskipun sudah diberi hadiah jabatan sebagai GM perusahaan fuck puji.

Unsur hutang kedua orang tua ulfa bisa jadi yang menyebabkan mereka rela menjual anaknya kepada bajingan itu. Apa mereka tidak berpikir soal masa depan si anak. Bayangkan saja, baru 12 tahun sudah menikah (baca :sudah diperkosa), apa yang dirasakan bocah itu, bagaimana perasaanya. Mungkin si orang tua mereka mengira mereka sekeluarga akan hidup nyaman, mewah dengan menjadi bagian dari bajingan puji itu. Tapi itu salah, dunia ini bukan hanya duit, terlebih bagi bocah 12 tahun yang ingin mengejar cita2 nya, bermain dengan temen2nya, saya rasa itu lebih berharga daripada duit.

Fuckin puji mungkin datang sebagai penolong. Orang kaya, dermawan, kiayi, tapi sebenarnya dia adalah pedofilia yang sakit. Tidak berpikir akibat dari perbuatannya. Meski pada akhirnya ia hendak membatalkan pernikahannya. Tapi siapa sangka bahwa ulfa sudah digauli sama bajingan itu. Bagaimana nasib ulfa yang sudah menjadi janda ketika umur 12 tahun?Ini gila, pembatalan pernikahan tidak menjadi solusi barangkali. Kasus ini tidak bisa diselesaikan begitu saja, karena ini masalah masa depan yang sudah ternoda.

Mungkin fuckin puji lebih baik kawin dengan kuda saja, biar puas hobi gemar menikahnya. Dengan ini seluruh staff dan blogger koran sore menyatakan bahwa fuckin puji adalah bajingan yang sakit, seorang pedofilia yang perlu dibantai.

Memang dia seoarng yang kaya, banyak ngasih sumbangan tapi itu kan cuma sebagai kedok saja. Toh dengan itu semua dia menjadi sombong, riya dll. Apa itu masih berlaku? Ingat duitmu itu bukan milikmu, tapi milik Allah.

Wednesday, October 29, 2008

Free Software Download

1. FreewareFiles.com
http://www.freewarefiles.com
Kamu bisa mendownload software-software gratis seperti game, browser web, screensaver, driver, desktop, spyware, dll.
2. Nonags
http://www.nonags.com
Program freeware lain bebas virus, spyware dan trojan.
3. Freeware Home
http://www.freewarehome.com
Website ini menawarkan software-software gratis dan layanan internet.
4. Free Downloads Center
http://www.freedownloadscenter.com
Website ini menawarkan download software gratis dan shareware, termasuk game, video, program antivirus,wallpaper,perlengkapan bisnis dll.
5. PortableApps.com
http://portableapps.com
Website ini menyediakan software portable gratis untuk USB drive, termasuk Firefox, OpenOffice, Media Player, program antivirus, dll.
6. SofoTex Downloads
http://www.sofotex.com
Menyediakan kumpulan download shareware dan freeware dengan review dan deskripsi pada kategori-kategori seperti PC utilities, games, screen savers, dll.
7. Completely Free Software
http://www.completelyfreesoftware.com
Freeware Windows dan DOS gratis yang telah di test, di review dan dinilai.
8. MyZips.com
http://www.myzips.com
Kumpulan download freeware dan shareware yang bisa kamu cari lewat box pencarinya.
9. Programfiles.com
http://www.programfiles.com
Kumpulan shareware, freeware, demo-demo, game-game dan banyak lagi.
10. FreewareWeb.com
http://www.freewareweb.com
Menawarkan kumpulan download freeware, dan shareware.
11. GameHippo
http://www.gamehippo.com
Kumpulan game PC gratis yang dikategorisasikan untuk windows, tanpa shareware atau demo, semua total gratis.
12. TinyApps.org
http://www.tinapps.org
Kumpulan software gratis yang sangat kecil untuk windows/dos sehingga muat
CD atau bahkan disket 1,44 MB
13. Freeware Guide
http://www.freeware-guide.com
Menyediakan berbagai macam program freeware untuk di download.
14. TopDownloads
http://www.topdownloads.net
Menyediakan berbagai macam game, screen savers, wallpapers, dan lain-lain untuk didownload gratis.
15. Open Universe
http://www.openuniverse.org
Freeware simulator sistem tata surya gratis, 3D. Dengan display planet, bulan, bintang, galaksi, asteroid dan pesawat ruang angkasa.
16. Files32.com
http://www.files32.com
Menawarkan download sharewaare dan freeware dengan fitur pilihan editor, rating pengguna, download terbanyak dan apa yang terbaru.
17. Pricelessware
http://www.pricelessware.org
Kamu bisa mendownload freeware terbaik windows yang telah dinilai dan diuji.
18. ACME Laboratories
http://www.acme.com
Koleksi utiliti dan tools untuk Unix dan Java, tutorial dan sumber-sumbernya, dll.
19. ABF-SOFT.com
http://www.abf-soft.com
Memiliki berbagai macam software program shareware dan freeware.
20. Only Freeware
http://freeware.intrastar.net/
Tidak ada yang lain kecuali freeware gratis disini.
21. SGI
http://www.sgi.com/fun/freeware/games.html
List game-game freeware dengan platform SGI
22. AnalogX
http://www.analogx.com/contents/download.htm
Lebih dari 5000 download gratis untuk windows dengan kategori Audio, Network, Programming dan System
23. DriversHeadquarters
http://www.drivershq.com
Menyediakan daftar lengkap driver yang bisa didownload gratis.
24. Mihov Freeware
http://www.mihov.com/eng/
Isi website ini merupakan campuran program dan grafik/gambar gratis untuk didownload.
26. Driverfiles
http://www.driverfiles.net
Download gratis driver untuk semua device populer atau jarang ada. Juga file DLL
27. Top Quality Freeware
http://www.topqualityfreeware.com
Lebih dari 2 kategori freeware yang bisa didownload termasuk game PC, icon, desktop, themes, grafik/gambar dan utiliti untuk internet.
28. The Free Site
http://www.thefreesite.com/free_software/
Beberapa software gratis yang bisa didownload.
29. Freeware Network
http://www.fwnetwork.com
Database ekstensif utiliti internet, business tools, player video dan audio, grafik desktop, dll.
30. Free Software 4 All
http://www.freesoftware4all.co.uk
Daftar kumpulan download freeware berkualitas.
31. Freeware World Team
http://www.all4you.dk/
Database internasional program freeware, untuk OS windows, dari seluruh dunia.
32. OnlyTheBestFreeware.com
http://www.onlythebestfreeware.com
Freeware desktop, internet, MP3, dan utiliti sistem untuk windows.
33. Free2U.org
http://www.free2u.org
Direktori komprehensif lebih dari 4000 program software.
34. Freeware Download Directory
http://freeware.seekfiles.com
Direktori ini mempunyai program-program gratis MP3, audio, multimedia, grafik, game, manajemen informasi, home dan pendidikan.
35. Top Freeware
http://www.topfreeware.net/
Direktori kumpulan freeware berkualitas
36. A1B2C3 Free computer Software
http://www.a1b2c3.com/free/
Kumpulan freeware ukuran sedang yang dikumpulkan berdasarkan kategori.
37. FreeWR
http://www.freewr.com
Menawarkan pilihan-pilihan software yang berguna dengan kategorisasi yang simpel
38. Kids Freeware
http://kidsfreeware.com/
Freeware khusus anak-anak. Bagus buat belajar dan permainan anak-anak yang sederhana dan menarik.
39. FreewareFind
http://www.freewarefind.com
Situs download freeware yang juga menyediakan newsletter bulanan dan mingguan tentang freeware.
40. Freeware Download Box
http://www.freewarebox.com
Menyediakan banyak kategori program dan link download.
41. Openwares
http://www.openwares.org
Kumpulan software open source yang bisa di download
42. Driver World
http://galttech.com.drivers.shtml
Kumpulan bermacam-macam device driver yang bisa di download.
43. Decent Downloads
http://decentdownloads.x-istence.com
Kumpulan beraneka freeware yang berguna.
44. Boostware
http://www.boostware.com
Kumpulan utiliti freeware untuk mempercepat operasi sistem untuk Linux, MAC, dan windows, dan review pendek untuk setiap produknya.
45. FreewarePro
http://www.freewarepro.com
Kumpulan koleksi freeware yang bisa di download untuk windows
46. DirFile
http://www.dirfile.com
Pusat download software dan freeware, juga ada file PAD.
47. 2-Software
http://www.2-software.net/
Kumpulan Software gratis dan open source.
48. Freeware Beast
http://www.freewarebeast.com
Software dan Game gratis dengan screenshot dan review
49. WebGrid
http://www.webgrid.co.uk
Kumpulan freeware yang sangat banyak
50. Freeware Directory
http://www.freewaredirectory.net
Kumpulan freeware yang dikategorisasikan ke dalam aplikasi, utiliti sistem dan file, permainan, prpgram-program komputer untuk PC, handheld, dan PDA.
51. Scan Complete
http://www.scancomplete.com
Antivirus gratis, spyware dan adware.
52. List of free statistical software
http://statistiksoftware.com/free_software.html
Software statistika gratis untuk semua platform dan dicantumkan juga deskripsi masing-masingnya.
53. Downloads from A to Z
http://www.azdownloads.info
Kumpulan bermacam-macam software termasuk freeware disusun secara alphabetis.
54. Radified Freeware
http://radified.com/articles/freeware.htm
Kumpulan freeware berguna yang sangat simpel.
55. The Free Web Network
http://www.thefreeweb.net/
Kamu bisa mencari software gratis di websitenya untuk semua platform
56. Absolute Freebies
http://www.absolutefreebies.com/best_freeware.html
Website ini berisi tentang berbagai rekomendasi freeware untuk windows gratis dan bisa di download.
57. DigitalArena
http://www.digitalarena.co.uk
Kumpulan software untuk animasi, ilustrasi, desain web, membuat game dan multimedia yang gratis dan shareware.
58. Free-Software-Downloads.org
http://www.free-software-downloads.org/
Kumpulan software gratis dengan hak cipta, dan dikategorisasikan berdasarkan review, kebutuhan OS dan ukuran download.
59. FreewareStop
http://www.freewarestop.org
Freeware internet, ftp, grafis,MP3, ZIP, enkripsi, utiliti sistem, font dan screensaver.
60. GoldFiles
http://www.goldfiles.com
Perpustakaan digital sumber-sumber download dan video game gratis.
61. Best Free Software
http://www.best-free-software.com
Daftar software-software alternatif yang gratis.
62. Afterzed
http://afterzed.com/freeware
Pilihan yang banyak meliputi utiliti, program aplikasi, dan file-file lain yang berhubungan dengan windows.
63. Compufiles
http://www.compufiles.com
Review dan link download ke berbagai program windows.
64. Program Central
http://programcentral.net
Download program freeware dan shareware untuk sistem windows dan linix. Termasuk daftar donwload yang populer lain.
65. Acme widgets and Gadgets
http://www.acmefreeware.com
Koleksi beberapa software windows gratis berdasarkan kategori.
66. My Free Programs
http://www.myfreeprograms.com
Koleksi program gratis yang berkualitas tinggi.
67. Real Free Software
http://www.realfreesoftware.com
Berbagai macam freeware yang dikategorisasikan.
68. Linx2go.topcities.com
http://linx2go.topcities.com
Kumpulan situs-situs software terbaik, termasuk freeware, shareware, desain web, webmaster tools, grafis, template. freebies dan banyak lagi.
69. Good Free Software
http://www.goodfreesoftware.netfirms.com
Kumpulan freeware-freeware baik yang bebas spyware.
70. Datasyndicate
http://www.datasyndicate.com
Kumpulan software-software yang bermacam-macam, termasuk freeware.
71. Freewaresoft.net
http://freewaresoft.net
Blog dengan update-update software baru yang bermacam-macam
72. Zakirium
http://www.zakirium.com
Kumpulan freeware berkualitas.
73. Bitszone.com
http://www.bitszone.com
Kumpulan file download, termasuk freeware yang dikategorisasikan untuk rumah tangga dan bisnis.
74. Freesoft.cc
http://www.freesoft.cc
Software untuk windows, linux dan macintosh
75. Perfect Freeware
http://www.perfectfreeware.com
Koleksi terkategorisasi dan mudah dicari lebih dari 2500 program freeware.
76. GNU Project and Free Software Foundation
http://www.gnu.org
Website ini adalah rumah bagi OS GNU, lisensi publik GNU, dan yayasan software bebas. Freeware-freeware open source bisa didapatkan disini.
77. Driver Guide
http://www.driverguide.com
Database driver-driver berbagai macam device
78. Free Download A Day
http://www.freedownloadaday.com
Blog yang menyediakan aplikasi freeware tiap hari.
79. TSM Soft
http://www.tsm-soft.com
Resource-resource dan screenshot deskripsi dan download untuk windows.
80. John Hood’s Best of Free Software
http://www.jhoodsoft.org
Direktori freeware terbaik termasuk freeware alternatif Microsoft berkualitas.
81. Freeware Library
http://freeware.it-mate.co.uk
Kumpulan freeware dengan screenshot.
82. Micropistoff
http://micropistoff.tomc.org.uk
Alternatif-alternatif gratis untuk produk-produk komersial
83. MusthaveCD.com
http://www.musthavecd.com
Koleksi utiliti gratis penting untuk mengoptimalkan PC
84. Replacements.co.za
http://replacements.co.za
Kumpulan software open source gratis untuk menggantikan software-software yang telah awam.
85. ChipCom.net
http://www.chipcom.net/freeware.php
Daftar tools software untuk web dan utiliti berguna untuk windows dan linux.
86. The DawgHouse Project
http://www.madawg.net
Informasi-informasi dan download aplikasi freeware populer yang beraneka.
87. n01getsout.com
http://www.n01getsout.com
Kumpulan freeware untuk windows dan linux yang bisa menggantikan produk-produk komersial.
88. WebPagesOnly
http://www.freewebtown.com/webpagesonly
Software windows dan pocket PC
89. Perfect Freeware
http://www.perfectfreeware.com
Daftar yang terkategorisasi lebih dari 2500 program freeware.
90. Fix Disk Utilities and Windows Information Database
http://www.fixdisk.co.uk
Utiliti diagnostik dan program fix disk.
91. Forsaken Web
http://www.forsakenweb.com
Screenaver, game dan software-software lainnya.
92. Skan Software
http://www.skan.ru/en/
Kumpulan update program-program populer freeware dan shareware.
93. Soft 2006
http://www.soft2006.com
Kumpulan software open source dan freeware gratis.
94. Simon Lenton Freeware
http://www.simonlenton.i8.com
Direktori program-program freeware yang berguna.
95. SourceForge
http://www.sourceforge.net
Ribuan proyek open source gratis untuk berbagai macam jenis.
96. Freeware Directory
http://freewaredirectory.net
Di website ini lengkap sekali freeware yang terdaftar dan bisa didownload langsung.

Sumber : http://sumber-sumber.blogspot.com & http://www.gratis2.blogspot.com

Dasar Pengukuran Kwalitas Software

DASAR PENGUKURAN KWALITAS SOFTWARE

Dalam proses penggunaan suatu software seringkali kita mengalami yang namanya hang, error, dll .Itu mungkin keluhan yang sering kita dengar ketika kita menggunakan sebuah software atau perangkat lunak di komputer kita. Baik tidaknya sebuah perangkat lunak, biasanya menunjukkan bagaimana kualitas perangkat lunak tersebut, Media pembelajaran yang baik adalah yang memenuhi parameter-parameter berdasarkan disiplin ilmu rekayasa perangkat lunak, seperti pada contoh diatas (efisiensi, reliabilitas, usabilitas, dsb).

1. Efektif dan Efisien dalam Pengembangan Maupun Penggunaan Media Pembelajaran

Seringkali sebuah program yang sepertinya berukuran kecil dan memiliki fitur yang tidak terlalu rumit, tetapi berjalan sangat lamban. Kalau seandainya saja setiap komputer memiliki kecepatan yang tidak terbatas dan memory (RAM) yang bebas tidak terbatas, maka tentu tidak akan menjadi masalah. Tetapi setiap komputer memiliki kecepatan terbatas, memory (RAM) terbatas dan kapasitas penyimpanan tetap (hardisk) terbatas. Oleh karena itu, penting untuk mengatur pemakaian resource (CPU, RAM dan hardisk) tersebut secara efektif dan efisien.

Kelambatan, rendahnya respon dan throughput biasanya terjadi karena pembuat tidak memikirkan efesiensi sumber daya yang terserap oleh program. Misalnya untuk pemakaian gambar-gambar yang ditampilkan dalam ukuran kecil, pembuat tetap menggunakan gambar asli yang beresolusi tinggi, tidak melakukan usaha-usaha kompresi dan pemotongan yang tepat. Sebaliknya, ada pula gambar yang seharusnya memakai resolusi tinggi, tetapi digunakan gambar yang beresolusi rendah.

Hal lain yang memungkinkan tidak efisiennya pemakaian resource adalah penggunaan algoritma yang kurang tepat Misalnya untuk pekerjaan pengurutan (sorting) sebuah kumpulan data, pembuat tidak memanfaatkan algoritma-algoritma sorting yang terkenal efektif seperti: insertion-sort, merge-sort dan lain-lain. Misalnya ada komputer A dengan kecepatan 100 kali lebih cepat dari komputer B, yang menjalankan algoritma yang berbeda untuk masalah yang sama. Kalau kita dapat memilih algoritma yang lebih tepat dan efisien di komputer B, maka program dapat saja berjalan lebih cepat 10 kali lipat di komputer B.

Salah satu kasus yang sering muncul adalah, karena terlalu bersemangat, pembuat media pembelajaran, menampilkan semua pustaka gambar yang ia miliki dan efek-efek animasi dan simulasi yang ia kuasai ke dalam media pembelajaran, meskipun mereka tidak terlalu penting dan efektif dalam membantu proses pembelajaran.

2. Reliabilitas (Kehandalan)

Program dikatakan reliable atau handal bila program dapat berjalan dengan baik, tidak mudah hang, crash atau berhenti pada saat pengoperasian. Kehandalan program juga dinilai dari seberapa jauh dapat tetap berjalan meskipun terjadi kesalahan pada pengoperasian (error tolerance). Pengguna memerlukan feedback sesuai dengan kondisi system (termasuk berapa lama pengguna harus menunggu, dll).

3. Maintainabilitas (Dapat Dipelihara/Dikelola dengan Mudah)

“Good software is maintainable” (Reinhard Miller)
“It looks obvious until you try it” (IEEE Software)
“Programming is like poetry. It conveys a message, not only to the computer, but to those who modife and use your program” (Jonathan Bartlett)

Struktur program disusun dengan algoritma, alur penyajian, pengorganisasian, dan keterkaitan antar bagian sehingga mudah dalam modifikasi. Kode atau script tetap sederhana dan mudah dipahami meskipun menjalankan fungsi yang kompleks. Kode bersifat modular dengan dokumentasi pada tiap bagian yang memudahkan dalam modifikasi dan perubahan (maintenance). Sehingga siapa saja yang ingin merubah/memperbaiki/menambah fitur program dapat dengan mudah melakukannya. Selain penambahan fitur, hal yang sering dilakukan oleh programer adalah menemukan bug dalam programnya. Justru ada pernyataan bahwa membersihkan bug adalah 60% dari pekerjaan seorang programer.

Semakin sedikit code program yang Anda tuliskan, semakin kecil keperluan agar code atau program maintainable. Semakin banyak code program yang Anda tuliskan, semakin perlu Anda memikirkan maintainabilitas program Anda.

4. Usabilitas (Mudah Digunakan dan Sederhana dalam Pengoperasiannya)

Layaknya seoseorang yang bingung ketika baru pertama kali datang ke Jakarta dan ingin mencari alamat Jl. Jend. Gatot Subroto 10. Orang tersebut pasti merasa bingung untuk mencari alamat tersebut. Dalam kondisi bingung, orang tersebut tentu akan memanfaatkan marka jalan sebagai penunjuk arah. Dapat dibayangkan apabila di jalan raya tidak disediakan rambu-rambu lalu lintas dan marka jalan, tentu orang akan tersesat dan tidak tahu ke mana arah yang akan dituju. Begitu pula dengan media pembelajaran, ketersediaan tooltip, help, icon, logo, tombol, dsb akan sangat membantu pengguna yang baru pertama kali menggunakan media tersebut. Desain dan tata letak navigasi sangat membantu pengguna untuk memanfaatkan media tersebut. Apabila terjadi kesalahan pada program (error) maka ditampilkan pesan dengan bahasa yang mudah dipahami oleh pengguna.

Konsistensi bentuk dan letak navigasi juga mempengaruhi kenyamanan pengguna ketika menghayati informasi yang tersirat dalam media pembelajaran. Dengan hanya melihat tampilan awal, pengguna dapat mengetahui kondisi program dan dapat menentukan aksi-aksi alternatif. Semua pilihan dan bahan tampak sehingga mudah dicari bilamana diperlukan tanpa mengganggu pengguna dengan informasi yang berlebihan. Pengguna juga dapat dengan sangat mudah menebak, memperkirakan bahkan menentukan relasi antara aksi dan hasil, antara kontrol-kontrol dan efek yang ditimbulkannya, antara status software dan apa yang tampak.

5. Kompatibilitas (Media Pembelajaran Dapat Diinstalasi/Dijalankan di Berbagai Hardware dan Software yang Ada)

Perkembangan software dan hardware sudah cukup banyak bervariasi, semakin tinggi spesifikasinya, semakin tinggi kecepatan prosesnya. Bila dulu kecepatan akses RAM paling tinggi 8 MB, saat ini kecepatannya berkali lipat hingga 1 GB, CD ROM yang dulu kecepatan bacanya paling tinggi 4X saat ini CD ROM sudah umum dan memiliki banyak fungsi dengan kapasitas kecepatan yang tinggi, seperti CD-RW dengan speed hingga 52X bahkan ada yang mampu membaca DVD, demikian juga dengan Software Aplikasi, bila dulu aplikasinya sederhana dan cukup panjang proses menjalankan berbagai aplikasi didalamnya, saat ini aplikasi sudah sangat indah dengan tampilan grafis yang baik dan animatif, dengan navigasi yang mudah dan cepat dalam proses menjalankan aplikasinya.

Belajar akan lebih baik, jika setiap orang bisa bekerja dimanapun tanpa ada hambatan spesifikasi komputer dan software yang dipersyaratkan untuk menjalankannya, oleh karenanya hasil karya yang baik kendaknya dapat dijalankan diberbagai kondisi hardware dan sofware yang beragam, artinya bisa dijalankan didalam spesifikasi komputer yang paling rendah sekalipun, bisa dijalankan dengan Operating System dengan platform apapun dan versi manapun, mulai dari yang awal hingga yang terbaru, dan software yang tidak dibatasi oleh versi keluaran baik versi awal maupun versi yang terbaru. Software yang memenuhi prsyaratan diatas adalah software kalkulator.

6. Reusabilitas (Sebagian atau Seluruh Program Media Pembelajaran dapat Dimanfaatkan Kembali untuk Mengembangkan Media Pembelajaran Lain)

Eric S. Raymond, seorang tokoh programmer opensource mengatakan “Good programmers know what to write. Great ones know what to rewrite and reuse”. Setelah level membuat terlewati, seorang pengembang harus meningkatkan kemampuan diri untuk tidak hanya berorientasi membuat, tapi juga berorientasi ke bagaimana fitur dan fungsi program kita supaya dapat digunakan lagi di program lain dengan mudah. Bagaimana kita mendesain sebuah source code (kode sumber), icon, logo, tombol dan sebagainya sehingga dengan mudah dapat digunakan kembali (reuse) pada program media pembelajaran lain, itulah arti dari reusabilitas.

Template menu, icon, logo, tombol, dsb yang telah dibuat dapat dengan mudah digunakan untuk program lain. Library (DLL, API, dsb) juga dikemas dengan baik sehingga dapat dimanfaatkan oleh program lain. Program tersusun secara modular, hal ini mempermudah penggunaan kembali (reusabilitas).

Tuesday, October 28, 2008

Algoritma Garis

Nama Mahasiswa : Pebri Siswoyo

No Reg. : 07622042

ALGORITMA UNTUK PENGGAMBARAN GARIS

Penggambaran grafik garis lurus dan kurva memerlukan waktu komputasi yang tinggi, untuk mereduksi waktu komputasi yang tinggi tersebut dapat dilakukan dengan peningkatan kemampuan komputasi prosesor dan peningkatan efisiensi algoritma. Algoritma Midpoint merupakan Algoritma dengan dasar operasi bilangan integer, sehingga memerlukan waktu operasi yanglebih sedikit dibandingkan dengan algoritma yang menggunakan operasi bilangan riel.

Implementasi ke dalam bahasa pemrograman C dari kedua macam algoritma diatas, menunjukkan bahwa waktu komputasi algoritma midpoint lebih cepat sebesar 8 kali pada pembuatan garis lurus, dan lebih cepat sebesar 15 kali pada penggambaran lingkaran, dibandingkan dengan waktu komputasi algoritma yang menggunakan dasar operasi bilangan riel. Dan waktu komputasi algoritma midpoint lebih cepat sebesar 6 kali pada pembuatan garis lurus, dibandingkan dengan waktu komputasi lgoritma yang Breserham telah menggunakan dasar operasi bilangan integer juga.

Kata kunci: Penggambaran garis, penggambaran kurva,

Algoritma Bresenham, Algoritma midpoint, Algoritma DDA.

1. PENDAHULUAN

Perkembangan kemampuan komputasi prosesor yang pesat telah membuatkomputer desktop mempunyai kemampuan komputasi yang besar. Hal inimendorong perkembangan program aplikasi yang memerlukan komputasi yangbesar seperti program aplikasi yang menggunakan grafik 3 dimensi.Peningkatan kemampuan komputasi prosesor untuk aplikasi grafik yangsarat komputasi, perlu dibarengi peningkatan efisiensi algoritma,sehingga pembuatan grafik garis dan kurva yang merupakan dasar pembuatangrafik dapat memberikan hasil yang optimal.

Algoritma midpoint merupakan algoritma pembuatan garis dan kurva dengan dasar operasi bilangan integer yang menonjolkan ciri kecepatan. Sehingga algoritma ini dapat dipakai sebagai algoritma pembuatan grafik yang menuntut kecepatan sebagai hal yang diutamakan. Pembahasan algoritma Midpoint dilakukan dengan mengasumsikan garis lurus dari kiri ke kanan,dan gadient antara 0 dan 1, sedangkan untuk lingkaran dengan mengasumsikan hanya sebagian lingkaran dengan sudut sebesar 45° , hal ini dilakukan untuk mempermudah penjelasan, sedangkan untuk kondisi yanglain dapat diderivasi dengan cara yang serupa. Untuk mendapatkan kinerja algoritma midpoint, dilakukan uji kecepatan komputasi dengan cara mengimplementasikan kedalam bahasa pemrograman C, dan melakukan perbandingan waktu komputasi dengan algoritma yang menggunakan dasar komputasi bilangan riel, maupun algoritma lain yang telah banyak dikenal seperti algoritma dda dan algoritma bressenham.

2. GARIS LURUS

Garis lurus dinyatakan dinyatakan dalam persamaan :

y = mx + c (1)

dimana : m : gradient dan

c : konstanta.

Untuk menggambarkan piksel-piksel dalam garis lurus, parameter yang digunakan tergantung dari gradient, jika besarnya gradient diantara 0 dan 1, maka digunakan sumbu x sebagai parameter dan sumbu y sebagai hasil dari fungsi, sebaliknya, bila gradient melebihi 1, maka sumbu y digunakan sebagai parameter dan sumbu x sebagai hasil dari fungsi, hal ini bertujuan untuk menghindari terjadinya gaps karena adanya piksel yang terlewatkan. Hasil dari fungsi biasanya merupakan bilangan riel, sedangkan koordinat pixel dinyatakan dalam bilangan integer (x,y), maka diperlukan operasi pembulatan kedalam bentuk integer terdekat. Penggambaran garis lurus dengan metode diatas dimulai dengan operasibilangan riel untuk menghitung gradient m dan konstanta c.

m = (y2 - y1 ) / (x2-x1) (2)

c = y1 ? m* x1* (3)

Operasi bilangan riel berikutnya adalah menghitung nilai y dengan persamaan (1) Untuk mendapatkan koordinat piksel (x,y), untuk setiapnilai x, dari =x1 sampai x=x2, operasi inilah yang perlu dihindari,karena operasi ini memerlukan waktu operasi yang besar.

2.1 Algoritma Bresenham

Bresenham pada tahun 1965, melakukan perbaikan dari algoritma perhitungan koordinat piksel yang menggunakan persamaan (1), dengan cara menggantikan operasi bilangan riel perkalian dengan operasi penjumlahan, yang kemudian dikenal dengan Algoritma Bresenham. Pada algoritma bresenham, nilai y kedua dan seterusnya, dihitung dari nilai y sebelumnya, sehingga hanya titik y pertama yang perlu dilakukan operasi secara lengkap. Perbaikan algoritma ini ternyata tidak menghasilkan perbaikan yang cukup siginifikan. Perbaikan berikutnya dilakukan dengan cara menghilangkan operasi bilangan riel dengan operasi bilangan integer. Operasi bilangan integer jauh lebih cepat dibandingkan dengan operasi bilangan riel, terutama pada penambahan dan pengurangan.

2.2 Algoritma Midpoint untuk Penggambaran Garis

Algoritma midpoint dikembangkan oleh Pitteway pada tahun 1967. Pada gambar 1, titik abu-abu menyatakan posisi piksel, titik hitam menyatakan posisi piksel yang telah digambar. Berdasarkan piksel ke n yang telah digambar, diperlukan metode untuk menentukan piksel berikut yang akan digambar, karena penggambaran dilakukan dari kiri ke kanan, maka piksel berikutnya harus pada kolom n+1. Karena gradien diantara 0 dan 1, maka piksel berikutnya adalah pada posisi titik p atau titik q.

H:\New Folder (2)\Image1.gif Gambar 1. Garis Lurus

Persamaan garis lurus yang telah dinyatakan dalam persamaan (1) dapat dinyatakan dalam fungsi x,y berikut.

*f(x, y) = ax + by + c = 0 *(4)

Fungsi f(x,y) dalam persamaan (4), akan memberikan nilai 0 pada setiap titik yang terletak pada garis, dan bernilai positip pada setiap titik yang terletak dibawah garis, dan bernilai negatif pada setiap titik yang terletak diatas garis. Maka untuk menentukan apakah titik P atau Q sebagai koordinat piksel berikutnya, maka dilakukan dengan cara menghitung nilai fungsi f(x,y) dalam persamaan (4) pada titik P dan titik Q . Jika fungsi f(x,y) tersebut memberikan nilai positif, maka piksel berikutnya adalah Q, sebaliknya piksel berikutnya adalah P.

*g(x, y) = f(xn + 1, yn + 1/2) *(5)

Fungsi g(x,y) persamaan (5) merupakan variabel penentu, dengan mengevaluasi g (x, y) dapat ditentukan piksel berikutnya yang mana berdasarkan tanda plus atau minus dari hasil fungsi g(x,y). Untuk mempercepat komputasi fungsi g(x,y), dilakukan dengan cara incremental berdasarkan nilai sebelumnya. Untuk setiap piksel, increment sederhana (DeltaG) dipakai sebagai variabel penentu. Karena hanya ada 2 pilihan piksel pada setiap tahap, maka hanya ada 2 increment yang dapat digunakan. Hal ini dilakukan dengan cara pengurangan nilai g(x,y) yang berurutan dengan menggunakan persamaan 4 dan persamaan 5.

*DeltaG = a * DeltaX + b * DeltaY *(6)

Dimana DeltaX dan DeltaY adalah increment yang dipakai pada x dan y, yang bernilai 0 atau 1. Bila bergeser 1 piksel ke kanan :

*DeltaG1 = a* (7)

Bila bergeser 1 piksel ke kanan dan 1 piksel ke atas.

*DeltaG2 = a + b *(8)

Jadi nilai dari variable penentu dapat dihitung dari nilai sebelumnya dengan cara menambah dengan (a) atau (a+b). Algoritma untuk menggambar garis lurus dari (x1, y1) sampai (x2, y2) dilakukan dengan langkah-langkah sebagai-berikut:

1. Gambar piksel pertama (x1,y1). Hitung variabel penentu dengan persamaan (3).

2. Tentukan tanda variabel penentu. Jika variabel penentu bernilai positif, increment x dan y dan tambahkan (a+b) pada vaiabel penentu, sebaliknya increment x dan y dan tambahkan (a) pada variabel penentu.

3. Plot piksel pada posisi (x, y).

4. Ulangi langkah mulai langkah kedua, sampai piksel terakhir (x2,y2).

3. LINGKARAN

Kurva lingkaran dinyatakan dinyatakan dalam persamaan :

*(x-xc) ^2 + (y-yc) ^2 = r ^2 *(9)

dimana : (xc,yc) : koordinat titik pusat lingkaran

r : jari-jari lingkaran

Untuk menggambarkan piksel-piksel dalam kurva lingkaran, dapat digunakan sumbu x dari x = (xc-r) sampai x = (xc+r) sebagai parameter dan sumbu y sebagai hasil dari persamaan (10)

*y = yc +- sqrt(r ^2 - (x-xc) ^2 *(10)

Algoritma ini memerlukan waktu operasi yang besar, karena mengandung operasi bilangan riel perkalian maupun eksponential, dan menghasilkan posisi koordinat piksel yang tidak merata, karena terjadinya gaps yang disebabkan adanya perubahan gradient.

Untuk menghindari posisi koordinat piksel yang tidak merata, koordinat piksel (x,y) dinyatakan dengan menggunakan koordinat polar dalam persamaan (11)

*x = xc + r cos q *(11a)

*y = yc + r sin q *(11b)

Persamaan (11) diatas mengandung operasi bilangan riel perkalian untuk mendapatkan koordinat piksel (x,y), untuk setiap nilai x, dari x = (xc-r) sampai x = (xc+r), operasi inilah yang perlu dihindari, karena operasi ini memerlukan waktu operasi yang besar.

3.1 Algoritma Midpoint

Komputasi untuk membuat kurva lingkaran dimulai dengan mengidentifikasi bagian-bagian dari lingkaran yang dapat ditentukan dengan menggunakan sifat simetri, hal ini dilakukan dengan cara membagai lingkaran dengan masing-masing mempunyai sudut sebesar 45° , sehingga dalam sebuah lingkaran dibagi menjadi 8 bagian. Sebagai contoh, digambarkan bagian dari lingkaran dari sudut 90° sampai 45° . Seperti pada algoritma midpoint untuk garis lurus, maka pada setiap tahapan, terdapat 2 koordinat piksel yang harus dipilih yaitu (x+1, y) atau (x+1, y-1).

H:\New Folder (2)\Image2.gifGambar 2. Lingkaran

Langkah berikutnya, adalah menyatakan persamaan lingkaran dan fungsi untuk menentukan variabel penentu. Persamaan lingkaran dengan pusat (0,0) dinyatakan dalam persamaan (12).

*f(x, y) = x*x + y+y - r*r = 0 *(12)

Fungsi f(x, y) persamaan (12) akan bernilai positif jika titik (x,y) diluar lingkaran, dan bernilai negatif jika titik (x,y) didalam lingkaran. Fungsi untuk variabel penentu dan increment dinyyatakan dalam persamaan (13), (14), dan (15).

g(x, y) = (x + 1) (x + 1) + (y - 1/2) (y - 1/2) - r*r (13)

*DeltaG1 = 2x + 3 (14)

*DeltaG2 = 2x - 2y + 5 (15)

Berbeda dengan nilai dari increment pada algoritma garis lurus yang bernilai konstan, pada kurva lingkaran, increment tidak konstan. Terlihat bahwa komputasi increment memerlukan operasi perkalian, tetapi operasi perkalian dapat diubah dengan cara komputasi nilai increment secara increment pula, sehingga diperlukan 2 komputasi increment dalam setiap piksel yang diproses. Secara umum, kurva polinomial orde n memerlukan n level increment. Pada titik awal (x1,y1), komputasi variabel penentu mempunyai bagian bilangan riel, sehingga operasi bilangan integer tidak dapat digunakan secara langsung.

Dalam praktek hal ini diselesaikan dengan cara menambahkan nilai 1/4 pada variable penentu. Hal ini tidak mempengaruhi perubahan tanda bilangan, karena operasi yang dilakukan adalah operasi bilangan integer, sehingga menghasilkan operasi yang lebih cepat.

KESIMPULAN

Panjang garis atau banyak piksel dalam garis lurus sangat berpengaruh terhadap perbandingan performance antara sebuah algoritma dengan algoritma yang lain, hal ini disebabkan adanya perbedaan waktu operasi yang berada didalam perulangan sepanjang pembuatan piksel, dan waktu operasi yang berada pada sebelumnya. Panjang jari-jari dalam lingkaran tidak berpengaruh terhadap perbandingan performance antara sebuah algoritma dengan algoritma yang lain, hal ini menunjukkan perbandingan waktu operasi yang berada didalam perulangan sepanjang pembuatan piksel, dan waktu operasi yang berada pada sebelumnya berimbang.

Algoritma dengan dasar operasi bilangan integer memberikan waktu operasi yang lebih cepat dibandingkan dengan algoritma dengan dasar operasi bilangan riel, hal ini ditunjukkan dengan waktu komputasi algoritma DDA, algoritma Bresenham dan algoritma Midpoint yang lebih cepat, baik pada pembuatan garis lurus maupun lingkaran dibandingan waktu komputasi dengan algoritma yang menggunakan dasar operasi bilangan riel. Algoritma midpoint memberikan waktu operasi tercepat diantara algoritma penggambaran garis lurus yang telah menggunakan dasar operasi bilangan integer, seperti algoritma DDA, algoritma Bresenham. Jadi algoritma Midpoint merupakan algoritma yang cocok untuk penggambaran grafik yang menuntut kecepatan sebagai hal yang diutamakan.

DAFTAR PUSTAKA

1. Donald Hearn and M.Pauline Baker, /Computer graphics/, NJ :

Prentice-Hall, 1992.

2. Borland International, Inc., /Turbo C++ Reference Guide, /1990.

3. http://www.geocities.com/Broadway/4574/ midpoint/index.htm

4. http://hops.cs.jhu.edu/~stevec/graphics/ midpoint.htm

Monday, October 27, 2008

Rekayasa Perangkat Lunak

Definisi Rekayasa Perangkat Lunak Menurut Fritz Bauer :
"Penerapan dan pemanfaatan prinsip-prinsip rekayasa untuk menghasilkan perngkat lunak yang ekonomis yang handal dan bekerja secara efisisen pada mesin-mesin yang nyata"

Karakteristik Perangkat Lunak
- Dikembangkan atau direkayasa, tidak dibuat dalam pengertian pada umumnya.
- Tidak 'lapuk' atau mengalami penyusutan secara fisis.
- Pada umumnya dibuat secara khusus, tidak disusun dari komponen-komponen yang telah ada.

Problem Perangkat Lunak
- Perangkat lunak tidak berfungsi secara baik (kualitas yang kurang).
- Ketidaktepatan penjadwalan proses dan biaya produksi.
- Produktivitas yang belum dapat memenuhi tuntutan kebutuhan pemakai.
- Pemeliharaan yang sukar.
- Perkembangan teknologi perangkat keras di luar kemampuan programmer untuk membuat perangkat lunak yang dapat memanfaatkan potensi perangkat keras secara maksimal.

Elemen-elemen Kunci dalam RPL
- Metode : 'how to' yang bersifat teknis
Meliputi bidang-bidang perencanaan proyek, estimasi, analisis persyaratan, perancangan, coding, pengujian, dan pemeliharaan.
- Tool : memberikan dukungan automasi bagi metode
- Prosedur : mengintegrasikan metode dan tool

Siklus Klasik (Model Air Terjun)
Berdasarkan siklus konvensional dalam bidang rekayasa lainnya, dengan pendekatan sekuensial yang sistematis.
Tahapan-tahapan dalam siklus klasik :
- Analisis dan rekayasa sistem : perangkat lunak merupakan bagian dari sebuah sistem, untuk mendapatkan gambaran yang meluas pada aras sistem.
- Analisis persyaratan : fokus lebih terarah ke perangkat lunak, berusaha mengetahui aspek 'what', melibatkan pemakai dan pengembang.
- Perancangan : menerjemahkan persyaratan menjadi suatu bentuk representasi yang dapat dievaluasi kualitasnya sebelum coding dilakukan.
- Coding (penulisan program) : penerjemahan rancangan ke dalam bentuk yang dapat dimengerti komputer, menggunakan bahasa pemrograman teretentu.
- Pengujian : berfokus pada rincian logikal dari perangkat lunak, bertujuan mengungkap dan menghilangkan kesalahan-kesalahan yang ada sehingga perangkat lunak bekerja sesuai dengan yang diharapkan.
- Pemeliharaan : meliputi kegiatan-kegiatan koreksi kesalahan dan penyesuaian perangkat lunak terhadap perubahan lingkungannya.

Prototyping
Bila pemakai belum siap dengan persyaratan perangkat lunak secara lengkap (rinci).
Model perangkat lunak :
- Model 'kertas' : ditujukan hanya agar pemakai dapat mengerti interaksi antara dia dengan perangkat lunak.
- Model kerja : mengimplikasikan beberapa fungsi perangkat lunak.
- Program : sebagian atau semua fungsi telah diimplementasikan, dan akan dikembangkan dalam proses pengembangan.

Problem : ketidaksadaran bahwa prototipe bukan hasil yang diharapkan.
- Pemakai : tidak sabar menunggu perangkat lunak yang sebenarnya.
- Pengembang : pemakaian teknik dan tools yang tidak optimal pada prototipe yang akhirnya tetap digunakan pada perangkat lunak yang sesungguhnya.

Model Spiral
Menggabungkan keuntungan-keuntungan model air terjun dan prototyping, dan memasukkan aktivitas analisis resiko (risk analysis).
Melibatkan proses iterasi, tiap iterasi bekerja pada satu 'level produk' (dari level prototipe sampai pada level perangkat lunak yang diinginkan). Tiap perpindahan level didahului oleh analisis resiko.
Terdiri dari empat aktivitas utama :
- Perencanaan : penentuan sasaran, alternatif solusi, dan hambatan.
- Analisis resiko : analisis alternatif solusi dan identifikasi resiko.
- Perekayasaan : pengembangan produk pada 'level berikutnya'.
- Evaluasi oleh pemakai : diterapkan pada hasil proses perekayasaan.

Problem : menuntut keahlian dalam bidang analisis resiko.

4GT
Merupakan kumpulan tool perangkat lunak. Memungkinkan penegembang menyebutkan karakteristik perangkat lunak pada aras yang lebih tinggi, dan tool-tool tersebut akan membangkitkan kode program secara otomatis.
Proses mirip dengan model air terjun (diawali dengan pengumpulan persyaratan perangkat lunak).
Beberapa bidang pengembangan perangkat lunak yang telah dapat diautomatisasikan :
- query basis data (database query)
- pembangkitan laporan (report generation)
- manipulasi data
- definisi layar
- kemampuan grafis aras tinggi

Memory Organization secara Umum
Terdiri dari tiga memori :
- Short Term Memory : kapasistas terbatas, akses cepat. Merupakan daya ingat manusia terhadap program komputer.
- Working Memory : kapasitas lebih besar, yaitu RAM.
- Long Term Memory : kapasitas sangat besar, akses lambat. Meliputi disk storage (hard disk, optical disk, disket).

Verifikasi
Are we building the product right ?

Validasi
Are we building the right product ?

Human Factor in Software Engineering
Faktor-faktor manusia dalam pembuatan software ditinjau dari perancangannya sendiri dan pemakai merupakan hal penting, karena :
- Agar efektif para manajer software harus mengerti para stafnya secara individu, dan mengerti bagaimana masing-masing individu tersebut berinteraksi.
- Sistem komputer digunakan oleh manusia, jika keterbatasan dan kemampuan manusia tidak diperhatikan dalam merancang sistem maka orang tidak akan menggunakannya.
- Produktivitas programmer adalah faktor biaya yang sangat kritis pada perancangan software, untuk itu mengerti faktor-faktor manusia dapat membantu untuk meningkatkan produktivitas dengan tidak kehilangan biaya yang banyak.

Alasan Sulitnya Memilih Software Engineering
Berdasarnya personality yang jujur, memilih seorang programmer sangat sulit, karena :
- Personality is dinamic, not static : kepribadian sesorang bisa berubah sejalan dengan perkembangan karirnya.
- Karena perbedaan pribadi ini perlu kejelian dalam penempatan para programmer, apakah dia di bagian perancangan, penguji, dsb.
- Personality/manusia dalam melakukan tes masuk perusahaan kadang-kadang curang.

Faktor Penting Rekayasa Perangkat Lunak
Dalam rekayasa software, ada beberapa faktor penting kaitannya dengan human factor dan ergonomic :
- Privacy : seorang programmer memerlukan tempat dimana dia bisa bekerja tanpa interupsi.
- Outside Awareness : orang cenderung lebih suka dengan sinar/cahaya alami dan pemandangan lingkungan luarnya yang alami pula.
- Personalization : manusia secara individu mempunyai kebiasaan yang berbeda dalam bekerja dan mempunyai pendapat yang berbeda dalam dekorasi ruangannya.

Knowledge Modeling
- Semantic : pengetahuan tentang konsep-konsep, seperti bekerjanya suatu pernyataan penugasan dalam suatu program. Pengetahuan ini diperoleh melalui belajar dan pengalaman.
- Syntactic : pengetahuan tentang representasi yang detil, seperti bagaimana penulis deklarasi prosedur dalam Pascal.

Macam-macam Software
1. System Software
Sekumpulan program yang ditulis untuk melayani program lain. Termasuk di dalamnya operating system, file management and editor, serta utilities.
2. Real Time Software
Software yang memonitor, menganalisa, dan mengendalikan kejadian-kejadian dunia nyata. Memiliki komponen pengumpulan data, analisis, dan pengendali.
3. Business Software
Semua software yang dibuat untuk kepentingan bisnis.
4. Engineering and Scientific Software
Mempunyai karakteristik algoritmanya lebih banyak berisi rumus-rumus perhitungan matematis.
5. Embedded Software
Software yang harus dapat ditanam dalam ROM, dan biasanya digunakan untuk mengendalikan produk sehingga tercapai kepuasan pelanggan.
6. Personal Computer Software
Software yang dirancang untuk komputer PC.
7. Artificial Intelligence Software
Software AI mempunyai ciri khas menggunakan algoritma non-numerik untuk memecahkan masalah-masalah yang rumit yang tidak bisa ditangani dengan komputas biasa (analisis langsung).
Bidang AI yang dengan cepat berkembang antara lain : Expert System (Sistem Pakar), Pattern Recognizer (Pengenalan Pola), Theorem Proofing (Pembuktian Teori), serta Game Playing.

Well Engineered Software
Software dapat dikatakan mempunyai sebutan WES apabila :
- The software should be maintainable.
- The software should be reliable.
- The softwrae should be eficient.
- The software should over an appropriate user interface.

Mitos Software
Harapan dan kenyataan tidak selalu sala baik dari sudut pandang manajer maupun customer.

Dokumentasi
- Mempunyai program bantu (help).
- Komentar dalam penulisan program.
- Petunjuk cara menjalankan program.
- Pustaka program.

Analisis
Memecah suatu masalah menjadi bagian-bagian yang terkecil, sehingga bagian-bagian tersebut dapat diteliti satu per satu untuk diketahui permasalahan sebenarnya.

Tingkatan Spesifikasi
1. Requirement Definition : pernyataan bahasa natural (bahasa sehari-hari) terhadap apa yang diharapkan user untuk dapat dipenuhi.
2. Requirement Specification : struktur/bentuk dokumen yang menjelaskan pelayanan sistem lebih detil.
3. Software Specification : deskripsi abstrak tentang suatu software yang merupakan dasar untuk perancangan dan implementasi.

Arsitektur Sistem
Merupakan model yang merepresentasikan hubungan antar elemen sistem dan menjadi dasar bagi tahap analisis persyaratan dan tahap perancangan.
- Berawal dari template yang disempurnakan secara bertahap.
- Fungsi dan kinerja yang diharapkan, beserta alokasinya ke elemen-elemen sistem.
- Input dan output.
- Kekangan yang ada.

Analisis Persyaratan Perangkat Lunak
Software Requirement Analysis (SRA) berfungsi sebagai jembatan antara pengalokasian fungsi pada perangkat lunak dan perancangan perangkat lunak. Memungkinkan didefinisikannya fungsi-fungsi dan kinerja perangkat lunak, antarmuka perangkat lunak dengan elemen sistem lainnya, dan kekangan-kekangan yang harus dipenuhi oleh perangkat keras.
Aktivitas SRA :
- Pemahaman persoalan (dalam konteks software).
- Evaluasi dan sintesis.
- Pemodelan (prototyping).
- Spesifikasi perangkat lunak dan reviewnya.

Requirement Document Menurut Pressman
Bentuk requirement document berisi :
1. Introduksi
2. Deskripsi informasi
a. Representasi aliran informasi
b. Representasi isi informasi
3. Deskripsi fungsi
a. Partisi fungsi-fungsi
b. Deskripsi fungsi
c. Deskripsi kendali
4. Deskripsi karakteristik dan kelakuan (behaviour)
a. Keadaan sistem
b. Events dan aksi yang ditimbulkannya
5. Kriteria validasi
a. Batas-batas kinerja
b. Jenis-jenis pengujian
c. Respons yang diharapkan
6. Lampiran-lampiran

Requirement Document Menurut Heninger
Bentuk requirement document berisi :
1. Introduksi
2. Model sistem
3. Evolusi sistem
4. Functional requirement
5. Non-functional requirement
6. Glossary

Tahapan Perancangan Perangkat Lunak
1. Study and Understand Problem.
2. Identify Grouse Features of at Least One Possible Solution.
3. Describe Each Abstraction Used in the Solution.

Dasar-dasar Perancangan Perangkat Lunak
Abstraksi :
- Memungkinkan seseorang untuk berkonsentrasi pada satu aras generalisasi tanpa terlibat pada aras detilnya.
- Perancangan bekerja untuk membentuk abstraksi data dan prosedural, yang disempurnakan secara bertahap dari tingkat umum menuju tingkat yang spesifik.
Modularitas :
Berkaitan dengan arsitektur perangkat lunak. Software terdiri dari komponen-komponen yang disebut modul, yang diintegrasikan untuk memenuhi persyaratan yang diinginkan.

Perancangan Perangkat Lunak Besar
Langkah-langkah perancangan perangkat lunak dalam skala besar menurut Pressman adalah :
1. Perancangan Arsitektur
Mengidentifikasi dari subsistem, dicari hubungan antara subsistem dengan sistemnya, lalu didokumentasikan.
2. Spesifikasi / Abstraksi
Untuk setiap sub sistem, spesifikasi abstraksi harus sudah bisa memenuhi dan membatasi dimana produk tersebut dibuat dan nantinya dioperasikan.
3. Perancangan Antar Muka
Untuk setiap subsistem, antar muka dengan subsistem lainnya harus dirancang dan didokumentasikan. Interface ini jangan sampai membingungkan user.
4. Perancangan Komponen
Pada tahap ini subsistem harus bisa memenuhi bagian-bagian pekerjaan atau yang harus dikerjakan komponen-komponen yang ada dalam subsistem tersebut.
5. Perancangan Stuktur Data
Struktur data yang digunakan dalam implementasi sistem harus dirancang secara khusus.
6. Perancangan Algoritma
Algoritma yang digunakan untuk bisa memenuhi persyaratan nantinya dirancang secara rinci dan spesifik.

Kualitas Perancangan Perangkat Lunak
Diukur dengan dua metode :
1. Kohesi
Modul yang kohesif adalah modul yang mengerjakan satu tugas saja. Diinginkan membuat modul dengan kohesi yang tinggi.
Menurut Constantine dan Yourdon terdapat tingkatan kohesi mulai dari yang paling rendah ke yang paling tinggi :
a. Koinsidental
Bagian dari komponen data tidak berhubungan tertapi dijadikan satu ke dalam sebuah komponen.
b. Logical Association
Komponen yang melakukan fungsi-fungsi yang sama seperti input, penanganan kesalahan (error handing) diletakkan secara bersama dalam komponen tunggal.
c. Temporal
Seluruh komponen yang diaktifkan/dibangkitkan dalam satu waktu yang berdiri sendiri seperti startup dam shutdown Windows ditempatkan bersama pada satu tempat.
d. Prosedural
Elemen-elemen dalam komponen dibuat dalam pengendalian tunggal namun berurutan.
e. Komunikatif / Komunikasional
Seluruh komponen dari elemen yang beroperasi pada data yang sama atau menghasilkan output data yang sama.
f. Sekuensial
Keluaran dari salah satu elemen di dalam komponen bertindak sebagai input untuk beberapa elemen yang lain.
g. Fungsional
Masing-masing dari komponen diperlukan untuk eksekusi fungsi-fungsi tunggal.
2. Kopling
Merupakan ukuran interkoneksi antar modul. Diinginkan membuat modul-modul dengan kopling yang rendah.
Suatu program jika koplingnya tinggi berarti memiliki keterkaitan sangat kuat. Pada kopling tinggi ini, kesalahan satu submodul bisa menyebabkan semua modul berhenti.
Spektrum/tingkatan kopling dari yang paling tinggi ke yang paling rendah :
a. Isi
b. Bersama
c. Eksternal
d. Kendali
e. Stamp
f. Data
g. Tanpa kopling

Pertimbangan Coding
Ada beberapa hal yang perlu dipertimbangkan dalam pelaksanaan coding :
- Rancangan yang dihasilkan : seberapa mudah menerjemahkannya ke dalam bahasa pemrograman.
- Efisiensi komputer (kecepatan dan kebutuhan memori).
- Portabilitas kode program.
- Keberadaan tool-tool pengembangan.
- Kemudahan untuk dipelihara/dirawat.

Pengujian Perangkat Lunak
Dalam tahap pengujian perangkat lunak, ada beberapa pendelatan pelaksanaan tahap ini :
1. Pengujian 'white box'
- Menguji detil prosedural : mengamati jalur-jalur logikal yang dibentuk oleh struktur pengendalian program (loop, percabangan).
- Bisa mengungkap 100% kesalahan logika yang mungkin muncul, bersifat exhaustive : ledakan kombinatorial untuk modul/program yang besar dan kompleks.
- Dilakukan pada awal tahap pengujian.
Aktivitas :
a. Menguji tiap jalur paling sedikit satu kali.
b. Menguji tiap kondisi percabangan untuk nilai 'benar' dan 'salah'.
c. Menguji loop pada batas-batas loop dan pada daerah operasionalnya.
d. Menguji struktur data internal untuk memastikan kesahihannya.
Metode : pengujian jalur dasar (basis path), pengujian kondisi, pengujian aliran data, pengujian loop.

2. Pengujian 'black box'
- Berfokus pada persyaratan fungsional dari perangkat lunak.
- Dilakukan tidak pada awal tahap pengujian.
- Mengungkap kesalahan-kesalahan pada fungsi-fungsi yang salah/hilang, antarmuka, akses ke basis data eksternal, kinerja, serta inisialisasi dan terminasi program.
Metode : equivalence partitioning, analisis nilai batas, teknik graf sebab akibat.

Pemeliharaan Perangkat Lunak
Jenis-jenis pemeliharaan perangkat lunak :
- Korektif
- Adaptif
- Penyempurnaan
- Preventif

Aktivitas :
- Pelaporan : laporan problem, spesifikasi perubahan.
- Aliran event dalam pemeliharaan.
- Penyimpanan rekaman-rekaman selama tahap pengembangan.
- Evaluasi terhadap aktivitas-aktivitas yang dilakukan dalam tahap pemeliharaan.

Friday, October 24, 2008

Menghemat Bandwidth dan Menambah Kecepatan untuk All Conection

Khususnya anda menggunakan koneksi internet (e.g. 3G/GPRS/DSL/CDMA) yg dibatasi oleh bandwith maka ini patut anda coba :

www.toonel.net untuk menjalankan toonel tersebut dengan aplikasi java yang bisa di ambil dari www.java.com rasakan kengiritannya + kecepatan terutama downloadnya

Wednesday, October 22, 2008

Grafika Komputer

PENGENALAN WAJAH(FACE RECOGNITION)
images33.jpg
Pengenalan wajah adalah merupakan suatu pengenalan pola (pattern recognition) yang khusus untuk kasus wajah. Ini dapat dideskripsikan sebagai pengklasifikasian suatu wajah apakah dikenali (known) atau tidak dikenali (unknown), dimana setelah dibandingkan kemudian disimpan secara tersendiri. Beberapa pendekatan untuk pengenalan obyek dan grafika komputer didasarkan secara langsung pada citra-citra tanpa penggunaan model 3D. Banyak dari teknik ini tergantung pada suatu representasi citra yang membentuk suatu struktur ruang vektor, dan dalam prinsip ini memerlukan korespondensi yang padat. Pendekatan appearance-based kebanyakan digunakan untuk pengenalan wajah. Pada metode ini, model wajah dipelajari melalui proses training dengan menggunakan satu set data pelatihan yang berisi contoh-contoh wajah. Kemudian hasil training ini digunakan untuk pengenalan wajah. Secara umum metode ini menggunakan teknik-teknik analisis statistik dan mesin pembelajaran (machine learning) untuk menemukan karakteristik-karakteristik yang sesuai dari wajah maupun non-wajah. Yang termasuk dalam kelompok ini adalah : Eigenfaces, distribution-based dan clustering, jaringan syaraf tiruan, SVM (Support VectorMmachine), dll.

Tiga pengklasifikasi linear appearance-based adalah PCA, ICA and LDA. Tiap pengklasifikasi mempunyai representasi (vector basis) tersendiri dari suatu ruang space vector wajah dengan dimensi tinggi didasarkan pada titik pandang secara statistik yang berbeda. Melalui proyeksi vector wajah ke vector basis, koefisien proyeksi digunakan sebagai representasi fitur tiap citra wajah. Nilai matching diantara citra wajah tes dan pelatihan dihitung (sebagai contoh sudut nilai cosine) diantara vector-vector koefisien. Ketiga representasi dapat dianggap sebagai suatu transformasi linier dari vector citra asli ke suatu vector fitur proyeksi.

Proyeksi citra ke dalam ruang eigen (eigenspace) merupakan suatu prosedur standar untuk beberapa algoritma pengenalan obyek yang didasarkan pada tampilan (appearance-based). Penelitian dasar tentang proyeksi eigenspace pertama kali dilakukan oleh Michael Kirby yang memperkenalkan tentang ide karakteristikasi dimensi rendah suatu wajah. Turk and Pentland menggunakan proyeksi eigenspace untuk pengenalan wajah. Eigenspace dihitung melalui identifikasi eigenvector dari matriks kovariansi yang diturunkan dari suatu himpunan citra pelatihan (Turk and Pentland,1991)

Proyeksi ruang eigen (eigenspace) juga dikenal sebagai Karhunen-Loeve (KL) atau juga dinamakan dengan Principal Component Analysis (PCA). Algoritma eigenface memanfaatkan Principal Component Analysis (PCA) untuk mereduksi dimensinya guna menemukan vector-vektor yang mempunyai nilai terbaik untuk distribusi citra wajah didalam ruang citra masukan. Vektor ini mendefinsikan subruang dari citra-citra wajah dan subruang tersebut dinamakan ruang wajah. Semua wajah-wajah dalam himpunan pelatihan diproyeksikan ke dalam ruang wajah untuk menemukan suatu himpunan bobot-bobot yang mendeskripsikan kontribusi dari tiap vector dalam ruang wajah. Untuk identifikasi suatu citra uji, membutuhkan proyeksi suatu citra ke dalam ruang wajah untuk menentukan korespondensi kumpulan bobot-bobot. Dengan membandingkan kumpulan bobot-bobot wajah dalam training set, Pengujian citra dapat diidentifikasi. Prosedur kunci dalam PCA didasarkan pada tranformasi Karhumen-Loeve. Jika elemen-elemen citra dianggap sebagai variable-variabel random, citra mungkin dilihat sebagai sample suatu proses stokastik.

Ide utama principal component analysis adalah menemukan vektor dengan nilai terbaik untuk distribusi citra wajah dalam seluruh ruang citra. Vektor-vektor ini mendefinisikan subruang citra wajah atau biasa disebut dengan nama ruang wajah. Tiap vektor dengan panjang N2, mendsikripsikan citra dengan ukuran N x N, yang merupakan suatu kombinasi linier dari citra wajah asli (Atalay,1996).

Visualisasi
180px-fa.jpg
Visualisasi saat terjadi tabrakan mobil dengan menggunakan analisa elemen
Visualisasi (Inggris: visualization) adalah rekayasa dalam pembuatan gambar, diagram atau animasi untuk penampilan suatu informasi. Secara umum, visualisasi dalam bentuk gambar baik yang bersifat abstrak maupun nyata telah dikenal sejak awal dari peradaban manusia. Contoh dari hal ini meliputi lukisan di dinding-dinding gua dari manusia purba, bentuk huruf hiroglip Mesir, sistem geometri Yunani, dan teknik pelukisan dari Leonardo da Vinci untuk tujuan rekayasa dan ilmiah, dll.

Pada saat ini visualisasi telah berkembang dan banyak dipakai untuk keperluan ilmu pengetahuan, rekayasa, visualisasi disain produk, pendidikan, multimedia interaktif, kedokteran, dll. Pemakaian dari grafika komputer merupakan perkembangan penting dalam dunia visualisasi, setelah ditemukannya teknik garis perspektif pada zaman Renaissance. Perkembangan bidang animasi juga telah membantu banyak dalam bidang visualisasi yang lebih kompleks dan canggih.

IMPLEMENTASI GRAFIKA KOMPUTER BERBASIS VISUAL INTERAKTIF UNTUK GERAK BENDA DAN GELOMBANG PADA FISIKA

grafika21.jpg
Grafika komputer atau dalam bahasa inggris Computer Graphics dapat diartikan sebagai seperangkat alat yang terdiri dari hardware dan software untuk membuat gambar, grafik atau citra realistic untuk seni, game komputer, foto, dan film animasi.

Dewasa ini, grafika komputer sudah banyak digunakan sebagai materi pendukung dalam berbagai bidang, pada tugas akhir ini penulis menganalisis tentang implementasi grafika komputer dengan menggunakan aplikasi perangkat lunak berbasis visual interaktif untuk gerak benda dan gelombang pada fisika yang meliputi gerak melingkar, gerak satelit, gerak peluru, gelombang transversal, dan gelombang sinusoida.

Implementasi grafika komputer yang diaplikasikan pada program simulasi berbasis visual interaktif untuk gerak benda dan gelombang pada fisika diharapkan dapat membantu dalam proses belajar, dan mempercepat pemahaman dalam mempelajari tentang gerak benda dan gelombang yang selama ini masih dilakukan dengan cara yang konvensional yaitu dengan gambar dan juga diharapkan dapat meningkatkan daya minat belajar karena cara yang dipakai dalam perangkat lunak ini lebih menarik dengan fasilitas menu yang sederhana..

GRAFIKA KOMPUTER

Grafika komputer (Inggris: Computer graphics) adalah bagian dari ilmu komputer yang berkaitan dengan pembuatan dan manipulasi gambar (visual) secara digital. Bentuk sederhana dari grafika komputer adalah grafika komputer 2D yang kemudian berkembang menjadi grafika komputer 3D, pemrosesan citra (image processing), dan pengenalan pola (pattern recognition). Grafika komputer sering dikenal juga dengan istilah visualisasi data.
Grafika komputer (Inggris: Computer graphics) adalah bagian dari ilmu komputer yang berkaitan dengan pembuatan dan manipulasi gambar (visual) secara digital. Bentuk sederhana dari grafika komputer adalah grafika komputer 2D yang kemudian berkembang menjadi grafika komputer 3D, pemrosesan citra (image processing), dan pengenalan pola (pattern recognition). Grafika komputer sering dikenal juga dengan istilah visualisasi data.

woman_in_sunglasses.jpg

Hasil dari rendering

Bagian dari grafika komputer meliputi:
Geometri: mempelajari cara menggambarkan permukaan bidang
Animasi: mempelajari cara menggambarkan dan memanipulasi gerakan
Rendering: mempelajari algoritma untuk menampilkan efek cahaya
Citra (Imaging): mempelajari cara pengambilan dan penyuntingan gambar.

Tuesday, October 21, 2008

Ilmu Terapan

Kecerdasan buatan

Dari Wikipedia bahasa Indonesia, ensiklopedia bebas


Kecerdasan Buatan (bahasa Inggris: Artificial Intelligence atau AI) didefinisikan sebagai kecerdasan yang ditunjukkan oleh suatu entitas buatan. Sistem seperti ini umumnya dianggap komputer. Kecerdasan diciptakan dan dimasukkan ke dalam suatu mesin (komputer) agar dapat melakukan pekerjaan seperti yang dapat dilakukan manusia. Beberapa macam bidang yang menggunakan kecerdasan buatan antara lain sistem pakar, permainan komputer (games), logika fuzzy, jaringan syaraf tiruan dan robotika.

Banyak hal yang kelihatannya sulit untuk kecerdasan manusia, tetapi untuk Informatika relatif tidak bermasalah. Seperti contoh: mentransformasikan persamaan, menyelesaikan persamaan integral, membuat permainan catur atau Backgammon. Di sisi lain, hal yang bagi manusia kelihatannya menuntut sedikit kecerdasan, sampai sekarang masih sulit untuk direalisasikan dalam Informatika. Seperti contoh: Pengenalan Obyek/Muka, bermain sepak bola.

Walaupun AI memiliki konotasi fiksi ilmiah yang kuat, AI membentuk cabang yang sangat penting pada ilmu komputer, berhubungan dengan perilaku, pembelajaran dan adaptasi yang cerdas dalam sebuah mesin. Penelitian dalam AI menyangkut pembuatan mesin untuk mengotomatisasikan tugas-tugas yang membutuhkan perilaku cerdas. Termasuk contohnya adalah pengendalian, perencanaan dan penjadwalan, kemampuan untuk menjawab diagnosa dan pertanyaan pelanggan, serta pengenalan tulisan tangan, suara dan wajah. Hal-hal seperti itu telah menjadi disiplin ilmu tersendiri, yang memusatkan perhatian pada penyediaan solusi masalah kehidupan yang nyata. Sistem AI sekarang ini sering digunakan dalam bidang ekonomi, obat-obatan, teknik dan militer, seperti yang telah dibangun dalam beberapa aplikasi perangkat lunak komputer rumah dan video game.

'Kecerdasan buatan' ini bukan hanya ingin mengerti apa itu sistem kecerdasan, tapi juga mengkonstruksinya.

Tidak ada definisi yang memuaskan untuk 'kecerdasan':

  1. kecerdasan: kemampuan untuk memperoleh pengetahuan dan menggunakannya
  2. atau kecerdasan yaitu apa yang diukur oleh sebuah 'Test Kecerdasan'

Faham Pemikiran

Secara garis besar, AI terbagi ke dalam dua faham pemikiran yaitu AI Konvensional dan Kecerdasan Komputasional (CI, Computational Intelligence). AI konvensional kebanyakan melibatkan metoda-metoda yang sekarang diklasifiksikan sebagai pembelajaran mesin, yang ditandai dengan formalisme dan analisis statistik. Dikenal juga sebagai AI simbolis, AI logis, AI murni dan AI cara lama (GOFAI, Good Old Fashioned Artificial Intelligence). Metoda-metodanya meliputi:

  1. Sistem pakar: menerapkan kapabilitas pertimbangan untuk mencapai kesimpulan. Sebuah sistem pakar dapat memproses sejumlah besar informasi yang diketahui dan menyediakan kesimpulan-kesimpulan berdasarkan pada informasi-informasi tersebut.
  2. Petimbangan berdasar kasus
  3. Jaringan Bayesian
  4. AI berdasar tingkah laku: metoda modular pada pembentukan sistem AI secara manual

Kecerdasan komputasional melibatkan pengembangan atau pembelajaran iteratif (misalnya penalaan parameter seperti dalam sistem koneksionis. Pembelajaran ini berdasarkan pada data empiris dan diasosiasikan dengan AI non-simbolis, AI yang tak teratur dan perhitungan lunak. Metoda-metoda pokoknya meliputi:

  1. Jaringan Syaraf: sistem dengan kemampuan pengenalan pola yang sangat kuat
  2. Sistem Fuzzy: teknik-teknik untuk pertimbangan di bawah ketidakpastian, telah digunakan secara meluas dalam industri modern dan sistem kendali produk konsumen.
  3. Komputasi Evolusioner: menerapkan konsep-konsep yang terinspirasi secara biologis seperti populasi, mutasi dan “survival of the fittest” untuk menghasilkan pemecahan masalah yang lebih baik.

Metoda-metoda ini terutama dibagi menjadi algoritma evolusioner (misalnya algoritma genetik) dan kecerdasan berkelompok (misalnya algoritma semut)

Dengan sistem cerdas hibrid, percobaan-percobaan dibuat untuk menggabungkan kedua kelompok ini. Aturan inferensi pakar dapat dibangkitkan melalui jaringan syaraf atau aturan produksi dari pembelajaran statistik seperti dalam ACT-R. Sebuah pendekatan baru yang menjanjikan disebutkan bahwa penguatan kecerdasan mencoba untuk mencapai kecerdasan buatan dalam proses pengembangan evolusioner sebagai efek samping dari penguatan kecerdasan manusia melalui teknologi.

Sejarah

Pada awal abad 17, René Descartes mengemukakan bahwa tubuh hewan bukanlah apa-apa melainkan hanya mesin-mesin yang rumit. Blaise Pascal menciptakan mesin penghitung digital mekanis pertama pada 1642. Pada 19, Charles Babbage dan Ada Lovelace bekerja pada mesin penghitung mekanis yang dapat diprogram.

Bertrand Russell dan Alfred North Whitehead menerbitkan Principia Mathematica, yang merombak logika formal. Warren McCulloch dan Walter Pitts menerbitkan "Kalkulus Logis Gagasan yang tetap ada dalam Aktivitas " pada 1943 yang meletakkan pondasi untuk jaringan syaraf.

Tahun 1950-an adalah periode usaha aktif dalam AI. Program AI pertama yang bekerja ditulis pada 1951 untuk menjalankan mesin Ferranti Mark I di University of Manchester (UK): sebuah program permainan naskah yang ditulis oleh Christopher Strachey dan program permainan catur yang ditulis oleh Dietrich Prinz. John McCarthy membuat istilah "kecerdasan buatan " pada konferensi pertama yang disediakan untuk pokok persoalan ini, pada 1956. Dia juga menemukan bahasa pemrograman Lisp. Alan Turing memperkenalkan "Turing test" sebagai sebuah cara untuk mengoperasionalkan test perilaku cerdas. Joseph Weizenbaum membangun ELIZA, sebuah chatterbot yang menerapkan psikoterapi Rogerian.

Selama tahun 1960-an dan 1970-an, Joel Moses mendemonstrasikan kekuatan pertimbangan simbolis untuk mengintegrasikan masalah di dalam program Macsyma, program berbasis pengetahuan yang sukses pertama kali dalam bidang matematika. Marvin Minsky dan Seymour Papert menerbitkan Perceptrons, yang mendemostrasikan batas jaringan syaraf sederhana dan Alain Colmerauer mengembangkan bahasa komputer Prolog. Ted Shortliffe mendemonstrasikan kekuatan sistem berbasis aturan untuk representasi pengetahuan dan inferensi dalam diagnosa dan terapi medis yang kadangkala disebut sebagai sistem pakar pertama. Hans Moravec mengembangkan kendaraan terkendali komputer pertama untuk mengatasi jalan berintang yang kusut secara mandiri.

Pada tahun 1980-an, jaringan syaraf digunakan secara meluas dengan algoritma perambatan balik, pertama kali diterangkan oleh Paul John Werbos pada 1974. Tahun 1990-an ditandai perolehan besar dalam berbagai bidang AI dan demonstrasi berbagai macam aplikasi. Lebih khusus Deep Blue, sebuah komputer permainan catur, mengalahkan Garry Kasparov dalam sebuah pertandingan 6 game yang terkenal pada tahun 1997. DARPA menyatakan bahwa biaya yang disimpan melalui penerapan metode AI untuk unit penjadwalan dalam Perang Teluk pertama telah mengganti seluruh investasi dalam penelitian AI sejak tahun 1950 pada pemerintah AS.

Tantangan Hebat DARPA, yang dimulai pada 2004 dan berlanjut hingga hari ini, adalah sebuah pacuan untuk hadiah $2 juta dimana kendaraan dikemudikan sendiri tanpa komunikasi dengan manusia, menggunakan GPS, komputer dan susunan sensor yang canggih, melintasi beberapa ratus mil daerah gurun yang menantang.

Filosofi

Perdebatan tentang AI yang kuat dengan AI yang lemah masih menjadi topik hangat diantara filosof AI. Hal ini melibatkan filsafat pemikiran dan masalah pikiran-tubuh. Roger Penrose dalam bukunya The Emperor's New Mind dan John Searle dengan eksperimen pemikiran "ruang China" berargumen bahwa kesadaran sejati tidak dapat dicapai oleh sistem logis formal, sementara Douglas Hofstadter dalam Gödel, Escher, Bach dan Daniel Dennett dalam Consciousness Explained memperlihatkan dukungannya atas fungsionalisme. Dalam pendapat banyak pendukung AI yang kuat, kesadaran buatan dianggap sebagai urat suci (holy grail) kecerdasan buatan.

Fiksi sains

Dalam fiksi sains, AI umumnya dilukiskan sebagai kekuatan masa depan yang akan mencoba menggulingkan otoritas manusia seperti dalam HAL 9000, Skynet, Colossus and The Matrix atau sebagai penyerupaan manusia untuk memberikan layanan seperti C-3PO, Data, the Bicentennial Man, the Mechas dalam A.I. atau Sonny dalam I, Robot. Sifat dominasi dunia AI yang tak dapat dielakkan, kadang-kadang disebut "the Singularity", juga dibantah oleh beberapa penulis sains seperti Isaac Asimov, Vernor Vinge dan Kevin Warwick. Dalam pekerjaan seperti manga Ghost in the Shell-nya orang Jepang, keberadaan mesin cerdas mempersoalkan definisi hidup sebagai organisme lebih dari sekedar kategori entitas mandiri yang lebih luas, membangun konsep kecerdasan sistemik yang bergagasan. Lihat daftar komputer fiksional (list of fictional computers) dan daftar robot dan android fiksional (list of fictional robots and androids).

Seri televisi BBC Blake's 7 menonjolkan sejumlah komputer cerdas, termasuk Zen (Blake's 7), kompuer kontrol pesawat bintang Liberator (Blake's 7); Orac, superkomputer lanjut tingkat tinggi dalam kotak perspex portabel yang mempunyai kemampuan memikirkan dan bahkan memprediksikan masa depan; dan Slave, komputer pada pesawat bintang Scorpi