Kamis, 31 Januari 2013

Sejarah Komputer Modern : John Vincent Atanasoff, Forgotten Father of the Computer



Pelajaran-pelajaran sejarah komputer biasanya memulai fase komputer modern melalui fase ENIAC (Electronic Numerical Integrator And Computer) yang diciptakan oleh J Presper Eckert & John Mauchly, padahal ide awal yang melandasi ENIAC merupakan buah pikiran John Vincent Atanasoff yang menciptakan komputer modern pertama, Atanasoff-Berry Computer bersama dengan asisten risetnya Clifford Berry pada tahun 1939, jauh sebelum Eckert-Mauchly mengumumkan paten mengenai komputer pada tahun 1947.

Siapa sebenarnya John Vincent Atanasoff ?
Atanasoff adalah seorang profesor muda di Iowa State University. Ia terpikir untuk membuat mesin hitung yang jauh lebih baik dan efisien saat kesulitan mengajarkan kalkulasi teori fisika kuantum. Sebelum Atanasoff, sudah ada beberapa ide pembuatan mesin hitung yang canggih, diantaranya yang terkenal adalah Bush Differential Analyzer yang diciptakan oleh Vannevar Bush dari MIT (Massachusetts Institute of Technology), sayangnya mesin ini hanya mampu menghitung secara akurat sampai 3 angka signifikan dan tidak sanggup menghitung kalkulasi yang melibatkan banyak persamaan matematika. Penggunaan roda bergigi pada mesin hitung menjadi kelemahan lain karena cepat atau lambat mesin menjadi aus dan tidak akurat lagi.

Salah satu ide besar dan cemerlang dari Atanasoff adalah penggunaan matematika bilangan binner. Bilangan biner menjadi istimewa karena menyederhanakan perhitungan. Semua angka besar bisa diterjemahkan kedalam deretan 2 bilangan saja, yaitu 0 dan 1. Contohnya angka 10 bisa ditulis dalam bilangan biner 1010 atau angka 20 bisa ditulis dalam format 10100. Mengapa metode ini cemerlang karena angka 1 dan angka 0 bisa diterjemahkan dalam bentuk impuls listrik.  Jika ada muatan berarti 1 dan sebaliknya. Dengan demikian, penggunaan bilangan binner bisa menyelesaikan masalah utama untuk proses perhitungan menggunakan mesin digital.

Atanasoff membuat rancangan sirkuit dari pola yang ia inginkan, membayangkan penciptaan kapasitor kertas untuk menyimpan memory hasil perhitungan. Setelah konsepnya disempurnakan, ia mengajukan proposal untuk merealisasikannya dan mendapat $650 dari pihak universitas untuk mempekerjakan seorang asisten riset, membeli material dan mengadakan kontrak dengan bengkel mesin universitas dalam menciptakan suku cadang yang ia inginkan. Pada posisi ini, salah seorang mahasiswa pasca sarjananya, Clifford Berry, direkrut sebagai asisten riset dan menjadi pencipta mesin yang digagas oleh Atanasoff.

Sayangnya, Atanasoff kurang beruntung ketika berusaha mengajukan pendanaan tingkat lanjut ke pihak universitas. Untuk sementara mesin hitung ciptaannya belum menarik perhatian orang lain yang belum melihat masa depan mesin hitung tersebut.

Pada tahun 1940, Atanasoff bertemu dengan Mauchly pada sebuah pertemuan American Association for the Advancement of Science, AAAS. John Mauchly yang menjadi pembicara melontarkan rasa putus asanya mendapatkan data ramalan perhitungan meteorologi, dengan bauran kompleks dari data statistik dan dinamika fluida karena mesin hitung yang ada saat itu belum sanggup menghasilkan perhitungan cepat. Ia menyampaikan spekulasinya bahwa elektronik tampaknya menawarkan solusi untuk masalahnya namun ia sendiri belum tahu bagaimana gambaran solusi elektronik tersebut. Selepas ucapannya ini, Atanasoff mendekati Mauchly dan berkata bahwa ia sudah menciptakan mesin hitung yang mampu menjawab permasalahan Mauchly.

Mauchly yang tertarik dengan penelitian Atanasoff kemudian berkunjung ke tempat Atanasoff dan terlibat diskusi mendetail mengenai mesin yang diciptakan oleh Atanasoff. Selepas beberapa kunjungan ini, keduanya terpisah oleh jalan hidup masing-masing atas sebab yang tak terduga, yaitu terlibatnya Amerika kedalam perang dunia kedua.

Keterlibatan Amerika Serikat dalam perang membangkitkan nasionalisme diseluruh negeri. Atanasoff bergabung dengan lembaga riset pertahanan untuk penelitian mengenai bom sementara Clifford Berry bergabung dengan sebuah kontraktor pertahanan di Los Angeles.

Jalan hidup Mauchly  berbeda arah. Jika Atanasoff dan Cliff Berry terpisah sama sekali dengan hasil penelitian mereka, Mauchly justru bertemu dengan J Presper Eckert yang memiliki minat yang sama dalam hal mesin hitung. Mauchly terus mengembangkan mesin hitung dengan berpijak pada model yang pernah dilihatnya pada mesin Atanasoff.
Keberuntungan menerpa pasangan Muachly-Eckert, ketika Herman Goldstine, perwira militer yang ditugasi untuk membuat buku tabel menembak bagi militer AS merasa putus asa bagaimana menyelesaikan pekerjaannya. Buku tabel menembak adalah daftar kalkulasi untuk menghitung jangkauan senjata dalam berbagai kondisi, yang berbeda-berbeda datanya untuk tiap jenis dan ukuran senjata. Kesalahan pada tabel ini bisa berakibat fatal karena meriam bisa salah sasaran dan malah mengenai rekan sendiri. Selain menghabiskan sumber daya, kesalahan ini sekaligus memboroskan jumlah biaya yang dihabiskan untuk untuk senjata yang meledak sia-sia.

Goldstine pantas merasa putus asa karena satu tabel menembak dengan 3000-4000 lintasan peluru membutuhkan waktu hingga satu bulan untuk menyelesaikannya, padahal mesin hitung sudah dijalankan 2 shift (shift ketiga untuk melakukan pemeliharaan agar mesin tetap bekerja). Perhitungan manusia malah membutuhkan lebih banyak sumber daya dan waktu sehingga ketika ia mendengar bahwa ada mesin hitung lain yang lebih cepat dan akurat, paling sedikit 1000 kali, ia dengan senang hati mendatanginya.

Meski mesin yang akan diciptakan oleh Mauchly dan Eckert akan membutuhkan ruangan lebih besar dan menghasilkan panas yang lebih tinggi, Goldstine tetap meminta Mauchly-Eckert mengajukan proposal. Tanggal 9 April 2943, proposal ini disetujui oleh pejabat militer di Ballistics Research Lab dan proyek keduanya secara resmi diberi nama ENIAC, singkatan dari Electronic Numerical Integrator and Computer.

Selesai di tahun 1945, ENIAC terdiri dari 19.000 tabung vakum, beratnya lebih dari 30 ton dan menempati ruang 1.800 kaki persegi dan butuh tenaga listrik 175 kilowat, bandingkan dengan komputer generasi sekarang yang beratnya hanya beberapa kilo, berukuran 14 inchi, butuh tenaga baterai cukup kecil dan memiliki kecepatan jutaan kali lebih cepat.

Peluncuran proyek ENIAC tidak menyinggung nama Atanasoff maupun Clifford Berry. Ketika Atanasoff mengetahuinya, ia baru menyadari bahwa bukan hanya desain konseptual mendasar, sirkuit penambahan dan pengurangan yang ada pada ENIAC merupakan saduran dari mesin yang ia ciptakan bersama Clifford Berry. Ia merasa muak pada apa yang ia anggap sebagai pembajakan oleh Mauchly namun proses paten sudah dimiliki oleh pasangan Mauchly dan Eckert.

Nama John Vincent Atanasoff dan Clifford Berry akhirnya diakui secara resmi dan legal pada tahun 1973, melalui pengadilan Honeywell vs Sperry Rand yang membatalkan paten atas nama Eckert-Mauchly dan menetapkan Atanasoff dan Cliff Berry sebagai penemu awal mesin komputer.

Atanasoff meninggal pada tahun 1994, sedangkan Cliff Berry meninggal pada tahun 1963, 10 tahun sebelum keputusan legal yang menempatkan dirinya dalam sejarah perkembangan komputer.

Referensi :
  1. Clark Mollenhoff, Atanasoff : Forgotten Father of the Computer
  2. Forbes Greatest Technology Stories

Rabu, 30 Januari 2013

Sejarah Komputer & Perkembangannya

Sejarah komputer yang perlu untuk diketahui secara detail. Sejarah perkembangan komputer berawal dari penemuan seorang yang bernama Charles Babbage. Dia adalah seorang ilmuwan di dunia yang telah banyak memberikan kontribusi bagi kehidupan manusia, terutama perkembangan komputer.

Penemuan fenomenalnya yaitu Mesin penghitung (Difference Engine no.1) merupakan salah satu penemuan yang paling terkenal dalam sejarah perkembangan komputer dan merupakan kalkulator otomatis pertama sebagai cikal bakal kompuer. Penemuan tersebut menjadikan Charles Babbage sebagai penemu konpur dan dijuluki sebagai bapak komputer.

Berikut ini sejarah komputer dan perkembanganya:

1822: Charles Babbage mengemukakan idenya yaitu sebuah alat yang dapat membantu manusia dalam melakukan penghitungan pada tingkat kompleksitas yang tinggi dan rumit. Mesin buatanya yang belum selesai tersebut saat ini di musiumkan di Museum of Science London.

1937: Dr. John V Atanasoff dan Clifford Berry mulai membuat design komputer digital elektronis pertama. Mereka memberi nama mesin tersebut ABC (Atanasoff-Berry Computer). Kemampuan mesin ABC tersebut hanya sebatas menghitung tambah dan pengurangan.

1943: Pada Perang Dunia 2, Seorang ilmuwan Inggris yang bernama Alan Turing mendesain komputer elektronik yang dibuat khusus bagi tentara Inggris. Tujuan pembuatan komputer tersebut agar dapat digunakan untuk menembus kode pertahanan Jerman.

1944: Howard Hathaway Aiken (Amerika) membuat yang diberi nama Mark I. Merupakan sebuah komputer hitung digital pertama. Komputer tersebut memiliki luas 7,45 kaki x 50 kaki, dengan berat 35 ton. Mark I sudah dapat digunakan untuk menghitung probabilitas.

1945: Dr. John von Neumann menulis sebuah konsep penyimpanan data. Pada saat itu masih berupa ide.

1946: Dr. John W. Mauchly dan J. Presper Eckert, jr. membuat komputer skala besar yang pertama, nama komputer tersebut adalah ENIAC (Electronic Numerical Integrator And Computer). Dunia juga beranggapan kedua orang ini sebagai penemu komputer digital.

ENIAC komputer memiliki berat 30 ton, terdiri dari 18.000 lampu tabung (transistor ukuran besar), dengan lebar 30 kaki x 50 kaki, memakai tenaga 160.000 watt. Saat pertamakali dioperasikan Pertama seluruh jaringan listrik di wilayah Philadelphia mendadak mati.

ENIAC sedikit lebih maju dibandingkan Mark I yang hanya dapat menghitung. ENIAC tidak hanya memiliki kemampuan menghitung, tambah, kurang, kali, bagi, tapi juga dapat diprogram untuk melakukan proses sederhana.

1951: The U.S. Bureau of Cencus menginstalasi komputer komersial pertama yang bernama  UNIVAC I (Universal Automatic Computer). UNIVAC I ini dikembangkan oleh Mauchly dan Eckert untuk Remington-Rand Corporation.

1947: William Shockley, John Bardeen, dan Walter Brattain merupakan penemu Transistor pertama di dunia. Semenjak ditemukanya transistor, ukuran komputer menjadi semakin kecil.

Demikian sejarah perkembangannya komputer  yang berasal dari dari berbagai sumber.

Selasa, 29 Januari 2013

open source

Dari Wikipedia bahasa Indonesia, ensiklopedia bebas

Sumber terbuka (Inggris: open source) adalah sistem pengembangan yang tidak dikoordinasi oleh suatu individu / lembaga pusat, tetapi oleh para pelaku yang bekerja sama dengan memanfaatkan kode sumber (source-code) yang tersebar dan tersedia bebas (biasanya menggunakan fasilitas komunikasi internet). Pola pengembangan ini mengambil model ala bazaar, sehingga pola Open Source ini memiliki ciri bagi komunitasnya yaitu adanya dorongan yang bersumber dari budaya memberi, yang artinya ketika suatu komunitas menggunakan sebuah program Open Source dan telah menerima sebuah manfaat kemudian akan termotivasi untuk menimbulkan sebuah pertanyaan apa yang bisa pengguna berikan balik kepada orang banyak.
Pola Open Source lahir karena kebebasan berkarya, tanpa intervensi berpikir dan mengungkapkan apa yang diinginkan dengan menggunakan pengetahuan dan produk yang cocok. Kebebasan menjadi pertimbangan utama ketika dilepas ke publik. Komunitas yang lain mendapat kebebasan untuk belajar, mengutak-ngatik, merevisi ulang, membenarkan ataupun bahkan menyalahkan, tetapi kebebasan ini juga datang bersama dengan tanggung jawab, bukan bebas tanpa tanggung jawab.

Konsep dan definisi

Pada intinya konsep sumber terbuka adalah membuka "kode sumber" dari sebuah perangkat lunak. Konsep ini terasa aneh pada awalnya dikarenakan kode sumber merupakan kunci dari sebuah perangkat lunak. Dengan diketahui logika yang ada di kode sumber, maka orang lain semestinya dapat membuat perangkat lunak yang sama fungsinya. Sumber terbuka hanya sebatas itu. Artinya, dia tidak harus gratis. Definisi sumber terbuka yang asli adalah seperti tertuang dalam OSD (Open Source Definition)/Definisi sumber terbuka.

Pergerakan sumber terbuka dan perangkat lunak bebas

Pergerakan perangkat lunak bebas dan sumber terbuka saat ini membagi pergerakannya dengan pandangan dan tujuan yang berbeda. Sumber terbuka adalah pengembangan secara metodelogi, perangkat lunak tidak bebas adalah solusi suboptimal. Bagi pergerakan perangkat lunak bebas, perangkat lunak tidak bebas adalah masalah sosial dan perangkat lunak bebas adalah solusi.

Android (sistem operasi)

Dari Wikipedia bahasa Indonesia, ensiklopedia bebas

Android adalah sistem operasi yang berbasis Linux untuk telepon seluler seperti telepon pintar dan komputer tablet. Android menyediakan platform terbuka bagi para pengembang untuk menciptakan aplikasi mereka sendiri untuk digunakan oleh bermacam peranti bergerak. Awalnya, Google Inc. membeli Android Inc., pendatang baru yang membuat peranti lunak untuk ponsel. Kemudian untuk mengembangkan Android, dibentuklah Open Handset Alliance, konsorsium dari 34 perusahaan peranti keras, peranti lunak, dan telekomunikasi, termasuk Google, HTC, Intel, Motorola, Qualcomm, T-Mobile, dan Nvidia.

Pada saat perilisan perdana Android, 5 November 2007, Android bersama Open Handset Alliance menyatakan mendukung pengembangan standar terbuka pada perangkat seluler. Di lain pihak, Google merilis kode–kode Android di bawah lisensi Apache, sebuah lisensi perangkat lunak dan standar terbuka perangkat seluler.

Di dunia ini terdapat dua jenis distributor sistem operasi Android. Pertama yang mendapat dukungan penuh dari Google atau Google Mail Services (GMS) dan kedua adalah yang benar–benar bebas distribusinya tanpa dukungan langsung Google atau dikenal sebagai Open Handset Distribution (OHD).

Sejarah

Kerjasama dengan Android Inc.

Pada Juli 2005, Google bekerjasama dengan Android Inc., perusahaan yang berada di Palo Alto, California Amerika Serikat. Para pendiri Android Inc. bekerja pada Google, di antaranya Andy Rubin, Rich Miner, Nick Sears, dan Chris White. Saat itu banyak yang menganggap fungsi Android Inc. hanyalah sebagai perangkat lunak pada telepon seluler. Sejak saat itu muncul rumor bahwa Google hendak memasuki pasar telepon seluler. Di perusahaan Google, tim yang dipimpin Rubin bertugas mengembangkan program perangkat seluler yang didukung oleh kernel Linux. Hal ini menunjukkan indikasi bahwa Google sedang bersiap menghadapi persaingan dalam pasar telepon seluler.

Produk awal

Sekitar September 2007 sebuah studi melaporkan bahwa Google mengajukan hak paten aplikasi telepon seluler (akhirnya Google mengenalkan Nexus One, salah satu jenis telepon pintar GSM yang menggunakan Android pada sistem operasinya. Telepon seluler ini diproduksi oleh HTC Corporation dan tersedia di pasaran pada 5 Januari 2010).

Pada 9 Desember 2008, diumumkan anggota baru yang bergabung dalam program kerja Android ARM Holdings, Atheros Communications, diproduksi oleh Asustek Computer Inc, Garmin Ltd, Softbank, Sony Ericsson, Toshiba Corp, dan Vodafone Group Plc. Seiring pembentukan Open Handset Alliance, OHA mengumumkan produk perdana mereka, Android, perangkat bergerak (mobile) yang merupakan modifikasi kernel Linux 2.6. Sejak Android dirilis telah dilakukan berbagai pembaruan berupa perbaikan bug dan penambahan fitur baru.

Telepon pertama yang memakai sistem operasi Android adalah HTC Dream, yang dirilis pada 22 Oktober 2008. Pada penghujung tahun 2009 diperkirakan di dunia ini paling sedikit terdapat 18 jenis telepon seluler yang menggunakan Android.

Android versi 1.1

Pada 9 Maret 2009, Google merilis Android versi 1.1. Android versi ini dilengkapi dengan pembaruan estetis pada aplikasi, jam alarm, voice search (pencarian suara), pengiriman pesan dengan Gmail, dan pemberitahuan email.

Android versi 1.5 (Cupcake)

Pada pertengahan Mei 2009, Google kembali merilis telepon seluler dengan menggunakan Android dan SDK (Software Development Kit) dengan versi 1.5 (Cupcake). Terdapat beberapa pembaruan termasuk juga penambahan beberapa fitur dalam seluler versi ini yakni kemampuan merekam dan menonton video dengan modus kamera, mengunggah video ke Youtube dan gambar ke Picasa langsung dari telepon, dukungan Bluetooth A2DP, kemampuan terhubung secara otomatis ke headset Bluetooth, animasi layar, dan keyboard pada layar yang dapat disesuaikan dengan sistem

Android versi 1.6 (Donut)

Donut (versi 1.6) dirilis pada bulan September dengan menampilkan proses pencarian yang lebih baik dibanding sebelumnya, penggunaan baterai indikator dan kontrol applet VPN. Fitur lainnya adalah galeri yang memungkinkan pengguna untuk memilih foto yang akan dihapus; kamera, camcorder dan galeri yang dintegrasikan; CDMA / EVDO, 802.1x, VPN, Gestures, dan Text-to-speech engine; kemampuan dial kontak; teknologi text to change speech (tidak tersedia pada semua ponsel; pengadaan resolusi VWGA.

Android versi 2.0/2.1 (Eclair)

Pada 3 Desember 2009 kembali diluncurkan ponsel Android dengan versi 2.0/2.1 (Eclair), perubahan yang dilakukan adalah pengoptimalan hardware, peningkatan Google Maps 3.1.2, perubahan UI dengan browser baru dan dukungan HTML5, daftar kontak yang baru, dukungan flash untuk kamera 3,2 MP, digital Zoom, dan Bluetooth 2.1.

Untuk bergerak cepat dalam persaingan perangkat generasi berikut, Google melakukan investasi dengan mengadakan kompetisi aplikasi mobile terbaik (killer apps - aplikasi unggulan). Kompetisi ini berhadiah $25,000 bagi setiap pengembang aplikasi terpilih. Kompetisi diadakan selama dua tahap yang tiap tahapnya dipilih 50 aplikasi terbaik.

Dengan semakin berkembangnya dan semakin bertambahnya jumlah handset Android, semakin banyak pihak ketiga yang berminat untuk menyalurkan aplikasi mereka kepada sistem operasi Android. Aplikasi terkenal yang diubah ke dalam sistem operasi Android adalah Shazam, Backgrounds, dan WeatherBug. Sistem operasi Android dalam situs Internet juga dianggap penting untuk menciptakan aplikasi Android asli, contohnya oleh MySpace dan Facebook.

Android versi 2.2 (Froyo: Frozen Yoghurt)

Pada 20 Mei 2010, Android versi 2.2 (Froyo) diluncurkan. Perubahan-perubahan umumnya terhadap versi-versi sebelumnya antara lain dukungan Adobe Flash 10.1, kecepatan kinerja dan aplikasi 2 sampai 5 kali lebih cepat, intergrasi V8 JavaScript engine yang dipakai Google Chrome yang mempercepat kemampuan rendering pada browser, pemasangan aplikasi dalam SD Card, kemampuan WiFi Hotspot portabel, dan kemampuan auto update dalam aplikasi Android Market.

Android versi 2.3 (Gingerbread)

Pada 6 Desember 2010, Android versi 2.3 (Gingerbread) diluncurkan. Perubahan-perubahan umum yang didapat dari Android versi ini antara lain peningkatan kemampuan permainan (gaming), peningkatan fungsi copy paste, layar antar muka (User Interface) didesain ulang, dukungan format video VP8 dan WebM, efek audio baru (reverb, equalization, headphone virtualization, dan bass boost), dukungan kemampuan Near Field Communication (NFC), dan dukungan jumlah kamera yang lebih dari satu.

Android versi 3.0/3.1 (Honeycomb)

Android Honeycomb dirancang khusus untuk tablet. Android versi ini mendukung ukuran layar yang lebih besar. User Interface pada Honeycomb juga berbeda karena sudah didesain untuk tablet. Honeycomb juga mendukung multi prosesor dan juga akselerasi perangkat keras (hardware) untuk grafis. Tablet pertama yang dibuat dengan menjalankan Honeycomb adalah Motorola Xoom. Perangkat tablet dengan platform Android 3.0 akan segera hadir di Indonesia. Perangkat tersebut bernama Eee Pad Transformer produksi dari Asus. Rencana masuk pasar Indonesia pada Mei 2011.

Android versi 4.0 (ICS: Ice Cream Sandwich)

Diumumkan pada tanggal 19 Oktober 2011, membawa fitur Honeycomb untuk smartphone dan menambahkan fitur baru termasuk membuka kunci dengan pengenalan wajah, jaringan data pemantauan penggunaan dan kontrol, terpadu kontak jaringan sosial, perangkat tambahan fotografi, mencari email secara offline, dan berbagi informasi dengan menggunakan NFC. Ponsel pertama yang menggunakan sistem operasi ini adalah Samsung Galaxy Nexus.

Android versi 4.1 (Jelly Bean)

Android Jelly Bean yaang diluncurkan pada acara Google I/O lalu membawa sejumlah keunggulan dan fitur baru. Penambahan baru diantaranya meningkatkan input keyboard, desain baru fitur pencarian, UI yang baru dan pencarian melalui Voice Search yang lebih cepat. Tak ketinggalan Google Now juga menjadi bagian yang diperbarui. Google Now memberikan informasi yang tepat pada waktu yang tepat pula. Salah satu kemampuannya adalah dapat mengetahui informasi cuaca, lalu-lintas, ataupun hasil pertandingan olahraga. Sistem operasi Android Jelly Bean 4.1 muncul pertama kali dalam produk tablet Asus, yakni Google Nexus 7.

Android versi 4.2 (Jelly Bean)

Fitur photo sphere untuk panaroma, daydream sebagai screensaver, power control, lock screen widget, menjalankan banyak user (dalam tablet saja), widget terbaru. Android 4.2 Pertama kali dikenalkan melalui LG Google Nexus 4

Fitur

Fitur yang tersedia di Android adalah:
  • Kerangka aplikasi: itu memungkinkan penggunaan dan penghapusan komponen yang tersedia.
  • Dalvik mesin virtual: mesin virtual dioptimalkan untuk perangkat telepon seluler.
  • Grafik: grafik di 2D dan grafis 3D berdasarkan pustaka OpenGL.
  • SQLite: untuk penyimpanan data.
  • Mendukung media: audio, video, dan berbagai format gambar (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
  • GSM, Bluetooth, EDGE, 3G, 4G dan WiFi (tergantung piranti keras)
  • Kamera, Global Positioning System (GPS), kompas, NFC dan accelerometer (tergantung piranti keras)

Android bagi komunitas sumber terbuka

Android memiliki berbagai keunggulan sebagai piranti lunak yang memakai basis kode komputer yang bisa didistribusikan secara terbuka (open source) sehingga pengguna bisa membuat aplikasi baru di dalamnya. Android memiliki aplikasi native Google yang terintegrasi seperti pushmail Gmail, Google Maps, dan Google Calendar.

Para penggemar open source kemudian membangun komunitas yang membangun dan berbagi Android berbasis firmware dengan sejumlah penyesuaian dan fitur-fitur tambahan, seperti FLAC lossless audio dan kemampuan untuk menyimpan download aplikasi pada microSD card. Mereka sering memperbaharui paket-paket firmware dan menggabungkan elemen-elemen fungsi Android yang belum resmi diluncurkan dalam suatu carrier-sanction firmware.

 

Algoritma dan Pemrograman

1.  Apakah Itu Algoritma
Ditinjau dari asal-usul katanya, kata Algoritma sendiri mempunyai sejarah yang aneh. Orang hanya menemukan kata algorism yang berarti proses menghitung dengan angka arab. Anda dikatakan algorist jika Anda menghitung menggunakan angka arab. Para ahli bahasa berusaha menemukan asal kata ini namun hasilnya kurang memuaskan. Akhirnya para ahli sejarah matematika menemukan asal kata tersebut yang berasal dari nama penulis buku arab yang terkenal yaitu Abu Ja’far Muhammad Ibnu Musa Al-Khuwarizmi. Al-Khuwarizmi dibaca orang barat menjadi Algorism. Al-Khuwarizmi menulis buku yang berjudul Kitab Al Jabar Wal-Muqabala yang artinya “Buku pemugaran dan pengurangan” (The book of restoration and reduction). Dari judul buku itu kita juga memperoleh akar kata “Aljabar” (Algebra). Perubahan kata dari algorism menjadi algorithm muncul karena kata algorism sering dikelirukan dengan arithmetic, sehingga akhiran –sm berubah menjadi –thm. Karena perhitungan dengan angka Arab sudah menjadi hal yang biasa, maka lambat laun kata algorithm berangsur-angsur dipakai sebagai metode perhitungan (komputasi) secara umum, sehingga kehilangan makna kata aslinya. Dalam bahasa Indonesia, kata algorithm diserap menjadi algoritma.
2.  Definisi Algoritma

“Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis dan logis”. Kata logis merupakan kata kunci dalam algoritma. Langkah-langkah dalam algoritma harus logis dan harus dapat ditentukan bernilai salah atau benar. Dalam beberapa konteks, algoritma adalah spesifikasi urutan langkah untuk melakukan pekerjaan tertentu. Pertimbangan dalam pemilihan algoritma adalah, pertama, algoritma haruslah benar. Artinya algoritma akan memberikan keluaran yang dikehendaki dari sejumlah masukan yang diberikan. Tidak peduli sebagus apapun algoritma, kalau memberikan keluaran yang salah, pastilah algoritma tersebut bukanlah algoritma yang baik.
Pertimbangan kedua yang harus diperhatikan adalah kita harus mengetahui seberapa baik hasil yang dicapai oleh algoritma tersebut. Hal ini penting terutama pada algoritma untuk menyelesaikan masalah yang memerlukan aproksimasi hasil (hasil yang hanya berupa pendekatan). Algoritma yang baik harus mampu memberikan hasil yang sedekat mungkin dengan nilai yang sebenarnya.
Ketiga adalah efisiensi algoritma. Efisiensi algoritma dapat ditinjau dari 2 hal yaitu efisiensi waktu dan memori. Meskipun algoritma memberikan keluaran yang benar (paling mendekati), tetapi jika kita harus menunggu berjam-jam untuk mendapatkan keluarannya, algoritma tersebut biasanya tidak akan dipakai, setiap orang menginginkan keluaran yang cepat. Begitu juga dengan memori, semakin besar memori yang terpakai maka semakin buruklah algoritma tersebut. Dalam kenyataannya, setiap orang bisa membuat algoritma yang berbeda untuk menyelesaikan suatu permasalahan, walaupun terjadi perbedaan dalam menyusun algoritma, tentunya kita mengharapkan keluaran yang sama. Jika terjadi demikian, carilah algoritma yang paling efisien dan cepat.
3.  Beda Algoritma dan Program

Program adalah kumpulan pernyataan komputer, sedangkan metode dan tahapan sistematis dalam program adalah algoritma. Program ditulis dengan menggunakan bahasa pemrograman. Jadi bisa disebut bahwa program adalah suatu implementasi dari bahasa pemrograman. Beberapa pakar memberi formula bahwa :

Program = Algoritma + Bahasa (Struktur Data)
Bagaimanapun juga struktur data dan algoritma berhubungan sangat erat pada sebuah program. Algoritma yang baik tanpa pemilihan struktur data yang tepat akan membuat program menjadi kurang baik, demikian juga sebaliknya.

Pembuatan algoritma mempunyai banyak keuntungan di antaranya :
  • Pembuatan atau penulisan algoritma tidak tergantung pada bahasa pemrograman manapun, artinya penulisan  algoritma independen dari bahasa pemrograman dan komputer yang melaksanakannya.
  • Notasi algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman.
  • Apapun bahasa pemrogramannya, output yang akan dikeluarkan sama karena algoritmanya sama.
Beberapa hal yang perlu diperhatikan dalam membuat algoritma :
  • Teks algoritma berisi deskripsi langkah-langkah penyelesaian masalah. Deskripsi tersebut dapat ditulis dalam notasi apapun asalkan mudah dimengerti dan dipahami.
  • Tidak ada notasi yang baku dalam penulisan teks algoritma seperti notasi bahasa pemrograman. Notasi yang digunakan dalam menulis algoritma disebut notasi algoritmik.
  • Setiap orang dapat membuat aturan penulisan dan notasi algoritmik sendiri. Hal ini dikarenakan teks algoritma tidak sama dengan teks program. Namun, supaya notasi algoritmik mudah ditranslasikan ke dalam notasi bahasa pemrograman tertentu, maka sebaiknya notasi algoritmik tersebut berkorespondensi dengan notasi bahasa pemrograman secara umum.
  • Notasi algoritmik bukan notasi bahasa pemrograman, karena itu pseudocode dalam notasi algoritmik tidak dapat dijalankan oleh komputer. Agar dapat dijalankan oleh komputer, pseudocode dalam notasi algoritmik harus ditranslasikan atau diterjemahkan ke dalam notasi bahasa pemrograman yang dipilih. Perlu diingat bahwa orang yang menulis program sangat terikat dalam aturan tata bahasanya dan spesifikasi mesin yang menjalannya.
  • Algoritma sebenarnya digunakan untuk membantu kita dalam mengkonversikan suatu permasalahan ke dalam bahasa pemrograman.
  • Algoritma merupakan hasil pemikiran konseptual, supaya dapat dilaksanakan oleh komputer, algoritma harus ditranslasikan ke dalam notasi bahasa pemrograman. Ada beberapa hal yang harus diperhatikan pada translasi tersebut, yaitu :
  1. Pendeklarasian variabel. Untuk mengetahui dibutuhkannya pendeklarasian variabel dalam penggunaan bahasa pemrograman apabila    tidak semua bahasa pemrograman membutuhkannya.
  2. Pemilihan tipe data, Apabila bahasa pemrograman yang akan digunakan membutuhkan pendeklarasian variabel maka perlu hal ini dipertimbangkan pada saat pemilihan tipe data.
  3. Pemakaian instruksi-instruksi, Beberapa instruksi mempunyai kegunaan yang sama tetapi masing-masing memiliki kelebihan dan kekurangan yang berbeda.
  4. Aturan sintaksis, Pada saat menuliskan program kita terikat dengan aturan sintaksis dalam bahasa pemrograman yang akan digunakan.
  5. Tampilan hasil Pada saat membuat algoritma kita tidak memikirkan tampilan hasil yang akan disajikan. Hal-hal teknis ini diperhatikan ketika mengkonversikannya menjadi program.
  6. Cara pengoperasian compiler atau interpreter. Bahasa pemrograman yang digunakan termasuk dalam kelompok compiler atau interpreter.

4.  Algoritma Merupakan Jantung Ilmu Informatika

Algoritma adalah jantung ilmu komputer atau informatika. Banyak cabang ilmu komputer yang mengarah ke dalam terminologi algoritma. Namun, jangan beranggapan algoritma selalu identik dengan ilmu komputer saja. Dalam kehidupan sehari-hari pun banyak terdapat proses yang dinyatakan dalam suatu algoritma. Cara-cara membuat kue atau masakan yang dinyatakan dalam suatu resep juga dapat disebut sebagai algoritma. Pada setiap resep selalu ada urutan langkah-langkah membuat masakan. Bila langkah-langkahnya tidak logis, tidak dapat dihasilkan masakan yang diinginkan. Ibu-ibu yang mencoba suatu resep masakan akan membaca satu per satu langkah-langkah pembuatannya lalu ia mengerjakan proses sesuai yang ia baca. Secara umum, pihak (benda) yang mengerjakan proses disebut pemroses (processor). Pemroses tersebut dapat berupa manusia, komputer, robot atau alat-alat elektronik lainnya. Pemroses melakukan suatu proses dengan melaksanakan atau “mengeksekusi” algoritma yang menjabarkan proses tersebut.

Algoritma adalah deskripsi dari suatu pola tingkah laku yang dinyatakan secara primitif yaitu aksi-aksi yang didefenisikan sebelumnya dan diberi nama, dan diasumsikan sebelumnya bahwa aksi-aksi tersebut dapat kerjakan sehingga dapat menyebabkan kejadian.

Melaksanakan algoritma berarti mengerjakan langkah-langkah di dalam algoritma tersebut. Pemroses mengerjakan proses sesuai dengan algoritma yang diberikan kepadanya. Juru masak membuat kue berdasarkan resep yang diberikan kepadanya, pianis memainkan lagu berdasarkan papan not balok. Karena itu suatu algoritma harus dinyatakan dalam bentuk yang dapat dimengerti oleh pemroses. Jadi suatu pemroses harus:
  • Mengerti setiap langkah dalam algoritma.
  • Mengerjakan operasi yang bersesuaian dengan langkah tersebut.
5.  Mekanisme Pelaksanaan Algoritma oleh Pemroses
Komputer hanyalah salah satu pemroses. Agar dapat dilaksanakan oleh komputer, algoritma harus ditulis dalam notasi bahasa pemrograman sehingga dinamakan program. Jadi program adalah perwujudan atau implementasi teknis algoritma yang ditulis dalam bahasa pemrograman tertentu sehingga dapat dilaksanakan oleh komputer.

Kata “algoritma” dan “program” seringkali dipertukarkan dalam penggunaannya. Misalnya ada orang yang berkata seperti ini: “program pengurutan data menggunakan algoritma selection sort”. Atau pertanyaan seperti ini: “bagaimana algoritma dan program menggambarkan grafik tersebut?”. Jika Anda sudah memahami pengertian algoritma yang sudah disebutkan sebelum ini, Anda dapat membedakan arti kata algoritma dan program. Algoritma adalah langkah-langkah penyelesaikan masalah, sedangkan program adalah realisasi algoritma dalam bahasa pemrograman. Program ditulis dalam salah satu bahasa pemrograman dan kegiatan membuat program disebut pemrograman (programming). Orang yang menulis program disebut pemrogram (programmer). Tiap-tiap langkah di dalam program disebut pernyataan atau instruksi. Jadi, program tersusun atas sederetan instruksi. Bila suatu instruksi dilaksanakan, maka operasi-operasi yang bersesuaian dengan instruksi tersebut dikerjakan komputer.

Secara garis besar komputer tersusun atas empat komponen utama yaitu, piranti masukan, piranti keluaran, unit pemroses utama, dan memori. Unit pemroses utama (Central Processing Unit – CPU) adalah “otak” komputer, yang berfungsi mengerjakan operasi-operasi dasar seperti operasi perbandingan, operasi perhitungan, operasi membaca, dan operasi menulis. Memori adalah komponen yang berfungsi menyimpan atau mengingatingat.

Yang disimpan di dalam memori adalah program (berisi operasi-operasi yang akan dikerjakan oleh CPU) dan data atau informasi (sesuatu yang diolah oleh operasi-operasi). Piranti masukan dan keluaran (I/O devices) adalah alat yang memasukkan data atau program ke dalam memori, dan alat yang digunakan komputer untuk mengkomunikasikan hasil-hasil aktivitasnya. Contoh piranti masukan antara lain, papan kunci (keyboard), pemindai (scanner), dan cakram (disk). Contoh piranti keluaran adalah, layar peraga (monitor), pencetak (printer), dan cakram.

Mekanisme kerja keempat komponen di atas dapat dijelaskan sebagai berikut. Mula-mula program dimasukkan ke dalam memori komputer. Ketika program dilaksanakan (execute), setiap instruksi yang telah tersimpan di dalam memori dikirim ke CPU. CPU mengerjakan operasioperasi yang bersesuaian dengan instruksi tersebut. Bila suatu operasi memerlukan data, data dibaca dari piranti masukan, disimpan di dalam memori lalu dikirim ke CPU untuk operasi yang memerlukannya tadi. Bila proses menghasilkan keluaran atau informasi, keluaran disimpan ke dalam memori, lalu memori menuliskan keluaran tadi ke piranti keluaran (misalnya dengan menampilkannya di layar monitor).

6.  Belajar Memprogram dan Belajar Bahasa Pemrograman
Belajar memprogram tidak sama dengan belajar bahasa pemrograman. Belajar memprogram adalah belajar tentang metodologi pemecahan masalah, kemudian menuangkannya dalam suatu notasi tertentu yang mudah dibaca dan dipahami. Sedangkan belajar bahasa pemrograman berarti belajar memakai suatu bahasa aturan-aturan tata bahasanya, pernyataan-pernyataannya, tata cara pengoperasian compiler-nya, dan memanfaatkan pernyataan-pernyataan tersebut untuk membuat program yang ditulis hanya dalam bahasa itu saja. Sampai saat ini terdapat puluhan bahasa pemrogram, antara lain bahasa rakitan (assembly), Fortran, Cobol, Ada, PL/I, Algol, Pascal, C, C++, Basic, Prolog, LISP, PRG, bahasabahasa simulasi seperti CSMP, Simscript, GPSS, Dinamo. Berdasarkan terapannya, bahasa pemrograman dapat digolongkan atas dua kelompok besar :
  • Bahasa pemrograman bertujuan khusus. Yang termasuk kelompok ini adalah Cobol (untuk terapan bisnis dan administrasi). Fortran (terapan komputasi ilmiah), bahasa rakitan (terapan pemrograman mesin), Prolog (terapan kecerdasan buatan), bahasa-bahasa simulasi, dan sebagainya.
  • Bahasa perograman bertujuan umum, yang dapat digunakan untuk berbagai aplikasi. Yang termasuk kelompok ini adalah bahasa Pascal, Basic dan C. Tentu saja pembagian ini tidak kaku. Bahasabahasabertujuan khusus tidak berarti tidak bisa digunakan untuk aplikasi lain. Cobol misalnya, dapat juga digunakan untuk terapan ilmiah, hanya saja kemampuannya terbatas. Yang jelas, bahasabahasa pemrograman yang berbeda dikembangkan untuk bermacam-macam terapan yang berbeda pula.
Berdasarkan pada apakah notasi bahasa pemrograman lebih “dekat” ke mesin atau ke bahasa manusia, maka bahasa pemrograman dikelompokkan atas dua macam :
  • Bahasa tingkat rendah. Bahasa jenis ini dirancang agar setiap instruksinya langsung dikerjakan oleh komputer, tanpa harus melalui penerjemah (translator). Contohnya adalah bahasa mesin. CPU mengambil instruksi dari memori, langsung mengerti dan langsung mengerjakan operasinya. Bahasa tingkat rendah bersifat primitif, sangat sederhana, orientasinya lebih dekat ke mesin, dan sulit dipahami manusia. Sedangkan bahasa rakitan dimasukkan ke dalam kelompok ini karena alasan notasi yang dipakai dalam bahasa ini lebih dekat ke mesin, meskipun untuk melaksanakan instruksinya masih perlu penerjemahan ke dalam bahasa mesin.
  • Bahasa tingkat tinggi, yang membuat pemrograman lebih mudah dipahami, lebih “manusiawi”, dan berorientasi ke bahasa manusia (bahasa Inggris). Hanya saja, program dalam bahasa tingkat tinggi tidak dapat langsung dilaksanakan oleh komputer. Ia perlu diterjemahkan terlebih dahulu oleh sebuah translator bahasa (yang disebut kompilator atau compiler) ke dalam bahasa mesin sebelum akhirnya dieksekusi oleh CPU. Contoh bahasa tingkat tinggi adalah Pascal, PL/I, Ada, Cobol, Basic, Fortran, C, C++, dan sebagainya.
7.  Menilai Sebuah Algoritma

Ketika manusia berusaha memecahkan masalah, metode atau teknik yang digunakan untuk memecahkan masalah itu ada kemungkinan bisa banyak (tidak hanya satu). Dan kita memilih mana yang terbaik di antara teknikteknik itu. Hal ini sama juga dengan algoritma, yang memungkinkan suatu permasalahan dipecahkan dengan metode dan logika yang berlainan. Yang menjadi pertanyaan adalah bagaimana mengukur mana algoritma yang terbaik?. Beberapa persyaratan untuk menjadi algoritma yang baik adalah :
  • Tingkat kepercayaannya tinggi (realibility). Hasil yang diperoleh dari proses harus berakurasi tinggi dan benar.
  • Pemrosesan yang efisien (cost rendah). Proses harus diselesaikan secepat mungkin dan frekuensi kalkulasi yang sependek mungkin.
  • Sifatnya general. Bukan sesuatu yang hanya untuk menyelesaikan satu kasus saja, tapi juga untuk kasus lain yang lebih general.
  • Bisa dikembangkan (expandable). Haruslah sesuatu yang dapat kita kembangkan lebih jauh berdasarkan perubahan requirement yang ada.
  • Mudah dimengerti. Siapapun yang melihat, dia akan bisa memahami algoritma Anda. Susah dimengertinya suatu program akan membuat susah di-maintenance (kelola).
  • Portabilitas yang tinggi (portability). Bisa dengan mudah diimplementasikan di berbagai platform komputer.
  • Precise (tepat, betul, teliti). Setiap instruksi harus ditulis dengan seksama dan tidak ada keragu-raguan, dengan demikian setiap instruksi harus dinyatakan secara eksplisit dan tidak ada bagian yang dihilangkan karena pemroses dianggap sudah mengerti. Setiap langkah harus jelas dan pasti.
Contoh :   Tambahkan 1 atau 2 pada x.
Instruksi di atas terdapat keraguan.
  • Jumlah langkah atau instruksi berhingga dan tertentu. Artinya, untuk kasus yang sama banyaknya, langkah harus tetap dan tertentu meskipun datanya berbeda.
  • Efektif. Tidak boleh ada instruksi yang tidak mungkin dikerjakan oleh pemroses yang akan menjalankannya.
Contoh :   Hitung akar 2 dengan presisi sempurna.
Instruksi di atas tidak efektif, agar efektif instruksi tersebut diubah.
Misal : Hitung akar 2 sampai lima digit di belakang koma.
  • Harus terminate. Jalannya algoritma harus ada kriteria berhenti. Pertanyaannya adalah apakah bila jumlah instruksinya berhingga maka pasti terminate?
  • Output yang dihasilkan tepat. Jika langkah-langkah algoritmanya logis dan diikuti dengan seksama maka dihasilkan output yang diinginkan.
Sedangkan kriteria Algoritma menurut Donald E. Knuth adalah :
  1. Input: algoritma dapat memiliki nol atau lebih inputan dari luar.
  2. Output: algoritma harus memiliki minimal satu buah output keluaran.
  3. Definiteness (pasti): algoritma memiliki instruksi-instruksi yang jelas dan tidak ambigu.
  4. Finiteness (ada batas): algoritma harus memiliki titik berhenti (stopping role).
  5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan dan efektif. Contoh instruksi yang tidak efektif adalah: A = A + 0 atau A = A * 1
Namun ada beberapa program yang memang dirancang untuk unterminatable : contoh Sistem Operasi.
8.  Penyajian Algoritma
Penyajian algoritma secara garis besar bisa dalam 2 bentuk penyajian yaitu tulisan dan gambar. Algoritma yang disajikan dengan tulisan yaitu dengan struktur bahasa tertentu (misalnya bahasa Indonesia atau bahasa Inggris) dan pseudocode. Pseudocode adalah kode yang mirip dengan kode pemrograman yang sebenarnya seperti Pascal, atau C, sehingga lebih tepat digunakan untuk menggambarkan algoritma yang akan dikomunikasikan kepada pemrogram. Sedangkan algoritma disajikan dengan gambar, misalnya dengan flowchart. Secara umum, pseudocode mengekspresikan ide-ide secara informal dalam proses penyusunan algoritma. Salah satu cara untuk menghasilkan kode pseudo adalah dengan meregangkan aturan-aturan bahasa formal yang dengannya versi akhir dari algoritma akan diekspresikan. Pendekatan ini umumnya digunakan ketika bahasa pemrograman yang akan digunakan telah diketahui sejak awal.

Flowchart merupakan gambar atau bagan yang memperlihatkan urutan dan hubungan antar proses beserta pernyataannya. Gambaran ini dinyatakan dengan simbol. Dengan demikian setiap simbol menggambarkan proses tertentu. Sedangkan antara proses digambarkan dengan garis penghubung. Dengan menggunakan flowchart akan memudahkan kita untuk melakukan pengecekan bagian-bagian yang terlupakan dalam analisis masalah. Di
samping itu flowchart juga berguna sebagai fasilitas untuk berkomunikasi antara pemrogram yang bekerja dalam tim suatu proyek.
Ada dua macam flowchart yang menggambarkan proses dengan komputer, yaitu :
Flowchart sistem yaitu bagan dengan simbol-simbol tertentu yang menggambarkan urutan prosedur dan proses suatu file dalam suatu media menjadi file di dalam media lain, dalam suatu sistem pengolahan data.
  • Flowchart program yaitu bagan dengan simbol-simbol tertentu yang menggambarkan urutan proses dan hubungan antar proses secara mendetail di dalam suatu program.

Kaidah-Kaidah Umum Pembuatan Flowchart Program
Dalam pembuatan flowchart Program tidak ada rumus atau patokan yang bersifat mutlak. Karena flowchart merupakan gambaran hasil pemikiran dalam menganalisis suatu masalah dengan komputer. Sehingga flowchart yang dihasilkan dapat bervariasi antara satu pemrogram dengan yang lainnya. Namun secara garis besar setiap pengolahan selalu terdiri atas 3 bagian utama, yaitu :
  1. Input,
  2. Proses pengolahan dan
  3. Output
Untuk pengolahan data dengan komputer, urutan dasar pemecahan suatu masalah:
  1. START, berisi pernyataan untuk persiapan peralatan yang diperlukan sebelum menangani pemecahan persoalan.
  2. READ, berisi pernyataan kegiatan untuk membaca data dari suatu peralatan input.
  3. PROSES, berisi kegiatan yang berkaitan dengan pemecahan persoalan sesuai dengan data yang dibaca.
  4. WRITE, berisi pernyataan untuk merekam hasil kegiatan ke peralatan output.
  5. END, mengakhiri kegiatan pengolahan.
Walaupun tidak ada kaidah-kaidah yang baku dalam penyusunan flowchart, namun ada beberapa anjuran :
  1. Hindari pengulangan proses yang tidak perlu dan logika yang berbelit sehingga jalannya proses menjadi singkat.
  2. Jalannya proses digambarkan dari atas ke bawah dan diberikan tanda panah untuk memperjelas.
  3. Sebuah flowchart diawali dari satu titik START dan diakhiri dengan END.

Komputer tablet

Dari Wikipedia bahasa Indonesia, ensiklopedia bebas

Sabak elektronik atau komputer tablet (bahasa Inggris: tablet computer), atau ringkasnya tablet, adalah suatu komputer portabel lengkap yang seluruhnya berupa layar sentuh datar. Ciri pembeda utamanya adalah penggunaan layar sebagai peranti masukan dengan menggunakan stilus, pena digital, atau ujung jari, alih-alih menggunakan papan ketik atau tetikus. Microsoft memperkenalkan versi Windows XP untuk komputer tablet yang disebutnya Tablet PC pada tahun 2000, sedangkan Apple baru meluncurkan versi komputer tabletnya pada tahun 2010 dengan nama iPad. Pada tahun 2011 Samsung meluncurkan versi komputer tablet Galaxy Tab 7 (yang kemudian dilanjutkan dengan peluncuran Samsung Galaxy Tab 7.0 Plus) dan 10.1(P7100)

Piranti lunak sistem

Microsoft Windows

Setelah mengembangkan Windows for Pen Computing, Microsoft mengembangkan dukungan untuk tablet yang dapat menjalankan Windows dengan nama Tablet PC Microsoft. Menurut definisi Microsoft 2001, "Microsoft Tablet PC" berbasis pena dan merupakan PC x86 yang memiliki fungsi tulisan tangan dan pengenalan suara. Tablet PC menggunakan piranti keras yang sama seperti laptop biasa tetapi menambahkan dukungan untuk input pena. Untuk dukungan khusus bagi input pena, Microsoft merilis Windows XP Tablet PC Edition. Saat ini tidak ada versi khusus Windows Tablet namun dukungan dibangun untuk kedua versi Home dan Business Windows Vista dan Windows 7. Tablet yang menjalankan Windows mendapatkan fungsi tambahan menggunakan layar sentuh untuk masukan mouse, pengenalan tulisan tangan, dan dukungan gesture. Setelah Tablet PC, Microsoft mengumumkan inisiatif UMPC pada tahun 2006 yang membawa tablet Windows ke faktor dengan bentuk yang lebih kecil dan berpusat pada sentuhan. Ini diluncurkan kembali pada tahun 2010 sebagai Slate PC, untuk mempromosikan tablet yang menjalankan Windows 7, menjelang peluncuran iPad Apple. Slate PC diharapkan dapat memperoleh manfaat dari kemajuan perangkat mobile yang berasal dari keberhasilan netbook.

Sementara banyak produsen tablet pindah ke arsitektur ARM dengan sistem operasi ringan, Microsoft tetap pada Windows. Meskipun Microsoft memiliki Windows CE untuk dukungan ARM ia telah menjaga target pasarnya untuk industri smartphone dengan Windows Mobile dan Windows baru berbasis Windows CE 6, Windows Phone 7. Beberapa produsen, bagaimanapun, tetap menunjukkan prototipe tablet berbasis Windows CE yang menjalankan kerangka biasa.

Dengan suksesi Windows Vista, fungsi Tablet PC tidak memerlukan lagi edisi yang terpisah. Dukungan Tablet PC dibangun ke semua edisi Windows Vista dengan pengecualian Home Basic dan edisi Starter. Hal ini memperluas pengenalan tulisan tangan, koleksi tinta, dan metode input tambahan untuk setiap komputer yang menjalankan Vista bahkan jika perangkat input adalah digitizer eksternal, layar sentuh, atau bahkan mouse biasa. Vista juga mendukung fungsi multi-sentuh dan gerak tubuh (awalnya dikembangkan untuk versi Microsoft Surface untuk Vista) dan sekarang digunakan oleh publik dengan merilis tablet multi-sentuh. Windows Vista juga secara signifikan meningkatkan fungsi pengenalan tulisan tangan dengan pengenalan personalisasi alat pengenalan tulisan tangan selayaknya alat belajar tulisan tangan otomatis.

Fungsionalitas tablet tersedia di semua edisi Windows 7 kecuali edisi Starter. Ini memperkenalkan Matematika baru Input Panel yang mengenali ekspresi dan formula matematika tulisan tangan, serta terintegrasi dengan program lain. Windows 7 juga secara signifikan meningkatkan input pena dan handwriting recognition dengan menjadi lebih cepat, lebih akurat, dan mendukung lebih banyak bahasa, termasuk sistem penulisan Asia Timur. Kamus kustom yang dipersonalisasi membantu melalui kosakata khusus (seperti istilah medis dan teknis), dan prediksi teks mempercepat proses input untuk membuat kegiatan mencatat lebih cepat. Teknologi multi-sentuh juga tersedia pada beberapa PC tablet, memungkinkan interaksi yang lebih maju dengan menggunakan isyarat sentuhan dengan jari-jari Anda seperti menggunakan mouse. Masalah mungkin timbul dengan fungsi tablet dari OS.

Windows 7 yang memiliki kemampuan sentuhan dibangun dengan teknologi Microsoft Surface. Ini adalah sentuhan-sentris gerakan dan UI peningkatan yang bekerja dengan sebagian besar komputer sentuhan saat ini. Di antara tablet PC pertama kali diluncurkan pada tahun 2010 berdasarkan pada sistem operasi Windows 7 adalah bModo12 dari bModo dan Samsung Galaxy.Windows memiliki sejarah teknologi tablet termasuk Windows XP Tablet PC Edition. Tablet PC Edition merupakan superset dari Windows XP Professional, fungsionalitas tablet perbedaan ini, termasuk input teks alternatif (Tablet PC Input Panel) dan driver dasar untuk mendukung piranti keras tablet PC tertentu. Persyaratan untuk menginstal Tablet PC Edition termasuk digitizer tablet atau perangkat touchscreen, dan tombol kontrol piranti keras termasuk tombol pintas Ctrl-Alt-Delete, tombol bergulir, dan setidaknya satu tombol aplikasi pengguna-dikonfigurasi.

Linux

Salah satu implementasi awal dari tablet Linux adalah ProGear oleh FrontPath. ProGear menggunakan chip Transmeta dan digitizer resistif. ProGear awalnya datang dengan versi Slackware Linux, tetapi kemudian bisa dibeli dengan Windows 98. Karena komputer tujuannya adalah IBM PC yang kompatibel, Windows 98 dapat menjalankan banyak sistem operasi yang berbeda. Namun, perangkat ini tidak lagi Dijual FrontPath telah menghentikan operasi. Penting untuk dicatat bahwa layar sentuh banyak sub-notebook komputer dapat menjalankan beberapa distribusi Linux dengan sedikit kustomisasi. X.org sekarang mendukung rotasi layar dan input melalui driver Wacom tablet, dan perangkat lunak pengenalan tulisan tangan baik dari Qtopia berbasis Qt dan GTK +-berbasis Internet Tablet OS menyediakan sistem yang menjanjikan bebas dan sumber terbuka untuk pengembangan di masa mendatang. Open source mencatat software di Linux termasuk aplikasi seperti Xournal (yang mendukung penjelasan file PDF), Gournal (catatan mengambil aplikasi berbasis Gnome), dan Jarnal berbasis Java (yang mendukung pengenalan tulisan tangan sebagai fungsi bawaan). Sebelum kedatangan perangkat lunak tersebut, banyak pengguna harus bergantung pada papan ketik pada layar dan metode input teks alternatif seperti Dasher. Ada program pengenalan tulisan tangan berdiri sendiri yang tersedia, CellWriter, yang mengharuskan pengguna untuk menulis surat secara terpisah dalam kotak. Sejumlah proyek Linux OS berbasis berdedikasi untuk tablet PC. Karena semua ini adalah open source, mereka tersedia secara bebas dan dapat dijalankan atau porting ke perangkat yang sesuai dengan desain tablet PC. Maemo (berubah menjadi MeeGo di tahun 2010), sebuah Debian Linux lingkungan pengguna berbasis grafik, dikembangkan untuk perangkat Nokia Internet Tablet (770, N800, N810 & N900). Hal ini sedang dalam generasi 5 (5G), dan memiliki susunan yang luas dari aplikasi yang tersedia di kedua repositori resmi dan didukung pengguna. Netbook Ubuntu edisi Remix, serta proyek yang disponsori Intel Moblin, keduanya memiliki dukungan layar sentuh diintegrasikan ke antarmuka pengguna mereka. Canonical telah mengisyaratkan tablet mendukung lebih baik dengan UI terpadu untuk Ubuntu 10.10. TabletKiosk saat ini menawarkan digitizer hibrida/perangkat sentuh menjalankan openSUSE Linux. Ini adalah perangkat pertama dengan fitur ini untuk mendukung Linux.

Tren ukuran layar

Seperti komputer portabel lain, ukuran yang lebih besar membawa kegunaan menjadi lebih mudah namun portabilitas yang lebih rendah dan kebutuhan tenaga yang lebih tinggi. Untuk komputer tablet saat ini, (bukan tablet PC) ukuran umum adalah 10 "(Digunakan oleh iPad) atau 7" (Digunakan oleh banyak tablet Android). Banyak pembuat tablet PC memiliki standar pada format layar lebar 12", dengan resolusi 1280x800 piksel. T5010 Fujitsu memiliki display lebih besar, 13,3", tapi masih berjalan pada resolusi 1280x800 pixel.

Sedangkan Dell dan Samsung membuat terobosan ukuran yang lebih kecil dari tablet pc dan lebih besar dari smartphone pada umumnya. Dell Streak memiliki ukuran layar 5 inchi dan Samsung Note memiliki 5.3 inchi.

Sejarah tablet PC

Daftar berikut merupakan beberapa pokok penting sejarah tablet PC:

Sebelum tahun 1950

  • 1888: US Paten diberikan kepada Elisa Gray pada perangkat stylus listrik untuk menangkap tulisan tangan.
  • 1915: US Patent pada antarmuka pengguna pengenalan tulisan tangan dengan stylus.
  • 1942: US Patent di layar sentuh untuk masukan tulisan tangan.
  • 1945: Vannevar Bush mengusulkan Memex, data pengarsipan perangkat termasuk input tulisan tangan, dalam esai As We May Think
  • 1950: Tom Dimond menunjukkan tablet Styalator elektronik dengan pena untuk input komputer dan perangkat lunak untuk pengenalan tulisan tangan teks secara real-time.

Tahun 1960-an

Awal tahun 60-an RAND Tablet ditemukan. RAND Tablet lebih dikenal daripada Styalator, namun diciptakan kemudian. Pada akhir 60-an Alan Kay dari Xerox PARC mengusulkan sebuah komputer notebook, dapat menggunakan input pena, yang disebut Dynabook: namun perangkat ini tidak pernah dibangun atau diimplementasikan dengan input pena.
  • 1966: Dalam serial televisi fiksi ilmiah Star Trek, awak kapal membawa, papan penjepit elektronik besar berbentuk baji, dioperasikan melalui penggunaan stylus.
  • 1982: Pencept dari Waltham, Massachusetts memasarkan terminal komputer untuk tujuan yang umum (general-purpose) menggunakan tablet dan pengenalan tulisan tangan, bukan papan ketik dan mouse. Sistem Cadre memasarkan terminal point-of-sale Inforite yang menggunakan pengenalan tulisan tangan dan sebuah tablet dan pena elektronik kecil.
  • 1985: Pencept dan CIC sama-sama menawarkan komputer PC untuk pasar konsumen menggunakan tablet dan pengenalan tulisan tangan, bukan keyboard dan mouse. Sistem operasi adalah MS-DOS.
  • 1989: Komputer portabel komersial pertama yang tersedia dalam tipe tablet adalah GRiDPad dari GRID Systems dirilis pada bulan September. The GridPad diproduksi oleh Samsung, dimodifikasi dari PenMaster Samsung yang tidak pernah berhasil mencapai distribusi komersial. Sistem operasinya didasarkan pada MS-DOS.
Wang Laboratories memperkenalkan Freestyle. Freestyle adalah sebuah aplikasi yang akan melakukan screen capture dari aplikasi MS-DOS, dan membiarkan pengguna menambahkan penjelasan suara dan tulisan tangan. Freestyle adalah pendahulu canggih yang kemudian dicatat sebagai aplikasi untuk sistem seperti PC Tablet. Sistem operasinya adalah MS-DOS Dalam kemitraan dengan Fujitsu, Poqet Computer Corporation mengumumkan kedatangan PC Poqet.

Tahun 1990-an

  • 1991: Pentop momentum ini dirilis. GO Corporation mengumumkan sistem operasi khusus, yang disebut PenPoint OS, menampilkan kontrol dari desktop sistem operasi melalui isyarat bentuk tulisan tangan. NCR merilis komputer pena model 3125 yang menjalankan MS-DOS, OS atau Pen Penpoint Windows. Apple Newton memasuki perkembangannya, walaupun akhirnya menjadi sebuah PDA, konsep aslinya mirip piranti keras dari sebuah PC Tablet.
  • 1992: GO Corporation mengirimkan OS PenPoint untuk ketersediaan yang umum dan IBM mengumumkan komputer pena IBM 2125 (model IBM pertama bernama "ThinkPad") pada bulan April. Microsoft merilis Windows for Pen Computing sebagai respon untuk OS PenPoint oleh GO Corporation.
  • 1993: Fujitsu merilis PC tablet Poqet pena pertama yang menggunakan LAN nirkabel terintegrasi. Apple Computer mengumumkan Newton PDA, juga dikenal sebagai MessagePad Apple, yang meliputi pengenalan tulisan tangan dengan stylus. IBM merilis ThinkPad, komputer portabel tablet komersial pertama dari IBM yang tersedia untuk pasar konsumen. AT & T memperkenalkan EO Personal Communicator menggabungkan PenPoint dengan komunikasi nirkabel. BellSouth merilis IBM Simon Personal Communicator, sebuah ponsel analog menggunakan tampilan dan layar sentuh. Ponsel ini tidak mendukung fitur pengenalan tulisan tangan, tapi pengguna dapat menulis pesan dan mengirimnya sebagai faks pada jaringan ponsel analog, termasuk fitur PDA dan Email.
  • 1999: "QBE" pena komputer diciptakan oleh Aqcess Technologies memenangkan Best Show COMDEX.

Tahun 2000-an

  • 2000: PaceBlade mengembangkan perangkat pertama yang memenuhi standar Microsoft Tablet PC dan menerima penghargaan piranti keras terbaik di VAR Visi 2000. Pena komputer "QBE Vivo" yang dibuat oleh Aqcess Technology mendapatkan Best of Show COMDEX.
  • 2001: Bill Gates dari Microsoft menunjukkan prototipe publik pertama dari sebuah PC Tablet (didefinisikan oleh Microsoft sebagai pena-komputer memungkinkan sesuai dengan spesifikasi piranti keras yang dibuat oleh Microsoft dan menjalankan salinan lisensi dari sistem operasi "Windows XP Tablet PC Edition") di COMDEX.
  • 2003: PaceBlade menerima penghargaan "Innovation des Jahres 2002/2003" untuk PC Tablet PaceBook dari PC Magazine Professionell di Cebit Fingerworks mengembangkan teknologi sentuhan dan gerakan sentuhan yang kemudian digunakan di iPhone Apple.
  • 2006: Samsung memperkenalkan Samsung Q1 UMPC. Windows Vista dirilis untuk ketersediaan umum. Vista termasuk fungsi Tablet PC edisi khusus dari Windows XP. Di Disney Channel Original Movie, Read It and Weep, Jamie menggunakan Tablet PC untuk jurnalnya.
  • 2007: Axiotron memperkenalkan Modbook, komputer (dan hanya) tablet pertama berdasarkan piranti keras Mac dan Mac OS X di Macworld.
  • 2008: Pada bulan April 2008, sebagai bagian dari kasus pengadilan federal yang lebih besar, fitur gerak tubuh sistem operasi dan piranti keras Windows/Tablet PC ditemukan melanggar paten oleh GO Corp tentang user interface untuk sistem operasi komputer pena. Akuisisi teknologi Microsoft adalah subyek dari tuntutan hukum yang terpisah. HP merilis tablet Multi-Touch kedua: HP TouchSmart seri tx2.
  • 2009: Asus mengumumkan sebuah netbook tablet, EEE PC T91 dan T91MT, yang terakhir yang dilengkapi dengan layar multi-sentuh. Always Innovating mengumumkan netbook tablet baru dengan CPU ARM. Motion Computing meluncurkan J3400.
  • 2010: MobileDemand meluncurkan T7000 xTablet Rugged Tablet PC yang menjalankan OS Windows dan fitur lengkap meliputi papan ketik numerik yang terintegrasi, barcode scanner, credit card reader, dll Apple memperkenalkan iPad, menjalankan Apple iOS. Sistem Quaduro memperkenalkan 10 "QuadPad 3G Plus, 900 gram Microsoft Windows berbasis 3G tablet PC dengan 8 jam masa pakai baterai. Samsung memperkenalkan Galaxy Tab, menjalankan Google Android. bModo meluncurkan bModo12 yang menjalankan Windows 7 OS dan fitur termasuk TFT-LCD 11,6", 3G, Wi-Fi, GPS, Bluetooth ® 2.1, USB 2.0, slot SDHC, slot kartu SIM yang tidak terkunci, konektor miniHDMI, OMTP Jack, webcam, mic, dll Neofonie melepaskan WeTab, tablet PC untuk menulis berbasis MeeGo, menampilkan layar multi-sentuh 11,6 inci pada resolusi 1366 × 768 piksel. Dixons Retail plc memperkenalkan Vega Advent, tablet PC 10" yang menjalankan Android 2.2, memiliki chipset Tegra NVIDIA 1 GHz, RAM dan ROM 512 Mb, kamera 1,3 MP, WiFi dengan konektivitas b/g, Bluetooth 2.1, slot kartu micro SD , USB port dan daya tahan baterai hingga 16 jam untuk pemutaran audio dan 6,5 jam untuk video 1080p. Dell Inspiron mengumumkan Netbook flip Duo Layar dan Tablet PC hibrida HP merilis Slate 500, yang menjalankan versi penuh Windows 7
  • 2011: Motorola mengumumkan Xoom Tablet, tablet 10 inci yang didukung oleh versi Android 3.0 yang akan datang, yaitu Honeycomb Asus EEE mengumumkan memo pad (tablet 7 inci), EEE Slate EP121 (tablet Windows 7), EEE Pad Transformer (tablet 10 inch dengan Android) dan EEE Pad Slider (tablet 10 inch dengan layar geser atas, keyboard QWERTY) [semua tablet menggunakan tampilan IPS] Dell menampilkan yang tablet Streak 7 dan mengatakan itu bekerja pada Streak 10 inci 10 Apple mengumumkan 2 iPad

Senin, 28 Januari 2013

Pemrograman komputer

Dari Wikipedia bahasa Indonesia, ensiklopedia bebas

Pemrograman komputer merupakan suatu proses iteratif penulisan dan penyuntingan kode sumber sehingga membentuk sebuah program. Penyuntingan kode sumber meliputi proses pengetesan, analisis, pembetulan kesalahan, pengoptimasian algoritma, normalisasi kode, dan kadang-kadang pengkoordinasian antara satu programmer dengan programmer lainnya jika sebuah program dikerjakan oleh beberapa orang dalam sebuah tim. Seorang praktisi yang memiliki keahlian untuk melakukan penulisan kode dalam bahasa pemrograman disebut sebagai programmer komputer atau programmer, pengembang perangkat lunak, atau koder. Istilah rekayasa perangkat lunak (bahasa Inggris: Software engineering) seringkali digunakan karena proses penulisan program tersebut dipandang sebagai suatu disiplin ilmu perekayasaan.

Paradigma pemrograman

Program komputer dapat dikategorikan menurut paradigma bahasa pemrograman yang digunakannya. Dua paradigma utama yang umum digunakan adalah imperatif dan deklaratif.

Program yang ditulis dalam bahasa pemrograman imperatif biasanya memiliki algoritma yang ditulis dalam serangkaian klausal pendeklarasian, ekspresi aritmatis, dan sejumlah perintah.Pendeklarasian meliputi pendeklarasian variabel serta tipe data atas variabel tersebut, contoh: var x: integer; Penggunaan ekpresi operasi aritmatis yang menghasilkan nilai, contoh: 2 + 2 menghasilkan nilai 4. Dan perintah yang melingkupi pendelegasian nilai atas hasil dari operasi aritmatis tersebut ke dalam sebuah variabel, contoh: x := 2 + 2; if x = 4 then lakukan_sesuatu(); Salah satu bentuk kritik atas implementasi imperatif ini adalah efek samping yang timbul atas pendelegasian perintah terhadap variabel yang berada diluar cakupan dari fungsi tersebut atau lebih dikenal sebagai non-local variable.

Program yang ditulis dengan bahasa deklaratif meliputi sejumlah properti yang harus dipenuhi untuk mendapatkan suatu bentuk hasil tertentu. Properti tersebut tidak mencerminkan suatu gambaran atas proses kerja suatu program namun merupakan suatu bentuk deklarasi relasional matematis atas sejumlah objek melaui properti-propertinya. Dua bagian utama atas pemrograman deklaratif adalah bahasa pemrograman fungsional dan bahasa pemrograman logikal. Prinsip dasar dibalik bahasa pemrograman fungsional (Haskell) adalah mencegah timbulnya efek samping seperti yang terdapat pada model pemrograman imperatif sehingga membuatnya lebih mudah untuk digunakan membuat program yang melakukan sejumlah operasi matematis.

Sementara itu, prinsip dari sebuah bahasa pemrograman logikal (Prolog) adalah mendefinisikan permasalahan yang hendak diselesaikan, tujuan yang hendak dicapai, dan membiarkan sistem melakukan analisis atas detail solusi terhadap permasalahan tersebut. Tujuan utama atas sebuah program didefinisikan dengan cara membuat sejumlah tujuan-tujuan yang lebih kecil, kemudian pada tiap-tiap tujuan tersebut secara lebih lanjut didefinisikan tujuan-tujuan lain yang lebih kecil lagi, dan begitu seterusnya. Jika suatu arahan tujuan yang didefinisikan gagal digunakan untuk menemukan solusi atas suatu permasalahan, maka arahan tujuan anakan yang lebih kecil akan di telusuri ulang, dan arahan lainnya akan diujicobakan.

Bentuk dari cara sebuah program dibuat bisa berupa tekstual ataupun visual. Dalam pemrograman visual, elemen-elemen program biasanya dimanipulasi secara grafis, sementara bila dibuat secara tekstual artinya sebuah program ditulis secara manual.

Kompilasi atau interpretasi

Program komputer dalam bentuk yang dapat dibaca oleh manusia biasanya disebuat sebagai kode sumber. Kode sumber dapat dikonversikan menjadi bentuk berkas yang dapat dieksekusi secara langsung oleh komputer. Proses pengkonversian ini disebut sebagai proses kompilasi dan biasanya dilakukan sebuah program utilitas dari bahasa pemrograman yang digunakan yang disebut sebagai kompiler. Pada beberapa bahasa pemrograman tertentu, kode sumber dapat langsung dieksekusi sebagai sebuah program dengan menggunakan bantuan utilitas yang disebut sebagai interpreter.

Baik melalui proses kompilasi ataupun interpretatif, eksekusi program dapat dilakukan dalam sebuah proses batch tanpa membutuhkan interaksi dengan manusia, namun program interpretatif memungkinkan pengguna untuk menulis perintah dalam suatu sesi interaktif. Pada kasus ini sebuah program dieksekusi sebagai sebuah perintah, yang kemudian dieksekusi baik secara serial ataupun paralel. Bahasa pemrograman yang menyediakan fitur interaktif seperti ini dinamakan sebagai bahasa skrip.

Kompiler digunakan untuk menerjemahkan kode sumber dari suatu bahasa pemrograman menjadi kode objek ataupun kode mesin. Kode objek biasanya membutuhkan proses lebih lanjut sehingga dapat menjadi kode mesin, dan kode mesin merupakan instruksi-instruksi yang dikenali dan dapat secara langsung dieksekusi oleh prosesor. Program komputer yang telah terkompilasi biasanya disebut sebagai berkas eksekutabel, ataupun berkas biner; yang merujuk pada bentuk sistem biner yang digunakan untuk menyimpan kode mesin tersebut.

Program komputer yang diinterpretasikan -baik secara batch ataupun dalam modus interaktif- biasanya akan diterjemahkan terlebih dulu ke dalam sejumlah token baru kemudian dieksekusi, atau bisa juga token-token tersebut dioptimasi lebih lanjut sehingga menjadi sejumlah instruksi yang memiliki tingkat efisiensi yang lebih baik dan disimpan sebagai berkas P-Code terpisah untuk dieksekusi kemudian oleh interpreter. BASIC, Perl, dan Python merupakan beberapa contoh dari bahasa pemrograman yang menyediakan fasilitas penerjemahaan langsung. Alternatif lainnya, program komputer yang ditulis dalam bahasa pemrograman Java merupakan hasil kompilasi kode sumber ke dalam bytcode yang kemudian dieksekusi oleh interpreter yang disebut sebagai mesin virtual java.

Kerugian utama pemanfaatan interpreter adalah unjuk kerja program biasanya lebih lambat dibandingkan dengan program yang dikompilasi terlebih dulu. Namun keuntungannya proses pengembangan perangkat lunak biasanya bisa dilakukan lebih cepat karena proses pengetesan atas berjalannya program dapat dilakukan dalam waktu yang relatif singkat. Tanpa memerlukan tahapan-tahapan kompilasi sebelumnya. Kerugian lainnya adalah, untuk dapat menjalankan program tersebut, utilitas interpreter harus disertakan dalam setiap pendistribusian, berbeda halnya dengan program terkompilasi yang dapat didistribusikan tanpa menyertakan kompiler bahasa yang digunakan karena sifatnya yang sudah dalam bentuk kode mesin.

Umumnya saat ini bahasa-bahasa pemrograman interpretatif telah dilengkapi pula dengan kompiler JIT (Just in Time) yang akan menganalisis serta menerjemahkan instruksi-instruksi yang paling sering digunakan ke dalam bahasa mesin pada saat program dijalankan sehingga tingkat unjuk kerjanya dapat ditingkatkan mengimbangi unjuk kerja program yang terkompilasi.

Eksekusi dan penyimpanan

Sebuah program komputer biasanya akan disimpan terlebih dahulu dalam memori utama (RAM) komputer sebelum dijalankan yang biasanya dilakukan oleh sistem operasi. Prosesor kemudian akan mengeksekusi program tersebut, instruksi demi instruksi sampai program tersebut diterminasi. Sebuah program yang tengah dieksekusi oleh prosesor dinamakan sebagai proses. Terminasi ataupun penghentian eksekusi sebuah program biasanya terjadi baik karena permintaan dari pengguna, interupsi pengguna, kesalahan atas program itu sendiri, ataupun kesalahan atas perangkat keras yang digunakan.

Program terpancang

Beberapa program komputer tertentu dipancangkan langsung pada perangkat kerasnya sebagai program yang dipanggil untuk kebutuhan identifikasi serta inisialisasi atas berbagai aspek untuk memastikan perangkat keras tersebut berfungsi. Saat proses inisialisasi tersebut, program terpancang tersebut akan dipanggil oleh sistem operasi, program terpancang tersebut kemudian akan menjembatani penggunaan perangkat keras tersebut sehingga sistem operasi dapat menggunakannya dengan baik.

Pemrograman manual

Program komputer awalnya diinput secara manual ke prosesor utama dengan memanfaatkan sejumlah pengalih sebagai representasi atas instruksi yang atas status konfigurasi on/off. Setelah menetapkan konfigurasi tersebut, tombol eksekusi akan ditekan. Proses ini kemudian dilakukan secara iteratif. Program komputer dalam sejarahnya pernah juga ditulis melalui paper tape' atau punched cards. Setelah dimasukkan dan alamat awal eksekusi telah dimasukkan, tombol eksekusi akan ditekan.

Pembuatan program otomatis

Pemrograman generatif merupakan sebuah tipikial dari pemrograman komputer yang akan membuat kode sumber melalui kelas-kelas generik, prototipe, aspek, templat, dan pembuat kode (code generator) untuk meningkatkan produktifitas programmer. Kode sumber yang dibuat oleh utilitas pemrograman tersebut misalnya pemroses templat pada sebuah IDE. Bentuk yang paling sederhana adalah pemroses makro yang terdapat pada bahasa pemrograman C.

Eksekusi simultan

Umumnya sistem operasi yang ada saat ini sudah mendukung pemanfaatan multitasking yang memungkinkan beberapa program komputer dijalankan pada saat yang bersamaan di sebuah komputer. Untuk dapat menjalankan beberapa program tersebut pada saat yang bersamaan, sistem operasi memanfaatkan mekanisme penjadualan proses yang merupakan suatu mekanisme yang akan mengatur pengalihan prosesor dalam melakukan pemrosesan sehingga beberapa program komputer tersebut dapat berinteraksi dengan pengguna saat dijalankan. Di sisi perangkat keras yang digunakan, prosesor modern saat ini umumnya telah mendukung beberapa core prosesor yang dipancangkan sebagai sebuah prosesor yang memungkinkannya menjalankan beberapa program sekaligus.

Sebuah program komputer dapat melakukan kalkulasi secara simultan pada beberapa jenis operasi di saat yang bersamaan dengan memanfaatkan thread atau sebagai proses terpisah. Umumnya prosesor yang ada saat ini sudah mendukung arsitektur multithreading yang teroptimasi untuk menjalankan beberapa thread secara efisien.

Lihat pula

Rujukan

  • Knuth, Donald E. (1997). The Art of Computer Programming, Volume 1, 3rd Edition. Boston: Addison-Wesley. ISBN 0-201-89683-4.
  • Knuth, Donald E. (1997). The Art of Computer Programming, Volume 2, 3rd Edition. Boston: Addison-Wesley. ISBN 0-201-89684-2.
  • Knuth, Donald E. (1997). The Art of Computer Programming, Volume 3, 3rd Edition. Boston: Addison-Wesley. ISBN 0-201-89685-0.
  1. ^ Stair, Ralph M., et al. (2003). Principles of Information Systems, Sixth Edition. Thomson Learning, Inc.. hlm. 132. ISBN 0-619-06489-7.
  2. ^ Silberschatz, Abraham (1994). Operating System Concepts, Fourth Edition. Addison-Wesley. hlm. 58. ISBN 0-201-50480-4.
  3. ^ Wilson, Leslie B. (1993). Comparative Programming Languages, Second Edition. Addison-Wesley. hlm. 75. ISBN 0-201-56885-3.
  4. ^ a b Wilson, Leslie B. (1993). Comparative Programming Languages, Second Edition. Addison-Wesley. hlm. 213. ISBN 0-201-56885-3.
  5. ^ Wilson, Leslie B. (1993). Comparative Programming Languages, Second Edition. Addison-Wesley. hlm. 244. ISBN 0-201-56885-3.
  6. ^ Silberschatz, Abraham (1994). Operating System Concepts, Fourth Edition. Addison-Wesley. hlm. 97. ISBN 0-201-50480-4.
  7. ^ Silberschatz, Abraham (1994). Operating System Concepts, Fourth Edition. Addison-Wesley. hlm. 30. ISBN 0-201-50480-4.
  8. ^ Tanenbaum, Andrew S. (1990). Structured Computer Organization, Third Edition. Prentice Hall. hlm. 11. ISBN 0-13-854662-2.
  9. ^ Silberschatz, Abraham (1994). Operating System Concepts, Fourth Edition. Addison-Wesley. hlm. 6. ISBN 0-201-50480-4.
  10. ^ Silberschatz, Abraham (1994). Operating System Concepts, Fourth Edition. Addison-Wesley. hlm. 100. ISBN 0-201-50480-4.
  11. ^ Akhter, Shameem (2006). Multi-Core Programming. Richard Bowles (Intel Press). hlm. 11–13. ISBN 0-9764832-4-6.

Program komputer

Dari Wikipedia bahasa Indonesia, ensiklopedia bebas

Program komputer atau sering kali disingkat sebagai program adalah serangkaian instruksi yang ditulis untuk melakukan suatu fungsi spesifik pada komputer.[1] Komputer pada dasarnya membutuhkan keberadaan program agar bisa menjalankan fungsinya sebagai komputer, biasanya hal ini dilakukan dengan cara mengeksekusi serangkaian instruksi program tersebut pada prosesor.[2] Sebuah program biasanya memiliki suatu bentuk model pengeksekusian tertentu agar dapat secara langsung dieksekusi oleh komputer. Program yang sama dalam format kode yang dapat dibaca oleh manusia disebut sebagai kode sumber, bentuk program yang memungkinkan programmer menganalisis serta melakukan penelaahan algoritma yang digunakan pada program tersebut. Kode sumber tersebut pada akhirnya dikompilasi oleh utilitas bahasa pemrograman tertentu sehingga membentuk sebuah program. bentuk alternatif lain model pengeksekusian sebuah program adalah dengan menggunakan bantuan interpreter, kode sumber tersebut langsung dijalankan oleh utilitas interpreter suatu bahasa pemrograman yang digunakan.
Beberapa program komputer dapat dijalankan pada sebuah komputer pada saat bersamaan, kemampuan komputer untuk menjalankan beberapa program pada saat bersamaan disebut sebagai multitasking. Program komputer dapat dikategorikan menurut fungsinya; perangkat lunak sistem atau perangkat lunak aplikasi.