Minggu, 04 Desember 2011

Object Oriented Programming


I.       Pengertian
Pemrograman berorientasi objek merupakan metode yang relatif baru untuk melakukan perancangan atau rekayasa perangkat lunak. Tujuan metode ini adalah untuk meningkatkan produktivitas pemrogram dengan meningkatkan extensibiltas dan penggunaan kembali perangkat lunak serta untuk mengontrol biaya dan kompleksitas perawatan perangkat lunak.
Secara singkat tujuan utama dari pengembangan perangkat lunak atau program berorientasi objek, dapat dijelaskan sbb:
Ø             Mempersingkat waktu dan menurunkan biaya pengembangan rekayasa perangkat lunak.
Ø             Menurunkan biaya perawatan perangkat lunak.
Ø             Pemrograman berorientasi objek memberikan landasan yang sangat berguna untuk pembuatan prototype sistem secara cepat.
II.     Metode dan Objek
Metode merupakan suatu procedure atau fungsi yang disatukan dalam suatu objek serta dapat mengakses field-field data yang menjadi bagian dari objek tersebut.
Didalam sebuah objek, metode didefinisikan dengan sesuatu header fungsi atau procedure yang bertindak sebagai metode. Semua field data harusdidefinisikan sebelum deklarasi metode pertama.
Diluar objek, sebuah metode didefinisikan secara penuh, yaitu statemen-statemen apa aja yang akan dikerjakan oleh metode tersebut. Nama metode harus diletakan nama objek yang memiliki metode tersebut.
Didalam pemrograman berorientasi objek, sebuah objek seperti halnya sebuah rekord yang terdiri dari beberapa field data dengan diperluas adanya fungsi atau prosedur.
Prinsip pemrograman berorientasi obyek adalah sedapat mungkin field-field dalam suatu obyek ditinggalkan menyediri sebanyak mungkin, jangan sampai field data-field data tersebut dapat diakses secara langsung. Jadi bagaimana cara mengakses field data-field data tersebut? Jawabannya adalah sedapat mungkin menggunakan metode obyek(yaitu prosedur atau fungsi yang didefinisikan didalam obyek) obyek yang bersangkutan.
Paradigma Objek
  • Paradigma adalah suatu cara pandang atau cara berpikir
  • Paradigma objek adalah cara pandang yang memandang SEGALA SESUATU sebagai OBJEK
  • Berbagai benda di sekitar kita adalah objek nyata yang dapat dilihat, seperti : kucing, meja, rumah, orang , dll
  • Data Member atau variabel
Ø             Setiap objek yang dinamakan ‘orang’  pasti memiliki : nama, tinggi badan, berat badan, warna rambut, warna kulit, jenis kelamin, menggunakan kacamata, dll
Ø             Ciri-ciri tersebut dapat dipindahkan menjadi variabel-variabel dari class yang sering disebut sebagai : data member
2
  • Objek dalam pemrograman adalah objek yang dibuat dari class tertentu.
  • Method
Ø             Selain memiliki atribut(STATE) yang diimplementasikan sebagai data member di atas, manusia juga dapat melakukan suatu aksi atau pekerjaan tertentu (BEHAVIOR)
Ø             Contoh aksi/behavior yang umum adalah menangis dan tertawa
Ø             Kedua behavior tsb bisa dipindahkan ke dalam bahasa pemrograman menjadi method sbb :
Ada 3(tiga) karakteristik utama bahasa pemrograman berorientasi objek yaitu :
a.       Enkapsulasi ( pengkapsulan )
Enkapsulasi merupakan gabungan beberapa type data (record) dengan prosedur dan fungsi yang membentuk suatu type data baru yang tepat. Hakikat dari enkapsulasi ini adalah memadukan langkah program dengan data yang ada didalamnya. Dengan enkapsulasi anda dapat menyembunyikan didalam objek, baik data maupun fungsi / prosedur.  Hanya dengan interface objek maka kita dapat mengakses datanya.
NB: pengemasan data dan prosedur dalam objek. Ditujukan untuk melakukan penyembunyian informasi (information hidding).
b.      Inheritance ( penurunan sifat )
Penurunan sifat memungkinkan kita untuk membuat sebuah objek baru yang sama dengan objek sebelumnya yang telah didefinisikan. Karakteristik dari suatu objek diturunkan ke objek yang lain sehingga objek yang baru akan memiliki karakteristik yang sama dengan induknya. Penurunan ini diawali dengan mendefinisikan objek induk, sehingga dengan menggunakan objek induk tersebut, dapat membuat objek yang bertumpu pada objek induknya. Sehingga akan terbentuk objek keturunan. Dimana setiap objek turunannya dapat mengakses semua data dan program yang dimiliki oleh objek induknya.
NB: Memungkinkan sifat-sifat dari suatu kelas diturunkan ke kelas lain.
Pemrograman berorientasi objek merupakan suatu teknik atau cara berfikir untuk merancang aplikasi yang dapat membantumemecahkan persoalan mengenai pengembangan perangkat lunak. Teknik atau metode pemrograman berorientasi objek didasari oleh class dan objek. Jika diibaratkan class adalah sebuah cetakan sedangkan objek adalah hasil dari cetaan tersebut.
Class digunakan untuk membuat objek, dan berperan sebagai tipe data dari objek. Class merupakan sarana pengkapsulan kumpulan data dan kumpulan method yang mengoperasikan kumpulan data tersebut. Pengkapsulan adalah mengkombinasian suatu struktur dengan fungsi yang memanipulasinya untuk membentuk tipe data baru.
Suatu class dapat diciptakan berdasarkan class lain. Class baru ini mempunyai sifat-sifat yang sama dengan class pembentunya, ditambah sifat-sifat khusus lainnya, inilah yang disebut konsep pewarisan. Dengan pewarisan kita dapat menciptakan class baru yang mempunyai sifat sama dengan class induknya tanpa menulis ulang bagian-bagian yang sama. Pewarisan merupakan unsur penting dalam pemrograman berorientasi objek dan merupakan blok bangunan dasar pertama penggunaan kode ulang (code reuse).
3
Sifat pewarisan ini menyebabkan class-class dalam pemrograman berorientasi objek membentuk hirarki class mulai dari class dasar, class turunan pertama, class turunan kedua dan seterusnya. Sebagai gambaran misalnya ada hiararki class unggas.

Sebagai class dasar adalah Unggas. Salah satu sifat Unggas adalah bertelur dan bersayap. Class turunan pertama adalah Ayam, Burung dan Bebek. Tiga class turunan ini mewarisi sifat class dasar Unggas yaitu  bertelur dan bersayap. Selain mewarisi sifat class dasar , masing-masing class turunan mempunyai sifat khusus, seperti Ayam berkokok, Burung terbang dan Bebek berenang. Class Ayam punya class turunan yaitu Ayam Kampung dan Ayam Hutan. Dua class ini mewarisi sifat class Ayam yang berkokok. Tetapi dua class juga punya sifat yang berbeda, yaitu : Ayam Kampung berkokok panjang halus sedangkan Ayam Hutan berkokok pendek dan kasar.
4
Superclass
class yang letaknya di atas class tertentu di dalam hierarki.
Subclass
class yang letaknya di bawah class tertentu di dalam hierarki.
Contoh Program Inheritance
Kali ini kita akan membuat sebuah program simple yang menggambarkan konsep inheritance. Didalam program yang akan dibuat terdapat sebuah base class (class induk) bernama ORANG_TUA dan dua class turunannya (ANAK_PRIA dan ANAK_WANITA). Langkah-langkahnya adalah sebagai berikut :
1. Desain proyek baru dan pada form tambahkan objek listbox dan button.
2. Tambahkan class baru dengan nama ORANG_TUA dan ketikkan kode2 program berikut :
Public Class ORANG_TUA‘variabel untuk menampung nama bapak
Private XBapak As String
‘variabel untuk menampung nama ibu
Private XIbu As String
‘property (atribut/informasi) class
Public Property Nama_Bapak() As String
‘Get : hanya ijinkan akses data
Get
Return XBapak
End Get
‘Set : mengijinkan ubah data
Set(ByVal value As String)
XBapak = value
End Set
End Property
‘property (atribut/informasi) class
Public Property Nama_Ibu() As String
Get
Return XIbu
End Get
Set(ByVal value As String)
XIbu = value
End Set
End Property
End Class
3. Tambahkan class baru dengan nama ANAK_WANITA dan ketikan kode2 berikut :
Public Class ANAK_WANITA‘membuat turunan dari base class
Inherits ORANG_TUA
Private XWanita As String
Private XUsia_W As String
Public Property Nama_Wanita() As String
Get
Return XWanita
End Get
Set(ByVal value As String)
XWanita = value
End Set
End Property
Public Property Usia_Wanita() As Byte
Get
Return XUsia_W
End Get
Set(ByVal value As Byte)
XUsia_W = value
End Set
End Property
End Class
4. Tambahkan class baru dan beri nama ANAK_PRIA dan tambahkan kode2 program berikut :
Public Class ANAK_PRIA‘membuat turunan dari base class
Inherits ORANG_TUA
Private XPria As String
Private XUsia_P As String
Public Property Nama_Pria() As String
Get
Return XPria
End Get
Set(ByVal value As String)
XPria = value
End Set
End Property
Public Property Usia_Pria() As Byte
Get
Return XUsia_P
End Get
Set(ByVal value As Byte)
XUsia_P = value
End Set
End Property
End Class
5. Sekarang : buat event click pada objek button1 dan ketikkan kode2 berikut :
Public Class Form1Private Sub Button1_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
Dim obj_Wanita As New ANAK_WANITA
Dim obj_Pria As New ANAK_PRIA
With obj_Wanita
.Nama_Bapak = “Subandrio”
.Nama_Ibu = “Titi Rukmiati”
.Nama_Wanita = “Nina Ramadani”
.Usia_Wanita = 10
End With
With obj_Pria
.nama_pria = “Kevin Maulana”
.Usia_pria = 6
End With
With ListBox1
.Items.Add(“nama ayah   : ” & _
obj_Wanita.Nama_Bapak)
.Items.Add(“nama ibu    : ” & _
obj_Wanita.Nama_Ibu)
.Items.Add(“anak wanita : ” & _
obj_Wanita.Nama_Wanita)
.Items.Add(“usia        : ” & _
obj_Wanita.Usia_Wanita)
.Items.Add(“anak pria   : ” & _
obj_Pria.Nama_Pria)
.Items.Add(“usia        : ” & _
obj_Pria.Usia_Pria)
End With
End Sub
End Class
c.       Polimorphism ( keaneka ragaman )
Dengan polimorphism kita dapat membuat sebuah objek baru yang menunjukkan fungsi-fungsi yang sama dengan objek induknya, namun fungsi fungsi yang sama tersebut memiliki operasi yang berbeda-beda. objek yang masih didalam suatu hierarki dapat menyusun objek yang lainnya, sesuai dengan kebutuhan dari objek tersebut, yang artinya pemrograman berorientasi objek ini menyangkup keaneka ragaman objek yang menjamin terhimpunnya perpaduan keaneka ragaman data dengan prosedur atau fungsi.
NB: konsep yang menyatakan sesuatu nama yang sama dapat memiliki berbagai bentuk perilaku yang berbeda.
polymorphism membuat objek-objek yang berasal dari subclass yang berbeda, diperlakukan sebagai objek-objek dari satu superclass. Hal ini terjadi ketika memilih method yang sesuai untuk diimplementasikan ke objek tertentu berdasarkan pada subclass yang memiliki method bersangkutan.
5
Pada contoh sebelumnya, kita diberikan parent class yaitu Person dan subclassnya adalah Student, sekarang kita tambahkan subclass lainnya dari Person yaitu Employee

http://ericute.wordpress.com
sumber:

Rabu, 12 Oktober 2011

Teknik Pemograman


Dalam rekayasa perangkat lunak, pemrograman (pelaksanaan) dianggap sebagai salah satu tahap dalam proses pengembangan perangkat lunak.
Ada sebuah perdebatan yang sedang berlangsung pada sejauh mana program penulisan adalah seni, kerajinan atau disiplin teknik. [1] Secara umum, baik programming adalah dianggap sebagai aplikasi diukur dari ketiga, dengan tujuan menghasilkan efisien dan solusi perangkat lunak evolvable (kriteria untuk "efisien" dan "evolvable" sangat bervariasi). Disiplin yang berbeda dari berbagai profesi teknis dalam programer, pada umumnya, tidak perlu izin atau lulus standar (atau governmentally diatur) tes sertifikasi untuk menyebut diri mereka "programer" atau bahkan "insinyur perangkat lunak." Namun, mewakili diri sendiri sebagai seorang "Professional Software Engineer" tanpa lisensi dari lembaga yang terakreditasi ilegal di banyak bagian dunia. [Rujukan?]
Lain sedang berlangsung perdebatan adalah sejauh mana bahasa pemrograman yang digunakan dalam menulis program komputer yang memengaruhi bentuk program akhir diperlukan. Perdebatan ini analog dengan mengelilingi hipotesis Sapir-Whorf [2] dalam linguistik, yang mendalilkan bahwa suatu bahasa tertentu sifat memengaruhi pikiran kebiasaan dari speaker. Pola bahasa yang berbeda menghasilkan pola pikir yang berbeda. Ide ini menantang kemungkinan mewakili dunia secara sempurna dengan bahasa, karena mengakui bahwa mekanisme bahasa apapun kondisi pikiran pembicara dari masyarakat.
Kata lain, pemrograman adalah kerajinan persyaratan mengubah menjadi sesuatu yang dapat mengeksekusi sebuah komputer. [sunting] Sejarah pemrograman Lihat juga: Sejarah bahasa pemrograman Wired plug board untuk IBM 402 Accounting Machine.
Konsep perangkat yang beroperasi setelah telah ditetapkan, set instruksi ditelusuri ke Mitologi Yunani, terutama Hephaestus dan pelayan mekanis [3]. Para mekanisme Antikythera kalkulator menggunakan persneling dari berbagai ukuran dan konfigurasi untuk menentukan operasi. 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. [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. 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. Keluaran dari perangkat ini adalah drumer kecil bermain berbagai ritme dan pola drum. [5] [6] canggih lainnya mesin diprogram oleh Al-Jazari adalah benteng jam, terkenal karena konsep variabel, yang operator bisa memanipulasi yang diperlukan ( yaitu, panjang siang dan malam). The Jacquard Loom, Joseph Marie Jacquard yang dikembangkan pada tahun 1801, menggunakan serangkaian kartu karton dengan menekan lubang di dalamnya. Pola lubang pola yang mewakili alat tenun harus mengikuti menenun kain. Alat tenun bisa menghasilkan tenun yang sama sekali berbeda dengan menggunakan kumpulan kartu yang berbeda. Charles Babbage mengadopsi penggunaan kartu menekan sekitar tahun 1830 untuk mengendalikan Analytical Engine. Sintesis perhitungan numerik, operasi dan output telah ditentukan, bersama dengan cara untuk mengatur dan masukan petunjuk dalam cara yang relatif mudah bagi manusia untuk hamil dan menghasilkan, menyebabkan perkembangan modern pemrograman komputer. Pengembangan pemrograman komputer dipercepat melalui Revolusi Industri.
Pada akhir 1880-an, Herman Hollerith menciptakan rekaman data pada media yang kemudian dapat dibaca oleh mesin. Sebelum menggunakan mesin yang dapat dibaca dari media, di atas, telah untuk kontrol, bukan data. "Setelah beberapa percobaan awal dengan kertas pita, ia menetap di kartu menekan ..."[ 7] Untuk memproses kartu menekan ini, pertama dikenal sebagai" kartu Hollerith "dia menciptakan mesin tabulasi, dan kunci mesin punch. Ketiga penemuannya dasar dari industri pengolahan informasi modern. Pada tahun 1896 ia mendirikan Tabulating Machine Company (yang kemudian menjadi inti dari IBM). Penambahan panel kontrol ke Tipe I Tabulator 1906 memungkinkannya untuk melakukan pekerjaan yang berbeda tanpa harus secara fisik dibangun kembali. Pada akhir 1940-an, ada berbagai plug-board programmable mesin, yang disebut catatan unit peralatan, untuk melakukan tugas-tugas pengolahan data (kartu membaca). Pemrogram komputer awal plug-papan yang digunakan untuk berbagai perhitungan kompleks diminta dari mesin yang baru diciptakan. Data dan instruksi dapat disimpan pada kartu punch eksternal, yang disimpan dalam rangka program dan disusun dalam deck.
Penemuan arsitektur Von Neumann memungkinkan program komputer untuk disimpan dalam memori komputer. Program awal harus susah payah dibuat dengan menggunakan instruksi mesin tertentu, sering kali dalam notasi biner. 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, singkatan memasukkan kode untuk setiap operasi, bukan menetapkan sebuah nomor dan alamat dalam bentuk simbolik (misalnya, ADD X, TOTAL). Pada tahun 1954 ditemukan Fortran, menjadi yang pertama bahasa pemrograman tingkat tinggi yang memiliki implementasi fungsional. [8] [9] Hal diperbolehkan pemrogram untuk menentukan perhitungan dengan memasukkan formula secara langsung (misalnya Y = X * 2 + 5 * X + 9) . Program teks, atau sumber, diubah menjadi instruksi mesin menggunakan program khusus yang disebut kompilator. Banyak bahasa lainnya dikembangkan, termasuk beberapa program untuk komersial, seperti COBOL. Program itu sebagian besar masih masuk menggunakan kartu atau kertas punch tape. (Lihat pemrograman komputer di era kartu punch). Pada akhir 1960-an, perangkat penyimpanan data dan terminal komputer menjadi cukup murah sehingga program dapat dibuat dengan mengetikkan langsung ke dalam komputer. Editor teks dikembangkan yang memungkinkan perubahan dan perbaikan harus dilakukan jauh lebih mudah dibandingkan dengan punch card.
Ketika waktu telah berkembang, komputer telah membuat lompatan raksasa di bidang pengolahan kekuasaan. Ini telah membawa bahasa pemrograman baru yang lebih disarikan dari hardware yang mendasarinya. Walaupun bahasa tingkat tinggi biasanya dikenakan biaya overhead yang lebih besar, peningkatan kecepatan komputer modern telah membuat penggunaan bahasa-bahasa ini jauh lebih praktis daripada di masa lalu. Ini semakin disarikan bahasa biasanya lebih mudah untuk belajar dan memungkinkan para programmer untuk mengembangkan aplikasi jauh lebih efisien dan dengan lebih sedikit kode. Namun, bahasa tingkat tinggi masih praktis untuk beberapa program, seperti yang di mana tingkat rendah diperlukan pengendalian perangkat keras atau di mana kecepatan pemrosesan berada pada premi.
Sepanjang paruh kedua abad kedua puluh, pemrograman adalah karier yang menarik di sebagian besar negara-negara maju. Beberapa bentuk pemrograman telah lepas pantai semakin tunduk pada outsourcing (impor perangkat lunak dan jasa dari negara-negara lain, biasanya pada upah yang lebih rendah), membuat keputusan karier pemrograman di negara maju lebih rumit, sementara meningkatkan peluang ekonomi di daerah-daerah kurang berkembang. Tidak jelas sejauh mana tren ini akan berlanjut dan seberapa dalam dampak akan programmer upah dan kesempatan. [sunting] Modern pemrograman [sunting] Kualitas persyaratan
Apapun pendekatan pengembangan perangkat lunak mungkin, program akhir harus memenuhi beberapa sifat mendasar. Properti berikut adalah di antara yang paling relevan:
  • Efisiensi / kinerja: jumlah sumber daya sistem program yang mengonsumsi (prosesor waktu, ruang memori, perangkat lambat seperti disk, bandwidth jaringan dan bahkan sampai batas tertentu interaksi dari pemakai): semakin sedikit, semakin baik. Ini juga termasuk pembuangan benar beberapa sumber, seperti membersihkan file-file sementara dan tidak adanya kebocoran memori.
  • Reliabilitas: seberapa sering hasil dari sebuah program sudah benar. Hal ini tergantung pada kebenaran konseptual algoritma, dan pemrograman minimisasi kesalahan, seperti kesalahan dalam manajemen sumber daya (misalnya, buffer overflows dan ras kondisi) dan kesalahan logika (seperti pembagian dengan nol).
  • Kekokohan: seberapa baik program masalah mengantisipasi bukan karena kesalahan programmer. Ini termasuk situasi seperti salah, tidak pantas atau merusak data, tidak tersedianya sumber daya yang dibutuhkan seperti memori, sistem operasi layanan dan koneksi jaringan, dan kesalahan pengguna.
  • Kegunaan: yang ergonomi sebuah program: kemudahan dengan mana seseorang dapat menggunakan program untuk tujuan, atau dalam beberapa kasus bahkan tujuan tak terduga. Isu-isu tersebut dapat membuat atau menghancurkan kesuksesan bahkan tanpa masalah lain. Hal ini melibatkan berbagai tekstual, grafis dan kadang-kadang elemen-elemen perangkat keras yang meningkatkan kejelasan, intuitif, kekompakan dan kelengkapan program antarmuka pengguna.
  • 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, termasuk hardware dan sistem operasi sumber daya, perilaku yang diharapkan dari hardware dan sistem operasi, dan ketersediaan platform compiler tertentu (dan kadang-kadang perpustakaan) untuk bahasa dari source code.
  • Kemampu-rawatan: kemudahan dengan sebuah program yang dapat dimodifikasi oleh pengembang sekarang atau di masa mendatang dalam rangka untuk membuat perbaikan atau penyesuaian, memperbaiki bug dan lubang keamanan, atau disesuaikan dengan lingkungan baru. Praktek yang baik selama pengembangan awal membuat perbedaan dalam hal ini. Kualitas ini mungkin tidak secara langsung jelas bagi pengguna akhir tetapi dapat secara signifikan memengaruhi nasib sebuah program jangka panjang.
[sunting] algorithmic kompleksitas
Bidang akademik dan praktik teknik pemrograman komputer yang baik terutama berkaitan dengan menemukan dan menerapkan algoritma yang paling efisien untuk suatu masalah kelas. Untuk tujuan ini, algoritma diklasifikasikan menjadi perintah dengan menggunakan apa yang disebut notasi Big O, O (n), yang mengungkapkan penggunaan sumber daya, seperti waktu eksekusi atau pemakaian memori, dalam hal ukuran sebuah input. Ahli programmer yang akrab dengan berbagai mapan algoritma dan kompleksitas masing-masing dan menggunakan pengetahuan ini untuk memilih algoritma yang paling cocok dengan keadaan. [sunting] Metodologi
Langkah pertama dalam sebagian besar proyek-proyek pengembangan perangkat lunak formal adalah analisis persyaratan, diikuti dengan pengujian untuk menentukan model nilai, pelaksanaan, dan kegagalan penghapusan (debug). Terdapat banyak pendekatan yang berbeda untuk masing-masing tugas. Salah satu pendekatan yang populer untuk analisis kebutuhan adalah Kasus Gunakan analisis.
Teknik model populer meliputi Object-Oriented Analysis and Design (OOAD) dan Model-Driven Architecture (MDA). The Unified Modeling Language (UML) adalah sebuah notasi yang digunakan untuk kedua OOAD dan MDA.
Teknik yang sama digunakan untuk desain database adalah Entity-Relationship Modeling (ER Modeling).
Pelaksanaan teknik termasuk bahasa imperatif (object-oriented atau prosedural), fungsional bahasa, dan logika bahasa. [sunting] Mengukur pemakaian bahasa
Sangat sulit untuk menentukan apa yang paling populer bahasa pemrograman modern. Beberapa bahasa yang sangat populer untuk jenis aplikasi tertentu (misalnya, COBOL masih kuat di pusat data perusahaan, sering pada mainframe besar, FORTRAN dalam aplikasi teknik, bahasa scripting dalam pengembangan web, dan C dalam aplikasi embedded), sementara beberapa bahasa teratur digunakan untuk menulis berbagai macam aplikasi.
Metode untuk mengukur popularitas bahasa pemrograman meliputi: menghitung jumlah iklan lowongan pekerjaan yang menyebutkan bahasa [10], jumlah buku-buku pengajaran bahasa yang dijual (overestimates ini pentingnya bahasa baru), dan perkiraan jumlah baris yang ada kode yang ditulis dalam bahasa (meremehkan ini jumlah pengguna bahasa bisnis seperti COBOL). [sunting] Debugging Sebuah bug, yang debugged pada tahun 1947.
Debugging adalah tugas yang sangat penting dalam proses pengembangan perangkat lunak, karena program yang salah dapat memiliki konsekuensi yang signifikan bagi penggunanya. Beberapa bahasa yang lebih rentan terhadap beberapa jenis kesalahan karena mereka tidak memerlukan spesifikasi kompiler untuk melakukan pengecekan sebanyak bahasa lainnya. Penggunaan alat analisis statis dapat membantu mendeteksi beberapa kemungkinan masalah.
Debug sering dilakukan dengan IDE seperti Visual Studio, NetBeans, dan Eclipse. Standalone debugger seperti gdb juga digunakan, dan ini kurang sering menyediakan lingkungan visual, biasanya menggunakan baris perintah. [sunting] Bahasa pemrograman Artikel utama: bahasa pemrograman dan bahasa pemrograman Daftar
Bahasa pemrograman yang berbeda mendukung gaya pemrograman yang berbeda (disebut paradigma pemrograman). Pilihan bahasa yang digunakan adalah tunduk pada banyak pertimbangan, seperti kebijakan perusahaan, kesesuaian untuk tugas, ketersediaan pihak ketiga paket, atau keinginan individunya. Idealnya, bahasa pemrograman yang paling cocok untuk tugas yang dihadapi akan dipilih. Trade-off dari ideal ini melibatkan cukup menemukan programmer yang tahu bahasa untuk membangun sebuah tim, ketersediaan compiler untuk bahasa, dan efisiensi dengan program-program yang ditulis dalam bahasa tertentu mengeksekusi.

PEMOGRAMAN


Pemrograman adalah proses menulis, menguji dan memperbaiki (debug), dan memelihara kode yang membangun sebuah program komputer. Kode ini ditulis dalam berbagai bahasa 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, diperlukan keterampilan dalam algoritmalogikabahasa pemrograman, dan di banyak kasus, pengetahuan-pengetahuan lain seperti matematika.
Pemrograman adalah sebuah seni dalam menggunakan satu atau lebih algoritma yang saling berhubungan dengan menggunakan sebuah bahasa pemrograman tertentu sehingga menjadi sebuah program komputer. Bahasa pemrograman yang berbeda mendukung gaya pemrograman yang berbeda pula. Gaya pemrograman ini biasa disebut paradigma pemrograman.
Apakah memprogram perangkat lunak lebih merupakan seniilmu, atau teknik telah lama diperdebatkan. Pemrogram yang baik biasanya mengkombinasikan tiga hal tersebut, agar dapat menciptakan program yang efisien, baik dari sisi waktu berjalan (running time), atau memori.

[sunting]Bahasa Pemrograman

Perbedaan bahasa pemrograman dapat menjadi penyebab perbedaan paradigma pemrograman. Pilihan bahasa pemrograman dipengaruhi banyak alasan, seperti kecocokan dengan kriteria program dan jenis aplikasi yang akan dibuat.
Beberapa bahasa pemrograman adalah:

Bahasa pemrograman, atau sering diistilahkan juga dengan bahasa komputer, adalah teknik komando/instruksi standar untuk memerintah komputer. Bahasa pemrograman ini merupakan suatu himpunan dari aturan sintaks dan semantik yang dipakai untuk mendefinisikan program komputer. Bahasa ini memungkinkan seorang programmer dapat menentukan secara persis data mana yang akan diolah oleh komputer, bagaimana data ini akan disimpan/diteruskan, dan jenis langkah apa secara persis yang akan diambil dalam berbagai situasi.
Menurut tingkat kedekatannya dengan mesin komputer, bahasa pemrograman terdiri dari:
  1. Bahasa Mesin, yaitu memberikan perintah kepada komputer dengan memakai kode bahasa biner, contohnya 01100101100110
  2. Bahasa Tingkat Rendah, atau dikenal dengan istilah bahasa rakitan (bah.Inggris Assembly), yaitu memberikan perintah kepada komputer dengan memakai kode-kode singkat (kode mnemonic), contohnya MOV, SUB, CMP, JMP, JGE, JL, LOOP, dsb.
  3. Bahasa Tingkat Menengah, yaitu bahasa komputer yang memakai campuran instruksi dalam kata-kata bahasa manusia (lihat contoh Bahasa Tingkat Tinggi di bawah) dan instruksi yang bersifat simbolik, contohnya {, }, ?, <<, >>, &&, ||, dsb.
  4. Bahasa Tingkat Tinggi, yaitu bahasa komputer yang memakai instruksi berasal dari unsur kata-kata bahasa manusia, contohnya begin, end, if, for, while, and, or, dsb.
Sebagian besar bahasa pemrograman digolongkan sebagai Bahasa Tingkat Tinggi, hanya bahasa C yang digolongkan sebagai Bahasa Tingkat Menengah dan Assembly yang merupakan Bahasa Tingkat Rendah.

[sunting]Daftar Bahasa Pemrograman

Berikut ini adalah daftar bahasa pemrograman komputer:

KONSEP DASAR BAHASA C

  • SEJARAH DAN STANDAR C Akar dari bahasa C adalah bahasa BCPL  yang dikembangkan oleh Martin Richard  pada tahun 1967. Bahasa ini memberkan ide kepada ken thompson yang kemudian  mengembangkan bahasa yang disebut dengan B pada tahun 1970. Perkembangan selanjutnya  dari bahasa B adalah bahasa C oleh Dennis Ricthie sekitar tahun 1970-an di Bell Telephone  Laboratories Inc. ( sekarang adalah AT&T Bell Laboratories).  Kepopuleran bahasa C membuat versi-versi dari bahasa ini banyak dibuat untuk  komputer mikro. Untuk membuat versi-versi  tersebut standar, ANSI (American National Standards Institute) kemudian menetapkan standar ANSI untuk bahasa C. Standar ANSI ini  didasarkan dari standar UNIX yang diperluas. Standar ANSI menetapkan sebanyak 32 buah  kata-kata kunci (keyword) standar. Ke 32 kata kunci ini adalah : 
  • auto  break  case  char  const  continue  default  do  double  else  enum  extern  float  for  goto  if int  long  register  return  short  signed  sizeof  static  struct  switch  typedef  union  unsigned  void  volatile  while
  • ALASAN-ALASAN MENGGUNAKAN BAHASA C  Beberapa alasan dapat dicatat mengapa bahasa C banyak digunakan, diantaranya  adalah sebagai berikut : 



  1. Bahasa C tersedia hampir disemua jenis komputer 
  2. Kode bahasa C sifatnya adalah portabel Aplikasi yang ditulis dengan bahasa C untuk suatu komputer tertentu dapat digunakan di komputer lain hanya dengan sedikit modifikasi.  
  3. Bahasa C hanya menyediakan sedikit kata-kata kunci 
  4. Proses executable program bahasa C lebih cepat 
  5. Dukungan pustaka yang banyak Keandalan bahasa C dicapai dengan adanya fungsi-fungsi pustaka. 
  6. C adalah bahasa yang terstruktur Bahasa C mempunyai struktur yang baik sehingga mudah untuk dipahami. C mempunyai fungsi-fungsi sebagai program bagiannya. 
  7. Selain bahasa tingkat tinggi, C juga dianggap sebagai bahasa tingkat menengah. Bahasa C mampu menggabungkan kemampuan bahasa tingkat tingkat tinggi dengan bahasa tingkat tingkat rendah.
  8. Bahasa C adalah kompiler Karena C sifatnya adalah kompiler, maka akan menghasilkan executable program yang banyak dibutuhkan oleh program-program komersial
  • STRUKTUR PROGRAM C Untuk dapat memahami bagaimana suatu program ditulis, maka struktur dari program harus dimengerti terlebih dahulu, atau sebagai pedoman penulis program (programmer) bagaimana seharusnya program tersebut ditulis. Struktur dari program C dapat diihat sebagai kumpulan dari sebuah atau lebih fungsifungsi. Fungsi pertama yang harus ada di di program C yang sudah ditentukan namanya, yaitu fungsi  main(). Artinya program C minimal memiliki satu fungsi (fungsi main()). 
  • Bahasa C dikatakan sebagai bahasa pemrograman terstruktur, karena strukturnya menggunakan fungsi-fungsi sebagai program bagian (subroutine). Fungsi-fungsi selain fungsi utama merupakan program-program bagian. Fungsi-fungsi ini dapat ditulis setelah fungsi utama atau diletakkan di file pustaka (library). Jika fungsi-fungsi  diletakkan di file pustaka dan akan dipakai disuatu  program, maka nama file judul (header file) harus dilibatkan didalam program yang menggunakannya dengan preprocessor directive #include.