Langkah Awal Memahami C#

C# adalah bahasa pemrograman yang diciptakan oleh Microsoft (dikembangkan dibawah kepemimpinan Anders Hejlsberg yang notabene juga telah menciptakan berbagai macam bahasa pemrograman termasuk Borland Turbo C++ dan Borland Delphi). Bahasa C# juga telah di standarisasi secara internasional oleh ECMA.Seperti halnya bahasa pemrograman yang lain, C# bisa digunakan untuk membangun berbagai macam jenis aplikasi, seperti aplikasi berbasis windows (desktop) dan aplikasi berbasis web serta aplikasi berbasis web services.Mengapa Mempergunakan C#?Pertanyaan di atas mungkin muncul di benak kita semua pada saat pertama kali mendengar tentang C#. Hal tersebut sangat beralasan, dengan melihat kenyataan bahwa sebelum C# muncul, telah banyak bahasa pemrograman yang ada, seperti C, C++, Java, Perl dan lain-lain.Ada beberapa alasan kenapa memilih C#, yaitu :
  1. Sederhana (simple)
C# menghilangkan beberapa hal yang bersifat kompleks yang terdapat dalam beberapa macam bahasa pemrograman seperti Java dan C++, termasuk diantaranya mengilangkan macro, templates, multiple inheritance dan virtual base classes. Hal hal tersebut yang dapat menyebabkan kebingungan pada saat menggunakannya, dan juga berpotensial dapat menjadi masalah bagi para programmer C++. Jika anda pertama kali belajar bahasa C# sebagai bahasa pemrograman, maka hal-hal tersebut diatas tidak akan membuat waktu anda terbuang terlalu banyak untuk mempelajarinya. C# bersifat sederhana, karena bahasa ini didasarkan kepada bahasa C dan C++. Jika anda familiar dengan C dan C++ atau bahkan Java, anda akan menemukan aspekaspek yang begitu familiar, seperti statements, expression, operators, dan beberapa fungsi yang diadopsi langsung dari Java, C dan C++, tetapi dengan berbagai perbaikan yang membuat bahasanya menjadi lebih sederhana. Perhatikan Gambar 1 yang merupakan komposisi bahasa yang terdapat dalam C# sehingga kita tidak perlu takut lagi untuk mempelajari C#.
  1. Modern
Apa yang membuat C# menjadi suatu bahasa pemrograman yang modern?Jawabannya adalah adanya beberapa fitur seperti exception handling, garbage collection, extensible data types, dan code security (keamanan kode/bahasa pemrograman). Dengan adanya fitur-fitur tersebut, menjadikan bahasa C# sebagai bahasa pemrograman yang modern.


  1. Object-Oriented Language
Kunci dari bahasa pemrograman yang bersifat Object Oriented adalah encapsulation, inheritance, dan polymorphism. Secara sederhana, istilah-istilah tersebut bisa didefinisikan sebagai berikut (definisi dan penjelasan lebih lanjut akan di uraikan pada bab-bab selanjutnya). encapsulation, dimana semua fungsi ditempatkan dalam satu paket (single package). inheritance, adalah suatu cara yang terstruktur dari suatu kode-kode pemrograman dan fungsi untuk menjadi sebuat program baru dan berbentuk suatu paket. Polymorphism, adalah kemampuan untuk mengadaptasi apa yang diperlukan untuk dikerjakan. Sifat-sifat tersebut di atas, telah di miliki oleh C# sehingga bahasa C# merupakan bahasa yang bersifat Object Oriented.


  1. Powerfull dan fleksibel
C# bisa digunakan untuk membuat berbagai macam aplikasi, seperti aplikasi pengolah kata, grafik, spreadsheets, atau bahkan membuat kompiler untuk sebuah bahasa permrograman.
  1. Efisien
C# adalah bahasa pemrograman yang menggunakan jumlah kata-kata yang tidak terlalu banyak. C# hanya berisi kata-kata yang biasa disebut dengan keywords. Keywords ini digunakan untuk menjelaskan berbagai macam informasi. Jika anda berpikiran bahwa bahasa pemrograman yang menggunakan sangat banyak kata-kata (keywords) akan lebih powerfull, maka jawabannya adalah “pemikiran itu tidak selalu benar”, karena hal itu justru bisa menambah kerumitan para developer pada saat membuat suatu aplikasi.Tabel 1 memperlihatkan daftar keywords yang ada dalam bahasa C#.

Modular

Kode C# ditulis dengan pembagian masing Class-Class (classes) yang terdiri dari beberapa routines yang disebut sebagai member methods. Class-Class dan metodemetode ini dapat digunakan kembali oleh program atau aplikasi lain. Hanya dengan memberikan informasi yang dibutuhkan oleh Class dan metode yang dimaksud, maka kita akan dapat membuat suata kode yang dapat digunakan oleh satu atau beberapa aplikasi dan program (reusable code).



  1. C# akan menjadi populer
Dengan dukungan penuh dari Microsoft yang akan mengeluarkan produk-produk utamanya dengan dukungan Framework .NET, maka masa depan bahasa C# sebagai salah satu bahasa pemrograman yang ada di dalam lingkungan Framework .
--------------------------------------------------------------------------------------------------------------------------
Sebelum belajar lebih lanjut tentang programming C#, sebaiknya kenali dulu sintaks dasar C#. Sintaks dasar C# adalah sebagai berikut:
  1. Nama File Nama file secara default dalam program yang kita buat adalah Program.cs. walaupun kita bisa menggantinya dengan apa saja seperti programpertama.cs. Akhiran atau extention yang di pakai bahwa suatu file berisi sorce code C# adalah .cs
  2. Comment
    Comment dapat digunakan sebagai dokumentasi, untuk memberikan informasi atau keterangan mengenai program yang kita buat dan memahami dalam membantu program yang kita buat.

    2.1. Comment Single Line
    Comment Single line di awali dengan tanda // hanya berlaku untuk satu baris code dan berakhir pada baris tersebut.

    Contoh:
    System.Console.WriteLine(“Halo Dunia!”); //akan menuliskan pesan di layar

    2.2. Comment Multi Line
    Comment Multi Line di awali dengan tanda /* dan di akhiri dengan */

    Contoh:
    /* Comment jenis ini
    dapat menutupi lebih
    dari satu baris */
  3. Method Main
    Method Main() bisa di katakan sebagai pintu masuk program anda. Kalau anda mencoba mengganti nama Main() dengan nama lain, compiler akan mengeluh bahwa tidak ada entry point atau pintu masuk. Perlu juga diketahui bahwa isi atau tubuh method harus diawali dengan “{“ dan diakhiri dengan “}”. Method Main() dapat disebut juga sebagai fungsi utama.

    Contoh:
    static void Main(string[] args)
    {
           //Tubuh atau isi method
    }
  4. Class
    Method di dalam C# tidak bisa berdiri sendiri, namun harus menjadi bagian dari suatu class. Nama class yang menyelimuti Main() tidak menjadi masalah. Seperti method, tubuh suatu class dimulai dengan dan diakhiri dengan }.
    Contoh:


    class Hallo
     
    {
     
    // tubuh atau isi class

     }
  5. System.Console.WriteLine() dan System.Console.Write()
    Method WriteLine() tersebut berada di dalam class yang bernama Console (sebagaimana method Main() berada dalam suatu class). Class Console sendiri dikelompokkan ke dalam namespace yang bernama System. Namespace System menampung semua class library .NET (Console adalah salah satu dari class library .NET). Jadi kita memanggil method WriteLine() dengan menuliskan mulai dari namespacenya sampai ke method itu sendiri.

    Contoh:
    System.Console.WriteLine(“Halo Lingkup Informatika!”); //Akan menyisipkan baris baru
    System.Console.Write(“Sedang belajar C#!”); // tanpa menyisipkan baris baru
    System.Console.Write(“Gampang-gampang susah.”); // tanpa menyisipkan baris baru

    Output dari penggalan program di atas sebagai berikut:

    Halo Lingkup Informatika!
    Sedang belajar C#! Gampang-gampang susah.
  6. Readline()
    Method static ReadLine() dari class Console memungkinkan kita menuliskan input sampai enter ditekan. Input yang kita berikan akan dikembalikan ke program dalam bentuk string. String yang dikembalikan tersebut dapat kita jadikan argument bagi Parse().

    Contoh:
    class Input
    {
    static void Main()
    {
    int var1, var2;

    Console.WriteLine(“Program Penjumlahan”);
    Console.WriteLine();
    Console.Write(“Masukkan angka pertama: ”);
    var1 = int.Parse(Console.ReadLine());
    Console.Write(“Masukkan angka kedua: ”);
    var2 = int.Parse(Console.ReadLine());
    Console.WriteLine();
    Console.WriteLine(“Jumlahnya adalah {0}.”, var1 + var2);
    }
               }
  7. Parse()
    Type data yang telah dipakai seperti int dan double juga merupakan sejenis class. Type type dasar yang didefinisikan Framework .NET memiliki method static yang bernama Parse(). Method tersebut menerima sebuah argument string dan mengembalikan hasil olahannya. Hasil olahannya berupa type yang bersangkutan, dengan nilai yang terkandung di dalam string argument.
  8. Namespace
    Namespace adalah kata kunci untuk mendefinisikan ruang lingkup atau batasan program dan menghindari konflik nama. Misalnya source code A.cs dan source code B.cs sama-sama membuat class yang bernama namakelas. Kedua class yang namanya sama tersebut dapat digunakan di suatu program asalkan terletak di namespace yang berbeda. Kegunaan namespace untuk mengelompokan elemen-elemennya (misalnya class) bisa dimisalkan seperti kegunaan folder untuk mengelompokkan file-file.
  9. Placeholder
    Placeholder adalah data yang di ikat atau di gabungkan ke dalam sebuah pernyataan secara terpisah dari data-data yang lain.
    Contoh:
    int permen = 10;
    int snack = 5;

    //placeholder {0} dan {1}
    Console.WriteLine("Saya memliki {0} permen dan {1} snack", permen, snack);
    Console.ReadLine();
--------------------------------------------------------------------------------------------------------------
C#-Peralatan yang diperlukan 
-----------------------------------------------------------------------------------
Pada bagian ini akan dibahas mengenai peralatan yang diperlukan untuk membuat coding C#. DI bagian awal kita telah menyinggung bahwa C# merupakan baigan dari .Net Framework dan digunakan untuk menyusun aplikasi .Net. Sebelum membahas tentang peralatan yang diperlukan di sini akan diberikan sedikit pemahaman mengenai hubungan antara C# dengan .Net Framework.

.Net Framework
.Net Framework adalah sebuat platform yang dapat membantu anda untuk membangun beberapa jenis aplikasi seperti berikut:
  • Aplikasi Windows
  • Aplikasi Web
  • Web Service
Aplikasi .Net Framework merupakan aplikasi yang bersifat multi-platform. Framework ini telah dirancang sedemikian rupa sehingga dapat digunakan untuk beberapa jenis bahasa pemrograman yaitu C#, C++, Visual Basic, JScript, COBOL dan lain-ain. Semua bahasa ini dapat mengakses framework tersebut dan dapat saling berkomunikasi.

.Net Framework terdiri atas pustaka kode yang sangat lengkap yang digunakan oleh bahasa seperti C#. Berikut in iadalah beberapa komponen dari .Net Framework
  • Common Language Runtime (CLR)
  • The .Net Framework Class Library
  • Common Language Specification
  • Common Type System
  • Metadata and Assemblies
  • Windows Forms
  • ASP.Net and ASP.Net AJAX
  • ADO.Net
  • Windows Workflow Foundation (WF)
  • Windows Presentation Foundation
  • Windows Communication Foundation (WCF)
  • LINQ

C# - Integrated Development Environment (IDE)
Microsoft menyediakan perangkat pengembangan aplikasi dengan menggunakan bahasa pemrograman C# sebagai berikut:
  • Visual Studio 2010 (VS)
  • Visual C# 2010 Express (VCE)
  • Visual Web Developer
Dua yang akhir adalah tersedia secara cuma-cuma (free) dari official website Microsoft. Anda dapat menulis berbagai jenis program C# dengan menggunakan perangakt tersebut, mulai dari program aplikasi sederhana sampai dengna program aplikasi yang sangat kompleks. Anda juga dapat membuat file kode program C# dengan menggunakan editor teks sederhana, seperti Notepad pada sistim operasi windows, dan kemudian mengkompilasi kode tersebut menjadi bahasa assembly dengan menggunakan compiler yang dipanggil melalui command-line (baris-perintah, dos prompt), yang juga merupakan bagian dari .Net Framework. 
spacer

Pemrograman Mikro

  1. Pemrograman Mikro
Unit Kendali Logika atau Control Logic Unit adalah bagian yang mengatur seluruh aktivitas perangkat keras di dalam komputer. CLU menyebabkan suatu instruksi dapat diambil dari memori, memberi kode pada instruksi tersebut untuk menentukan operasi yang akan dilaksanakan, menentukan sumber dan tujuan data, dan menyebabkan perpindahan data dan eksekusi operasi yang diperlukan. CLU menjalankan seluruh proses sampai sebuah operasi HALT secara tiba-tiba masuk ke dalam program dan dieksekusi.

Kode instruksi bersama data, tersimpan di dalam memori. Sebuah instruksi merupakan entitas kompleks yang pelaksanaannya tidak dapat diselesaikan dalam satu waktu/putaran. Karena itu setelah menginterpretasikan kode biner suatu instruksi, CLU menghasilkan serangkaian perintah kendali yang disebut sebagai instruksi-mikro (microinstruction) yang menjalankan instruksi tersebut. Untuk membedakan sebuah instruksi dan sebuah instruksi-micro, seringkali instruksi-instruksi disebut sebagai instruksi-makro (macroinstruction).

Durasi siklus eksekusi tergantung pada jenis operasi yang akan dikerjakan, mode pengalamatan data yang digunakan dan jumlah operand yang diperlukan. CLU mengerjakannya dengan membagi setiap siklus instruksi menjadi serangkaian keadaan (state), setiap state mempunyai panjang yang sama dan durasi setiap state sama dengan periode clock/siklus komputer.


Instruksi-mikro merupakan operasi primitif tingkat rendah yang bertindak secara langsung pada sirkuit logika suatu komputer. Mereka memerinci fungsi-fungsi (sinyal-sinyal) seperti berikut:

1. Membuka/menutup suatu gerbang (gate) dari sebuah register ke sebuah BUS.
2. Mengirim data sepanjang sebuah BUS.
3. Memberi inisial sinyal-sinyal kendali seperti READ, WRITE, SHIFT, CLEAR dan SET.
4. Mengirimkan sinyal-sinyal waktu.
5. Menunggu sejumlah periode waktu tertentu.
6. Menguji bit-bit tertentu dalam sebuah register.

Ada dua pendekatan pokok bagi perancangan sebuah CLU yaitu: rancangan hard-wire (atau logika acak) dan rancangan microprogrammed.
Pada pendekatan hard-wired sejumlah gerbang (gate), counter, dan register saling dihubungkan untuk menghasilkan sinyal-sinyal kendali, setiap rancangan memerlukan piranti logika dan hubungan yang berbeda-beda. Pada pendekatan microprogrammed untuk setiap instruksi-mikro disebut sebagai sebuah program-mikro, untuk setiap instruksi-mikro dan disimpan dalam sebuah memori kendali (biasanya ROM) dalam CLU. Kemudian waktu yang diperlukan dan kendali dihasilkan dengan menjalankan suatu program-mikro untuk masing-masing instruksi-makro.





KENDALI HARD-WIRED

Sewaktu sebuah instruksi ditempatkan dalam register instruksi (IR atau Instruction Register), CLU mendekode instruksi itu dan menghasilkan serangkaian instruksi-mikro. Sebagai contoh suatu komputer yang mempunyai 16 instruksi, sehingga setiap instruksi dapat diberi kode dengan sebuah opcode 4 bit yang unik, sisa word instruksi berisi informasi pengalamatan yang penting seperti register-register yang terlibat, alamat-alamat memori dan offset). Mneumonic-nya diperlihatkan sebagai berikut:

LDR (Load register dari memori)
LDM (Load memori dari suatu register)
ADR (Add ke register)
BRU (Branch/percabangan tidak kondisional)
BRZ (Branch/percabanan pada nol)

KENDALI MICROPROGRAMMED

Istilah program-mikro pertama kali diungkapkan oleh M.V Wilkes pada awal tahun 1950-an ketika dia mengajukan suatu pendekatan baru untuk mengendalikan perancangan unit. Ide ini menarik perhatian banyak ahli dan insinyur komputer pada saat itu, walaupun hal itu tampak tidak realistis karena adanya persyaratan untuk memori kendali yang sangat cepat dan relatif tidak mahal. Situasi ini berubah secara dramatis dengan adanya pengumuman keluarga komputer IBM System/360 pada bulan April 1964. Seluruh model terbesar menyertakan memori kontrol yang cepat dan tidak mahal dan merupakan microprogrammed. Sejak itu, pemrograman mikro menjadi hal yang umum sejalan dengan peningkatan kecepatan dan penurunan harga memori kontrol.

l  Organisasi CLU Microprogrammed
Instruksi-makro disimpan dalam memori utama dan diakses melalui memory address register (MAR) dan memory buffer register (MBR). Instruksi diambil (fetch) ke dalam register instruksi (IR atauinstruction register) dan pengendali-mikro (microcontroller atau sequencer) yang bersesuaian. Alamat awal program-mikro dimuat (load) ke dalam kendali alamat register (CAR atau Control Address Register) dan kemudian kendali memori mengirim instruksi-mikro pertama ke dalam kendali penyangga register (CBR atau Control Buffer).





l  Komponen-Komponen Pokok  Control Unit Microprogrammed
1.         Instruction Register
            Menyimpan instruksi register mesin yang dijalankan.
2.         Control Store berisi microprogrammed
a)        Untuk semua instruksi mesin.
b)        Untuk startup mesin.
c)        Untuk memprosesan interupt
3.         Address Computing Circuiting
            Menentukan alamat Control Store dari mikroinstruksi berikutnya yang akan dijalankan.
4.         Microprogrammed Counter
            Menyimpan alamat dari mikroinstruksi berikutnya.
5.         Microinstruction Buffer
            Menyimpan mikroinstruksi tersebut selama dieksekusi.
6.         Microinstruction Decoder
            Menghasilkan dan mengeluarkan mikroorder yang didasarkan pada mikroinstruksi dan   opcode instruksi    yang akan dijalankan


 Format Instruksi-mikro


Pada dasarnya ada dua jenis format instruksi-mikro: horisontal dan vertikal. Pada format instruksi-mikro horisontal, satu bit diberikan untuk setiap sinyal logika yang dapat dihasilkan oleh instruksi-mikro. Dengan demikian, jika dibutuhkan sejumlah K sinyal kendali yang berbeda maka dibutuhkan instruksi-mikro dengan word sepanjang K bit. Untuk menghasilkan suatu sinyal tertentu, bit yang bersesuaian dalam instruksi mikro diatur menjadi 1, kehadiran suatu sinyal kendali diindikasikan dengan menempatkan sebuah nol pada posisi bit yang semestinya. Pendekatan ini mempunyai keuntungan bahwa kita dapat menghasilkan sebanyak mungkin sinyal kendali yang diperlukan secara beruntun, yang memungkinkan operasi yang sangat cepat.
Namun demikian kebanyakan operasi-mikro adalah mutual ekslusif dan tidak pernah dipanggil secara bersamaan. Karena itu, kita dapat membagi mereka ke dalam kelompok-kelompok dan menggunakan sejumlah bit (field) untuk memberi kode sekumpulan intruksi-mikro yang mutual ekslusif. Kemudian digunakan suatu dekoder untuk memilih operasi mikro tertentu yang akan dipanggil. Jika terbawa ke dalam ekstrem (hanya satu field) maka proses mengode (coding) dan mendekode (decoding) menghasilkan suatu format instruksi-mikro vertikal, dimana hanya ada satu operasi-mikro yang dipanggil pada suatu waktu. Karena itu instruksi-mikro vertikal menyerupai format sebuah interuksi-makro dan terdiri atas suatu kode operasi tunggal, disebut sebagai opecode mikro, satu operand atau lebih, dan berberapa field lain (misalnya untuk percabangan kondisional).





KEUNTUNGAN PEMROGRAMAN-MIKRO

Kendali microprogrammed menawarkan suatu pendekatan yang lebih terstruktur untuk merancang unit kendali logika (CLU) dibandingkan dengan kendali hard-wired.
1.        Rancangan microprogrammed relative mudah diubah-ubah dan dibetulkan
2.        Menyediakan kemampuan diagnostic yang lebih baik dan lebih dapat diandalkan daripada rancangan hard-wired
3.        Utilisasi memori utama dalam computer microprogrammed biasanya lebih baik Karena perangkat lunak yang seharusnya menggunakan ruang memori utama justru ditempatkan pada memori kendali

4.        Pengembangan ROM lebih lanjut(dalam kaitan dengan harga dan waktu akses) secara lebih jauh justru menguatkan posisi dominant pemrograman mikro, salah satunya dengan menyertakan unit memori ketiga disebut sebagai nano-memory (tambahan bagi memori utama dan memori kendali). Dalam mengerjakan hal ini, mungkin terjadi pertukaran (trade-off) yang menarik antara pemrograman mikro horisontal dan vertikal

Yang Ke-2 adalah Komputer Pipeline


     2.   Pengertian Pipeline
Pipeline adalah suatu cara yang digunakan untuk melakukan sejumlah kerja secara bersama tetapi dalam tahap yang berbeda yang dialirkan secara kontinou pada unit pemrosesor. Dengan cara ini, maka unit pemrosesan selalu bekerja.

Intruksi Pipeline


Urutan Pengolahan Intruksi Pipeline
a.              Fetch Intrukasi (FI)
b.             Decode Instruction (DI)
c.              Calculate Operand (CO)
d.             Fetch Operand (FO)
e.              Execute Instruction (EI)
f.               Write Operand (WO)

Masalah-masalah pada Pipeline
1.       Resiko pada Struktur harware muncul dari konflik   resource sistem yaitu ketika hardware tidak dapat mendukung semua kemungkinan kombinasi instruksi.
2.            Resiko pada Data muncul ketika data untuk suatu instruksi tergantung pada hasil instruksi sebelumnya.
3.      Resiko pada kontrol program muncul pada pelaksanaan instruksi yang mengubah nilai pada Program Counter (PC) (contoh :branch/ percabangan).

Keuntungan Pipeline
1.             Waktu siklus prosesor berkurang, sehingga meningkatkan kecepatan proses.
2.             Beberapa rangkaian digital seperti ADDER dapat dibuat lebih cepat dengan menambahkan lebih banyak rangkaian.
3.             Jika pipelining digunakan sebagai pengganti, hal itu dapat menghemat rangkaian yang kompleks.

Kekurangan Pipeline
1.           Non-pipelined prosesor hanya menjalankan satu instruksi pada satu waktu. Hal ini untuk mencegah penundaan cabang (yang berlaku, setiap cabang tertunda) dan masalah dengan serial instruksi dieksekusi secara bersamaan. Akibatnya desain lebih sederhana dan lebih murah untuk diproduksi.
2.             Instruksi yang bersifat laten (terpendam) di non-pipelined prosesor sedikit lebih rendah daripada dalam pipelined setara.           

3.        Non-pipelined prosesor akan memiliki bandwidth yang stabil. Kinerja prosesor yang pipelined jauh lebih sulit untuk diprediksi karena harus memiliki kecepatan proses yang bervariasi di antara program yang berbeda.

Dan Yang terakhir di sini adalah Pemrosesan Paralel
 
 

      3.     Pemrosesan Pararel 

Pemrosesan Paralel adalah komputasi dua atau lebih tugas pada waktu bersamaan dengan tujuan untuk mempersingkat waktu penyelesaian tugas-tugas tersebut dengan cara mengoptimalkan resource pada sistem komputer yang ada untuk mencapai tujuan yang sama. Pemrosesan paralel dapat mempersingkat waktu ekseskusi suatu program dengan cara membagi suatu program menjadi bagian-bagian yang lebih kecil yang dapat dikerjakan pada masing-masing prosesor secara bersamaan.

Tujuan utama dari pemrosesan paralel adalah untuk meningkatkan performa komputasi. Semakin banyak hal yang bisa dilakukan secara bersamaan (dalam waktu yang sama), semakin banyak pekerjaan yang bisa diselesaikan. Analogi yang paling gampang adalah, bila anda dapat merebus air sambil memotong-motong bawang saat anda akan memasak, waktu yang anda butuhkan akan lebih sedikit dibandingkan bila anda mengerjakan hal tersebut secara berurutan (serial). Atau waktu yg anda butuhkan memotong bawang akan lebih sedikit jika anda kerjakan berdua.

Performa dalam pemrosesan paralel diukur dari berapa banyak peningkatan kecepatan (speed up) yang diperoleh dalam menggunakan teknik paralel. Secara informal, bila anda memotong bawang sendirian membutuhkan waktu 1 jam dan dengan bantuan teman, berdua anda bisa melakukannya dalam 1/2 jam maka anda memperoleh peningkatan kecepatan sebanyak 2 kali.

Adapun proses kerja , pemrosesan paralel membagi beban kerja dan mendistribusikannya pada komputer-komputer lain yang terdapat dalam sistem untuk menyelesaikan suatu masalah. Sistem yang akan dibangun akan tidak akan menggunakan komputer yang didesikasikan secara khusus untuk keperluan pemrosesan paralel melainkan menggunakan komputer yang telah ada. Artinya, sistem ini nantinya akan terdiri dari sejumlah komputer dengan spesifikasi berbeda yang akan bekerjasama untuk menyelesaikan suatu masalah. 
Mikrokontroler adalah suatu unit yang dapat diprogram cara kerjanya, sehingga dapat dipergunakan untuk keperluan yang berbeda. Pada masa sekarang mikrokontroler banyak digunakan sebagai pengontrol pada peralatan-peralatan mulai dari mainan/hobie, peralatan rumah tangga, sampai kontrol pada peralatan industri. Beberapa mikrokontroler yang beredar dipasaran merupakan keluaran beberapa pabrik yang sudah terkenal, misal: Intel, Zilog dan Microchip.
Struktur Mikrokontroler :


a. Register adalah suatu tempat penyimpanan (Variabel) bilangan bulat 8 bit atau 16 bit. Pada umumnya register berjumlah banyak, dan masing-masing ada yang memiliki fungsi khusus dan ada yang memiliki fungsi umum.
b. Accumulor (register A), merupakan salah satu register khusus yang berfungsi sebagai operand umum proses aritmatika dan logika.
c. Program counter, merupakan salah satu register khusus yang berfungsi sebagai pencacah/penghitung eksekusi program mikrokontroler
d. ALU (Arithmetical and Logical Unit), ALU memiliki kemampuan khusus dalam mengerjakan proses-proses arithmetika (penjumlahan, pengurangan, perkalian dan pembagian) dan operasi logika (AND, OR, XOR dan NOT)
e. Clock circuits, mikrokontroler merupakan rangkaian digital sekuensial, dimana kerjanya berjalan melalui sinkronisasi clock. Karenanya diperlukan clock circuits yang menyediakan clock bagi seluruh bagian rangkaian
f. Internal ROM (On Chip Flash), merupakan memori yang isinya tidak dapat diubah atau dihapus (pada saat mikrokontroler berjalan) isinya hanya dapat dibaca saja. ROM biasanya berisi program (urutan-urutan instruksi) untuk menjalankan mikrokontroler. Data pada ROM dibaca secara berurutan.
g. Internal RAM, merupakan memori yang isinya dapat diubah atau dihapus. RAM pada mikrokontroler biasanya berisi data-data variable dan register. Data yang tersimpan pada RAM bersifat hilang jika catu daya yang diberikan hilang (mati).
h. Stack pointer, merupakan bagian dari RAM yang memiliki metode penyimpanan dan pengambilan data yang khusus. Dimana data yang paling terakhir dimasukkan merupakan data yang pertama kali dibaca kembali (LIFO).
i. I/O port (serial dan parallel), merupakan sarana yang  digunakan mikrokontroler untuk mengakses peralatan di luar dirinya, memasukan dan mengeluarkan data.
j. Interrupt circuits, merupakan rangkaian yang mengendalikan sinyal-sinyal interupsi bail internal maupun eksternal, dengan adanya sinyal interupsi akan mengakibatkan program utama yang sedang dikerjakan berhenti sejenak, dan bercabang/.loncat ke program rutin layanan interupsi (RLI) yang diminta, setelah RLI selesai dikerjakan, mikrokontroler kembali melanjutkan program utama yang tertunda tadi.
Prinsip kerja mikrokontroler adalah sebagai berikut :
a.         Berdasarkan nilai yang berada pada register Program Counter, mikrokontroler mengambil data pada ROM dengan alamat sebagaimana yang tertera pada register Program Counter. Selanjutnya isi dari register Program Counter ditambah dengan satu (Increment) secara otomatis.
b.           Data yang diambil pada ROM merupakan urutan instruksi program yang telah dibuat dan diisikan  sebelumnya oleh pengguna.
c.          Instruksi yang diambil tersebut diolah dan dijalankan oleh mikrokontroler. Proses pengerjaan bergantung pada jenis instruksi, bisa membaca, mengubah nilai-nilai pada register, RAM, isi Port, atau melakukan pembacaan dan dilanjutkan dengan pengubahan data.
d.        Program Counter telah berubah nilainya (baik karena penambahan otomatis pada langkah 1, atau karena pengubahan-pengubahan pada langkah 2). Selanjutnya yang dilakukan oleh mikrokontroler adalah mengulang kembali siklus ini pada langkah 1. Demikian seterusnya  hingga power dimatikan.
spacer

BIOS - Basic Input Output System

B I O S (Basic Input Output System)
Program BIOS adalah program kontroler standard yang terpasang dalam motherboard. Program ini disimpan dalam chip IC yang disebut ROM (Read Only Memory) dan selalu bekerja mengontrol hardware yang terpasang pada motherboard meskipun komputer tidak dipakai (dimatikan). Hal ini dimungkinkan oleh adanya batere kecil yang terpasang pada motherboard.
Orang sering menyebut chip IC ini dengan sebutan IC ROM BIOS. Pada saat selesai merakit komputer, program ini harus diatur sesuai dengan jenis-jenis peralatan elektronik yang akan dihubungkan dengan motherboard. Selanjutnya setiap saat program BIOS akan selalu mengontrol perangkat keras yang terpasang meskipun komputer anda matikan. Kontrol setiap saat ini memungkinkan komputer selalu siap pakai pada saat komputer anda nyalakan. Pada kondisi batere kecil lemah, biasanya peengaturan pada program BIOS ini hilang, sehingga anda sulit mempergunakan komputer. Anda harus kembali mengatur ulang program BIOS seperti yang anda lakukan pada waktu merakit komputer.
ROM BIOS terdiri dari beberapa macam, antara lain :
-          ROM AMI BIOS
-          ROM ISA BIOS
-          ROM MR BIOS
-          ROM WIN BIOS
-          dll
Biasanya untuk masuk mode setup BIOS seperti CMOS BIOS, AMI BIOS serta beberapa mode BIOS lain, maka pada saat komputer pertama kali diaktifkan kita bisa menekan tombol del.
Untuk setup mode IBM BIOS kita harus menekan tombol F1 atau F10, sedangkan untuk BIOS Setup mainboad dengan Chip Intel ada yang menggunakan tombol F2, sedangkan untuk mode setup mesin Compaq lama, user terlebih dulu harus memasukkan disket setup BIOS-nya, agar bisa melakukan setting yang diinginkan.
Tampilan AMI BIOS

Cara aman mengotak-atik Setting BIOS PC
Bila Windows adalah wajah ramah yang ditampilkan proyek-proyek komputer kepada dunia, maka BIOS adalah sisi gelap bawah sadar yang bertugas untuk berpikir. BIOS (Basic Input/Output System) adalah kode untuk fungsi-fungsi fundamental PC, seperti mengumpulkan ketukan tombol dari keyboard atau meletakkanpixel ke layar.
Program kecil ini bekerja di balik layar, menterjemahkan perintah Windows yang people-friendly menjadi angka nol dan satu yang hanya dimengerti oleh hardware Anda. Dan sebagaimana alam bawah sadar manusia, BIOS bisa berpengaruh sangat kuat pada tingkah laku dan kinerja PC Anda.
Update BIOS
Ketika teknologi baru muncul dan bug tua ditemukan, para pembuat komputer sering menerbitkan versi BIOS yang telah diupdate yang dapat mengatasi problem dan meningkatkan kinerja. Periksa situs Web pembuat PC Anda mengenai update terbaru. Namun pertama-tama pastikan Anda memiliki nomor versi terbaru BIOS; biasanya muncul sekilas di monitor Anda tepat setelah Anda menyalakan sistem. (Tekan tombol Pause bila kilasannya terlalu cepat.)
Mengupdate BIOS mudah, tetapi Anda harus melakukannya dengan hati-hati. Biasanya Anda perlu menjalankan program kecil dari floppy disk saja. Namun bila terjadi masalah, Anda hanya bisa meratapi motherboard yang tidak bisa lagi Anda gunakan. Jadi pastikan bahwa sebelumnya Anda telah membaca semua instruksi di file readme BIOS update, dan selalu lakukan persis seperti apa yang petunjuk-petunjuk itu katakan.
Utility Setup
Jika BIOS adalah bawah sadar PC, maka Utiliti Setup merupakan pondasi untuk membangun karakter PC. Utiliti tersebut memiliki setting user untuk mengontrol harddisk, memori, kartu-kartu grafis, power saving, port USB, dan hardware lain. Program tersebut biasanya disertakan dalam disk, tetapi sekarang sudah tersimpan dalam chip ROM yang sama dengan BIOS PC.
Karena utiliti Setup dibuat oleh pembuat BIOS dan berada dalam chip yang sama dengan BIOS, ini sering disebut utiliti BIOS Setup. Dan karena utiliti ini menyimpan settingnya di chip clock/calendar -- chip complementary metal-oxide semiconductor, atau CMOS -- maka sering pula disebut sebagai program Setup CMOS. (Chip CMOS memiliki batere sendiri untuk memelihara setting chip sekalipun PC dimatikan.)
Utiliti Setup memiliki setting hardware yang berlimpah, mulai dari yang terlihat nyata, seperti setting waktu di clock PC, sampai yang tidak kelihatan, seperti jumlah "wait states" yang mengkoordinasi aliran data antara RAM dan CPU.
Teknis Setup BIOS
Hal Pertama yang perlu anda ingat sebelum lakukan setup BIOS adalah jangan sampai merusak.
Ketika bekerja dengan utiliti Setup PC, gunakan petunjuk praktis yang sama diajarkan pada awal bedah otak: ”Bila anda tidak tahu apa yang sedang anda lakukan, maka lebih baik jangan berurusan dengannya”. Kecerobohan mengubah wait state atau setting lainnya dapat menurunkan kinerja atau bahkan menyebabkan sistem mengalami crash.
Jika Anda mengira Anda telah tanpa sengaja mengubah setting ketika sedang bekerja dengan utility Setup, segera berhenti dan mulailah dari awal lagi. Semua utiliti Setup memiliki pilihan menu yang memungkinkan Anda keluar tanpa menyimpan perubahan. Anda mungkin melihat pula pilihan untuk mengembalikan settingke nilai defaultnya. Abaikan opsi ini: Bila vendor PC Anda telah melakukan fine-tune terhadap sistem, setting default si pembuat BIOS mungkin membuatnya menjadi tidak optimal.
Backup setting-setting Anda sebelum membuat perubahan. Bila batere yang menghidupi chip clock/calendarmati, setting-setting Anda mati bersamanya. Bila utiliti Setup Anda mempunyai opsi backup, gunakanlah. Jika tidak, catat setting di kertas -- atau tekan key Print Screen untuk masing-masing layar di utiliti tersebut (tetapi ini tidak selalu berfungsi).
Sebelum anda mulai, baca sampai selesai user manual yang menyertai PC atau motherboard. Banyak manual menawarkan penjelasan singkat masing-masing settingSetting bervariasi menurut manufaktur dan model, namun Anda seharusnya menemukan ini di hampir semua PC:
Optimalisasi dan kompatibilitas setting: Utiliti Setup sering berisi setting-setting untuk kinerja hardware. Kadang-kadang ini tidak diatur secara optimal di pabrik, utamanya pada PC yang dibuat berdasar pesanan atau generik. Scan seluruh program Setup. Setting modus AGP dan setting DMA merupakan kandidat utama untuk dioptimalisasi. Setting-setting ini juga berguna untuk troubleshooting hardware yang baru diinstall: Menonaktifkan atau menurunkan setting yang diberikan bisa memicu ketidak-kompatibelan kartu grafis, CD-ROM drive, atau peranti lain yang terjadi sebelumnya.
Setting harddisk: Anda akan menemukan tabel, biasanya pada halaman ke-2 atau Advanced dan dengan judul "IDE", yang mendaftar semua parameter konfigurasi untuk EIDE harddisk yang secara langsung terkoneksi ke motherboard. (SCSI harddisk dan EIDE harddisk yang tidak punya kartu ekspansi akan menjalankan program konfigurasinya sendiri.) Sementara kebanyakan PC yang dibuat selama beberapa tahun terakhir dapat dengan mulus mendeteksi dan mengkonfigurasi harddisk baru, sebagian memerlukan instalasi manual. Baca dokumentasi disk baru Anda mengenai prosedur tsb dan gunakan opsi-opsi on-screen untuk membuat perubahan di tabel ini.
Floppy disk: Opsi ini memungkinkan Anda menyetel tipe floppy drive (3,5 inci, 1,44MB, sebagai contoh) yang telah Anda tetapkan sebagai drive A: atau B: Anda. Ini merupakan setting yang perlu diperiksa jika Anda mengalami problem floppy-drive. Sebagian utiliti Setup mempunyai setting sekuriti `Floppy Read only` tersendiri yang mencegah data Anda dituliskan ke floppy disk dan dihapus dari PC.
Urutan bootingSetting ini menentukan mana yang pertama kali dilihat PC ketika instruksi boot-upContoh: `A: kemudian C:`, `C: kemudian A:`, atau `C:, Zip drive`. Untuk booting dari CD-ROM drive, Zip, atau LS-120, Anda sepertinya harus mengubah setting ini.
Proteksi password: Bila ini diaktifkan, BIOS akan menanyakan password sebelum booting up. Sangat berhati-hatilah dengan yang satu ini: Bila melupakan password, Anda terpaksa mereset jumper motherboard atau mencopot batere CMOS, yang akan menyebabkan Anda kehilangan semua setting, atau Anda bahkan harus membeli motherboard baru.
Setting IRQ: Bila Anda butuh setting IRQ ekstra untuk hardware baru, Anda perlu membebaskan satu IRQ dengan menonaktifkan feature yang tidak digunakan, seperti port serial, port paralel, atau port USB.
Setting port paralel: Pilih modus yang paling cocok untuk hardware. Modus ECP atau EPP dapat sangat mempercepat printer dan peranti lain.
Kipas RPM dan temperatur CPU: Dua parameter kritis ini sebaiknya dicentang secara periodik untuk memastikan mereka berfungsi dengan benar.
Bentuk  dari AMI BIOS dimotherboard


Sumber : http://kangtokkomputer.weebly.com/artikel-bios.html

                http://guearis.blogspot.co.id/2012/04/pengertian-dan-fungsi-bios.html
spacer