-->

Rabu, 27 Mei 2015

Pengertian, Fungsi dan Cara melakukan DiskDefragmenter.

Hallo? kembali lagi dengan saya Muhammad Bagus Icfan. Saya akan menjelaskan sedikit tentang artikel diatas.

Pada Windows atau Operating System, setiap kali sering disuruh untuk mendefrag harddisk kita. Kenapa kita harus mendefragment harddisk kita ?

1. Pengertian Disk Defragmenter

Disk defragmenter adalah suatu program yang berinduk pada sistem operasi komputer (OS) yang berguna untuk menyusun kembali file-file yg diperbaharui atau yang telah di install baik secara sengaja mahupun tidak sengaja. Jika anda membuka file apa pun itu maka secara automatik windows akan bekerja atau mengambil ruang secara automatik dalam penempatan space atau bagian partition dalam hardisk.

2. Fungsi Disk Defragmenter
Defragmenter mempunyai fungsi untuk menjaga kestabilan PC dan keadaan hardisk kerana defragmenter mampu mengelakkan / men fix kan boot sector dalam hardisk ataupun error program, jadi windows yang kita pakai sekarang ini sangat baik terhadap penggunanya dengan tools-tools yg berguna dalam menjaga hardware.
  • Windows tidak dapat menguruskan kembali file-file secara automatik (tanpa bantuan defragmenter) file yang telah di delete, di copy maupun dibuka. Maka dengan itu windows menyediakan recent documents (open file history) dan system restore point untuk mengulangi jika dalam proses defragmenting tidak dapat ditata kembali.
  • Disk defragmenter merupakan salah satu tools pembawaan windows, anda dapat menggunakannya untuk mengatur file-file di hardisk anda. Biasanya file-file di hardisk kita tidak beraturan mungkin kerana pengaruh sering instal program yg tidak selalu di guna, menutup aplikasi secara tidak normal (hang), copy dan menghapus atau memindahkan file, dan berbagai aktiviti managemen file lain. Oleh kerana file tersebut jika di andaikan lembaran-lembaran kertas, maka sebagian merupakan filel – file atau kertas kerja anda dirumah jika tidak di kemas selama 1 tahun atau jika tidak diatur ia akan berselerak di dalam almari atau meja anda. Demikian pula windows akan mengatur file sistem, file aplikasi, dan file data ke dalam lokasi-lokasi tertentu di dalam hardisk sehingga memudahkan windows mencari file-file yang diperlukan.
3. Cara Melakukan Disk Defragmenter
  • Windows XP :
1. Pada start menu pilih program->Acessories -> System Tools -> Disk defragmenter
2. Pilih drive yang berisi file windows anda (misalnya drive C), secara default windows diinstal di drive C
3. Klik tombol Analyze, tunggu hingga windows melakukan analisa terhadap file-file di hardisk anda. Jika ada file yang belum terfragmentasi maka kotak dialok untuk melakukan defrag. Tekan tombol defrag, proses ini butuh waktu sekitar 1 – 4 jam tergantung kapasitas hardisk yang di defrag.
Contoh Analyze:
4. Selepas di analisa, lihat pada warna di antara dua bagian yaitu bagian atas. jika warna merah kelihatan banyak seperti contoh gambar dibawah, anda perlu klik pada Defragment untuk menghilangkan warna merah.
5. Tunggu hingga proses defrag habis.
Perbedaan warna pada program defragment :
  • Merah : File tidak tersusun.
  • Biru : File yang disimpan.
  • Hijau : Unmovables files.
  • Putih : Ruang kosong.
(Note : Proses defrag ini sebaiknya dilakukan sebulan sekali jika banyak melakukan perubahan file pada hardisk anda, jika jarang melakukan perubahan sebaiknya sekali dalam 2 bulan).
Cara Melakukan Disk Defragmenter :
  • Windows 7 :
1. Pertama, klik meu Start -> All Programs -> Accessories -> System tools -> Disk Defragmenter.
2. Setelah di Klik menu Disk Defragmenter tadi, maka anda akan melihat partisi yang akan di defragment, termasuk partisi hidden yang dibuat oleh Windows 7.
3. Jika ingin melihat apakah sebuah partisi memang perlu di defrag atau tidak dengan klik tombol Analyze Disk.
4. Hasil dari analisa tersebut dapat digunakan sebagai acuan apakah sebuah partisi memang perlu di defrag atau tidak. Meskipun hasil analisa menunjukkan kalau sebuah partisi tidak memerlukan defragment, anda masih bisa melakukan defrag ke partisi tersebut.
Pilih partisi mana yang ingin di defrag dan klik tombol Defragment Disk untuk memulai defrag partisi hard disk.
Yaa baru sedikit yang saya ketahui tentang disk defragmenter, saya akan belajar banyak lagi, Maaf belum ada Screenshot, akan saya edit nanti ;) soalnya saya belum mau ngedefrag hdd :v
Terima kasih ;)

Jumat, 08 Mei 2015

Pengertian Javascript.

Hasil gambar untuk jAVASCRIPT
Javascript adalah bahasa pemograman yang berjalan di browser, orang-orang biasa bilang client side programming. Client di sini adalah browser, seperti: Internet Explorer, Firefox, Chrome, Opera, Safari dan sebagainya. Kode javascript biasanya disisipkan diantara kode-kode HTML.

Java script pertama kali di perkenalkan oleh netscape pada tahun 1995 dengan nama "LifeScript". Pemograman ini di gunakan untuk program sederhana untuk browser netscape navigator. Di tahun itu pula, tepatnya pada tanggal 4 desember 1995, netscape bekerja sama dengan pengembang pemograman "JAVA" yaitu Sun. Pemograman LifeScript di ganti namanya menjadi "JavaScript" yang kita kenal sekarang ini.

Ingat ! JavaScript berbeda dengan pemograman Java. Jika Pemograman java sama seperti halnya pemograman C. Java merupakan pemograman yang di gunakan untuk software aplikasi, seperti Game dan lainnya. Sedangkan JavaScript di buat secara khusus untuk membuat halaman web interaktif, dinamis dan inovatif.


Beberapa hal yang penting dijavascript
  1. File JavaScript ber-extension ".js". Misalnya belajar.js
  2. JavaScript tidak bisa berdiri sendiri. Bisanya menempel pada tag HTML
  3. Penulisan script di mulai dengan <script type="text/javascript"> dan di akhiri </script>
  4. Menggunakan blok awal "{" dan block akhir "}".
  5. Tanda <!– dan //> disertakan dengan tujuan agar sekiranya browser tidak mendukung JavaScript maka bagian tersebut akan diperlakukan sebagai komentar/remarks.
  6. untuk menyambung 2 baris sintak program menggunakan karakter "\"
  7. Setiap statement bisa di akhiri dengan karakter ";", tetapi bisa juga tidak.
  8. penulisan program Sensitive Case. dalam penulisan variable huruf besar berbeda dengan huruf kecil.

Contoh sederhana JavaScript dalam dokument HTML
<html>
<head><title>Belajar JavaScript</title></head>
<body>
<script style="text/javascript">
    document.write("www.swalt.info Salah satu web yang berisikan Tutorial pemograman")
</script>
</body>
</html>
 
Hanya itu yang baru saya ketahui, saya akan perbarui kalo saya sudah mempelajari lebih lanjut.
Terima kasih.

Pengertian, Sejarah dan Konsep Visual Basic.

Hasil gambar untuk pengertian visual basic 


Bahasa pemrograman yang paling awal dirancang pada tahun 1950-an dan dibuat semata-mata untuk memecahkan masalah matematika yang kompleks. Bahasa-bahasa tersebut agak membingungkan bagi orang awam. Namun hal itu bukanlah masalah berbesar, karena komputer hanya ditemukan di lembaga-lembaga riset besar. Lambat laut tentunya orang sadar bahwa teknologi komputer bisa berguna tidak hanya untuk melakukan perhitungan matematika, namun bisa berguna untuk bidang yang lain. Maka komputer pun mulai menjadi barang yang biasa ditemukan di lingkungan bisnis dan universitas. Dengan semakin banyaknya orang yang menggunakan komputer, semakin banyak pula orang yang sadar bahwa bahasa pemrograman yang rumit hanya akan menghambat perkembangan komputer itu sendiri. Pada tanggal 1 Mei 1964, penemu bahasa BASIC, yaitu Profesor John G. Kemeny dan Thomas E. Kurtz di Dartmouth College di New Hampshire menjalankan pertama kali program BASIC.
Bahasa BASIC (Beginner’s All-purpose Symbolic Instruction Code) merupakan bahasa tingkat tinggi yang berbentuk interpreter, yang memungkinkan untuk mengoperasikan komputer secara interaktif, program dapat ditulis, dijalankan, diubah dan dijalankan lagi tanpa harus melalui tahap kompilasi seperti pada bahasa tingkat tinggi lainnya yang berbentu compiler. Bahasa ini dirancang khusus untuk memudahkan tugas belajar memprogram.
Pada tahun 1975, Paul Allen, pemrogram muda yang bekerja ada perusahaan komputer Honeywall dengan teman masa kecilnya William Bill Gates menawarkan interpreter BASIC kepada Ed Robert, pemilik perusahaan MITS yang memproduksi komputer mikro Altair 8800 yang mempunyai RAM 4 KB. Kedua orang ini semasa di SMA sudah pernah mendirikan perusahaan dengan nama Traf-O-Data, tetapi tidak sukses. Ed Robert berjanji akan membeli interpreter BASIC tersebut apabila ia bisa berjalan di atas komputer Altair. Paul Allen dan Bill Gates mengembangkan interpreter BASIC tersebut tanpa pernah melihat secara langsung bentuk dari komputer Altair, apalagi menggunakannya. Apa yang mereka andalkan adalah manual dari microprocessorIntel 8080 yang digunakan di Altair dan diagram dari komputer Altair itu sendiri. Untuk mengujinya, mereka menjalankan interpreter BASIC-nya pada komputer besar dan akhirnya merekam hasilnya ke pita kertas (paper tape). Ketika Paul Allen akan mendemonstrasikan hasil kerjanya pada Ed Robert, dia teringat bahwa belum ditulis suatu program loader untuk membaca dan meletakkan interpreter BASIC yang ada di paper tape ke dalam main memory Altair. Paul Allen langsung menulis program loader tersebut dalam bahasa mesin dan memanggil interpreter BASIC dari pita kertas. Setelah beberapa menit, program berhasil masuk ke main memory. Paul Allen menyadari bahwa dia dan Bill Gates telah membuat banyak kesalahan di sana-sini, walaupun demikian, interpreter BASIC ini akhirnya dapat berjalan juga di komputer mikro Altair dan Ed Robert jadi membelinya. Untuk kedua kalinya, Paul Allen dan Bill Gates mendirikan suatu perusahaan yang disebut dengan Microsoft, yang terkenal sampai sekarang. Inilah cikal bakal dari BASIC yang terkenal itu.
Beberapa tahun kemudian muncullah bahasa pemrograman tingkat tinggi yang dengan menawarkan berbagai macam fungsi dalam pustakanya (library). Akan tetapi, untuk membuat sebuah aplikasi bisnis berbentuk grafik masih merupakan pekerjaaan yang cukup sulit untuk dilakukan. Jangankan aplikasi berbentuk grafik untuk menangani permasalahan mencetak data ke dalam printer saja sudah cukup untuk membuat pemrogram kesulitan. Belum lagi untuk membedakan antara printer satu dengan yang lainnya, walaupun keduanya mempunyai tipe yang sama, yaktu sama-sama dotmatrix, pemrogram harus terlebih dahulu membuat sebuah program yang mengakomodasi semua printer tersebut. Itulah gambaran kesulitan yang dialami oleh generasi pertama pemrogram. Dibutuhkan lebih dari 20 tahun untuk mendapatkan lingkungan pemrograman berbasis DOS yang cukup stabil.
Ketika komputer mikro tergusur oleh IBM PC, maka inilah zaman dimulainya era komputer pribadi (personal computer – PC) dengan antarmuka pemakai grafis (Graphical User Interface – GUI). Dengan munculnya Microsoft Windows, para pemakai PC bisa bekerja dalam lingkungan yang kaya grafis dan intuitif. Dengan GUI menyebabkan aplikasi-aplikasi jauh lebih mudah dipelajari dan dipakai. Hal ini sebagai ganti belajar mengetikkan dan menghafal perintah-perintah yang panjang, para pemakai cukup memilih sebuah menu dengan mengklik tombol mouse. Jendela-jendela pada layar memungkinkan pemakai untuk menjalankan lebih dari satu program secara bersamaan (multi-tasking). Kotak-kotak dialog muncul ketika sebuah program membutuhkan konfirmasi dari pemakai.
Pada tahun 1986, Dr. Bjarne Stroustrup meluncurkan bukunya yang sangat berpengaruh dengan judul The C++ Programming Language sebagai tanda dimulainya era pemrograman berorientasi objek (Object Programming Language -OOP). Pada tahun yang sama Intel meluncurkan microprocessor 32 bit yang pertama kali yakni 386. Banyak pemrogram profesional Amerika menggunakan bahasa C++ sebagai bahasa pemrogramannya ketika membangun suatu aplikasi yang berjalan di atas Windows. Pustaka-pustaka class (class library) dibangun untuk membantu kecepatan pengembangan suatu aplikasi. Terutama class yang berhubungan dengan objek.
Banyak orang percaya bahwa Windows mengawali masa berakhirnya pemrogram amatir. Dalam dunia MS-DOS, para profesional dalam di bidang non-komputer, biasanya mampu menulis aplikasi-aplikasi sederhana yang membantu mereka dalam pekerjaannya, merampingkan perhitungan yang membosankan, atau mengelola data dengan cepat. Jadi C++ bukanlah bahasa yang tepat untuk mereka. Karena yang mereka butuhkan adalah bahasa pemrograman yang cepat dan mudah dipelajari. Sementara C++ adalah bahasa yang benar-benar berbeda dengan bahasa C sebelumnya karena mengandung OOP. Pada waktu itu, sebagian besar pemrogram profesional membutuhkan waktu 6 bulan untuk akrab dengan konsep OOP seperti pengkapsulan (encapsulation), pewarisan (inheritance), dan polimorfisme (polymorphism). Namun bisakah setiap orang memahami hal-hal tersebut? Tentu tidak, apalagi tuntutan pemrograman dalam Windows begitu rumit bahkan untuk aplikasi yang paling sederhana sekalipun.
Tuntutan ini terjawab pada 1991, ketika Microsoft memperkenalkan Visual Basic versi 1.0. Sistem pemrograman Visual Basic mengemas kerumitan Windows dengan cara yang benar-benar menakjubkan. Sejumlah besar pemrogram yang kesulitan untuk mempelajari C++ atau pemrogram yang membutuhkan bahasa pemrograman yang lebih mudah dan lebih produktif untuk lingkungan Windows 3.0, dapat dengan mudah dan sukses pindah ke Visual Basic.
Dengan mengkombinasikan kemampuan bahasa Basic dan peranti desain visual, bahasa ini menyediakan kesederhanaan dan kemudahan pakai tanpa mengorbankan kinerja atau fasilitas grafis yang menyebabkan Windows menjadi lingkungan kerja yang begitu menyenangkan. Menu, tombol, textbox, font, dan semua elemen lainnya dengan mudah dapat dirancang. Dan semua fasilitas tersebut tidak membutuhkan lebih dari beberapa baris pemrograman.
Berikut Perjalanan Visual Basic (VB 1.0 Sampai VB 10)
• VB 1.0
Visual Basic 1.0 adalah salah satu bahasa komputer pertama yang mendukung pemrograman event-driven. Event-driven adalah gaya pemrograman yang sangat cocok untuk antarmuka pemakai grafis. Secara tradisional, pemrograman adalah sesuatu yang berorientasi pada proses dan langkah demi langkah. Sebagai ganti menuliskan sebuah program yang mengeplot setiap langkah dalam urutan tepat, pemrogram menuliskan sebuah program yang bereaksi terhadap tindakan pemakai seperti memilih sebuah menu, mengklik jendela, atau menggerak mouse. Suatu program yang besar dapat diganti dengan kumpulan miniprogram yang dipicu oleh event-event yang dilakukan oleh pemakai. Dan dengan Visual Basic, aplikasi seperti ini bisa dituliskan dengan cepat dan mudah. Sebagaimana kata Visual yang tersirat, pemrograman dilakukan secara visual. Ini berarti bahwa sebuah aplikasi sudah terlihat hasilnya walaupun belum dijalankan. Letak dan ukuran menu, textbox, tombol, dan elemen lainnya dapat dirancang dengan menggunakan mouse dan keyboard.
• VB 2.0
Visual Basic 2.0 dirilis pada November 1992, Cakupan pemrogramannya cukup mudah untuk digunakan dan kecepatannya juga telah di modifikasi. Khususnya pada Form yg menjadikan object dapat dibuat secara seketika, serta konsep dasar dari Class modul yg berikutnya di implementasikan pada VB 4
• VB3.0
Untuk memenuhi untuk tuntutan dari para pemrogram seiring dengan perkembangan bisnis perusahaan, beberapa tahun kemudian Visual Basic 3.0 diluncurkan dengan kinerja yang sudah ditingkatkan. Visual Basic 3.0 , dirilis pada musim panas 1993 dan dibagi menjadi versistandard dan professional. VB 3 memasukan Versi 1.1 dari Microsoft Jet Database Engine yg dapat membaca serta menulis database Jet (atau Access) 1.x Bukan hanya DAO (Data Access Object – yang berfungsi untuk mengakses database) sudah ditambahkan, tapi juga akses data visual dengan kontrol data (data control) juga sudah diberikan. Aplikasi data-browsing dapat dengan mudah dilakukan tanpa menulis kode. Kontrol OLE (Object Linking and Embedding) juga sudah ditambahkan. Visual Basic 3.0 , dirilis pada musim panas 1993 dan dibagi menjadi versistandard dan professional. VB 3 memasukan Versi 1.1 dari Microsoft Jet Database Engine yg dapat membaca serta menulis database Jet (atau Access) 1.x
• VB4.0
Seiring dengan perkembangan teknologi microprocessor yang telah berbasis 386 ke teknologi Pentium, Microsoft pun kemudian meluncurkan Windows 32 bit-nya yang pertama kali yakni Windows 95. Windows 95 sangat terkenal karena menampilkan GUI dengan konsep baru yang lebih memudahkan pemakai dalam menjalankan aplikasi. Untuk menjembatani perubahan dari Windows 3.11 (16 bit) ke dalam Windows 95, Microsoft meluncurkan Visual Basic 4.0 (Agustus 1995) yang menawarkan 2 compiler yang terpisah dan berbeda, yang satu untuk pengembangan windows 16 bit dan yang lain untuk windows 32 bit. Pada versi ini, pemrogram sudah dapat membangun program dengan berbasiskan Componen Object Model (COM) yang mendukung kemampuan untuk membuat Dynamic-Link Libraries (DLLs). Inilah untuk kali pertama konsep OOP diterapkan dalam Visual Basic.
• VB5.0
Visual Basic 5.0 (February 1997), Microsoft merilis secara eksklusif Visual basic untuk versi windows 32 bit . Programmer yg menulis programnya pada versi 16 bit dapat dengan mudah melakukan import porgramnya dari VB4 ke VB5. dan juga sebaliknya, program VB5 dapat diimport menjadi VB4. VB 5 memperkenalakan kemampuan untuk membuat User Control. Kemampuan untuk membangun dan mendistribusikan ActiveX Control diberikan pada Visual Basic 5.0. Dengan ditemukannya teknologi ActiveX, baik berbentuk Active DLL (COM) ataupun ActiveX Control (OCX).
• VB6.0
pada 1998, Microsoft meluncurkan Visual Basic 6.0 dengan 3 fitur projek baru: Data Project, DHTML Application, IIS Application. Dengan 3 senjata baru ini, diharapkan pemrograman Visual Basic sudah mampu untuk membuat aplikasi internet yang handal.
• VB7.0
Visual Basic .NET (VB 7), dirilis pada tahun 2002, Beberapa yang mencoba pada versi pertama .NET ini mengemukakan bahwa bahasa ini sangat powerful tapi bahasa yg digunakan sangat berbeda dengan bahasa sebelumnya, dengan kekurangan diberbagai area, termasuk runtime-nya yang 10 kali lebih besar dari paket runtime VB6 serta peningkatan penggunan memory.
• VB8.0
Visual Basic 2005 (VB 8.0) , merupakan iterasi selanjutnya dari Visual Basic .NET. dan Microsoft memutuskan untuk menghilangkan kata kata .NET pada judulnya. Pada Rilis ini , Microsoft memasukan beberapa fitur baru, diantaranya:
  1. Edit and Continue , mungkin inilah kekurangan fitur terbesar dari VB .NET . pada VB 2005 ini kita diperbolehkan melakukan perubahan kode pada saat program sedang dijalankan
  2. Perbaikan pada Konversi dari VB ke VB NET12Visual Basic .NET 2003 (VB 7.1) , dirilis dengan menggunakan NET framework versi 1.1.
• Visual Basic 2005 Express
Visual Basic 2005 Express , merupkan bagian dari Product Visual Studio. Microsoft membuat Visual Studio 2005 Express edition untuk pemula dan yg gemar dengan VB, salah satu produknya adalah Visual Basic 2005 Express yg merupakan produk gratis dari Microsoft
• VB9.0
Basic “Orcas” (VB 9.0) , dijadwalkan akan dirilis pada tahun 2007 dan dibangun diatas .NET 3.5. Pada rilis ini , Microsoft menambahkan beberapa fitur , diantaranya :
  1. True Tenary operator , yaitu fungsi If(boolean,value, value) yg digunakan untuk menggantikan fungsi IIF
  2. LINQ Support
  3. Ekspresi Lambda
  4. XML Literals
  5. Nullable types
  6. Type Inference
• VB10.0
Visual Basic ‘VBx’ (VB 10.0) , Visual Basic 10, yang juga dkenal dengan nama VBx, akan menawarkan dukungan untuk Dynamic Language Runtime. VB 10 direncanakan akan menjadi bagian dari SilverLight 1.1
Beberapa Fungsi Komponen-Komponen VB :
  1. Text Box : Text box merupakan kontrol yang dipakai sebagai tempat untuk mengisi maupun menampilkan data. Contohnya pada aplikasi penjualan ini yaitu text box diisi dengan nama-nama stock barang yang akan disimpan ke dalam database.
  2. Label : Label merupakan kontrol yang dipakai sebagai tempat untuk menampilkan keterangan.
  3. Command Botton : Command button merupakan kontrolyang dipakai sebagai tombol untuk melakukan sebuah proses.
  4. Combo Box: Combo box merupakan kontrol yang dipakai sebagai tempat untuk menampilkan daftar pilihan. Dengan combo box kita tinggal memilih pilihan yang ada pada combo box tersebut.
  5. List Box : List Box memiliki fungsi yang hamper sama dengan combo box, yaitu menampilkan daftar. Perbedaannya, pada combo box hanya satu pilihan yang terlihat sebelum combo box diklik, sedangkan pada list box dapat menampilkan beberapa pilihan.
  6. Option Botton : Option button berfungsi untuk menampilkan daftar pilihan.
  7. Frame: Frame berfungsi untuk mengelompokan kontrol-kontrol pada form menjadi satu bagian.
  8. List Box : Digunakan Untuk Menampilkan Daftar Pilihan Yang Bisa Digulung.
  9. Hscroll bar : Untuk Penggulungan Dengan Langkah Lebar Dengan Indikasi Posisi Pemilihan Dlm Posisi Horizontal.
  10. Vscroll bar: Untuk Penggulungan Dengan Langkah Lebar Mengindikasikan Posisi Pemilihannya Vertical.
  11. Timer : Untuk Penghitung Waktu Event Dalam Interval Yang Ditentukan.
  12. Drive list box : Untuk Menampilkan Disk Drive Yang Di Miliki Komputer.
  13. Dir list box : Menampilkan Direktori Dan Path.
  14. File list box : Menampilkan Sebuah Daftar File.
  15. Shape : Untuk Memasang Kontrol Yang Mampu Menghasilkan Sarana Agar Peamakia Bisa Menggambar Berbagai Bentuk. 
 Semoga anda mengerti apa itu Visual Basic yang saya beritahu.
Terima kasih.

Definisi Pemrograman.

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 (programmer). Untuk dapat melakukan pemrograman, diperlukan keterampilan dalam algoritma, logika, bahasa 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 seni, ilmu, atau teknik telah lama diperdebatkan. Pemrogram yang baik biasanya mengkombinasikan tiga hal tersebut, agar dapat menciptakan program yang efisien, baik dari sisi waktu berjalan (run time), atau memori.

==Sejarah pemrograman==
Mekanisme Antikythera dari Yunani kuno adalah kalkulator menggunakan persneling dari berbagai ukuran dan konfigurasi untuk menentukan operasi, [3] yang dilacak siklus Metonik masih digunakan di bulan-ke-surya kalender, dan yang konsisten untuk menghitung tanggal olimpiade [4]. Al-Jazari dibangun Automata diprogram pada tahun 1206. Salah satu sistem yang digunakan dalam perangkat ini adalah penggunaan pasak dan Cams ditempatkan ke drum kayu di lokasi tertentu, yang secara berurutan akan memicu tuas yang pada gilirannya dioperasikan instrumen perkusi. Output dari perangkat ini adalah drumer kecil bermain berbagai ritme dan pola drum. [5] [6] The Jacquard Loom, Joseph Marie Jacquard yang dikembangkan pada tahun 1801, menggunakan serangkaian karton kartu 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. Program komputer pertama ditulis untuk Analytical Engine oleh matematikawan Ada Lovelace untuk menghitung urutan Bilangan Bernoulli. [7] Sintesis perhitungan numerik, operasi dan output telah ditentukan, bersama dengan cara untuk mengatur dan masukan instruksi dengan 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 menemukan rekaman data pada media yang kemudian dapat dibaca oleh mesin. Sebelum menggunakan mesin dibaca dari media, di atas, telah untuk kontrol, bukan data. “Setelah beberapa percobaan awal dengan kertas pita, ia menetap di kartu menekan …” [8] Untuk memproses kartu menekan ini, pertama kali dikenal sebagai “kartu Hollerith” dia menciptakan tabulator, dan mesin keypunch. 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 (plugboard) ke 1906 Tipe I Tabulator memungkinkannya untuk melakukan pekerjaan yang berbeda tanpa harus secara fisik dibangun kembali. Pada akhir 1940-an, ada berbagai mesin panel kontrol diprogram, disebut catatan unit peralatan, untuk melakukan pengolahan data tugas.

Data dan instruksi dapat disimpan pada kartu punched eksternal, yang disimpan dalam rangka 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 (operasi dasar) dari mesin tertentu, sering kali dalam notasi biner. Setiap model komputer mungkin akan menggunakan instruksi yang berbeda (bahasa mesin) untuk melakukan tugas yang sama. Kemudian, perakitan bahasa tersebut 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, JUMLAH). Memasuki sebuah program dalam bahasa assembly biasanya lebih nyaman, lebih cepat, dan kurang rentan terhadap kesalahan manusia daripada menggunakan bahasa mesin, tetapi karena bahasa assembly adalah sedikit lebih dari satu notasi yang berbeda untuk bahasa mesin, setiap dua mesin dengan instruksi yang berbeda set juga memiliki perakitan yang berbeda bahasa.
Pada tahun 1954, FORTRAN diciptakan, melainkan tingkat pertama bahasa pemrograman tinggi untuk memiliki implementasi fungsional, dibandingkan dengan hanya desain di atas kertas [9] [10] (Sebuah bahasa tingkat tinggi adalah, dalam istilah yang sangat umum,. bahasa pemrograman yang memungkinkan programmer untuk menulis program dalam istilah yang lebih abstrak dari instruksi bahasa assembly, yaitu pada tingkat abstraksi “lebih tinggi” daripada bahasa assembly.) Ini memungkinkan programmer 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, yang diterjemahkan program FORTRAN ke dalam bahasa mesin. Bahkan, nama FORTRAN adalah singkatan dari “Formula Translation”. Banyak bahasa lainnya dikembangkan, termasuk beberapa program untuk komersial, seperti COBOL. Program itu sebagian besar masih masuk menggunakan kartu punched atau pita kertas. (Lihat pemrograman komputer di era kartu punch). Pada akhir 1960-an, perangkat penyimpanan data dan terminal komputer menjadi cukup murah bahwa program dapat dibuat dengan mengetikkan langsung ke dalam komputer. Teks editor tersebut dikembangkan yang memungkinkan perubahan dan perbaikan harus dilakukan jauh lebih mudah dibandingkan dengan kartu berlubang. (Biasanya, kesalahan dalam meninju kartu berarti bahwa kartu harus dibuang dan yang baru menekan untuk menggantikannya.)
Ketika waktu telah berkembang, komputer telah membuat lompatan raksasa di bidang kekuatan prosesor. Ini telah membawa bahasa pemrograman baru yang lebih disarikan dari hardware. Meskipun bahasa tingkat tinggi biasanya dikenakan biaya overhead yang lebih besar, peningkatan kecepatan komputer modern telah membuat penggunaan bahasa ini jauh lebih praktis daripada di masa lalu. Bahasa ini semakin disarikan biasanya lebih mudah untuk belajar dan memungkinkan programmer untuk mengembangkan aplikasi jauh lebih efisien dan dengan kode sumber kurang. Namun, bahasa tingkat tinggi masih praktis untuk beberapa program, seperti yang di mana tingkat rendah kontrol perangkat keras diperlukan atau di mana kecepatan pemrosesan maksimum adalah penting.

Sepanjang paruh kedua abad kedua puluh, pemrograman adalah karier yang menarik di sebagian besar negara maju. Beberapa bentuk pemrograman telah lepas pantai semakin tunduk pada outsourcing (impor perangkat lunak dan jasa dari negara lain, biasanya dengan upah rendah), membuat keputusan karir pemrograman di negara maju lebih rumit, sementara meningkatkan peluang ekonomi di daerah kurang berkembang. Tidak jelas seberapa jauh kecenderungan ini akan berlanjut dan seberapa dalam dampak akan programmer upah dan kesempatan.
===Kata lain===
Pemrograman adalah mengubah suatu masalah yang dapat dimengerti oleh komputer dan dapat dipecahkan oleh komputer.

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.
Beberapa bahasa pemrograman adalah:

  • Assembly
  • Ada
  • Basic
  • C atau C++
  • C#
  • Cobol
  • Java
  • Fortran
  • Clipper
  • Pascal
  • Visual Basic

Dasar C#.

Daftar isi
  • Pendahuluan
  • Struktur dasar Program C#
  • Class
  • Class Member
  • Static Class Member
  • Konstanta dan readonly
  • Objek
  • Method
  • Constructor
  • Akses Modifier
  • Properties
  • Namespace dan using
  • Parameter Method
  • Method Overloading
  • Overload Constructor
  • Komposisi
  • Penggunaan referensi “this”
  • Inheritance (pewarisan)
  • Class Abstrak
  • Method abstrak
  • Method Virtual
  • Menyembunyikan method class induk dgn keyword “new”
  • Polymorphisme
  • Event dan delegate
  • Interface
  • Network programming
  • Database Programming
  • Array dan collection
Pendahuluan
Untuk memahami pemrograman  C#   kita wajib mengerti konsep dasar pemrograman berorientasi  Object(PBO). Konsep PBO pada C# pada dasarnya sama  dengan yg diterapkan pada  C++ ,VB.Net, JAVA, dll.
Sekilas gambaran tentang pemrograman berorientasi  Object(PBO)  sudah saya tulis pada artikel disini . Artikel tsb berisi penjelasan buat pembaca yg baru sama sekali yg ingin mengetahui apa itu pemrograman berorientasi objek.
Ada 3 jenis aplikasi C#  untuk  yang bisa kita buat
1. Aplikasi konsol
2. Aplikasi Visual
3. Aplikasi Class library.
4. Aplikasi WPF
Pelajaran dasar pemrograman C#  biasanya menggunakan aplikasi konsol supaya kita fokus kepada kode programnya saja.
Struktur dasar Program C#
Secara hirarki Program C# terdiri dari Namespace-> class-> method dan data
1
2
3
4
5
6
7
8
namespace
{
   class
    {
      data
      method
    }
}
Langsung saja kita lihat contoh program C#  paling sederhana  :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
namespace test
{
  class Clscontoh
    {
      string  pesan =" halo apa kabar";       // data
      static void Main(string[] args)         // method
       {
       Console.WriteLine(pesan);
       }
   }     //penutup class
}        // penutup namespace scope
Penjelasan program 
Program C#  minimal harus terdiri dari 1 class dan 1 methode Main().
Contoh diatas terdiri dari 1  class   dgn nama Clscontoh  dan  ClsContoh mempunya 1   methode   Main().
Langkah-langkah  kompilasi / menjalankan program diatas :
1.  Ketik program diatas   pada  notepad  dan simpan  dengan nama ex1.cs  (nama terserah yg penting berextensi *.cs)
2.  Pada prompt dos ketik  c:>csc  ex1.cs
3.  Untuk menjalankanya ketik c:>ext1.exe
Program C#  terbentuk dari class  sedangkan program  C terdiri dari fungsi fungsi.

Untuk menyederhanakan program yg bersekala besar adalah dengan cara memecah program menjadi bagian/modul modul  yg lebih kecil, bentuk Modul tersebut diantaranya adalah class dan method. Sebuah aplikasi biasanya terbagi menjadi 3 modul atau layer yaitu user interface, proses dan koneksi database. Tiap tiap modul/layer mempunyai class nya masing masing. Class class tsb bisa menggunakan class yg sudah ada baik yg tersedia (di class library maupun yg dibuat oleh pengguna yg lain) atau kita sendiri yang membuatnya.
Class
Semua code dalam C# harus berada dalam class  dan tiap class terdiri dari  data  dan method .Method dan data disebut juga sebagai  member Class .  Data dalam class dimanipulasi melalui method . data disebut juga member variable atau instance variable.  instance variable dideklarasikan di luar method.
Class Member
Class  terdiri dari beberapa member/anggota antara lain
-Fields
-Constants
-Properties
-Methods
-Constructors
-Destructors
-Events
-Indexers
-Operators
-Nested Types

Setiap kelas tdk harus tersusun dari semua member class diatas, pada umumnya class yg akan kita pakai hanya terdiri dari constructor,property dan method. Static Class Member
Static class member adalah member class yg diakses melalui class tdk melalui objek. jadi seolah oleh member static bersifat global di semua objek.  Jika  instance  variable  static  maka tiap objek mempunyai  instance variable yg sama.  Sebaliknya  pada  instance variable yg  bukan static maka tiap objek mempunyai salinan  (instance variable) masing masing.
Contoh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
namespace gamepesawat
{
    class peswatTempur
      {
       public string namaPilot;
       public static int TotalTertembak=0;
       pulic int tembakmusuh()
           {
              TotalTertembak++;
              return TotalTertembak;
           }
        }
      Class  gamestart()
      {
           static void Main(string[] args)     // method Main
           {
             //membuat objek pesawatTempurF16 dan F22
              pesawatTempur F16 = new pesawatTempur();
              pesawatTempur F22 = new pesawatTempur();
              F16.namaPilot = "fatih";
              F16.tembak();
              F16.namaPilot= "dede";
              F16.tembak();
// mengakses statik variable totalTertembak dgn nama class pesawattempur bukan nama objek
           system.console.writeln("total tertembak={0}" pesawatTempur.TotalTertembak)
            }
      }
}
Dari contoh diatas kita bisa melihat bahwa static instance variable TotalTertembak adalah hanya ada 1 dan mempunyai nilai sama disemua objek dan cara mengaksesnya melalui nama class.  jika kita mencoba mengakses dgn  referensi objek  spt  F16.totalTertembak akan menyebabkan error saat dikompilasi.
Konstanta dan Readonly
Member class berupa konstanta di inisialisasi hanya sekali yaitu saat program dicompile. konstanta secara implisit adalah static member yaitu hanya ada satu nilai pada semua objek.
Member class berupa readonly inisialisasinya bisa beberapa kali pada programya yaitu tiap objek dibuat. Readonly di inisialisasi lewat constructor.

contoh
1
2
3
4
5
6
7
8
9
10
public class lingkaran
{
    public const double pi=3.14;
    public readonly double diameter;
     public lingkaran(double setdiameter)
     {
       diameter = setdiameter;
      }
}
Saat program dicompile nilai pi diinisialisasi yaitu tetap 3.14  selama program berjalan, sedangkan untuk nilai diameter setiap objek dibuat nilai readonly bisa diinisiaisasi.
Objek
Setelah class dibuat maka yg digunakan dalam program adalah objek dari class. cara membuat objek dari class (instance) adalah sbb:
class objek = new class.

misal nya kita buat class kalkulator dan sebuah method jumlah(int a, int b) dlm class tsb dan objek yg kita buat adalah casio
kalkulator casio = new kalkulator
untuk penggunaan objek casio tsb dgn cara :
hasil = casio.jumlah(2,3)
contoh konkritnya ada di bagian bawah artikel.
Method
Method   mirip   seperti fungsi , yaitu  potongan kode yg melaksanakan tugas tertentu  ,  method mempunyai  format sbb:
akses modifier-return_type-nama_method (parameter)
{

badan method
}
contoh method :
public int jumlah(int bil1, int bil2)
{
return bil1 + bil2;
}

contoh method tanpa return value :
public void tampilkanhasil(int hasil)
{
System.Console.WriteLine(“hasil operasi = {0}”, hasil);
}

Ringkasan hal hal yang terkait dgn method:
– methode terdiri dari header dan body method
– method bisa memiliki return value bisa juga tidak (ditandai dgn void)
– method bisa memiliki 1 atau lebih parameter
– method bisa memiliki parameter objek dan array.
– variable yg dideklarasikan di dlm method bersifat lokal hanya bisa diakses di dlm method saja. jika didalam method ada nama variable yg sama dgn instance variable, maka yg berlaku adalah variable lokal.
– untuk mengakses instance variable yg mempunyai nama yg sama dgn lokal variable gunakan this.nama_instance_variable
– method dlm class yg sama dipanggil dgn menuliskan nama method dan menuliskan argument untuk tiap parameternya. type argument harus sesuai dgn type parameter pada deklarasi method.
– memanggil method pd class yg berbeda menggukana statemen objekreferensi.namaMethod
– method bisa digunakan berulang ulang didalam program
– diusahakan membuat method sesederhana mungkin  dgn satu tugas spesifik.
– diusahakan nama method sesui tugas yg dikerjakan oleh method.
– didalam method tdk boleh ada deklarasi method lain.
– didalam method bisa memanggil method lain

Constructor
Constructor adalah method yg dijalankan setiap kali objek dibuat. Method ini mempunyai ciri ciri:
-nama method sama dgn nama class.
-tidak mempunyai return type.
-akses modifiernya “public”

Salah satu kegunaan constructor adalah untuk inisialisasi kondisi awal objek. Jika kita tdk membuat constructor maka secara otomatis C# akan membuatkan secara default tapi constructor tsb tdk melaksanakan apapaun .
contoh constructor:

1
2
3
4
5
6
7
8
class termometer
}
   public termometer() // constructor
   {
   }
}
Akses Modifier
Akses  modifier  mendefinisikan ruang lingkup pengaksesan  member class  .  Dari mana saja method dan instance variable bisa diakses , bisa diatur melalui  akses  modifier ini. Ada 4  akses modifier tapi untuk tahap awal kita akan membicarakan 2 lebih dahulu yaitu :
1. Public ,  member class  bisa diakses dari semua bagian program .
2. Private , member class hanya bisa diakses dari dlm class

Untuk default akses modifier member class  adalah  private. Sebaiknya data dlm sebuah class tdk bisa diakses langsung dari luar class tapi melalui method. sedangkan method biasanya dibuat public  sehingga bisa dipangggil dari luar class, sedangkan method yg private digunakan hanya dlm class itu sendiri(dipanggil/digunakan oleh method dlm kelas yg sama) sehingga private method disebut “helper method” .
Untuk memanggil method di dlm class yg sama cukup dengan menulis nama method beserta argument tiap parameternya. Sedangkan untuk memanggil method yg mempunyai akses public dari class yg berbeda harus menggunakan format nama_referensi_objek.nama_method.
aksesmodifier contoh program C# yg terdiri dari 2 class
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
using System;
class classpertama
{
  static void Main(string[] args)
   {
    Console.WriteLine(" Apa kabar1? ")
    classkedua objek1 = new classkedua();
    objek1.tampil();
    Console.WriteLine("data class ke 2 ");
    Console.WriteLine(objek1.usia);
    Console.readline()  // supaya console tdk langsung menutup
   }
}
class  classkedua
{
  public int usia =10;
   public void tampil()      // akses modifier method ini diset public , supaya bisa diakses dari luar class ini.
    {
     Console.WriteLine("Apa kabar2? ");
    }
}
Jika sebuah program C# terdiri banyak class ,eksekusi program akan di mulai pada class yang memiliki methode Main().  Class yg memiliki method main disebut sebagai entry point.
Pada class kedua,  method tampil() akses modifiernya ‘public’  supaya method ini bisa dipangggil dari luar class kelaskedua.
Properties
Pada class kedua contoh diatas, akses modifier data adalah public :
public int usia = 10;
Keadaan ini tidak baik sebab data bisa dirubah dgn mudah dari luar class . misalnya program kita sudah besar dan kompleks bisa terjadi ada baris program yg merubah data tanpa sengaja. Untuk mencegah hal ini maka diatasi dgn cara data(instance variable usia) dibuat menjadi private dan membuat properties yg bertugas mengakses data secara aman.
Anggota class private tidak dapat diakses langsung dari luar class. Akses ke data private harus dikontrol secara hati-hati dengan method dlm class yg sama .
Untuk memungkinkan class lain untuk membaca nilai data private , class dapat mendefinisikan properties yang memungkinkan kode klien untuk mengakses data private ini dengan aman . Propertinya berisi method accessor yang menangani rincian memodifikasi dan menbaca data.

Definisi properti dapat berisi accessor get , accessor set atau keduanya .
– accessor get memungkinkan klien untuk membaca nilai data private ;
– accessor set memungkinkan klien untuk mengubah nilai tersebut.

Properties tampaknya akan melanggar gagasan data private . Namun, accessor set dapat memberikan kemampuan data validasi (seperti pemeriksaan range data yg valid ) untuk memastikan bahwa nilai yg di set benar . Sebuah accessor set juga dapat menerjemahkan antara format data yang digunakan dalam  antarmuka.
Demikian pula, accessor get tidak perlu mengekspos data dalam format aslinya, lebih tepatnya accessor get dapat mengedit data dan membatasi pandangan klien dari data tersebut.

berikut ini contoh property Umur memanipulasi instance variable usia
1
2
3
4
5
6
7
8
9
10
11
12
13
public int Umur
 {
 get
 {
 return usia;
 }
 set
 {
 usia = ( ( value >= 17 && value < 55 ) ? value : 0 );
 }
 } //
&nbsp;
contoh program lengkapnya:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
using System;
class classpertama
{
  static void Main(string[] args)
   {
    Console.WriteLine(" Apa kabar1? ")
    classkedua objek1 = new classkedua();
    objek1.tampil();
    Console.WriteLine("data class ke 2 ");
    Console.WriteLine(objek.Umur);
  //menset nilai instance variable usia melalui property Umur
     objek1.Umur = 35;
   //tambahkan baris kode berikut supaya ,console tdk close:
    Console.ReadLine();
     }
}
class classkedua
{
  private int usia =10;
public int Umur
 {
 get
 {
 return usia;
 }
 set
 {
 usia = ( ( value >= 17 && value < 55 ) ? value : 0 );
 }
 } //
   public void tampil()      // akses modifier method ini diset public , supaya bisa diakses dari luar class ini.
    {
     Console.WriteLine("Apa kabar2? ");
    }
}
Namespace dan using
Namespace adalah kata kunci yang digunakan untuk mengorganisasikan class class. Pengorganisasian class class pada namespace mirip direktory direktory yg penyimpan file,
1
2
3
4
5
6
7
8
9
10
Namespace  nama_namespace
{
   Class  class1
    {
    }
   Class class2
    {
    }
}
class library yg sudah disediakan juga disimpan dlm namespace , untuk menggunakan class yg ada di class library kita harus menyertakan namespace nya dgn perintah “using” contoh:
using  System   :  menyertakan class class utama kedalam program .
Berikut ini  beberapa namespace  yg sudah  tersedia di framework class library (FCL)   :
-System.Data  : Berisi class  yang membentuk ADO NET, digunakan untuk database. akses dan manipulasi.
-System.Drawing : Berisi class yang digunakan untuk menggambar dan grafis.
-System.IO : Berisi class untuk input dan output data, seperti   pada akses  file.
– dan masih banyak lagi..

Aktualnya  framework class library pada C# adalah file file berektensi  *.dll
Namespace Bercabang/berjenjang
Seperti halnya direktory, namespace juga bisa bercabang/berjenjang contoh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
namespaceA1
 {
  namespaceB
   {
     class1
      {
      }
    }
    namespaceC
   {
     class2
      {
      }
    }
  }
Untuk mengakses/menggunakan class1 dengan cara
using namespaceA.namespaceB
Parameter Method
Di dalam C# ada 3  jenis parameter yaitu   parameter nilai, parameter referensi  dan parameter output.  berikut ini contoh perbedaan parameter nilai   dan parameter referensi:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace testParameter
{
class Program
{
// var1 sbg parameter nilai, var2 sebagai parameter referensi
public static void jumlah(int var1, ref int var2)
{
var1 = var1 + 5;
     var2 = var2 + 5;
}
    static void Main(string[] args)
{
int var1 = 10;
int var2 = 10;
     jumlah(var1, ref var2);
     Console.WriteLine("Nilai var1 = {0}", var1);
    Console.WriteLine("Nilai var2 = {0}", var2);
   }
}
}
Jika program di atas dijalankan akan menghasilkan output sbb:
Nilai var1=10
Nilai var2=15
Kita melihat dari hasil tsb : setelah method  jumlah() dijalankan,    parameter nilai  tdk merubah variabel di luar method sedangkan parameter referensi merubah nilai  variable diluar method.
Contoh C# class calculator
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace kalkulator
{
  class class_pertama
     {
       static void Main(string[] args)
       {
           int hasiljumlah=0;
           int bil1 = 30;i
           int bil2 = 5;
//===membuat objek casiocalc ===================
               classkalkulator casiocalc = new classkalkulatorku("casio");
               hasiljumlah = casiocalc.jumlah(bil1 , bil2);
               casiocalc.tampilkanhasil(hasiljumlah);
//===membuat objek polytroncalc ================
         classkalkulator polytroncalc = new classkalkulatorku("polytron");
          hasiljumlah = polytroncalc.jumlah(bil1, bil2);
          polytroncalc.tampilkanhasil(hasiljumlah);
          System.Console.ReadLine(); // supaya console tdklangsung close
          }
         }
     class classkalkulatorku
      {
        public classkalkulator(string merk) // constructor
          {
          System.Console.WriteLine("=====object dibuat============");
          System.Console.WriteLine("buatan " + merk);
          }
       public int jumlah(int bil1, int bil2)
        {
        return bil1 + bil2;
        }
        public int kurang(int bil1, int bil2)
        {
        return bil1 - bil2;
        }
         public void tampilkanhasil(int hasil)
         {
        System.Console.WriteLine("hasil operasi = {0}", hasil);
         }
     }
// penutup  namespace
Method Overloading
Method overloading adalah method dgn nama yang sama tetapi mempunyai parameter yang berbeda. contoh
1
2
3
4
5
6
7
8
9
10
11
public int hitung luaspersegipanjang(int panjang, int lebar)
{
int luas = panjang * lebar;
return luas
}
public double hitung luaspersegipanjang(double panjang, double lebar)
{
double luas = panjang * lebar;
return luas
}
pada contoh diatas kedua method mempunyai nama yg sama yaitu luaspersegipanjang akan tetapi keduanya mempunyai parameter yg berbeda , method pertama parameternya berupa bilangan integer method kedua parameternya bilangan double. C# akan secara otomatis menyesuaikan method mana yg dipakai berdasar nilai parameter yg diberikaan.
Overload Constructor
Seperti method, constructor juga bisa di overload artinya setia objek dijalankan akan ada consructor yg dijalankan sesui jumlah, type atau urutan argument yg diberikan untuk parameter constructornya.
contoh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class serialkomunikasi
  {
     public serialkomunikasi( int baudrate)
      {
      }
     public serialkomunikasi(int baudrate, int data )
      {
      }
  }
class penggunaanSerial
{
   static void Main(string[] args)
{
   seserialkomunikasi Com1 = new serialkomunikasi(9600);
// atau
   serialkomunikasi Com1 = new serialkomunikasi(9600,8);
}
Komposisi
Komposisi adalah member class yg berupa Objek Referensi dari class Lain
Pada situasi tertentu membuat referensi obyek yang sudah ada lebih mudah daripada menulis ulang kode objek untuk class baru dalam proyek-proyek baru.
Penggunaan referensi ke obyek dari sebuah class yang sudah ada sebagai anggota objek baru ini disebut komposisi.
Salah satu bentuk reusable dlm perangkat lunak adalah komposisi, di mana member class memiliki referensi ke objek dari class lainnya.

contoh
1
2
3
4
5
6
7
8
9
10
11
class test
{
  private int x =100;          /
  private casio   kalkulator;  //  casio adalah objek class kalkulator
  public test ()   //constructor
  {
  }
}
Penggunaan referensi “this”
Setiap objek dapat mengakses referensi ke dirinya sendiri, yang disebut referensi this. Referensi this dapat merujuk secara implisit ke variable instance, properties dan method dari sebuah objek.
Keyword this umumnya digunakan di dalam methods, di mana this adalah referensi ke objek yang sedang digunakan oleh method tsb.

Contoh this
1
2
3
4
5
6
7
8
9
10
11
12
class contohsaja
{
private int  dataku =10;
public int tambahkan()
   {
   int dataku = 33;   // variable lokal
   this.dataku++;     // instance variable dataku + 1 = 10 +1
   }
}
this.dataku mengacu ke instace variable (private int dataku =10 , bukan lokal variable int dataku =33 ).
Inheritance  (pewarisan)
Kita bisa membuat class baru dengan cara menurunkan(inherit) class yg sudah ada. Jadi kita tidak perlu repot membuat class baru dari nol . Sebagai contoh kita ingin membuat class kalkulator Statistik yg mempunyai method hitung rata rata. Kita tak perlu membuat class kalkulator statistik baru dari awal ,kita bisa membuat class  turunan dari class  kalkulator yg sudah ada.
Member Class turunan dapat mengakses member class  public  dan protected dari class induk. Member class protected dari class induk dapat diakses oleh class turunan
Method dari class induk dapat ditulis kembali (redefined) di kelas turunannya dalam bentuk :
– Abstract method pada class abstract (class induk yg berisi abstrak method)
– Virtual method pada non class abstract.
method yg ditulis kembali di dahului oleh keyword “override”

Objek dari classInduk adalah bukan objek classTurunan, objek classTurunan adalah objek classInduk. misal class induk : mobil  class turunan : toyota,honda,hyundai  ,toyota (sudah pasti) adalah mobil tapi mobil adalah bukan toyota.
kalau sebuah class tdk tertulis class induk maka sebenarnya class tersebut adalah turunan dari class “object” . Class object adalah class induk dari semua class yg ada di C#, termasuk class yg kita buat sendiri.
classturunan
Contoh Penerapan class induk – class turunan pada aplikasi kalkulator

.. inheritance
Berikut ini contoh Diagram   Class induk kalkulatorSederhana dan 2 buah Class turunannya.
classinheritence
Class turunan mewarisi data dan method dari Class induk , melihat pada contoh diatas  kedua Class turunan tdk perlu lagi membuat method jumlah() dan method kurang()  karena  Class turunan mewarisi keduanya.
Cara Class induk mewarisi Class turunannya:
NamaClass_Turunan : namaClass_Induk
Constructor class induk dan class turunan
Saat objek class turunan dibuat maka constructor class induk dijalankan lebih dahulu baru setelah itu constructor objek turunan dijalankan. Kalau class induk juga berinduk (diturunkan dari) ke class lain,maka class lain tsb yg pertama kali dijalankan begitu seterusnya. Constructor yg pertama kali dijalankan adalah constroctor class object karena kelas tsb adalah kelas induk dari semua class.
contoh :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
class kakek
{
   public kakek()   //secara implisit memanggil constructor "object"
   {
   }
 public kakek()   //constructor
   {
   console.writeln(" konstruktor kakek");
   }
}
class bapak : kakek
{
    public bapak()  // secara implisit memanggil construktor kakek
     {
     }
 public bapak()   //constructor
   {
   console.writeln(" konstruktor bapak");
   }
}
class anak : bapak
{
  public anak()  // secara implisit memanggil constructor bapak
  {
  }
 public anak()   //constructor
   {
   console.writeln(" konstruktor anak");
   }
}
class test
{
  anak anak1  = new anak()   // buat objek anak1 dari class anak.
}
Ketika objek anak1 dibuat maka konstruktor kakek yg pertama dijalankan lalu kontruktor bapak lalu konstroktor anak
Constructor dgn parameter
Untuk menjalankan constructor class induk yg mempunyai parameter kita dapat menuliskan dgn:
constructorTurunan(parameter) : base(parameter)

contoh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
namespace inheritance
{
   public class koordinat
    {
      protected int X, Y;
       public koordinat()
     {
     // implicit call to Object constructor occurs here
      Console.WriteLine("constructor1 point, empty");
      }
 // constructor  dgn parameter
 public point( int xValue, int yValue )
  {
    X = xValue; // use property X
    Y = yValue; // use property Y
    Console.WriteLine("constructor2 point, set X dan Y");
   }
// return string representation of koordinat
 public override string ToString()
   {
    return "[" + X + ", " + Y + "]";
    }
    }//end of class koordinat
//================================================
// kelas lingkaran mempunyai base class koordinat
//=============================================
class lingkaran: koordinat
 {
        private double jari_jari;
  // default constructor
     publiclingkaran()
     {
    // implicit call to koordinat constructor occurs here
     Console.WriteLine("constructor1 lingkaran, empty");
      }
    // constructor
   public lingkaran( int nilaiX, int nilaiY, double nilaiR ) : base( nilaiX, nilaiY )
     {
      jari_jari = nilaiR;
       Console.WriteLine("constructor2 lingkaran, set jari jari");
      }
      // property
      public double Jari_Jari
      {
           get
           {
            return jari_jari;
            }
           set
            {
           jari_jari = value;
            }
       }
       public override string ToString()
       {
         return "koordinat x,y = " + base.ToString() +  ";jari-jari lingkaran = " + Jari_Jari;
        }
    } //  end of class
//=================================
// class test
 class ProgramTest
    {
        static void Main(string[] args)
        {
            //=========================
            lingkaran lingkaran1 = new lingkaran(3,4,5);
            Console.WriteLine(lingkaran.ToString());
            Console.ReadLine();
        }//end of main
    } //end off class ProgramTest
} //end of namespace
Perhatikan cara constructor class turunan menyertakan constructor base class yg berparameter (digunakan untuk inisialisasi objek class turunan dan objek class induk)
1
2
3
4
5
6
// constructor
public lingkaran( int nilaiX, int nilaiY, double nilaiR ) : base( nilaiX, nilaiY )
{
jari_jari = nilaiR;
Console.WriteLine("constructor2 lingkaran, set jari jari");
}
Class Abstrak
Class Abstrak adalah class yg digunakan sebagai Class induk dan methodnya tidak ada implemantasinya hanya berupa deklarasi saja . Implementasi dari class abstrak dilakukan pada class turunannya. Class turunan wajib meng-implementasi semua method abstrak dari class induk. Class abstrak di dahului keyword “abstract”

contoh class abstrak :
1
2
3
4
5
6
public abstract class  mobil   // mobil adalah class abstrak
{
      public abstract starterMesin(); // method abstract krn tdk ada implentasi
      public abstract tekanPedalGas();
      public abstract tekanPedalRem();
}
Method abstrak
Method abstrak hanya ada di dalam class abstrak, penulisan method ini  di dahului dgn keyword “abstract”. Method abstrak tidak mempunyai implementasi hanya deklarasi saja.
contoh  Class dan method abstrak :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
namespace contohClassAbstak
{
  public abstract class kalkulatorInduk
   {
    public abstract int jumlah(int x, int y);
     publik abstract int kurang(int x, int y);
    }
   public class statistikKalkulator : kalkulatorInduk // kalkulatorInduk sbg class induk
   {
     public override int jumlah(int x, int y)
     {
     return x + y;
     }
     public override int jumlah(int x, int y)
    {
    return x - y;
    }
  } // penutup class
} //penutupn namespace
Method Virtual
berbeda dgn method abstract, method virtual adalah method dari class induk yg ditulis kembali dari pada class turunan dan pada class induk method tsb juga punya implementasinya .

Contoh:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class classInduk
{
     public virtual methodA
     {
        //code program
     }
}
class classAnak : classInduk
{
      public override methodA
      {
        //code program
      }
}
contohoverride
Menyembunyikan method  class induk dgn keyword  “new”
jika kita ingin membuat method baru di kelas turunan yg sama dgn method dikelas induk dan kita ingin method yg dikelas induk  disembunyikan  kita tambahkan keyword new dimethod kelas turunan.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
using System;
class induk
{
    public void methodInduk()
    {
    Console.WriteLine(" method induk");
    }
}
class anak : induk
{
   public new void methodInduk() // method ini menyembunyikan methodinduk dari base class.
    {
    console.WriteLine("method anak");
    }
}
class Program
{
    static void Main()
    {
    anak objekref = new anak();
    objekref.MethodInduk();
    }
}
Output
method anak

Array
Array digunakan untuk menyimpan sejumlah data dgn type yg sama. contoh
array yg terdiri 1 baris data atau disebut array 1 dimensi
5 buah data dgn type integer: [10,20,4,5,6]
3 buah data string : [“mangga”, “jambu” “rambutan”]

Array yg terdiri dari baris dan kolom disebut array 2 dimensi
contoh array 3 baris 3 kolom
{ 1, 4, 5}
{ 2, 5, 3}
{ 3, 6, 2}

Sintax untuk membuat array 1 dimensi
Type [] namaArray = new namaArray[jumlah data]
contoh : int [] dataku = new dataku[5]
Untuk membaca atau menulis data ke dalam elemen array menggunakan
namaArray[indek] , indek dimulai dari 0

misal data yg akan kita tulis ke array dataku adalah {10,20,4,5,6}
dataku[0]=10;
dataku[1]=20;
dataku[2]=4;
dataku[3]=5;
dataku[4]=6;

kode program untuk membaca data dari element array ke 2
var1 = dataku[2];
maka var1 akan bernilai 4

kode program membuat array dan sekaligus mengisi dengan data :
int [] dataku = new dataku[5] {10,20,4,5,6};

selain itu type data array juga bisa ditentukan oleh data yg disimpan :
contoh : var datamu = new[] {2.3, 4.3, 3.5};
oleh compiler type data datamu diset desimal

Mengakses array dataku dgn for loop
int [] dataku = new dataku[5] {10,20,4,5,6};
for(int i =0; i < dataku.length; i++)
int jumlahTotal = jumlahTotal + dataku[i];

Mengakses array dataku dengan foreach
sintax : foreach ( type namaelemen in namaArray)
{
statement
}

contoh :
foreach ( int data in dataku)
{
int jumlahTotal = jumlahTotal + data;
}

Array dua dimensi
sintax membuat array 2 dimensi :

type[ , ] namaArray = new type [jumlah baris,jumlah kolom]
contoh : int[ , ] dataku = new int[3,3];
Untuk membaca atau menulis data ke dalam elemen array dua dimensi menggunakan
namaArray[indek baris, indek kolom] , indek dimulai dari 0

contoh misalnya data sebuah matrix sbb:
1 2 3
4 5 6
7 8 9
kode program menyimpan data matrix diatas kedalam array dua dimensi :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
dataku[0,0] = 1; // baris 0 kolom 0
dataku[0,1] = 2;
dataku[0,2] = 3;
dataku[1,0] = 4; // baris 1 kolom 0
dataku[1,1] = 5;
dataku[1,2] = 6;
dataku[2,0] = 7; //baris 2 kolom 0
dataku[2,1] = 8;
dataku[2,2] = 9;
// atau dengan kode program yg lebih lebih simple :
int[,] dataku = { {1,2,3},
                  {4,5,6},
                  {6,7,8},
                 };
// Mengakses array dua dimensi dataku[3,3] dengan for loop
for (int baris = 0; baris < dataku.GetLength(0); baris++)
{
     for ( int kolom = 0; kolom < dataku.GetLenght(1); kolom++)
       {
        int jumlahTotal =  jumlahTotal + dataku[baris,kolom];
       }
}
// Mengakses array dua dimensi dataku[3,3] dengan foreach
foreach (int i in dataku)
  {
    System.Console.Write("Output: {0} ", i);
  }
// Output: 1 2 3 4 5 6 7 8 9
Method bisa memiliki return value dan parameter berupa array 1 dimensi.
contoh :
1
2
3
4
5
urutkanArray(int [] dataku)
{
   Array.sort(dataku);     
   return dataku;
}
Untuk mengurutkan element array dataku program diatas menggunakan method sort member dari class statis Array. selain method sort, class Array juga memiliki member copy, binarysearch dll.
Collection
Collection hampir sama dengan array, bedanya collection mempunyai jumlah elemen data yg tidak tetap (mutable). Sehingga collection lebih fleksible dibanding array.
Collection adalah class yg tersimpan pada namespace system.collection.generic. Ada 4 jenis class collection yaitu :
1. List<T>
2. SortedList<K,V>
3. Queue<T> (antrian)
4. Stack<T>

contoh penggunaan Class List
// membuat sebuah objek collection dari class List
List<int> dataku = new List<int>
//mengisi elemen objek collection dataku
dataku.Add(2);
dataku.Add(4);
dataku.Add(7);

//Mengakses elemen objek list dataku sama spt array
for(i=0; i<dataku.Count; i++)
int jumlahTotal += jumlahTotal + dataku[i];

ArrayList
Ada class yg mirip class List<T> yaitu Class ArrayList. ArrayList berada pada namespace System.Collections.ArrayList.
contoh penggunaan class arrayList

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
using System;
using System.Collections;
public class SamplesArrayList
{
 public static void Main()  {
      // Creates and initializes a new ArrayList.
      ArrayList listbuah = new ArrayList();
      listbuah.Add("mangga");
      listbuah.Add("rambutan");
      listbuah.Add("jeruk");
      // Displays the properties and values of the ArrayList.
      Console.WriteLine( "daftar list buah" );
      Console.WriteLine( "    jumlah:    {0}", listbuah.Count );
      Console.WriteLine( "    Capacity : {0}", listbuah.Capacity );
      Console.Write( "    isi list buah:" );
      PrintValues( listbuah );
   }
   public static void PrintValues( IEnumerable list ) 
       {
         foreach ( Object buah in list )
         Console.Write( "   {0}", buah );
         Console.WriteLine();
      }
}
Interface
interface konstruksinya mirip dengan class abstrak tetapi dengan tidak ada kode implementasi. Artinya, sebuah interface hanya terdiri dari deklarasi tanpa implementasi.
  Sebuah interface dapat digunakan di mana saja dalam desain class sebagai instance variabel atau parameter dalam method.
  Sebuah interface adalah sebuah “kontrak definisi” artinya setiap class yang mengimplementasikan interface harus menerapkan semua definisi metode yang diberikan dalam interface .
  Sebuah interface mengatakan apa yang user harus dilakukan, bukan bagaimana melakukannya.
  Sebuah interface mendefinisikan karakteristik perilaku dan menempatkan perilaku dlm yang classes independen dari hirarki class.
  Ketika class membuat kontrak dengan menerapkan interface, class dikatakan mengimplementasikan interface atau mewarisi/inherit dari interface.
penulisan interface

interface Inama-interface
{
definisi member interface
}

nama interface didahului dgn huruf i cuma sebagai penanda sebuah interface saja tapi tdk wajib ada.
penulisan class yg mengimplementasikan interface
class namaclass : Inama-interface
contoh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace Contohinterface1
{
    class Program
    {
        static void Main(string[] args)
        {
            IremoteControl remoteProductChina = new RCsedan();
            remoteProductChina.maju();
            remoteProductChina.mundur();
            Console.ReadLine();
        }
    }
//========================================
//          interface
//=========================================
    interface IremoteControl
    {
        void maju();
        void mundur();
    }
//==========================================
    class RCsedan : IremoteControl
    {
        public void maju()
         {
             System.Console.WriteLine("sedan maju");
          }
        public void mundur()
        {
            System.Console.WriteLine("sedan mundur");
        }
    }// end of class RCsedan
  
}
class RCsedan mengimplementasikan interface IremoteControl jadi class RCsedan harus mengimplementasikan semua method interface IremoteControl yaitu maju() dan mundur();

Ya seperti itulah dasar C#. Semoga ini bermanfaat.
Terima kasih.