Belajar Bahasa C sharp/Pendahuluan: Perbedaan antara revisi

Konten dihapus Konten ditambahkan
Willysaef (bicara | kontrib)
k stub
 
Willysaef (bicara | kontrib)
kTidak ada ringkasan suntingan
Baris 1:
{{judul|Bab I: Pendahuluan}}
==Apa itu C#==
Bahasa [[w:C sharp|C#]] adalah sebuah [[w:bahasa pemrograman|bahasa pemrograman]] modern yang bersifat ''general-purpose'', [[w:pemrograman berorientasi objek|‎berorientasi objek]], yang dapat digunakan untuk membuat [[w:program komputer|program]] di atas arsitektur [[w:Microsoft .NET Framework|Microsoft .NET Framework]]. ‎Bahasa C# ini memiliki kemiripan dengan bahasa [[w:Java|Java]], [[w:bahasa pemrograman C|C]] dan [[w:bahasa pemrograman C++|C++]] (selengkapnya dapat dilihat pada Sejarah ‎Bahasa C#).
 
Bahasa pemrograman ini dikembangkan oleh sebuah tim pengembang di [[w:Microsoft Corporation|Microsoft]] yang dipimpin oleh [[w:Anders Hejlsberg|‎Anders Hejlsberg]], seorang yang telah lama malang melintang di dunia pengembangan bahasa ‎pemrograman karena memang ialah yang membuat [[w:Turbo Pascal|Borland Turbo Pascal]], [[w:Borland Delphi|Borland Delphi]], dan juga ‎Microsoft[[‎w:Microsoft J++|Microsoft J++]].

Kini, C# telah distandarisasi oleh [[w:European Computer Manufacturer Association|European Computer Manufacturer Association]] (ECMA) dan ‎juga [[w:International Organization for Standardization|International Organization for Standardization]] (ISO) dan telah menginjak versi 3.0 yang mendukung ‎beberapa fitur baru semacam [[w:Language Integrated Query|Language Integrated Query]] (LINQ) dan lain-lainnya.‎
==Sejarah perkembangan bahasa pemrograman C#==
Sebelum tahun [[w:1970|1970]]-an (atau lebih lama), menggunakan komputer seperti saat ini—dari mulai ‎mengetik hingga main ''game'' komputer—merupakan sesuatu hal yang mustahil. Revolusi yang terjadi di dalam dunia ‎komputer membutuhkan dua tahap agar dapat sampai kepada zaman seperti sekarang, yakni:
Baris 9 ⟶ 12:
 
Pengguna awam komputer pun ‎akhirnya "dilahirkan", dan sejak itu ''programmer'' dan pengguna merupakan dua buah entitas yang sama ‎sekali berbeda, dan kurang begitu dapat berkomunikasi satu dengan lainnya.‎
===Awal-awal pemrograman komputer digital===
 
[[w:komputer digital|Komputer digital]] yang dapat diprogram pertama kali dibuat pada tahun 1930-an. Maksud dari "''komputer digital''" di sini adalah bahwa komputer-komputer tersebut bekerja dengan menggunakan angka-angka diskrit (yang memiliki ‎batasan yang jelas), seperti halnya 0, 1, nilai π (3.14159) dan nilai-nilai angka lainnya. Sementara itu, ‎maksud dari "''komputer yang dapat diprogram''" adalah komputer dapat melakukan operasi-operasi ‎matematika dengan berdasarkan instruksi-instruksi yang disebut dengan '''''program'''''. Untuk beberapa tahun ‎semenjak itu, program-program komputer ditulis di atas kertas yang dilubangi (disebut sebagai ''punched-‎card'') atau medium-medium lainnya. Akhirnya, perangkat fisik komputer pun disebut sebagai [[w:perangkat keras|perangkat ‎keras]] (''hardware''), sementara instruksi-instruksi yang ditulis di atas ''[[w:kartu berlubang|punched card]]'' atau medium lainnya ‎dikenal dengan [[w:perangkat lunak|perangkat lunak]] (''software''). Dinamai "''perangkat lunak''", karena memang memiliki sifat ‎mudah diubah. Kita tidak harus membangun komputer secara keseluruhan untuk melakukan jenis ‎perhitungan yang berbeda. Sementara itu, perangkat keras didesain untuk melakukan beberapa jenis ‎operasi aritmetika dan logika. Operasi mana yang dapat dilakukan oleh perangkat keras dan bagaimana ‎urutan operasi tersebut, diatur oleh kode-kode program. Pada saat program dijalankan, komputer juga ‎disebut sedang "mengeksekusi program", yakni saat komputer membaca kode dan melakukan instruksi ‎yang disuruhkan kepadanya.‎
 
Untuk dekade-dekade awal perkembangan komputer digital, hubungan antara perangkat keras ‎dan perangkat lunak sangatlah erat. Setiap mesin memiliki instruksinya sendiri-sendiri yang kadang tidak ‎cocok dengan mesin lainnya. Untuk mentransfer sebuah program dari satu mesin ke mesin lainnya yang ‎lebih baru dan tentunya lebih cepat, program tersebut harus ditulis ulang dengan semua kode-kodenya ‎yang baru. ''Nah'', kode-kode yang hanya dimiliki oleh mesin tertentu ini dinamakan dengan kode mesin ‎‎(''machine code'') atau bahasa mesin (''machine language''). Untuk lebih cepat mengingat instruksi-instruksi dalam kode mesin, para desainer pun kemudian ‎membentuk sebuah cara dengan menyamakannya dengan sebuah kata tertentu (umumnya berupa ‎singkatan dalam bahasa Inggris), yang kemudian berevolusi menjadi '''[[w:bahasa rakitan|bahasa rakitan]]''' atau '''''assembly ‎language'''''.‎
===Munculnya bahasa pemrograman tingkat tinggi===
 
Pada awal tahun 1950-an, para desainer pun mencoba untuk mendesain bahasa komputer yang ‎umum yang program hasilnya tidak hanya dapat berjalan di mesin-mesin tertentu saja. Muncullah '''[[w:bahasa ‎pemrograman tingkat tinggi|bahasa ‎pemrograman tingkat tinggi]]''' atau '''''high-level programming language'''''. Disebut demikian untuk ‎membedakannya dengan kode mesin yang disebut sebagai '''bahasa pemrograman tingkat rendah''' atau '''''‎low-level programming language'''''. Tren yang ada adalah kemunculan beberapa bahasa pemrograman seperti [[w:FORTRAN|FORTRAN]], [[w:COBOL|COBOL]], [[w:BASIC|BASIC]], dan masih banyak lagi yang ‎lainnya. Beberapa bahasa pemrograman tersebut masih terus-terusan digunakan hingga saat ini. Sebagai ‎contoh, FORTRAN (akronim dari '''<u>For</u>mula <u>Tran</u>slator''') masih sering digunakan oleh para ilmuwan dan para ‎insinyur bidang teknik; COBOL (akronim dari '''<u>Co</u>mmon <u>B</u>usiness-<u>O</u>riented <u>L</u>anguage''') juga sering digunakan ‎dalam institusi-institusi finansial; dan bahasa BASIC (akronim dari '''<u>B</u>eginner’s <u>A</u>ll-purpose <u>S</u>ymbolic ‎<u>I</u>nstruction <u>C</u>ode''') juga masih banyak digunakan hingga saat ini, meskipun terjadi perubahan yang sangat ‎signifikan dari ketika bahasa tersebut dipublikasikan pertama kali pada tahun [[w:1963|1963]].‎
 
Baris 19 ⟶ 22:
 
Bahasa pemrograman lainnya yang dikembangkan selama tahun 1950-an tapi sudah tidak ‎digunakan lagi adalah [[w:ALGOL|ALGOL]] (akronim dari '''<u>Alg</u>orithmic Pr<u>o</u>gramming <u>L</u>anguage'''). ALGOL memang sudah ‎tidak digunakan lagi, tapi memberikan dampak yang signifikan untuk beberapa bahasa pemrograman ‎lainnya di dalam sejarah perkembangan bahasa pemrograman komputer. ALGOL didesain pertama kali pada akhir tahun 1950-an oleh sebuah komite ‎internasional, untuk kemudian diperbaiki pada tahun 1960 dan 1968. Meskipun saat ini bahasa tersebut ‎mati seolah lenyap ditelan bumi, jiwanya masih hidup di dalam bahasa pemrograman tingkat tinggi yang ‎sekarang banyak digunakan, seperti [[w:bahasa pemrograman Pascal|Pascal]], [[w:PL/1|PL/1]], dan Bahasa C.‎
===Munculnya C===
 
Bahasa C dilahirkan di '''Bell Telephone Laboratories''' (atau sering disebut sebagai '''Bell Labs''' saja). ‎Sulit membayangkan dunia modern saat ini jika tidak ada pengaruh dari Bell Labs. Pada tahun 1947, ‎transistor ditemukan di Bell Labs, dan juga sistem operasi yang sekarang banyak digunakan di dalam ‎komputer korporat ([[w:Unix|UNIX]]) juga dibuat di sana. Untuk beberapa tahun, ada sebuah bahasa pemrograman ‎yang sangat dekat dengan sistem operasi UNIX, yang disebut dengan bahasa C, yang didesain oleh '''Dennis ‎Ritchie''' dan '''Brian Kernighan'''. Mengapa disebut hanya C saja? Bahasa C disebut demikian mengingat ‎bahasa tersebut adalah turunan dari bahasa B, dan bahasa B merupakan pemendekan dari '''Basic CPL''', ‎sementara '''CPL''' sendiri adalah sebuah bahasa pemrograman yang merupakan singkatan dari '''<u>C</u>ombined ‎<u>P</u>rogramming <u>L</u>anguage'''.‎
 
Meskipun populer, bahasa C terkesan lebih rumit jika dibandingkan dengan ‎bahasa pemrograman lainnya, khususnya jika digunakan oleh para pemrogram pemula. Ketika ALGOL dan banyak turunan ALGOL menggunakan kata-kata yang ‎mudah diingat seperti <code>BEGIN</code> dan <code>END</code> untuk membatasi sebuah seksi dalam instruksi program, bahasa C ‎malah menggunakan tanda kurung keriting (<code>{</code> dan <code>}</code>). Beberapa operasi juga disederhanakan, bahkan ‎banyak singkatannya yang cukup membingungkan para programmer pemula. Contoh yang sering ‎digunakan adalah <code>printf</code>, dan <code>scanf</code>. Meskipun demikian, program-program yang ditulis dalam bahasa C ‎seringnya lebih efisien dibandingkan dengan bahasa pemrograman lainnya, yang artinya program-‎program dalam bahasa C diterjemahkan ke dalam ''machine code'' dalam jumlah yang relatif lebih sedikit ‎jika dibandingkan dengan program yang ditulis dalam bahasa pemrograman lainnya. Salah satu bagian ‎yang paling canggih dari bahasa C adalah bahwa bahasa C memiliki "'''''pointer'''''", selain tentunya "variabel" ‎dan "konstanta". Istilah '''''Pointer''''' dalam bahasa pemrograman merujuk kepada ''alamat-alamat memori yang ‎mengizinkan para programmer untuk melakukan beberapa tugas secara jauh lebih efisien, dengan ‎melibatkan bit, byte, dan word memori''. Karenanya, banyak orang menyebut bahasa C sebagai "'''''High-level ‎Assembly language''''', atau bahasa rakitan tingkat tinggi.‎
 
Meskipun bahasa C masih merupakan bahasa pemrograman yang populer, bahasa ‎tersebut saat ini dapat dikatakan telah "kadaluwarsa". Saat ini, bahasa tersebut diklasifikasikan ‎ke dalam "bahasa pemrograman prosedural tradisional" ([[''traditional procedural programming language]]''), sebuah istilah yang merujuk kepada ‎struktur program-program dalam bahasa C. Umumnya sebuah program bahasa C terdiri atas ‎banyak '''prosedur''' (juga sering disebut sebagai '''fungsi'''/''function'' atau '''subrutin'''/''subroutine''), yang ‎setiap prosedur tersebut merupakan bagian dari kode yang melakukan beberapa tugas tertentu ‎atau merupakan implementasi dari algoritma tertentu. Prosedur-prosedur tersebut dapat ‎bekerja dengan data dalam beberapa cara. Data adalah kumpulan angka atau teks atau bahkan ‎gabungan antara keduanya. Dalam bahasa pemrograman prosedural tradisional, kodelah yang ‎‎memproses data menjadi output.‎
===Munculnya C++===
Akan tetapi akhir-akhir ini, banyak ''programmer'' cenderung memilih "[[w:bahasa ‎pemrograman berorientasi objek|bahasa ‎pemrograman berorientasi objek]]"—atau '''object ''oriented programming''''' (OOP). Permulaan ‎munculnya bahasa pemrograman berorientasi objek sering diasosiasikan dengan munculnya ‎bahasa Smalltalk, sebuah bahasa pemrograman yang dikembangkan di [[w:Palo Alto Research ‎Center|Palo Alto Research ‎Center]] (PARC), yang merupakan sebuah laboratorium penelitian yang didirikan oleh Xerox Cor‎poration. Selain Smalltalk, PARC juga menelurkan banyak inovasi lainnya, seperti halnya mouse ‎dan juga antarmuka grafis (Graphical User Interface) yang pertama kali diimplementasikan di ‎dalam sistem Xerox Star, yang kemudian diadopsi oleh Apple Macintosh dan juga Microsoft Win‎dows.‎
 
Dalam bahasa pemrograman berorientasi objek, para programmer tidaklah membuat ‎prosedur, tetapi mereka membuat '''kelas''' (class), dan dari kelas-kelas tersebut muncullah '''objek''' ‎‎(''object''), yang dapat berupa '''kode saja''', '''data saja''' atau '''kombinasi dari kode dan data'''. Daripada ‎membuat prosedur-prosedur yang dikhususkan untuk bekerja dengan data, "data" dalam bahasa ‎pemrograman berorientasi objek memiliki perangkat untuk bekerja dengan dirinya sendiri, ‎sehingga dapat dikatakan ''data bisa memproses dirinya sendiri''. Perubahan perspektif ini ‎membawa angin segar bagi para pemrogram, karena menulis satu buah kode yang dapat ‎digunakan dalam beberapa tugas pemrograman telah menjadi lebih mudah.‎
 
Akhirnya, beberapa ''programmer'' pun mencoba untuk menciptakan sebuah versi bahasa ‎C yang mendukung konsep bahasa pemrograman berorientasi objek. Dan, satu-satunya yang ‎sangat populer dari usaha mereka, lagi-lagi, adalah bahasa pemrograman yang dikembangkan di ‎Bell Laboratories pada tahun [[w:1982|1982]] oleh '''[[w:Bjarne Stoustrup|Bjarne Stoustrup]]'''. Bahasa yang dikembangkannya kini ‎dikenal dengan bahasa C++ (dibaca C plus-plus), di mana nama tersebut merupakan "pelesetan", ‎karena dalam bahasa C dan turunannya dua buah tanda plus akan menambahkan 1 ke dalam ‎sebuah angka atau variabel. Akan tetapi, C++ juga memiliki masalahnya sendiri. Dalam teorinya, ‎C++ adalah bahasa C yang ditambahi dukungan konsep "berorientasi objek", sehingga C++ ‎tidaklah menggantikan bahasa C.
===Munculnya Java===
Pada tahun [[1992]], '''Sun Microsystems''' membuat '''Java''', sebuah bahasa pemrograman ‎berorientasi objek yang dibuat berbasiskan bahasa C, dengan perbedaan yang signifikan dari ‎bahasa pemrograman C++. Bahasa Java telah membersihkan beberapa sintaksis yang dianggap kurang bagus yang terdapat di dalam bahasa C++ dan membuang beberapa hal yang “berbahaya” dari bahasa C, ‎tetapi tetap mempertahankan “kerumitan” yang ditawarkan oleh bahasa C.‎
===Munculnya C#===
Pada tahun 2000, Microsoft pun merilis bahasa C# (dibaca C Sharp), yang secara umum ‎didesain oleh Anders Hejlsberg, yang juga melanjutkan penamaan yang diplesetkan. Simbol ‎pagar (#) yang digunakan dalam C#, secara sekilas terlihat seperti dua buah plus-plus yang ‎disusun sedemikian rupa. Selain itu, di dalam notasi musik, tanda pagar memang menunjukkan ‎nada yang lebih tinggi dibandingkan dengan nada yang tidak memiliki pagar—sehingga C# lebih ‎tinggi dibandingkan C.‎
 
Seperti halnya bahasa Java, bahasa C# telah membuang beberapa fitur berbahaya dari ‎bahasa C. Memang, pointer belum sepenuhnya "dicabut" dari C#, tapi sebagian besar ‎pemrograman dengan menggunakan bahasa C# tidak membutuhkan pointer secara ekstensif, ‎seperti halnya C dan C++. Persamaan lainnya antara Java dan C# mencakup peran dari kompiler. ‎Biasanya, kompiler menerjemahkan kode sumber—berkas teks yang berisi bahasa pemrograman ‎tingkat tinggi—ke dalam kode mesin. Kode mesin tersebut membentuk sebuah berkas yang ‎dapat dieksekusi (''executable'' atau EXE), yang berupa sebuah berkas yang siap untuk dijalankan ‎secara langsung oleh komputer. Tetapi, karena kode mesin diasosiasikan hanya dengan sebuah ‎jenis mesin tertentu saja, berkas yang dapat dieksekusi tersebut hanya dapat berjalan di atas ‎satu jenis komputer saja. Inilah sebabnya mengapa kita tidak dapat menjalankan secara langsung ‎program yang sama yang berjalan di atas sistem operasi Windows di atas sistem operasi ‎GNU/Linux, Apple Macintosh atau sistem operasi lainnya—begitu pula sebaliknya.‎
 
Alat bantu kompiler yang digunakan oleh C# tidak menerjemahkan kode sumber ke ‎dalam kode mesin, tetapi hanya menerjemahkan ke dalam sebuah bahasa perantara atau '''''In‎termediate Language''''' (disingkat menjadi IL), yang merupakan sebuah jenis kode mesin hanya ‎saja telah digeneralisasikan. Ketika kita hendak menjalankan program di atas sebuah mesin, ‎maka IL akan diterjemahkan ke dalam kode mesin secara keseluruhan. Dilihat dari perspektif ‎pengguna, proses translasi ini tidak terlihat. Tetapi, dalam teorinya, ternyata di balik itu terdapat ‎proses dua langkah rumit yang mengizinkan program dengan bahasa IL yang sama untuk berjalan ‎di atas mesin yang berbeda. Selain itu, sebuah program dalam bentuk IL dapat diuji lebih mudah ‎oleh sistem operasi dari keberadaan kode yang merusak atau kode yang mencurigakan. ‎Kemampuan ini telah menjadi lebih penting saat program tersebut dipertukarkan melalui ‎jaringan publik, seperti halnya Internet.‎
Akan tetapi akhir-akhir ini, banyak programmer cenderung memilih "bahasa ‎pemrograman berorientasi objek"—atau '''object ''oriented programming''''' (OOP). Permulaan ‎munculnya bahasa pemrograman berorientasi objek sering diasosiasikan dengan munculnya ‎bahasa Smalltalk, sebuah bahasa pemrograman yang dikembangkan di [[w:Palo Alto Research ‎Center|Palo Alto Research ‎Center]] (PARC), yang merupakan sebuah laboratorium penelitian yang didirikan oleh Xerox Cor‎poration. Selain Smalltalk, PARC juga menelurkan banyak inovasi lainnya, seperti halnya mouse ‎dan juga antarmuka grafis (Graphical User Interface) yang pertama kali diimplementasikan di ‎dalam sistem Xerox Star, yang kemudian diadopsi oleh Apple Macintosh dan juga Microsoft Win‎dows.‎
 
C, C++, Java dan C# kini dikenal dengan sebutan "keluarga besar bahasa ‎pemrograman C" atau "bahasa pemrograman berbasis bahasa C". C++ mengandung semua hal ‎yang dimiliki oleh C tetapi memiliki fitur yang tidak dimiliki oleh C, sementara Java dan C# ‎meskipun masih berbasis bahasa C, keduanya tidaklah serta-merta merupakan pengganti dari ‎bahasa C, dan antara bahasa Java dan C# memiliki kesamaan dalam berbagai bidang, ketimbang ‎mirip dengan bahasa C++. Meskipun demikian, semuanya menggunakan banyak sintaksis yang ‎mirip, seperti <code>void</code>, <code>int</code>, <code>struct</code>, dan lain sebagainya.‎
{{stub}}