Cara Mudah Print Document di Visual Studio

Diartikel kali ini saya sebagai praktikan Pemrograman Visual yang berbahagia akan berbagi cara untuk memprint document di Visual Studio. Visual Studio yang saya gunakan adalah Versi 2013 Ultimate. Akan lebih baik lagi apabila cara ini dimulai dengan membaca Bismillah agar ilmu yang kita terima bisa melekat dipikiran kita dan dapat berkembang dan hanya kepada Allah Ta’ala lah kita bertawakal agar segala usaha yang kita lakukan mendapat hikmahnya. Caranya bisa disimak dibawah ini.
Sebelum kita memulai langkah-langkahnya akankah lebih baik kita mengerti apa itu printing dalam visual studio:
- PrintDocument : Mewakili output yang dikirim ke printer. Program dapat menggunakan objek ini        untuk mencetak atau menampilkan print preview.
-PrintPreviewDialog : Menampilkan kotak dialog bagaimana tampilan objek PrintDocument terlihat   ketika dicetak.

1.       1..   Buka Virtual Studio (C#) buat Projrct baru.

2.    2.  Desain form seperti gambar berikut, biar lebih mudah pastikan sama dengan keterangan di tabelnya. Jika tidak menyesuaikan dengan nama variabel komponen kawan-kawan harus memperbaiki kodingan yang akan di berikan pada tahap selanjutnya.



Keterangan Interface
No
Nama Komponen
Variabel Komponen
1
Label
lb_jdl
2
Label
lb_by
3
Label
label4
4
Label
label3
5
Label
label5
6
Label
lb_jln
7
TextBox
tb_nama
8
Button
btn_print
9
TextBox
tb_brg
10
TextBox
tb_jmlh

3.     3. Pada tahap ini kita akan memasukan fungsi print documentnya. Caranya tambahkan toolbox Print Document dan PrintPreviewDialog ke dalam form yang dapat dilihat pada gambar berikut. Tepatnya bagian yang saya lingkari.

4.     4.  Selanjutnya kita akan membuat Form tersebut berfungsi (bukan sekedar tampilan semata). Klik 2x pada Button Cetak masukkan kodingan berikut.
  printPreviewDialog1.Document = printDocument1;
            printPreviewDialog1.PrintPreviewControl.Zoom = 1;
            printPreviewDialog1.ShowDialog();

5.    5. Lalu klik 2x pada printDocument1 (yang saya kasih tanda jika dilihat pada gambar dibawah) masukkan kodingan berikut.


var font1 = new Font("Buxton Sketch", 16);
            var font2 = new Font("Buxton Sketch", 12);
            e.Graphics.DrawString("\t" + lb_jdl.Text + "\n", font1, Brushes.Black, 70, 15);
            e.Graphics.DrawString("\t" + lb_jln.Text + "\n", font2, Brushes.Black, 55, 45);
            e.Graphics.DrawString("\n" + lb_by.Text + "\n", font2, Brushes.Black, 60, 45);
            e.Graphics.DrawString("\n\n-----------------------------------------------------------------------------------------------------\n", font2, Brushes.Black, 25, 40);
            e.Graphics.DrawString("\n\n" + "Nama\t\t: " + tb_nama.Text + "\n", font2, Brushes.Black, 25, 55);
            e.Graphics.DrawString("\n\n" + "Hobi\t\t: " + tb_brg.Text + "\n", font2, Brushes.Black, 25, 70);
            e.Graphics.DrawString("\n\n" + "Hobi\t\t: " + tb_jmlh.Text + "\n", font2, Brushes.Black, 25, 90);

Maka selesailah cara agar dapat memprint document di visual studio, silahkan di start programnya, isi bagian textbox nya lalu tekan cetak.

Berikut adalah output dari program tersebut







spacer

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