You are on page 1of 18

c     



c      
adalah software bahasa komputer yang digunakan dengan cara
merancang atau membuat program sesuai dengan struktur dan metode yang dimiliki oleh
bahasa program itu sendiri. Komputer mengerjakan transformasi data berdasarkan kumpulan
printah program yang telah dibuat oleh program. Kumpulan perintah ini harus dimengerti oleh
komputer, berstruktur terntentu (

Berbeda dengan bahasa. ). dan bermakna. misalkan Bahasa Indonesia dan Inggris yang merupakan bahasa alamiah ( . Bahasa pemrograman merupakan notasi untuk memberikan secara tepat program komputer.

Visual Studio (Visual Basic. × Bahasa pemrograman tingkat menengah (    ). Tentu saja program generasi ini sangat sulit untuk dipahami oleh . bahasa pemrograman dibagi menjadi 3 tingkatan. ASP. ASP. sehingg bahasa pemrograman juga disebut sebagai bahasa formal (   ). XML. MS-SQL.Net yang merupakan bahasa pemrograman yang dikembangkan pada aran berbasis internet Sejauh ini bahasa pemrograman dikelompokkan menjadi lima generasi. sintaksis dan semantik bahasa pemrograman komputer ditentukan secara jelas dan terstruktur. Bahasa seperti Java. Java. dan lain-lain. merupakan bahasa pemrograman generasi pertama. Bahasa Pemrograman Generasi I Bahasa pemrograman generasi pertama berorientasi pada mesin. yaitu: × Bahasa pemrograman tingkat rendah (    ). mudah dimengerti karena menggunakan bahasa sehari-hari. Informix. ADA. Phyton. contoh bahasa level ini adalah: Delphi. XML biasanya digunakan untuk pemrograman pada internet. Semakin maju generasinya maka orientasi bahasa pemrograman ini akan semakin dekat ke manusia. Biasanya yang mengerti hanyalah pembuatnya saja karena isinya programnya berupa kode-kode mesin. bahasa pemrograman jenis ini sangat sulit dimengerti karena instruksinya menggunakan bahasa mesin. Perl. Yang tergolong dalam bahasa ini adalah assembler. dan masih banyak lagi yang terus berkembang yang saat ini biasanya dengan ekstensi . dari pendekatan yang berorientasi kepada mesin menuju ke pendekatan yang berorientasi pada manusia. Setiap generasi bahasa pemrograman memiliki karakteristik tersendiri. Program disusun dengan menggunakan bahasa mesin. ORACLE. C. walaupun begitu masih sulit untuk dimengerti karena banyak menggunakan singkatan- singkatan seperti ͞STO͟ artinya simpan (STORE) dan ͞MOV͟ artinya pindahkan (MOVE). Basic. Menurut tingkatannya. C++. Pascal. Gambar di atas menunjukkan terjadinya kecenderungan pergeseran orientasi dalam bahasa- bahasa pemrograman.NET dan Delphi. × Bahasa pemrograman tingkat tinggi (     ) merupakan bahasa yang mempunyai ciri lebih terstruktur.net (baca: dot net) seperti Visual Basic. merupakan bahasa pemrograman dimana pengguna instruksi sudah mendekati bahasa sehari-hari.    ). Visual FoxPro). PHP. PHP.

Namun bahasa generasi ini memberikan eksekusi program yang sangat cepat. bahasa mesin sangat bergantung pada mesin (     . Pemrogram harus benar-benar menguasai operasi komputer secara teknis. Selain itu.orang awam dan sangat membosankan bagi pemrogram.

Berikut adalah contoh instruksi yang ditulis dalam bahasa rakitan akan menjadi seperti berikut: Tampak bahwa penggunaan notasi seperti MOV AH. digunakanlah kependekan dari kata-kata. Bahasa ini sedikit lebih mudah dipahami daripada bahasa mesin. Kode dalam Bahasa Mesin Bahasa Pemrograman Generasi II Bahasa pemrograman generasi kedua menggunakan bahasa rakitan (  ). seperti WRITE untuk menampilkan sesuatu di layar dan READ untuk membaca data dari keyboard. Bahasa ini sedikit lebih mudah dipahami daripada bahasa mesin mengingat perintah dalam bentuk kata-kata yang dipendekkan lebih mudah daripada mengingat deretan angka biner. pemrogram perlu menuliskan instruksi-instruksi yang rinci agar komputer melaksanakan tugasnya. Bahasa Pemrograman Generasi IV . Kode dalam Bahasa Rakitan Bahasa Pemrograman Generasi III Bahasa pemrograman generasi ketiga menggunakan pendekatan prosedural. Setiap instruksi dalam bahasa rakitan sebenarnya identik dengan satu instruksi dalam bahasa mesin. Bahasa generasi ketiga seringkali disebut sebagai     disebabkan bahasa ini menggunakan kata-kata yang biasa digunakan manusia. BASIC. dan PASCAL. Misalkan ͞MOV͟ untuk menyatakan ͞MOVE͟ dan JNZ yang berarti ͞jump non-zero͟. Beberapa contoh bahasa pemrograman yang masuk dalam kategori generasi ketiga yaitu ADA. ALGOL. Sebagai pengganti kode-kode biner. Program ditulis dengan menggunakan kata-kata yang biasa dipakai manusia. C. 02 jauh lebih mudah diingat atau dipahami daripada penulisan instruksi dalam bahasa mesin: B402 atau 1011 0100 0000 0010.). artinya. FORTRAN. COBOL. bahasa mesin antara satu mesin dengan mesin lainnya akan berbeda. Sebagai bahasa prosedural.

Alhasil. Bahasa pemrograman generasi keempat biasa disebut sebagai    atau bahasa berorientasi pada masalah ( . bahasa pemrograman generasi keempat yang dikenal dengan sebutan 4GL dapat dipakai oleh pemakai yang kurang mengetahui hal-hal teknis tentang pemrograman tanpa bantuan pemrogram profesional. Sebagai contoh pemrogram dapat membuat program dengan Microsoft Access di lingkungan PC dengan mudah.Bahasa pemrograman generasi keempat dirancang untuk mengurangi waktu pemrograman dalam membuat program sehingga diharapkan produktifitas pemrogram jadi meningkat dan program dapat dibuat dalam waktu yang lebih singkat.

Bahasa Prosedural dan Non Prosedural Bahasa Pemrograman Generasi V Bahasa pemrograman generasi kelima merupakan kelompok bahasa-bahasa pemrograman yang ditujukan untuk menangani kecerdasan buatan ( . Untuk mendapatkan suatu hasil.  ) karena memungkinkan pemakai menyelesaikan masalah dengan sedikit penulisan kode dibandingkan pada bahasa prosedural. seorang pemakai tidak perlu memberitahukan secara detail tentang bagaimana mendapatkannya. Bahasa pemrograman generasi keempat menggunakan pendekatan non-prosedural. Gambar di bawah ini memberikan contoh yang menunjukkan perbedaan bahasa prosedural dan non-prosedural dalam memperoleh data tentang seorang mahasiswa.

  .

Berbagai aplikasi kecerdasan manusia adalah sebagai berikut: × Pemrosesan bahasa alami ( .  ). Kecerdasan buatan adalah disiplin dalam ilmu komputer yang mempelajari cara komputer meniru kecerdasan manusia.

Prancis. × Aplikasi sistem pakar ( . × Pengedalian robotika dan sensor mata. Spanyol. Inggris. dan sebagainya). yakni mengatur komputer agar bisa berkomunikasi dengan manusia melalui bahasa manusia (Indonesia.    ).

 .

) yang meniru seorang pakar di bidang tertentu sehingga bisa menghasilkan nasehat atau pemikiran yang setara dengan seorang pakar. .

Dengan menggunakan bahasa generasi kelima dimungkinkan untuk melakukan perintah dengan cara percakapan seperti berikut: ͞Tampilkan semua nama mahasiswa yang IPK-nya di atas 3.0 dan urutkan berdasarkan IP secara descending͟ PROLOG dan LISP merupakan dua contoh bahasa pemrograman yang ditujukan untuk menangani kecerdasan buatan      .

 .

Bahasa pemrograman yang berbeda mendukung gaya pemrograman yang berbeda pula. Gaya pemrograman ini biasa disebut paradigma pemrograman. Tujuan dari pemrograman adalah untuk memuat suatu program yang dapat melakukan suatu perhitungan atau 'pekerjaan' sesuai dengan keinginan si pemrogram. Untuk dapat melakukan pemrograman. menguji dan memperbaiki ( ). baik dari sisi waktu berjalan (  . logika. dan di banyak kasus. agar dapat menciptakan program yang efisien. Pemrograman adalah sebuah seni dalam menggunakan satu atau lebih algoritma yang saling berhubungan dengan menggunakan sebuahbahasa pemrograman tertentu sehingga menjadi sebuah program komputer. bahasa pemrograman. ilmu. Kode ini ditulis dalam berbagai bahasa pemrograman. pengetahuan-pengetahuan lain seperti matematika. dan memelihara kode yang membangun sebuah programkomputer. diperlukan keterampilan dalam algoritma. Apakah memprogram perangkat lunak lebih merupakan seni. adalah proses menulis. Pemrogram yang baik biasanya mengkombinasikan tiga hal tersebut. atau teknik telah lama diperdebatkan.

atau memori. [1] Secara umum. Disiplin yang berbeda dari berbagai profesi teknis dalam programer.). baik programming adalah dianggap sebagai aplikasi diukur dari ketiga." Namun. tidak perlu izin atau lulus standar (atau governmentally diatur) tes sertifikasi untuk menyebut diri mereka "programer" atau bahkan "insinyur perangkat lunak. pada umumnya. kerajinan atau disiplin teknik. dengan tujuan menghasilkan efisien dan solusi perangkat lunak evolvable (kriteria untuk "efisien" dan "evolvable" sangat bervariasi). Dalam rekayasa perangkat lunak. mewakili diri sendiri sebagai . Ada sebuah perdebatan yang sedang berlangsung pada sejauh mana program penulisan adalah seni. pemrograman (pelaksanaan) dianggap sebagai salah satu tahap dalam proses pengembangan perangkat lunak.

pemrograman adalah kerajinan persyaratan mengubah menjadi sesuatu yang dapat mengeksekusi sebuah komputer. Kata lain. [5] [6] canggih lainnya mesin diprogram oleh Al-Jazari adalah benteng jam. Pola lubang pola yang mewakili alat tenun harus mengikuti menenun kain. Perdebatan ini analog dengan mengelilingi hipotesis Sapir-Whorf [2] dalam linguistik. [sunting] Sejarah pemrograman Lihat juga: Sejarah bahasa pemrograman Wired plug board untuk IBM 402 Accounting Machine. menyebabkan perkembangan modern pemrograman komputer. [4] Salah seorang Al-Jazari's robot ini awalnya sebuah perahu otomatis dengan empat musisi yang mengambang di danau untuk menghibur para tamu di pesta minum kerajaan. Sintesis perhitungan numerik. Alat tenun bisa menghasilkan tenun yang sama sekali berbeda dengan menggunakan kumpulan kartu yang berbeda. Para mekanisme Antikythera kalkulator menggunakan persneling dari berbagai ukuran dan konfigurasi untuk menentukan operasi. bersama dengan cara untuk mengatur dan masukan petunjuk dalam cara yang relatif mudah bagi manusia untuk hamil dan menghasilkan. Ide ini menantang kemungkinan mewakili dunia secara sempurna dengan bahasa. Keluaran dari perangkat ini adalah drumer kecil bermain berbagai ritme dan pola drum. Pengembangan pemrograman komputer dipercepat melalui Revolusi Industri. . panjang siang dan malam). Dikenal paling awal dapat diprogram mesin (mesin yang perilakunya dapat dikendalikan dan diprediksi dengan satu set instruksi) adalah Al-Jazari's programmable Automata pada 1206. Joseph Marie Jacquard yang dikembangkan pada tahun 1801. Pola bahasa yang berbeda menghasilkan pola pikir yang berbeda. menggunakan serangkaian kartu karton dengan menekan lubang di dalamnya.seorang "Professional Software Engineer" tanpa lisensi dari lembaga yang terakreditasi ilegal di banyak bagian dunia. Konsep perangkat yang beroperasi setelah telah ditetapkan. The Jacquard Loom. terkenal karena konsep variabel. yang mendalilkan bahwa suatu bahasa tertentu sifat memengaruhi pikiran kebiasaan dari speaker. Charles Babbage mengadopsi penggunaan kartu menekan sekitar tahun 1830 untuk mengendalikan Analytical Engine. karena mengakui bahwa mekanisme bahasa apapun kondisi pikiran pembicara dari masyarakat. [Rujukan?] Lain sedang berlangsung perdebatan adalah sejauh mana bahasa pemrograman yang digunakan dalam menulis program komputer yang memengaruhi bentuk program akhir diperlukan. operasi dan output telah ditentukan. terutama Hephaestus dan pelayan mekanis [3]. Pemrograman perilaku mekanisme ini berarti menempatkan pasak dan Cams ke drum kayu di lokasi tertentu. Ini kemudian akan bertabrakan dengan pengungkit kecil yang beroperasi alat musik perkusi. set instruksi ditelusuri ke Mitologi Yunani. yang operator bisa memanipulasi yang diperlukan ( yaitu.

singkatan memasukkan kode untuk setiap operasi. [8] [9] Hal diperbolehkan pemrogram untuk menentukan perhitungan dengan memasukkan formula secara langsung (misalnya Y = X * 2 + 5 * X + 9) . Penemuan arsitektur Von Neumann memungkinkan program komputer untuk disimpan dalam memori komputer. TOTAL). bukan data. ADD X."[ 7] Untuk memproses kartu menekan ini. Pada akhir 1940-an.Pada akhir 1880-an. Ketiga penemuannya dasar dari industri pengolahan informasi modern. yang disebut catatan unit peralatan. Sebelum menggunakan mesin yang dapat dibaca dari media. diubah menjadi instruksi mesin menggunakan program khusus yang disebut kompilator. "Setelah beberapa percobaan awal dengan kertas pita. telah untuk kontrol. menjadi yang pertama bahasa pemrograman tingkat tinggi yang memiliki implementasi fungsional. Setiap model komputer mungkin akan memerlukan berbagai instruksi untuk melakukan tugas yang sama. Bahasa assembly kemudian dikembangkan yang memungkinkan programmer menentukan setiap instruksi dalam format teks. Pada akhir 1960-an. Herman Hollerith menciptakan rekaman data pada media yang kemudian dapat dibaca oleh mesin. Pada tahun 1954 ditemukan Fortran. perangkat penyimpanan data dan terminal komputer menjadi cukup murah sehingga program dapat dibuat dengan mengetikkan langsung ke dalam komputer. Pada tahun 1896 ia mendirikan Tabulating Machine Company (yang kemudian menjadi inti dari IBM). termasuk beberapa program untuk komersial.. Editor teks dikembangkan yang memungkinkan perubahan dan perbaikan harus dilakukan jauh lebih mudah dibandingkan dengan punch card. Ketika waktu telah berkembang. (Lihat pemrograman komputer di era kartu punch). Walaupun bahasa tingkat tinggi biasanya dikenakan biaya . yang disimpan dalam rangka program dan disusun dalam deck. bukan menetapkan sebuah nomor dan alamat dalam bentuk simbolik (misalnya. Pemrogram komputer awal plug-papan yang digunakan untuk berbagai perhitungan kompleks diminta dari mesin yang baru diciptakan. Program itu sebagian besar masih masuk menggunakan kartu atau kertas punch tape. Ini telah membawa bahasa pemrograman baru yang lebih disarikan dari hardware yang mendasarinya. sering kali dalam notasi biner. Data dan instruksi dapat disimpan pada kartu punch eksternal. pertama dikenal sebagai" kartu Hollerith "dia menciptakan mesin tabulasi. Program teks. Banyak bahasa lainnya dikembangkan. komputer telah membuat lompatan raksasa di bidang pengolahan kekuasaan. seperti COBOL. ada berbagai plug- board programmable mesin. ia menetap di kartu menekan . di atas. untuk melakukan tugas- tugas pengolahan data (kartu membaca). dan kunci mesin punch. Penambahan panel kontrol ke Tipe I Tabulator 1906 memungkinkannya untuk melakukan pekerjaan yang berbeda tanpa harus secara fisik dibangun kembali. Program awal harus susah payah dibuat dengan menggunakan instruksi mesin tertentu. atau sumber..

ƒ Kegunaan: yang ergonomi sebuah program: kemudahan dengan mana seseorang dapat menggunakan program untuk tujuan. biasanya pada upah yang lebih rendah). bahasa tingkat tinggi masih praktis untuk beberapa program. semakin baik. dan pemrograman minimisasi kesalahan. Sepanjang paruh kedua abad kedua puluh. peningkatan kecepatan komputer modern telah membuat penggunaan bahasa-bahasa ini jauh lebih praktis daripada di masa lalu. perangkat lambat seperti disk. Hal ini melibatkan berbagai tekstual. ƒ Kekokohan: seberapa baik program masalah mengantisipasi bukan karena kesalahan programmer. Namun. seperti membersihkan file-file sementara dan tidak adanya kebocoran memori. Ini semakin disarikan bahasa biasanya lebih mudah untuk belajar dan memungkinkan para programmer untuk mengembangkan aplikasi jauh lebih efisien dan dengan lebih sedikit kode. Properti berikut adalah di antara yang paling relevan: ƒ Efisiensi / kinerja: jumlah sumber daya sistem program yang mengkonsumsi (prosesor waktu. Beberapa bentuk pemrograman telah lepas pantai semakin tunduk pada outsourcing (impor perangkat lunak dan jasa dari negara-negara lain. tidak tersedianya sumber daya yang dibutuhkan seperti memori. sistem operasi layanan dan koneksi jaringan. bandwidth jaringan dan bahkan sampai batas tertentu interaksi dari pemakai): semakin sedikit. Isu-isu tersebut dapat membuat atau menghancurkan kesuksesan bahkan tanpa masalah lain. atau dalam beberapa kasus bahkan tujuan tak terduga. seperti yang di mana tingkat rendah diperlukan pengendalian perangkat keras atau di mana kecepatan pemrosesan berada pada premi. grafis dan kadang-kadang elemen- . Hal ini tergantung pada kebenaran konseptual algoritma. [sunting] Modern pemrograman [sunting] Kualitas persyaratan Apapun pendekatan pengembangan perangkat lunak mungkin. pemrograman adalah karier yang menarik di sebagian besar negara-negara maju. sementara meningkatkan peluang ekonomi di daerah-daerah kurang berkembang. dan kesalahan pengguna. ruang memori. Tidak jelas sejauh mana tren ini akan berlanjut dan seberapa dalam dampak akan programmer upah dan kesempatan.overhead yang lebih besar. tidak pantas atau merusak data. Ini juga termasuk pembuangan benar beberapa sumber. buffer overflows dan ras kondisi) dan kesalahan logika (seperti pembagian dengan nol). seperti kesalahan dalam manajemen sumber daya (misalnya. membuat keputusan karier pemrograman di negara maju lebih rumit. program akhir harus memenuhi beberapa sifat mendasar. Ini termasuk situasi seperti salah. ƒ Reliabilitas: seberapa sering hasil dari sebuah program sudah benar.

pelaksanaan. perilaku yang diharapkan dari hardware dan sistem operasi. Kualitas ini mungkin tidak secara langsung jelas bagi pengguna akhir tetapi dapat secara signifikan memengaruhi nasib sebuah program jangka panjang. elemen perangkat keras yang meningkatkan kejelasan. algoritma diklasifikasikan menjadi perintah dengan menggunakan apa yang disebut notasi Big O. Untuk tujuan ini. ƒ Kemampu-rawatan: kemudahan dengan sebuah program yang dapat dimodifikasi oleh pengembang sekarang atau di masa mendatang dalam rangka untuk membuat perbaikan atau penyesuaian. . termasuk hardware dan sistem operasi sumber daya. [sunting] Metodologi Langkah pertama dalam sebagian besar proyek-proyek pengembangan perangkat lunak formal adalah analisis persyaratan. kekompakan dan kelengkapan program antarmuka pengguna. memperbaiki bug dan lubang keamanan. The Unified Modeling Language (UML) adalah sebuah notasi yang digunakan untuk kedua OOAD dan MDA. dan ketersediaan platform compiler tertentu (dan kadang-kadang perpustakaan) untuk bahasa dari source code. Teknik model populer meliputi Object-Oriented Analysis and Design (OOAD) dan Model-Driven Architecture (MDA). seperti waktu eksekusi atau pemakaian memori. [sunting] algorithmic kompleksitas Bidang akademik dan praktek teknik pemrograman komputer yang baik terutama berkaitan dengan menemukan dan menerapkan algoritma yang paling efisien untuk suatu masalah kelas. atau disesuaikan dengan lingkungan baru. O (n). dan kegagalan penghapusan (debug). Teknik yang sama digunakan untuk desain database adalah Entity-Relationship Modeling (ER Modeling). ƒ Portabilitas: kisaran perangkat keras komputer dan platform sistem operasi yang kode sumber dari program dapat dikompilasi / ditafsirkan dan lari. Hal ini tergantung pada perbedaan-perbedaan dalam fasilitas pemrograman yang disediakan oleh platform yang berbeda. Praktek yang baik selama pengembangan awal membuat perbedaan dalam hal ini. diikuti dengan pengujian untuk menentukan model nilai. yang mengungkapkan penggunaan sumber daya. Salah satu pendekatan yang populer untuk analisis kebutuhan adalah Kasus Gunakan analisis. intuitif. Ahli programmer yang akrab dengan berbagai mapan algoritma dan kompleksitas masing-masing dan menggunakan pengetahuan ini untuk memilih algoritma yang paling cocok dengan keadaan. dalam hal ukuran sebuah input. Terdapat banyak pendekatan yang berbeda untuk masing-masing tugas.

[sunting] Mengukur pemakaian bahasa Sangat sulit untuk menentukan apa yang paling populer bahasa pemrograman modern. Standalone debugger seperti gdb juga digunakan. dan perkiraan jumlah baris yang ada kode yang ditulis dalam bahasa (meremehkan ini jumlah pengguna bahasa bisnis seperti COBOL). Beberapa bahasa yang lebih rentan terhadap beberapa jenis kesalahan karena mereka tidak memerlukan spesifikasi kompiler untuk melakukan pengecekan sebanyak bahasa lainnya. file. Metode untuk mengukur popularitas bahasa pemrograman meliputi: menghitung jumlah iklan lowongan pekerjaan yang menyebutkan bahasa [10]. dan C dalam aplikasi embedded). karena program yang salah dapat memiliki konsekuensi yang signifikan bagi penggunanya. atau beberapa perangkat lain.Pelaksanaan teknik termasuk bahasa imperatif (object-oriented atau prosedural). jumlah buku-buku pengajaran bahasa yang dijual (overestimates ini pentingnya bahasa baru). bahasa scripting dalam pengembangan web. sementara beberapa bahasa teratur digunakan untuk menulis berbagai macam aplikasi. tetapi beberapa petunjuk dasar muncul di hampir setiap bahasa: * Input: Get data dari keyboard. kesesuaian untuk tugas. sering pada mainframe besar. dan Eclipse. Idealnya. Debug sering dilakukan dengan IDE seperti Visual Studio. yang debugged pada tahun 1947. menulis: Rincian terlihat berbeda dalam berbagai bahasa. bahasa pemrograman yang paling cocok untuk tugas yang dihadapi akan dipilih. Allen Downey. seperti kebijakan perusahaan. dan logika bahasa. dan ini kurang sering menyediakan lingkungan visual. Trade-off dari ideal ini melibatkan cukup menemukan programmer yang tahu bahasa untuk membangun sebuah tim. COBOL masih kuat di pusat data perusahaan. biasanya menggunakan baris perintah. NetBeans. ketersediaan pihak ketiga paket. [sunting] Debugging Sebuah bug. atau keinginan individunya. fungsional bahasa. Beberapa bahasa yang sangat populer untuk jenis aplikasi tertentu (misalnya. ketersediaan compiler untuk bahasa. dan efisiensi dengan program-program yang ditulis dalam bahasa tertentu mengeksekusi. . dalam bukunya How To Think Like A Computer Scientist. [sunting] Bahasa pemrograman Artikel utama: bahasa pemrograman dan bahasa pemrograman Daftar Bahasa pemrograman yang berbeda mendukung gaya pemrograman yang berbeda (disebut paradigma pemrograman). Penggunaan alat analisis statis dapat membantu mendeteksi beberapa kemungkinan masalah. Pilihan bahasa yang digunakan adalah tunduk pada banyak pertimbangan. FORTRAN dalam aplikasi teknik. Debugging adalah tugas yang sangat penting dalam proses pengembangan perangkat lunak.

Algoritma sering mempunyai langkah pengulangan (iterasi) atau memerlukan keputusan (logika Boolean dan perbandingan) sampai tugasnya selesai. * Pengulangan: Lakukan beberapa tindakan berulang-ulang. * Output: Display data pada layar atau mengirim data ke file atau perangkat lain. maka fungsi-fungsi ini dapat ditulis dalam bahasa lainnya. Algoritma akan dapat selalu berakhir untuk semua kondisi awal yang memenuhi kriteria. * Bersyarat eksekusi: Periksa kondisi tertentu dan melaksanakan urutan sesuai pernyataan. Menyediakan fungsi-fungsi di perpustakaan mengikuti konvensi runtime yang sesuai (misalnya. Masalah tersebut dapat berupa apa saja. Dalam matematika dan komputasi. Perintah-perintah ini dapat diterjemahkan secara bertahap dari awal hingga akhir. . biasanya dengan beberapa variasi. [sunting] Pemrogram Artikel utama: Programmer Lihat juga: Software pengembang dan Software engineer Pemrogram komputer adalah orang-orang yang menulis perangkat lunak komputer. * Berhitung: Lakukan operasi aritmatika dasar seperti penjumlahan dan perkalian. Banyak bahasa komputer menyediakan mekanisme untuk memanggil fungsi yang disediakan oleh perpustakaan. dengan catatan untuk setiap masalah. metode lewat argumen). algoritma merupakan kumpulan perintah untuk menyelesaikan suatu masalah. dalam hal ini berbeda dengan heuristik. ada kriteria kondisi awal yang harus dipenuhi sebelum menjalankan algoritma. Pekerjaan mereka biasanya meliputi: * Coding * Kompilasi * Dokumentasi * Integrasi * Pemeliharaan * Persyaratan analisis * Software arsitektur * Software pengujian * Spesifikasi * Debugging       Diagram Alur sering digunakan untuk menggambarkan sebuah algoritma.

Masing-masing paradigma dapat digunakan dalam banyak algoritma yang berbeda. . Pada awalnya kata algorisma adalah istilah yang merujuk kepada aturan-aturan aritmetis untuk menyelesaikan persoalan dengan menggunakan bilangan numerik arab (sebenarnya dari India. Beberapa paradigma yang digunakan dalam menyusun suatu algoritma akan dipaparkan dibagian ini. Pembagian masalah ini dilakukan terus menerus sampai ditemukan bagian masalah kecil yang mudah untuk dipecahkan. Algoritma yang berbeda dapat diterapkan pada suatu masalah dengan kriteria yang sama. sementara algoritma yang membutuhkan waktu lama untuk menyelesaikan masalahnya mempunyai kompleksitas yang tinggi. Secara informal. Jenis-jenis Algoritma Terdapat beragam klasifikasi algoritma dan setiap klasifikasi mempunyai alasan tersendiri. terlepas dari implementasi algoritma tersebut. algoritma yang dapat menyelesaikan suatu permasalahan dalam waktu yang singkat memiliki kompleksitas yang rendah. paradigma untuk membagi suatu permasalahan besar menjadi permasalahan-permasalahan yang lebih kecil. Singkatnya menyelesaikan keseluruhan masalah dengan membagi masalah besar dan kemudian memecahkan permasalahan-permasalahan kecil yang terbentuk. terlepas dari sistem komputer atau bahasa pemrograman yang digunakan. Salah satu cara untuk melakukan klasifikasi jenis-jenis algoritma adalah dengan memperhatikan paradigma dan metode yang digunakan untuk mendesain algoritma tersebut. istilah ini berkembang menjadi algoritma.   . Sejarah istilah "algoritma"Kata algoritma berasal dari latinisasi nama seorang ahli matematika dari Uzbekistan Al Khawārizmi (hidup sekitar abad ke-9). seperti tertulis pada judul di atas). Kompleksitas dari suatu algoritma merupakan ukuran seberapa banyak komputasi yang dibutuhkan algoritma tersebut untuk menyelesaikan masalah. Pada abad ke-18. sebagaimana tercantum pada terjemahan karyanya dalam bahasa latin dari abad ke-12 "Algorithmi de numero Indorum". Dalam cabang disiplin ini algoritma dipelajari secara abstrak. yang mencakup semua prosedur atau urutan langkah yang jelas dan diperlukan untuk menyelesaikan suatu permasalahan.Desain dan analisis algoritma adalah suatu cabang khusus dalam ilmu komputer yang mempelajari karakteristik dan performa dari suatu algoritma dalam menyelesaikan masalah.

.

  .

.

3  3    . dan mengandung beberapa bagian permasalahan yang tumpang tindih .    !". Sebuah algoritma serakah mirip dengan sebuah Pemrograman dinamik. Paradigma ini sekilas terlihat mirip dengan paradigma Divide and Conquer. dan menggunakan pilihan "serakah" apa yang dilihat terbaik pada saat itu. sama-sama mencoba untuk membagi permasalahan menjadi sub permasalahan yang lebih kecil. paradigma pemrograman dinamik akan sesuai jika digunakan pada suatu masalah yang mengandung sub-struktur yang optimal (. bedanya jawaban dari submasalah tidak perlu diketahui dalam setiap tahap.. tapi secara intrinsik ada perbedaan dari karakter permasalahan yang dihadapi.

Aplikasi bahasa C * Bahasa C pertama kali digunakan di Computer Digital Equipment Corporation PDP-11 yang menggunakan system operasi UNIX.     1. * Bahasa C hanya menyediakan sedikit kata-kata kunci. hanya terdapat 32 kata kunci. * Banyak bahasa pemrogaman popular seperti PHP dan Java menggunakan sintaks dasar mirip bahasa C. * Bahasa C juga digunakan untuk menyusun operasi Linux. 2. Kelebihan dan Kekurangan Bahasa C Kelebihan Bahasa C : * Bahasa C tersedia hampir di semua jenis computer * Kode bahasa C sifatnya adalah portable dan fleksible untuk semua jenis computer. Selanjutnya bahasa ini memberikan ide kepada Ken Thompson yang kemudian mengembangkan bahasa yang disebut bahasa B pada tahun 1970. . Kerninghan tahun 1972 di Bell Telephone Laboratories Inc. (Sekarang adalah AT & T Bell Laboratories). 3. Sejarah Bahasa C merupakan perkembangan dari bahasa BCPL yang dikembangkan oleh Martin Richards pada tahun 1967. Perkembangan selanjutnya dari bahasa B adalah bahasa C yang diciptakan oleh Dennis Ricthie & W.

* Bahasa C termasuk bahasa tingkat menengah. Sejarah Java mulai dirilis pada tahun 1990 sebagai bahasa program yang disebut Oak. Kekurangan Bahasa C : * Banyaknya operator serta fleksibilitas penulisan program kadang-kadang membingungkan pemakai. * Bagi pemula pada umumnya akan kesulitan menggunakan pointer. Sekarang. java masih dalam taraf pengembangan dan sudah mempengaruhi arah pemrogaman computer dan internet. Akan tetapi FirstPerson dan Oak mengalami kegagalan. Java. kemudian Sun MycroSystem mendirikan kelompok kerja yang terdiri atas para programmer handal untuk membuat produk dan memperluas pasar Sun.   1. 2. * C adalah bahasa yang terstruktur. Sun akhirnya menyadari bahwa Oak memiliki kemungkinan besar untuk membuat jalur akses ke dunia web. * Dukungan pustaka yang banyak. bermunculan para perintis internet khususnya World Wide Web seperti Netscape membuat software yang memungkinkan terjadinya koneksi antara internet dengan www. Bahasa pemrogaman Java dirilis secara gratis di Internet dan Sun memberikan lisensi penuh terhadap implementasi Java dan segala komponennya untuk digunakan di berbagai vendor software Internet dengan harapan supaya dapat menciptakan standard pemrogaman web. Aplikasi Bahasa Java * Pemrograman jaringan * Pembuatan aplikasi berbasis windows * Program untuk membuat web . Tidak lamam kemudian Oak diluncurkan di Internet dengan nama baru yaitu. Karena persaingan begitu ketat akhirnya prospek TV interaktif menurun dan akhirnya Oak tidak laku di pasaran. Oak didesain pertama kali untuk personal digital assistance yang disebut *7 yang akan dipasarkan Sun dengan fasilitas Graphical User Interface.* Proses executable program bahasa C lebih cepat. Ternyata *7 tidak pernah dipasarkan dan secara kebetulan Sun membentuk suatu perusahaan yang disebut Firstperson untuk mengembangkan *7 dalam bentuk TV set-top boxes untuk televisi interaktif.

* Mudah dipelajari karena bersifat sederhana. * Aman. * Berorientasi objek.3. dll. * Java merupakan bahasa yang kompleks dan susah dipelajari. Java memiliki keseimbangan yang menyediakan mekanisme peng-class-an sederhana dengan model antarmuka dinamik yang intuitif hanya jika diperlukan. java tidak diturunkan bahasa pemrogaman manapun. Kelebihan dan Kekurangan Kelebihan Bahasa Java : * Sederhana dan ampuh. J2ME untuk Motorola dengan J2ME untuk Sony Ericson tidak sama. java dirancang dengan konsep keamanan internet. . java dirancang untuk menciptakan program jaringan yang interaktif. Kekurangan bahasa Java : * Java memiliki kecepatan yang kurang dari bahasa C ++. * Kokoh. UNIX. Niklaus Wirth. dinamik. pascal berasal dari nama matematikawan yaitu Blaise Pascal. * Mendukung koneksi ke database. * Java memakan banyak memori computer. Pascal digunakan untuk mengenalkan pemrograman terstruktur. Berbeda lagi J2ME untuk Nokia. * Interaktif.  1. lintas platform. * Implementasi J2ME tidak global. Setiap produk selalu mempunyai modul tersendiri yang dinilai aneh penerapannya dan harus di-compile dengan modul yang berbeda-beda. aktif dan siap dijalankan di jaringan. * Terinterpretasi dan berkinerja tinggi. Programmer dapat menggunakan applet kecil yang aman. Misalnya. java mampu berjalan dalam platform apapun seperti PC. Sejarah Pascal dibuat pertama kali oleh Prof. java melengkapi keajaiban lintas platform yang luar biasa dengan kompilasi ke dalam representasi langsung yang disebut java code byte yang dapat diterjemahkan oleh system apapun yang memiliki java interpreter dan java virtual machine. * Program yang dibuat oleh bahasa ini lebih lambat disbanding program yang dibuat dengan bahasa lain seperti C atau C++. java membatasi programmer dengan memberi kunci supaya progamer dapat menemukan kesalahan lebih cepat saat mengembangkan program. Macintosh. java menyediakan sarana untuk membuat program (applet) yang berjalan pada web browser. * Netral terhadap berbagai arsitektur. seorang anggota International Federation of Information Processing (IFIP) pada tahun 1971.

* Terstruktur. PHP terus berkembang dari PHP 1 yang ditulis ulang Rasmus dalam bahasa C pada tahun 1995 sampai PHP 4 yang diluncurkan tanggal 22 Mei 2000. * Pascal dipakai sebagai landasan pembuatan kode perangkat lunak Kylix (berbasis Linux). * User defined data types. string. real. programmer harus menentukan tipe data dari suatu variable dan variable tersebut tidak dapat dipergunakan untuk menyimpan tipe data selain format yang ditentukan. Sejarah PHP adalah bahasa pemrogaman web atau scripting language yang didesain untuk web. * Sintaks Pascal terlalu bertele-tele. programmer dapat membuat tipe data lain yang diturunkan dari tipe data standar. char. * Sederhana dan ekspresif. 3. memiliki sintaks yang memungkinkan penulisan program dipecah menjadi fungsi-fungsi kecil (procedur dan function) yang dapat dipergunakan berulang-ulang. Aplikasi Bahasa PHP . 2. * Tidak mendukung pemrograman berorientasi objek. PHP dibuat pertama kali oleh Rasmus Lerdford untuk menghitung jumlah pengunjung pada homepagenya pada akhir tahun 1994. Kekurangan bahasa Pascal : * Versi awal Pascal kurang cocok untuk aplikasi bisnis karena dukungan basisdata yang terbatas. memiliki struktur yang sederhana dan sangat mendekati bahasa manusia (bahasa inggris) sehingga mudah dipelajari dan dipahami. * Strongly-typed. Kelebihan dan kekurangan Kelebihan bahasa Pascal : * Tipe data standar. integer. Aplikasi Bahasa Pascal * Pascal dipakai sebagai landasan pembuatan kode perangkat lunak Delphi (berbasis windows). tipe-tipe data standar yang telah tersedia bahasa pemrogaman. * Pascal tidak fleksibel dan banyak kekurangan yang dibutuhkan untuk membuat aplikasi yang besar. Pascal memiliki tipe data standar Boolean.   1.2.

para pakar dan peneliti sedikit berbeda dalam mendefinisikan termininologi komputer. * Sintaks mirip C dan mudah dipelajari.   #$  %  Komputer berasal dari bahasa latin computare yang mengandung arti menghitung. * Tersedia baik di Windows maupun Linux. Kelebihan dan Kekurangan Kelebihan : * PHP menjadi popular karena kesederhanaannya dan kemampuannya dalam menghasilkan berbagai aplikasi web seperti counter. bulletin board. * Komunitas yang ramai dan saling membantu.com.* PHP digunakan sebagai landasan operasi pada pemrogaman jaringan berbasis web. . phpindo. seperti di diskusiweb. * PHP adalah salah satu bahasa server-side yang didesain khusus untuk aplikasi web. dan kompilasi hanya dapat dilakukan dengan tool yang mahal dari Zend. e-commerce. * PHP memiliki kelemahan security tertentu apabila programmer tidak jeli dalam melakukan pemrogaman dan kurang memperhatikan isu konfigurasi PHP. * Tidak memiliki system pemrogaman berorientasi objek yang sesungguhnya. Karena luasnya bidang garapan ilmu komputer. * Aplikasi PHP cukup cepat dibandingkan dengan aplikasi CGI dengan Perl atau Phyton bahkan lebih cepat disbanding dengan ASP maupun Java dalam berbagai aplikasi web. dll. * Berbagai script atau aplikasi yang gratis telah tersedia. Kekurangan : * Tidak detail untuk pengembangan skala besar. walau saat ini paling efektif di web server Apache dan OS Linux. phpbuilder. * PHP digunakan juga untuk pemrogaman database. 3.com. * Tidak bisa memisahkan antara tampilan dengan logic dengan baik.com. * Kode PHP dapat dibaca semua orang. dll. system artikel/ CMS. * PHP termasuk dalam Open Source Product dan telah mencapai versi 4. * PHP digunakan untuk membuat aplikasi web.

Hardware tidak akan berfungsi apabila tanpa software. Hardware atau Perangkat Keras: peralatan yang secara fisik terlihat dan bisa di jamah. komputer adalah suatu alat elektonik yang mampu melakukan beberapa tugas sebagai berikut: 1. tanpa campur tangan dari manusia. Ketiga elemen sistem komputer tersebut harus saling berhubungan dan membentuk kesatuan. dan menghasilkan output berupa informasi. Sedangan Fuori [3] berpendapat bahwa komputer adalah suatu pemroses data yang dapat melakukan perhitungan besar secara cepat. 1. Menurut Blissmer [2]. software dan brainware. 2. 2. Dan keduanya tiada bermanfaat apabila tidak ada manusia (brainware) yang mengoperasikan dan mengendalikannya. 3. komputer adalah mesin penghitung elektronik yang cepat dan dapat menerima informasi input digital.  &#. Menurut Hamacher [1]. menerima input 2. menyediakan output dalam bentuk informasi 3. Untuk mewujudkan konsepsi komputer sebagai pengolah data untuk menghasilkan suatu informasi. 1. demikian juga sebaliknya. kemudian memprosesnya sesuai dengan program yang tersimpan di memorinya. maka diperlukan sistem komputer (computer system) yang elemennya terdiri dari hardware. menyimpan perintah-perintah dan hasil dari pengolahan 4. Software atau Perangkat Lunak: program yang berisi instruksi/perintah untuk melakukan pengolahan data. memproses input tadi sesuai dengan programnya 3. termasuk perhitungan aritmetika dan operasi logika. Brainware: manusia yang mengoperasikan dan mengendalikan sistem komputer.

dan generasinya. Komputer Mini (Mini Computer) 3. c   !'&" 1. penggunaan. Komputer Analog 2. Komputer Digital 3. kapasitas/ukurannya. Komputer Untuk Tujuan Umum (General Purpose Computer) c   !#  $!  1. Komputer Untuk Tujuan Khusus (Special Purpose Computer) 2. Komputer Hybrid c   !  1. Literatur terbaru tentang komputer melakukan penggolongan komputer berdasarkan tigal hal: data yang diolah. Komputer Mikro (Micro Computer) 2. Komputer Kecil (Small Computer) .

Komputer Generasi Keempat (1979-sekarang) 5. sebuah sistem adalah sekumpulan benda yang memiliki hubungan di antara mereka. Sistem juga merupakan kesatuan bagian-bagian yang saling berhubungan yang berada dalam suatu wilayah serta memiliki item-item penggerak. Komputer Menengah (Medium Computer) 5. Istilah ini sering dipergunakan untuk menggambarkan suatu set entitas yang berinteraksi. contoh umum misalnya seperti negara. Komputer Generasi Kedua (1959-1964) 3. sehingga maknanya menjadi beragam. dalam forum diskusi maupun dokumen ilmiah. Komputer Super (Super Computer) c   !    1. . 4. Negara merupakan suatu kumpulan dari beberapa elemen kesatuan lain seperti provinsi yang saling berhubungan sehingga membentuk suatu negara dimana yang berperan sebagai penggeraknya yaitu rakyat yang berada dinegara tersebut. Dalam pengertian yang paling umum. di mana suatu model matematika seringkali bisa dibuat. Komputer Besar (Large Computer) 6. Kata "sistem" banyak sekali digunakan dalam percakapan sehari-hari. materi atau energi. Komputer Generasi Kelima Ê  Ê  berasal dari bahasa Latin (a a) dan bahasa Yunani (aa) adalah suatu kesatuan yang terdiri komponen atau elemen yang dihubungkan bersama untuk memudahkan aliran informasi. Komputer Generasi Pertama (1946-1959) 2. dan pada banyak bidang pula. Kata ini digunakan untuk banyak hal. Komputer Generasi Ketiga (1964-1970) 4.