Minggu, 08 Desember 2013

QUIZ

Pembayaran Gaji Pegawai.

Listing Programnya:
Public Class Form2

    Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Gpegawai.Items.Add("A")
        Gpegawai.Items.Add("B")
        Gpegawai.Items.Add("C")

        Spegawai.Items.Add("menikah")
        Spegawai.Items.Add("Belum menikah")


    End Sub

    Private Sub Gpegawai_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Gpegawai.SelectedIndexChanged
        Select Case Gpegawai.Text
            Case "A"
                Npegawai.Text = "Elprina Simarmata"
                Gapok.Text = "2500000"
            Case "B"
                Npegawai.Text = "Devie Puspita"
                Gapok.Text = "3500000"
            Case "C"
                Npegawai.Text = "Anggi Yoga Pratama"
                Gapok.Text = "4500000"
        End Select
        pajak.Text = 0.1 * Gapok.Text

    End Sub

    Private Sub Spegawai_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Spegawai.SelectedIndexChanged
        Select Case Spegawai.Text
            Case "menikah"
                Tkeluarga.Text = 0.05 * Gapok.Text
            Case "Belum menikah"
                Tkeluarga.Text = "0"

        End Select
        Tgaji.Text = Gapok.Text - pajak.Text + Tkeluarga.Text

    End Sub

    Private Sub Btnhapus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btnhapus.Click
        Npegawai.Text = ""
        Gpegawai.Text = ""
        Gapok.Text = ""
        pajak.Text = ""
        Spegawai.Text = ""
        Tkeluarga.Text = ""
        Tgaji.Text = ""

    End Sub

    Private Sub btnkeluar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnkeluar.Click
        End
    End Sub
End Class

Hasilnya:


QUIZ

Pengolahan Tagihan PDAM!!!

Listing Programnya:
Public Class Form1
    Sub buattabel()
        Lv.Columns.Add("kode pelanggan", 100, HorizontalAlignment.Center)
        Lv.Columns.Add("nama", 120, HorizontalAlignment.Center)
        Lv.Columns.Add("Tipe", 80, HorizontalAlignment.Center)
        Lv.Columns.Add("HargaM3", 80, HorizontalAlignment.Center)
        Lv.Columns.Add("Daerah", 80, HorizontalAlignment.Center)
        Lv.Columns.Add("Biaya Beban", 80, HorizontalAlignment.Center)
        Lv.Columns.Add("Pajak", 80, HorizontalAlignment.Center)
        Lv.Columns.Add("Jumlah Pemakaian", 100, HorizontalAlignment.Center)
        Lv.Columns.Add("Total Tagihan", 80, HorizontalAlignment.Center)
        Lv.Columns.Add("pembayaran", 80, HorizontalAlignment.Center)
        Lv.View = View.Details
        Lv.GridLines = True
        Lv.FullRowSelect = True

    End Sub
    Sub isitabel()
        Dim lst As New ListViewItem
        lst.Text = kp.Text
        lst.SubItems.Add(nama.Text)
        lst.SubItems.Add(tipe.Text)
        lst.SubItems.Add(hargaM3.Text)
        lst.SubItems.Add(Daerah.Text)
        lst.SubItems.Add(Bbeban.Text)
        lst.SubItems.Add(pajak.Text)
        lst.SubItems.Add(Jpemakaian.Text)
        lst.SubItems.Add(Ttagihan.Text)
        lst.SubItems.Add(pembayaran.Text)
        Lv.Items.Add(lst)
    End Sub
    Sub bersih()
        kp.Text = ""
        nama.Text = ""
        tipe.Text = ""
        Ttagihan.Text = ""
        hargaM3.Text = ""
        pajak.Text = ""
        pembayaran.Text = ""
        Jpemakaian.Text = ""
        Daerah.Text = ""
        Bbeban.Text = ""
    End Sub
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        buattabel()

        kp.Items.Add("TOK-MED-100")
        kp.Items.Add("PAB-BEL-101")
        kp.Items.Add("SWA-BEL-102")
        kp.Items.Add("PAB-MED-103")
        kp.Items.Add("RUM-MED-104")

    End Sub

    Private Sub kp_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles kp.SelectedIndexChanged
        Dim x As String
        x = Microsoft.VisualBasic.Right(kp.Text, 3)

        If x = "100" Then
            nama.text = "Muhammad Ardianto"
        ElseIf x = "101" Then
            nama.Text = "Jekson Sinaga"
        ElseIf x = "102" Then
            nama.Text = "Triani Arista"
        ElseIf x = "103" Then
            nama.Text = "Aldyan"
        End If

        x = Microsoft.VisualBasic.Left(kp.Text, 3)

        If x = "PAB" Then
            HargaM3.Text = 500
            Bbeban.Text = 250000
            tipe.Text = "Pabrik"
        ElseIf x = "TOK" Then
            HargaM3.Text = 500
            Bbeban.Text = 25000
            tipe.Text = "Toko"
        ElseIf x = "RUM" Then
            HargaM3.Text = 500
            Bbeban.Text = 10000
            tipe.Text = "Rumah"
        ElseIf x = "SWA" Then
            HargaM3.Text = 200
            Bbeban.Text = 15000
            tipe.Text = "Swalayan"
        End If

        x = Microsoft.VisualBasic.Mid(kp.Text, 5, 3)
        If x = "MED" Then
            Daerah.Text = "Medan"
        ElseIf x = "BEL" Then
            Daerah.Text = "Belawan"
        End If

    End Sub

    Private Sub Jpemakaian_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Jpemakaian.KeyPress
        If Asc(e.KeyChar) = 13 Then
            Ttagihan.Text = hargaM3.Text * Jpemakaian.Text + Val(Bbeban.Text)
            pajak.Text = 0.01 * Ttagihan.Text
            Pembayaran.Text = Val(Ttagihan.Text) + Val(pajak.Text)
        End If

    End Sub

    Private Sub Btnkeluar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btnkeluar.Click
        End

    End Sub

    Private Sub Btnhapus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btnhapus.Click
        kp.Text = ""
        nama.Text = ""
        tipe.Text = ""
        Ttagihan.Text = ""
        hargaM3.Text = ""
        pajak.Text = ""
        pembayaran.Text = ""
        Jpemakaian.Text = ""
        Daerah.Text = ""
        Bbeban.Text = ""
    End Sub

    Private Sub Btnsimpan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btnsimpan.Click
        isitabel()
        bersih()

    End Sub

    Private Sub btnhapussemuadata_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnhapussemuadata.Click
        Lv.Items.Clear()

    End Sub

    Private Sub Btnhapusdatayangdipilih_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btnhapusdatayangdipilih.Click
        Lv.Items.Remove(Lv.SelectedItems(0))
    End Sub
End Class

Hasilnya:


Senin, 02 Desember 2013

Pengertian Logika & Algoritma


Algoritma adalah urutan penyelesaian masalah yang di deskripsikan secara logis untuk memecahkan suatu masalah. Dalam ilmu komputer Algoritma dikenal dengan langkah-langkah komputasi yang terdiri dari masukan dan keluaran. Karena itu Algoritma biasanya dijadikan dasar atau pengantar bahasa pemrograman (misalnya Pascal) dalam study yang berkecimpung atau berhubungan dengan ilmu komputer. Misalnya Teknik Informatika.

Seperti yang telah diketahui bahwa komputer memerlukan instruksi yang berupa langkah-langkah pengurutan sehingga sebuah prosedur dapat dijalankan. Nah, prosedur yang berisi langkah-langkah penyelesaian masalah inilah yang disebut dengan Algoritma. Jadi, Sebelum masuk kepada tahap pemrograman komputer dengan bahasa pascal/lainnya ada baiknya mempelajari Algoritma yang merupakan pengantar kepada pemrograman komputer tersebut.

Algoritma terdiri dari beberapa notasi yaitu Deskriptif, Bagan-alir, dan Pseudo-Code. Namun yang paling mirip dengan bahasa pemrograman pascal adalah notasi Pseudo-Code. Karena pada notasi ini sedikit menyerap bahasa Pascal. Meskipun tidak semua tata cara penulisan/aturan dalam bahasa pascal diikuti. Algoritma dalam notasi ini sangat cocok untuk lebih mudah memahami atau menjalankan pemrograman dalam bahasa Pascal.

Definisi Algoritma :
1. Langkah-langkah yg dilakukan agar solusi masalah dapat diperoleh.
2. Suatu prosedur yang merupakan urutan langkah-langkah yang berintegrasi
3. Suatu motode khusus yang digunakan untuk menyelesaikan suatu masalah yang nyata (Webster dictionary)
Kriteria Pemilihan Algoritma
1. Ada out put
2. Efektifitas dan efesiensi
3. Jumlah langkahnya berhingga
4.  (semi Algoritma)àBerakhir
5. Terstruktur
1. Ada out put
Mengacu pada definisi algoritma, algoritma harus mempunyai out put yang harus merupakan solusi dari masalah yang sedang diselesaikan.
2. Efektifitas dan efesiensi
Dikatakan efektif jika algoritma tersebut menghasilkan suatu solusi yang sesuai dengan masalah yang diselesaikan, dalam arti algoritma harus tepat guna.
Dikatakan efisien jika waktu proses suatu algoritma relatif lebih singkat dan penggunakan memori komputernya lebih sedikit.
3. Jumlah langkahnya berhingga
Barisan instruksi yang dibuat harus dalam suatu urutan tertentu atau harus berhingga agar masalah yang dihadapi dapat diselesaikan dengan tidak memerlukan waktu relatif lama.
4.  (semi Algoritma)àBerakhir
Penyelesaian masalah harus berhenti. Dan bias menimbulkan masalah lain.
5. Terstruktur
Penyelesaian masalah menggunakan langkah-langkah tersusun
Algoritma yang baik
Suatu algoritma harus menghasilkan out put yang tepat guna (efektif) dalam waktu yang relative singkat.
ANALISA ALGORITMA
1. Bagaimana merencakan suatu algoritma
Menentukan beberapa model / desain sebagai penyelesaian masalah sehingga muncul beberapa model yang akan diambil solusi mana yang terbaik.
2. Bagaimana menyatakan suatu algoritma
3. Bagaimana validitas suatu algoritma
4. Bagaimana menganalisis suatu algoritma
5. Bagaimana menguji program dari suatu algoritma
Cara/prosedur algoritma
1. Kata-kata
2. Diagram alur
3. Statemen program
TAHAP PROSES UJI ALGORITMA
1. Fase Debugging
Fase dari suatu proses program eksekusi yang akan melakukan koreksi terhadap kesalahan program/ error. Kesalahan program ini dapat berupa kesalahan dalam penulisan program baik logika atau sintaknya.
2. Fase profiling
Fase yang akan bekerja jika program tersebut sudah benar.

Pengertian LOGIKA
Logika berasal dari bahasa Yunani yaitu LOGOS yang berarti ilmu. Logika pada dasarnya filsafat berpikir. Berpikir berarti melakukan suatu tindakan yang memiliki suatu tujuan.
Jadi pengertian Logika adalah ilmu berpikir / cara berpikir dengan berbagai tindakan yang memiliki tujuan tertentu.

KONSEP ALGORITMA

@ Algoritma Variabel Pe-ubah
Adalah variabel yang nilainya BUKAN konstanta (selalu berubah – sesuai dengan kondisi Variabel terkini)

Sintaks : P = Q
Algoritma : P <- Q
Arti : Bahwa Nilai P diberi harga Nilai Q
Nilai P akan SAMA DENGAN nilai Q dan Nilai Q TETAP
Contoh Soal 1:
Diketahui P=0, Q=5 dan R=10. Diberikan algoritma P=Q, Q=R, maka nilai P, Q, R sekarang ?
Jawab
Diketahui P = 0, Q = 5, R = 10
P = Q –> Pada saat ini nilai dari Variabel P akan diberi nilai dari Variabel Q (P = 5)
Q = R –> Pada saat ini nilai dari Variabel Q akan diberi nilai dari Variabel R (Q = 10)
Maka nilai P, Q dan R sekarang adalah P = 5, Q = 10 dan R = 10

Contoh Soal 2:
Diketahui Algoritma P=10, P=P+1 dan Q = P. Berapakah nilai P dan Q ?

Jawab
Algoritma:
P = 10 –> Pada saat ini nilai dari Variabel P akan diberi nilai 10
P = P + 1 –> Pada saat ini nilai dari Variabel P yang baru adalah nilai dari variabel P yang lama ditambah 1 (10 + 1 = 11)
Q = P –> Pada saat ini nilai dari variabel Q diberi nilai dari variabel P yang baru (Q =11)

Contoh Soal 3:
Diketahui 3 varibael peubah P, Q dan R. Agar isi Q ditaruh di P, isi R ditaruh di Q dan isi P ditaruh di R,maka Algoritma yang dapat ditulis adalah ..?

Jawab
Agar isi Q ditaruh di P, algoritma yang dapat ditulis adalah (P <- Q atau P=Q)
Agar isi R ditaruh di Q, algoritma yang dapat ditulis adalah (Q <- R atau Q=R)
Agar isi P ditaruh di R, algoritma yang dapat ditulis adalah (R <- P atau R=P)

@ Algoritma Variabel Pertukaran
Berfungsi mempertukarkan masing-masing isi Variabel sedemikian sehingga Nilai dari tiap Variabel akan berubah/bertukar.

Contoh Soal:
Diketahui 2 peubah K = 10 dan L = 20. Buat Algoritma untuk mempertukarkan isi K dan L .. ?

Jawab
Untuk menyelesaikan algoritma pertukaran, dibutuhkan satu buah peubah (variabel) tambahan untuk menyimpan nilai dari salah satu peubah. Algoritma pertukaran untuk masalah diatas adalah (dimisalkan variabel tambahan adalah T).
T = K –> Pada algoritma ini nilai dari variabel T (variabel tambahan) akan diisi dengan nilai dari variabel K (T = 10)
K = L –> Pada algoritma ini nilai dari Variabel K akan diisi dengan variabel L (K = 20)
L = T –> Pada algoritma ini nilai dari Variabel L akan diisi dengan variabel T (L = 10)
Setelah algoritma ini dijalankan dapat dilihat bahwa algorita diatas telah mempertukarkan nilai dari variabel-variabel tersebut. Sebelumnya variabel K = 10 dan L = 20, menjadi variabel K = 20 dan L = 10

Pengenalan Bahasa Pemrograman C++


SEKILAS MENGENAI BAHASA PEMROGRAMAN C DAN C++

Bahasa pemrograman C++ merupakan superset dari bahasa pendahulunya yaitu bahasa pemrograman C. Bahasa pemrograman C dikembangkan oleh Dennis Ritchie pada tahun 1972 di Laboratorium Bell. Bahasa pemrograman C adalah bahasa pemrograman yang dapat dikatakan berada antara bahasa tingkat rendah (berorientase mesin) dan bahasa tingkat tinggi (bahasa berorientase pada manusia). Bahasa pemrograman C berada satu tingkat di atas bahasa yang berorientasi pada mesin, namun tetap satu tingkat dibawah sebagian besar bahasa yang berorientasi persoalan. Bahasa pemrograman C cukup dekat dengan komputer untuk memberikan kendali yang besar terhadap detil implementasi pemakaian, namun cukup jauh untuk mengabaikan detil hardware. Karena itulah bahasa pemrograman C suatu ketika dipandang sebagai bahasa high-level dan pada saat yang lain dilihat sebagai bahasa low-level.
Bahasa pemrograman C merupakan bahasa pemrograman terstruktur, yang membagi program kedalam bentuk sebuah blok. Tujuannya adalah untuk memudahkan dalam pembuatan dan pengembangan program. Program yang ditulis dengan bahasa pemrograman C mudah sekali untuk dipindahkan dari satu jenis mesin ke jenis mesin lainnya. Hal ini berkat adanya standarisasi bahasa pemrograman C yaitu berupa standar ANSI (American National Standards Institute) yang dijadikan acuan oleh para pembuat kompiler C.

Bahasa Pemrograman C++ Membawa Bahasa Pemrograman C ke Lingkungan Pemrograman Berorientasi Obyek

Setelah bahasa pemrograman C, menyusul apa yang kita kenal dengan bahasa pemrograman C++. Bahasa pemrograman C++ tetap mempertahankan kehebatan C, termasuk kemampuan dan keluwesannya dalam menangani interface hardware dan software, pemrograman low-levelnya, serta efisiensinya. bahasa pemrograman C++ diciptakan satu dekade setelah C. Diciptakan oleh Bjarne Stoustrup, Laboratorium Bell, AT&T, pada tahun 1983.
Bahasa pemrograman C diambil sebagai landasan dari C++, mengingat keportabilitasan C yang memungkinkannya diterapkan pada berbagai mesin, dari PC hingga mainframe, serta pada pelbagai sistem operasi (DOS, UNIX, VMS dan sebagainya). Namun bahasa pemrograman C++ membawa C ke dunia pemrograman berorientasi obyek, dan tetap mempertahankan keterpaduan dan efisiensi eksekusi C.
Keistimewaan yang sangat berarti pada bahasa pemrograman C++ adalah karena bahasa ini mendukung pemrograman berorientasi obyek. Tetapi bahasa pemrograman C++ hanyalah bahasa yang bersifat hibrid, bukan bahasa murni yang berorientasi obyek. Karena itu, bahasa pemrogram C pada tahap awal dapat berpindah jalur ke C++ setahap demi setahap. Pustaka-pustaka yang dibangun dengan C tetap dapat dipakai pada C++, dibaurkan dengan pemrograman yang berorientasi obyek.
Tujuan utama pembuatan bahasa pemrograman C++ adalah untuk meningkatkan produktivitas pemrograman dalam bahasa aplikasi. Kebanyakan pakar setuju bahwa pemrograman berorientasi obyek dan C++ dapat mengurangi kekompleksitasan, terutama pada program yang besar yang terdiri dari 10.000 baris atau lebih.
Tujuan utama pembuatan bahasa pemrograman C++ adalah untuk meningkatkan produktivitas pemrograman dalam bahasa aplikasi. Kebanyakan pakar setuju bahwa pemrograman berorientasi obyek dan C++ dapat mengurangi kekompleksitasan, terutama pada program yang besar yang terdiri dari 10.000 baris atau lebih.

ELEMEN DASAR BAHASA PEMROGRAMAN C++

1. Identifier (Pengenal) Bahasa C++

Identifier adalah nama yang digunakan untuk mempresentasikan variabel, konstanta, jenis (type), fungsi, dan nama program. Identifier dalam pendeklarasian variabel, jenis, atau fungsi pada bahasa pemrograman C++ dimulai dengan sebuah huruf atau garis bawah. Karakter-karakter lain dalam sebuah identifier dapat berupa huruf, angka, garis bawah, atau tanda dollar. Compiler C++ membedakan huruf kecil dan besar. Variabel NAMA_PEGAWAI dan nama_pegawai dipandang sebagai dua identifier yang menggambarkan variabel memori yang berbeda. Contoh identifier yang diperkenankan untuk dipakai: a atau akelas atau kelas$ atau _kelas atau _KELAS$, sedangkan identifier yang tidak diperbolehkan untuk dipakai: $KELAS atau 7kelas atau kelas! atau ..kelas.

2. Himpunan Karakter

Himpunan karakter pada C++ terdiri dari huruf, digit maupun simbol-simbol lainnya (termasuk spasi, karakter kontrol)
Huruf: A B C D E F G H I J K L M N O P Q R S T U V W X Z Y a b c d e f g h i j k l m n o p q r s t u v w x y z
Digit: 0 1 2 3 4 5 6 7 8 9
Simbol dan lain-lain: _ - + * dan sebagainya.

3. Kata-kata Kunci

Kata kunci (keyword) adalah pengenal sistem yang mempunyai makna khusus bagi kompiler. Kegunaan dari golongan ini tidak dapat diubah. Karena itu kata kunci tidak dapat digunakan sebagai pengenal yang dibuat oleh pemrogram.
Kata kunci diusulkan ANSI:
auto, double, int, struct, break, else, loop, switch, case, enum, register, typedef, char, extern, return, union, const, float, short, unsigned, continue, for, signed, void, default, goto, sizeof, volatile, do, if, static, while

Sedangkan turbo C memperluasnya dengan menambahkan beberapa kata kunci:
_cs, _ss, far, near, _ds, asm, huge, pascal, _es, cdecl, interrupt

Sementara itu, Microsoft C/C++ menambah beberapa kata kunci:
_asm, _loadds, _cdecl, _huge, _far, _pascal, _export, _interrupt, _fortran, _segname, _near, _saveregs, _segment, _syscall, _self, _stdcall, _fastcall, _based

4. Tipe Data Bahasa C++

Tipe data dasar pada C++, yakni: teks (char), nilai integer (int, short, long), nilai floating-point (float, double, long double), dan enumerated (enum). Jika jenis data yang didefinisikan adalah variabel enumerated, maka ini terkait dengan konstanta integer yang telah diberi nama enumeration set. Dalam bahasa pemrograman C, jenis enum dianggap ekivalen dengan jenis int, sehingga memungkinkan sebuah program untuk memberikan nilai integer langsung pada variabel enumerated. Namun dalam bahasa pemrograman C++, ada mekanisme pemeriksaan jenis data yang ketat, dan tidak memperkenankan operasi campuran seperti ini.
Setiap bahasa memakai seperangkat karakter untuk mengekspresikan pernyataan yang mengandung arti. Bahasa pemrograman C++ ditulis menggunakan sejumlah karakter yang meliputi: 26 huruf kecil (a, b, c, ... dstnya) dan 26 huruf besar (A, B, C, ... dstnya); 10 angka (0, 1, 2, 3, 4, 5, 6, 7, 8, 9); dan lambang-lambang (+ - * = / . , : ; ? ' \ " ! @ # $ % ^ & * ( ) { } [ ]).
Ukuran memori yang diperlukan untuk masing-masing tipe data sangat bergantung pada perangkat keras dari komputer yang digunakan. Karena itu jangkauan bilangan dari masing-masing tipe data juga bisa berlainan antara satu jenis mesin dengan mesin lainnya. Nilai yang tercakup pada tipe data bilangan (bulat maupun pecahan) pada arsitektur PC yang berbasis DOS, adalah sebagai berikut:
Tipe data Ukuran memori Jangkauan nilai 
char 1 byte -128 s/d +127
int 2 byte -32768 hingga +32767
short 2 byte -32.768 s/d 32.767
long 4 byte -2.147.438.648 s/d 2.147.438.647
float 4 byte 3,4x10-36 s/d 3,4x10+38
double 8 byte 1,7x10-308 s/d 1,7x10+308
long double 10 byte 3,4x10_4932 s/d 1,1x10+4932
enum 2 byte -32.768 s/d 32.767
pointer 2 byte (near, based)
pointer 4 byte (far, huge)

4.1. Tipe Data Tertentu

Modifier unsigned:
Yang termasuk jenis data modifier unsigned yang dapat diterapkan pada char, int, short, long adalah void dan pointer. Bila salah satu jenis data di atas dimodifikasi menjadi usigned, dapat dipandang range nilai yang bisa dijangkau mempresentasikan bilangan seperti pada angka yang ditunjukkan oleh jumlah kilometer yang telah ditempuh pada mobil atau sepeda motor. Angka tersebut dimulai dari 0000... dan mencapai maksimum 9999..., dan kembali ke 0000... Jadi dalam unsigned, yang ditampilkan hanyalah bilangan positif keseluruhan dalam range nol sampai ke bilangan maksimum yang dapat diprepresentasikannya.
Tipe data Ukuran memori Jangkauan nilai
unsigned char 1 byte 0 s/d 255
unsigned int 2 byte 0 s/d 32767
unsigned short 2 byte 0 s/d 32.767
unsigned long 4 byte 0 s/d 2.147.438.647

Modifier signed:
Digunakan untuk memperluas tanda yang digunakan integer dan karakter. Cara ini memungkinkan untuk menyimpan suatu nilai dalam bentuk bilangan positif atau negatif.

Tipe data Ukuran memori Jangkauan nilaisigned char 1 byte -128 s/d +127
signed int 2 byte -32768 hingga +32767
signed short 2 byte -32.768 s/d 32.767
signed long 4 byte -2.147.438.648 s/d 2.147.438.647
Untuk mengetahui ukuran memori yang diperlukan oleh semua tipe data, bisa dilihat dengan meng-compiler dan mengeksekusi contoh program sederhana, berikut:
//* Menentukan ukuran memori *
#include <iostream.h>
#include <conio.h>
void main()
{
clrscr();
cout << "Ukuran char : " << sizeof(char) << '\n';
cout << "Ukuran short : " << sizeof(short) << '\n';
cout << "Ukuran int : " << sizeof(int) << '\n';
cout << "Ukuran long : " << sizeof(long) << '\n';
cout << "Ukuran float : " << sizeof(float) << '\n';
cout << "Ukuran double : " << sizeof(double) << '\n';
cout << "Ukuran long double : " << sizeof(long double) << '\n';
}

Penjelasan program:
Pemrograman C++ tidak terlepas dari fungsi. Sebab fungsi adalah salah satu dasar penyusunan blok pada C++. Sebuah program C++ minimal mengandung sebuah fungsi main(). Fungsi ini menjadi awal dan akhir eksekusi program C++. main adalah nama judul fungsi. Sedangkan yang dimulai dari tanda { hingga tanda } disebut tubuh fungsi. Semua yang terletak di dalam tanda {} disebut blok. Tanda () digunakan untuk mengapit argumen fungsi, yaitu nilai yang akan dilewatkan ke fungsi. Kata void yang mendahului main() dipakai untuk menyetakan bahwa fungsi ini tidak memiliki nilai balik.
Pengenal cout merupakan sebuah obyek di dalam C++. Obyek ini disediakan oleh C++ untuk mengarahkan data ke standard output (normalnya adalah layar), sebagai contoh tambahan misalnya:

cout << "Hallo! Selamat datang di website ideelok \n";
Tanda << merupakan sebuah operator yang disebut operator penyisipan/peletakan. Operator ini akan mengarahkan operand (data) yang terletak di sebelah kanan obyeknya ke obyek yang terletak di sebelah kiri. Pada pernyataan di atas, konstanta string "Hallo! Selamat datang di website ideelok \n" diarahkan ke cout, yang memberikan hasil berupa tampilan string tersebut ke layar. Didalam sebuah string, karakter \ diikuti dengan karakter tertentu menyatakan sebuah karakter tunggal. Pada contoh \n adalah karakter pindah baris (newline).
Pada baris #include <iosterm.h>, baris ini menginstruksikan kepada kompiler untuk menyiapkan file lain pada saat program dikompolasi. Dalam hal ini file-file yang berakhiran dengan .h disebut file header, yaitu file-file yang berisi berbagai deklarasi, seperti fungsi, variabel dan sebagainya. #include <iostream.h> perlu disertakan pada program yang melibatkan obyek cout. Tanpa kehadiran baris tersebut akan terjadi kesalahan program sewaktu program dikompilasi. Sebab file iostream.h berisi deklarasi yang diperlukan oleh cout dan berbagai obyek yang berhubungan dengan operasi masukan-keluaran pada stream.
Pada baris clrscr(); adalah perintah untuk menghapus layar. Apabila pernyataan di atas digunakan, baris #include <conio.h> perlu disertakan dalam program.

5. Variabel dan Konstanta Bahasa C++

Data pada C++ tersusun dari variabel dan konstanta. Variabel merupakan komponen penting pada pemrograman. Variabel digunakan dalam program untuk menyimpan suatu nilai, dengan nilai yang ada padanya dapat diubah selama eksekusi program berlangsung. Adapun konstanta menyatakan nilai yang tetap. Misalnya 234 adalah sebuah konstanta bilangan bulat.

5.1. Mendeklarasikan dan Mendefinisikan Variabel

Variabel yang akan digunakan dalam program haruslah dideklarasikan terlebih dahulu, maksudnya mengenalkan sebuah pengenal ke program dan menentukan jenis data yang bisa disimpan di dalamnya. Apabila suatu pendeklarasian menyebabkan pengalokasian memori, maka pendeklarasian tersebut dinamakan pendefinisian. Yang jelas pendefinisian berarti pula pendeklarasian, tetapi tidak semua pendeklarasian berarti pendefinisian.
bentuk pendefinisian variabel:

tipe daftar_variabel;
Pada pendefinisian variabel, daftar_variabel dapat berupa sebuah variabel atau beberapa variabel yang dipisahkan dengan koma.

5.2. Memberikan Nilai ke Variabel

Bentuk pernyataan yang digunakan untuk memberikan nilai ke variabel adalah:
variabel = nilai;
Contoh:
jumlah = 10;
harga_barang = 1500;

5.3. Variabel dan Konstanta Bertipe char

Bentuk pernyataan variabel bertipe char:

char karakter;

Dalam hal ini variabel karakter bertipe char. Variabel ini dapat menampung data sebuah karakter. Untuk menuliskan sebuah konstanta bertipe char, karakter perlu ditulis di dalam tanda petik tunggal, contoh: 'A' karakter berupa huruf A.

Karakter yang ditulis dengan bentuk \karakter mempunyai arti tersendiri (karakter khusus) dan biasa disebut escape sequence characters.

Karakter-karakter khusus tersebut antara lain:
\0 artinya karakter ber-ASCII nol (karakter nul)
\a artinya karakter bel
\b artinya karakter backspace
\f artinya karakter formfeed (ganti halaman)
\n artinya karakter newline (pindah baris)
\r artinya karakter carriage return (ke awal baris) tanpa linefeed
\t artinya karakter tab horizontal
\v artinya karakter tab vertikal
\\ artinya karakter \
\' artinya karakter '
\" artinya karakter "
\? artinya karakter ?
\ooo artinya karakter yang nilai oktalnya adalah ooo (tiga digit oktal)
\xhh artinya karakter yang nilai heksadesimalnya adalah hh (dua digit heksadesimal)

5.4. Variabel dan Konstanta Bertipe int

Variabel bertipe int didefinisikan dengan bentuk:

int bilangan;
Setelah pendefinisian seperti itu, variabel ini dapat digunakan untuk menampung nilai bertipe int. Sebuah konstanta bertipe int adalah bilangan bulat yang terletak antara minus 32768 hingga plus 32767 (pada PC berbasis DOS) dan tidak mengandung titik desimal.

5.5. Variabel dan Konstanta Bertipe long

Apabila diinginkan untuk memproses bilangan bulat yang nilainya lebih besar daripada tipe int, Anda dapat menggunakan tipe long. Suatu variabel bertipe long didefinisikan dengan cara seperti di bawah ini:

long jumlah_penduduk;

Pada contoh ini, jumlah_penduduk didefinisikan bertipe long. Dengan demikian variabel ini dapat menampung nilai ratusan juta. Adapun konstanta bertipe long biasa ditulis dengan akhiran L. Sebagai contoh: 1543267635435L

5.6. Variabel dan Konstanta Bertipe float, double dan long double

Tipe-tipe data yang telah dibahas di depan (char, int dan long) berhubungan dengan bilangan bulat. Seandainya diinginkan untuk memproses bilangan yang mengandung nilai pecahan, bisa menggunakan tipe float, double atau long double. Ketiga tipe yang berhubungan dengan bilangan pecahan ini mempunyai perbedaan dalam hal: kepresisian data, dan jangkauan nilai yang dicakup.
Contoh pendefinisian variabel untuk menampung bilangan pecahan:
float panjang;
double phi;
long double tetapan;

5.7. Inisialisasi Variabel

Adakalanya dalam penulisan program, variabel langsung diberi nilai awal setelah didefinisikan. Sebagai contoh:
int jumlah;
jumlah = 80;
Dua pernyataan seperti di atas sebenarnya dapat diangkat melalui pendefinisian yang disertai penugasan nilai, seperti berikut:
int jumlah = 80;

OPERATOR BAHASA PEMROGRAMAN C++

Operator merupakan simbol yang biasa dilibatkan dalam program untuk melakukan sesuatu operasi atau manipulasi, misalnya untuk menjumlahkan dua buah nilai, memberikan nilai pada suatu variabel, ataupun membandingkan kesamaan dua buah nilai. Bahasa pemrograman C++ mempunyai banyak operator yang tidak didapat dalam bahasa pemrograman lain, antara lain: operator bitwise, operator inkremen dan dekremen, operator kondisional, operator koma, operator aritmatika dan lain-lain.

a) Operator bitwise

Operator bitwise pada bahasa pemrograman C++ memperlakukan variabel sebagai gabungan dari bit-bit dan bukan sebagai bilangan. Operator ini berguna untuk mengakses bit-bit individual dalam memori, seperti memori screen untuk display grafik, informasi CapsLock (on atau off). Operator bitwise ini hanya dapat beroperasi pada jenis data integral, bukan bilangan floating-point. Tiga operator bitwise berkelakuan seperti operator logika, namun ini terjadi pada setiap bit dalam sebuah integer, yakni: AND (&), OR(I), dan XOR (^), komplemen (~) membalik (menginversi) setiap bit, operator shift kiri (<<), dan operator shift kanan (>>).
ANDSimbol operator: &, dengan bentuk penggunaan : operand1 & operand2
Operasi AND bitwise membandingkan dua bit; jika kedua bit tersebut adalah 1, maka hasilnya 1, selain itu hasilnya 0.
Logika AND:
Bit 0 Bit 1 Hasil
0 0 0
0 1 0
1 0 1
1 1 1

OR
Simbol operator I, dengan bentuk pemakaian : operand1 I opeand2
Operasi OR bitwise membandingkan dua bit dan memberikan hasil 1 jika kedua bit yang dibandingkan itu salah satu atau keduanya 1.
Logika OR:
Bit 0 Bit 1 Hasil
0 0 0
0 1 1
1 0 1
1 1 1

XOR
Simbul operator: ^, dengan bentuk penggunaan : operand1 ^ operand2
Operasi EXCLUSIVE OR (XOR) bitwise membandingkan dua bit dan memberikan hasil 1 bila kedua bit merupakan komplementer satu sama lain.
Logika XOR:
Bit 0 Bit 1 Hasil
0 0 0
0 1 1
1 0 1
1 1 0

Contoh program operasi I, & dan ^:

//* Efek operator I, & dan ^ *
#include <iostream.h>
#include <conio.h>
void main()
{
unsigned char angka1 = 81;
unsigned char angka2 = 99;
unsigned char a, b, c;
clrscr();
a = angka1 I angka2; //operasi OR
b = angka1 & angka2; //operasi AND
c = angka1 ^ angka2; //operasi XOR
cout << "a= " << a << '\n';
cout << "b= " << b << '\n';
cout << "c= " << c << '\n';
}

Hasil eksekusi program di atas, adalah:
a= 115
b= 65
c= 50

Penjelasan hasil program:
Operasi OR pada a:
0000 0000 0101 0001 <- 81
0000 0000 0110 0011 <- 99
-------------------------------
0000 0000 0 1 1 0011 <- 115

Operasi AND pada b:
0000 0000 0101 0001 <- 81
0000 0000 0110 0011 <- 99
-------------------------------
0000 0000 0100 0001 <- 65

Operasi XOR pada c:
0000 0000 0101 0001 <- 81
0000 0000 0110 0011 <- 99
-------------------------------
0000 0000 0011 0010 <- 50

b) Operator Shift


Operator >> dan << pada bahasa pemrograman C++ berguna untuk menggeser bit-bit dalam suatu bilangan bulat ke kiri atau ke kanan. Shift kiri menggerakkan bit-bit ke kiri dan mengatur bit paling kanan (yang tidak signifikan) menjadi nol. Sedangkan bit paling kiri (paling signifikan) yang ter-shift keluar akan dibuang. Sementara itu, operator shift kanan menggerakkan bit-bit ke kanan. Bit-bit dengan orde lebih rendah yang ter-shift keluar akan dibuang. Pergeseran bit ke kiri mempunyai efek seperti perkalian, sedangkan pergeseran ke kanan memberikan efek seperti pembagian.

b.1) Operastor shift kiri
Bentuk umum dipakai: nilai << jumlah bit digeser ke kiri
Setiap pergeseran sebuah bit akan memberikan pengaruh seperti halnya perkalian dengan bilangan dua. Untuk lebih jelasnya perhatikan contoh berikut beserta hasilnya:

//* Operator SHIFT KIRI *
#include <iostream.h>
#include <conio.h>
main()
{
unsigned char x = 93;
clrscr();
cout << "Nilai x semula = " << x << '\n';
x = x << 1; // geser ke kiri 1 bit
cout << "Nilai x kini = " << x << '\n';
}

Hasil eksekusi program:
Nilai x semula = 93
Nilai x kini = 186

Penjelasan hasil program:
0000 0000 0101 1101 <- 93
digeser ke kiri 1 bit
0000 0000 1011 1010 <- 186
di bagian kanan selalu disisipi dengan nol sebanyak bit yang digeser.

b.2) Operator shift kanan
Bentuk umum dipakai: nilai >> jumlah bit digeser ke kanan
Setiap pergeseran sebuah bit akan memberikan pengaruh seperti halnya pembagian dengan bilangan dua. Untuk lebih jelasnya perhatikan contoh berikut beserta hasilnya:

//* OPERATOR SHIFT KANAN *
#include <iostream.h>
#include <conio.h>
void main()
{
unsigned char x = 93;
clrscr();
cout << "Nilai x semula = " << x << '\n';
x = x >> 1; // geser kekanan 1 bit
cout << "Nilai x kini = " << x << '/n';
}

Hasil eksekusi program:
Nilai x semula = 93
Nilai x kini = 46

Penjelasan hasil program:
0000 0000 0101 1101 <- 93
digeser ke ke kanan 1 bit
0000 0000 0010 1110 <- 186
di bagian kiri selalu disisipi dengan nol sebanyak bit yang digeser.

c) Operator Komplemen
Operator ini mempunyai sifat membalik (menginversi) nilai setiap bit. Jika bit operand bernilai 1 hasilnya 0, dan bila bit operand bernilai 0 hasilnya 1.
Contoh pemakaian operator komplemen:

//* Operator komplemen *
#include <iostream.h>
#include <conio.h>
main()
{
unsigned char nilai = 81;
unsigned char a;
clrscr();
a = ~nilai; // komplemen dari nilai
cout << "a = " << a << '\n';
}

Hasil eksekusi program:
a = 65454

Penjelasan hasil program:
0000 0000 0101 0001 <- 81
inversinya menjadi
1111 1111 1010 1110 <- 6554

d) Operator Aritmatika 
Bahasa C++ melibatkan operator aritmatika standar untuk penjumlahan (+), pengurangan (-), perkalian (*), pembagian (/), dan modulus (%). Operator aritmatika tersebut tergolong sebagai operator binary. Adapun operator yang tergolong sebagai operator unary yaitu tanda minus (-), dan tanda plus (+).

Prioritas operator :
Operator dengan prioritas tinggi akan diutamakan dalam hal pengerjaan dibandingkan dengan operator yang memiliki prioritas lebih rendah.
Prioritas 1: + --
Prioritas 2: - (unary minus)
Prioritas 3: * / %
Prioritas 4: + -

Apabila operastor memiliki prioritas yang sama, operator yang terletak disebelah kiri dalam suatu ungkapan yang akan diutamakan untuk dikerjakan terlebih dahulu.

Tanda kurung biasa digunakan untuk urutan mengerjakan, misalnya x = (2 + 3) * 2;
(2 + 3 akan dikerjakan terlebih dahulu baru dikalikan dengan 2)

Contoh program:
//* Operasi aritmatika dengan menggunakan tanda kurung) *
#include <iostream.h>
#include <conio.h>
void main()
{
clrscr();
int x;
x = 2 + 3 * 2;
cout << "x= " << x << '\n';
x = (2 + 3) * 2;
cout << "x= " << x << '\n';
}

Hasil eksekusi program:
x= 8
x= 12

Operator seperti penjumlahan, pengurangan, perkalian dan pembagian merupakan hal yang umum. Adapun operator sisa pembagian (operator modulus) yang berupa % ada baiknya untuk diterangkan lebih lanjut. Operator ini diterapkan pada operan bertipe integer. Untuk lebih jelasnya perhatikan beberapa contoh berikut:
7 % 2 -> 1 sisa pembagian bilangan 7 dengan 2 adalah 1
9 % 5 -> 4 sisa pembagian bilangan 9 dengan 5 adalah 4

Contoh program
//* sisa pembagian (modulus) *
#include <iostream.h>
#include <conio.h>
void main()
{
clrscr();
cout << 9 % 5 << '\n';
cout << 13 % 5 << '\n';
}

Hasil eksekusi program:
4
3

e) Operator Assigenment
Operator assigenment dalam bahasa pemrograman C/C++ berbeda dengan statement assigenment dalam bahasa yang lain. Assigenment dilakukan oleh operator assigenment dan bukan oleh staement assigenment. Seperti operator bahasa pemrograman C++ yang lain, hasil operator assigenment merupakan nilai yang diberikan. Misalnya :
nilai = 4 * (bilangan = 3)
Disini bilangan diberikan nilai 3. Nilai 3 ini dikali dengan 4, sehingga nilai mendapatkan hasil akhir 12.

Resep Cara Membuat Ayam Penyet Paling Enak

Informasi buat anda yang hoby memasak, pada kesempatan kali ini admin akan kembali berbagi kreasi dengan anda semua yang mana kita akan mencoba membuat makanan dengan berbahan dasar Ayam Resep Masakan , memang makanan yang satu cukup populer dikalangan masyarakat dan banyak menjadi makanan favorit, nah bila anda ingin mencoba membuatnya dirumah? berikut akan admin berikan artikel terbaik seputar Resep Cara Membuat Ayam Penyet Paling Enak :

Resep Masakan - Ayam Penyet merupakan suatu makanan kuliner yang banyak diminati oleh orang-orang selain rasanya yang enak ayam penyet juga dapat memanjakan perut anda, apakah berminat untuk membuatnya? berikut akan admin berikan resepnya :



Resep Cara Membuat Ayam Penyet Paling Enak
Resep Cara Membuat Ayam Penyet Paling Enak

Cara Membuat

Bahan

  • 1 ekor ayam berukuran kecil,dipotong menjadi 4 bagian

Haluskan

  • 5 siung bawang putih
  • 1sdt ketumbar
  • 3 cm kunyit
  • 1/4 sdt garam
  • 2 cm jahe, memarkan
  • 2 cm lengkuas, memarkan
  • 100 ml air
  • Minyak secukupnya,untuk menggoreng

Bahan Sambal

  • 10 buah cabai merah keriting
  • 8 buah cabai rawit merah
  • 1/4 sdt terasi matang
  • 2 lembar daun jeruk purut
  • 1/4 sdt garam
  • 1/4 sdt irisan gula merah
  • 2 tangkai daun kemangi,petiki daunnya

Cara Membuat Ayam Penyet :

Campurkan bumbu halus,jahe,dan lengkuas dengan daging ayam dan air,lalu ungkep sampai daging ayam empuk.Angkat,sisihkan.

Goreng daging ayam sampai berwarna kecokelatan(jangan terlalu kering),angkat,tiriskan.

Haluskan semua bahan sambal,masukkan daun kemangi,tumbuk kasar.

Masukkan ayam goreng,tekan-tekan(penyet)kedua sisinya sampai sambal menempel pada daging,sajikan.




Demikian Informasi terbaru seputar Resep Cara Membuat Ayam Penyet Paling Enak, semoga artikel diatas dapat bermanfaat buat anda sekalian, jadikan ini sebagai inspirasi untuk anda memasak.

Tetap Bugar Saat Berpuasa



  Bulan suci yang sangat istimewa bagi umat Muslim di seluruh dunia telah datang. Dibulan puasa ini, anda tidak hanya diajarkan untuk bersabar menahan lapar dan dahaga sejak matahari terbit hingga terbenam, nmaun anda juga akan memetik banyak manfaat dari menahan hawa nafsu dan sifat buruk.
Nah, tantangan yang paling besar pada bulan ini adalah untuk tetap prima dan bugar saat beraktivitas melakukan kegiatan sehari-hari walaupun anda berpuasa. Ya, kondisi mental dan fisik orang yang berpuasa memang perlu disiapkan agar tetap sehat. Oleh sebab itu anda harus memulai perencanaan makanan dan membuat daftar belanja untuk  membantu anda menyiapkan konsumsi makanan yang baik saat berpuasa. Oiya, anda juga harus menghindari beberapa jenis makanan dan melakukan beberapa tips di bawah ini;
  • Kurangi konsumsi teh, kopi dan minuman bersoda
Bulan Ramadhan adalah waktu yang bagi anda untuk mengurangi asupan teh, kopu dan minuman bersoda lainnya yang mengandung kafein. Anda dapat mencoba untuk membatasi diri hanya mengkonsumsi minuman berkafein dua kali dalam sehari selama bulan Ramadhan. Ini penting untuk meminimalisir gejala sakit kepala. Karena, minuman bersoda dan berkafein akan membuat anda terjaga di malam hari dan memiliki efek diuretik pada tubuh.
Dan pastikan tubuh tidak kekurangan cairan dengan mengkonsumsi air sebanyak 8-10 gelas sehari saat berbuka dan santap sahur.
  • Jaga kesehatan
Dengan berpuasa sebulan penuh, adalah saat yang paling tepat untuk memperbaiki metabolism tubuh anda sehingga tubuh anda semakin sehat. Jangan pernah menganggap puasa sebagai cara berdiet, namun bagaimana menahan nafsu dan menjalani hidup sehat.
Nah, jika anda memiliki masalah kesehatan, sebaiknya anda berkonsultasi dahulu dengan dokter untuk mengetahui cara terbaik membantu tubuh agar bisa menjalankan puasa dengan sehat.
  • Kebiasaan makan sehat
Pertahankan kebiasaab makan yang baik dengan menu seimbang dari buah dan sayuran. Cobalah untuk tidak makan terlalu cepat saat berbuka puasa. Kunyahlah makanan dengan lembut dan jangan lupa untuk minum cukup menghindari dehidrasi dan sakit kepala di siang hari.
Sebisa mungkin anda perbanyak konsumsi jus segar untuk membantu tubuh tetap fit selama bulan Ramadhan. Perbanyaklah minum air putih untuk menghindari sembelit.
  • Olah raga
Walaupun anda sedang berpuasa, bukan berarti anda boleh bermalas-malasan sambil menunggu saat berbuka. Tidak ada salahnya anda berolahraga sambil menunggu datangnya maghrib. Karena olah raga sangat baik untuk membantu sirkulasi oksigen di dalam tubuh tetap lancar. Jangan lupa juga untuk melakukan kegiatan aktif setelah berbuka, seperti minimal berjalan santai.
  • Tidur cukup
Tidur malam selama minimal 8 jam sehari sangat diperlukan untuk memastikan keseimbangan tubuh dihari berikutnya bagi anda yang bekerja ataupun masuk sekolah. Karena ketika anda kurang tidur, dapat menyebabkan gelisah, sakit kepala dan masalah pencernaan yang buruk.
  • Sahur
Semua pakar kesehatan merekomendasikan makan sahur sebelum anda memulai puasa. Meskipun sangat berat untuk terbangun di waktu subuh untuk sahur, sebaiknya anda jangan melewatkan waktu sahur.
Sebagai gantinya waktu tidur anda yang terganggu saat sahur, anda dapat mencoba mengganti waktu tidur di sore hari saat menjelang berbuka. Agar tidak repot menyiapkan makanan sahur di waktu subuh, biasakan untuk menyiapkan masakan yang akan anda makan diwaktu sahur sebelum anda tidur. Sehingga saat akan dimakan anda cukup memanasi saja.

ORGANISASI DAN ARSITEKTUR KOMPUTER


Komputer merupakan perangkat elektronik yang sudah tidak asing lagi di kalangan anak-anak hingga orang dewasa, tentunya dengan tingkat pemahaman dan penggunaan yang berbeda-beda.  Arsitektur Von Neumann menggambarkan komputer dengan empat bagian utama: Unit Aritmatika dan Logis (ALU), unit kontrol, memori, dan alat masukan dan hasil (secara kolektif dinamakan I/O). Bagian ini dihubungkan oleh berkas kawat, “bus”.

A. Organisasi Komputer
Organisasi Komputer adalah bagian yang terkait erat dengan unit-unit operasional dan interkoneksi antar komponen penyusun sistem komputer dalam merealisasikan aspek arsitekturalnya. Contoh aspek organisasional adalah teknologi hardware, perangkat antarmuka, teknologi memori, sistem memori, dan sinyal–sinyal kontrol.

B. Arsitektur Komputer
Arsitektur Komputer lebih cenderung pada kajian atribut–atribut sistem komputer yang terkait dengan seorang programmer. Contohnya, set instruksi,aritmetika yang digunakan, teknik pengalamatan, mekanisme I/O.

C. CPU (Central Prosessing Unit)
Unit Pengolah Pusat atau CPU (Central processing Unit) berperan untuk memproses perintah yang diberikan oleh pengguna komputer, mengelolanya bersama data-data yang ada di komputer. Unit atau peranti pemprosesan juga akan berkomunikasi dengan peranti input , output dan storage untuk melaksanakan instruksi yang saling terkait.
Dalam arsitektur von Neumann yang asli, ia menjelaskan sebuah Unit Aritmatika dan Logika, dan sebuah Unit Kontrol. Dalam komputer-komputer modern, kedua unit ini terletak dalam satu sirkuit terpadu (IC – Integrated Circuit), yang biasanya disebut CPU (Central Processing Unit).
Unit Aritmatika dan Logika, atau Arithmetic Logic Unit (ALU), adalah alat yang melakukan pelaksanaan dasar seperti pelaksanaan aritmatika (tambahan, pengurangan, dan semacamnya), pelaksanaan logis (AND, OR, NOT), dan pelaksanaan perbandingan (misalnya, membandingkan isi sebanyak dua slot untuk kesetaraan). Pada unit inilah dilakukan “kerja” yang sebenarnya.
Unit kontrol menyimpan perintah saat ini yang dilakukan oleh komputer, memerintahkan ALU untuk melaksanaan dan mendapatkan kembali informasi (dari memori) yang diperlukan untuk melaksanakan perintah itu, dan memindahkan kembali hasil ke lokasi memori yang sesuai. Unit ini berfungsi mengontrol pembacaan instruksi program komputer.

D.  Memori
Memori adalah sebuah array yang besar dari word atau byte, yang ukurannya mencapai ratusan,  ribuan,atau bahkan jutaan. Setiap word atau bytemempunyai alamat tersendiri. Main memory berfungsi sebagai tempat penyimpanan yang akses datanya digunakan oleh CPU atau perangkat I/O.  Main-memory termasuk tempat penyimpanan data yang sementara (volatile), artinya data dapat hilang begitu sistem dimatikan. Sistem operasi bertanggung jawab atas aktivitas-aktivitas yang berkaitan dengan manajemen memori seperti: menjaga track dari memori yang sedang digunakan dan siapa yang menggunakannya; memilih program yang akan di-load ke memori; dan mengalokasikan dan mendealokasikan memoryspace sesuai kebutuhan. Main memory dapat dibayangkan sebagai kumpulan kotak-kotak yang masing dapat menyimpan suatu penggal informasi baik berupa data maupun instruksi. Umumnya
byte memory terdiri dari 8 bit dan tiap bit diwakili oleh 1 atau 0. Kombinasi bit dalam1 byte tersebut membentuk suatu kode yang mewakili isi dari lokasimemory. Kode yang digunakan untuk mewakilinya tergantung dari komputer yang digunakan,dapat membentuk sistem kode BCD (Binary-Coded Decimal), sistem kode SBCDIC (Standard Binary Coded Decimal Interchange Code), sistem kode EBCDIC (Extended Binary Coded Decimal Interchange Code) atau sistem kode ASCII (American Standard Code for Information Interchange).
  • Memori dikelompokkan menjadi 2 yaitu:
Ø RAM (Random Access Memory)
RAM (Random  Access Memory ) adalah memori yang dapat dibaca atau ditulisi. Data dalam sebuah RAM bersifat volatile, artinya data akan terhapus bila catu daya dihilangkan. Karena sifat RAM yang volatile ini, maka program computer tidak tersimpan di RAM. RAM hanya digunakan untuk mcnyimpaii data seinantara, yang ticlak begilu vital saal aliran daya terpiilus.
Struktur dari RAM, dibagi menjadi:
1.      Input Storage, digunakan untuk menampung input yang dimasukkan lewat
alat input;
2.      Program Storage, digunakan untuk menyimpan semua instruksi program
yang akan diproses;
3.      Working Storage, digunakan untuk menyimpan data yang akan diolah dan
hasil dari pengolahan;
4.    Output Storage, digunakan untuk menampung hasil akhir dari pengolahan datayang akan ditampilkan ke alat output.
Ø ROM (Read Only Memory)
Memori ini hanya dapat dibaca saja, programer tidak bisa mengisi sesuatu ke dalam ROM. Isi ROM sudah diisi oleh pabrik pembuatnya berupa sistem operasi yang terdiri dari program-program pokok yang diperlukan oleh sistem komputer, seperti program untuk mengatur penampilan karakter, pengisian tombol kunci dan bootstrap program.
Bootstrap program diperlukan pada waktu pertama kali sistem komputer diaktifkan, yang proses ini disebut dengan istilah booting, yang terdiri dari:
1.      Cold booting, yaitu proses mengaktifkan sistem komputer pertama kali untuk
mengambil bootsrap program dari keadaan listrik komputer mati.
2.      Warm booting, yaitu proses pengulangan pengambilan bootstrapprogram
dalam keadaan komputer masih hidup.
Instruksi yang tersimpan di ROM disebut dengan microinstruction atau microcodeatau disebut juga firmware. Isi dari ROM tidak boleh hilang atau rusak, karena dapat menyebabkan sistem komputer tidak berfungsi. ROM bersifat non volatile, artinya isinya tidak hilang bila listrik komputer dimatikan.
Jenis-jenis ROM:

1.      PROM (Programmable Read Only Memory), yaitu ROM yang dapat diprogram
sekali saja dan tidak dapat diubah kembali
2.      EPROM (Erasable Programmable Read Only Memory), yaitu ROM yang dapat
dihapus dengan sinar ultra violet serta dapat diprogram kembali berulang-ulang
3.      EEPROM (Electrically Erasable Programmable Read Only Memory), yaitu
ROM yang dapat dihapus secara elektronik dan dapat diprogram kembali.
E. I/O Port
Alat-alat input/output tidak dilekatkan langsung dengan bus tetapi melalui suatu I/O port atau I/O interface. Alat-alat input/output dapat berkomunikasi dengan CPU dengan cara mengirimkan informasi yang akan dikomunikasikan lewat bus. Informasi yang dikirim dari alat input/output (peripheral device) kemain memory atau ke register di CPU diletakan di I/O port dan dikirimkan lewat data bus. Demikian juga bila informasi dari main memory akan dikirimkan ke peripheral device juga melalui data bus dan diterima di I/O port. Cara ini disebut juga dengan program-controlled  I/O. Cara ini banyak diterapkan pada alat I/O yang hanya dapat menangani satu karakter atau 1 byte atau 1 word saja tiap saat misalnya keyboard.

F. Instruksi
Perintah yang dibicarakan di atas bukan perintah seperti bahasa manusiawi. Komputer hanya mempunyai perintah sederhana dalam jumlah terbatas yang dirumuskan dengan baik. Perintah biasa yang dipahami kebanyakan komputer ialah “menyalin isi sel 123, dan tempat tiruan di sel 456″, “menambahkan isi sel 666 ke sel 042, dan tempat akibat di sel 013″, dan “jika isi sel 999 adalah 0, perintah berikutnya anda di sel 345″.
Instruksi diwakili dalam komputer sebagai nomor – kode untuk “menyalin” mungkin menjadi 001, misalnya. Suatu himpunan perintah khusus yang didukung oleh komputer tertentu diketahui sebagai bahasa mesin komputer. Dalam praktiknya, orang biasanya tidak menulis perintah untuk komputer secara langsung di bahasa mesin tetapi memakai bahasa pemrograman ”tingkat tinggi” yang kemudian diterjemahkan ke dalam bahasa mesin secara otomatis oleh program komputer khusus (interpreter dan kompiler). Beberapa bahasa pemrograman berhubungan erat dengan bahasa mesin, seperti assembler (bahasa tingkat rendah); di sisi lain, bahasa seperti prolog didasarkan pada prinsip abstrak yang jauh dari detail pelaksanaan sebenarnya oleh mesin (bahasa tingkat tinggi).

G.Pengalamatan
Pengalamatan adalah bagaimana cara menunjuk dan  mengalamati suatu lokasi memori pada  sebuah alamat di mana operand akan diambil. Mode pengalamatan diterapkan pada set instruksi, dimana pada umumnya instruksi terdiri dari opcode (kode operasi) dan alamat. Setiap mode pengalamatan memberikan fleksibilitas khusus yang sangat penting. Mode pengalamatan ini meliputi direct addressing, indirect addressing, dan immediate addressing.

1.      Direct Addresing
Dalam mode pengalamatan direct addressing, harga yang akan dipakai diambil langsung dalam alamat memori lain. Contohnya: MOV A,30h. Dalam instruksi ini akan dibaca data dari RAM internal dengan alamat 30h dan kemudian disimpan dalam akumulator. Mode pengalamatan ini cukup cepat, meskipun harga yang didapat tidak langsung seperti immediate, namun cukup cepat karena disimpan dalam RAM internal. Demikian pula akan lebih mudah menggunakan mode ini daripada mode immediate karena harga yang didapat bisa dari lokasi memori yang mungkin variabel.

Kelebihan dan kekurangan dari Direct Addresing antara lain :
Kelebihan
·         Field alamat berisi  alamat efektif sebuah operand.
Kelemahan
·         Keterbatasan field alamat karena panjang field alamat biasanya lebih kecil dibandingkan panjang word.

2.      Indirect Addresing
Mode pengalamatan indirect addressing sangat berguna karena dapat memberikan fleksibilitas tinggi dalam mengalamati suatu harga.Mode ini pula satu-satunya cara untuk mengakses 128 byte lebih dari RAM internal pada keluarga 8052. Contoh: MOV A,@R0. Dalam instruksi tersebut, 89C51 akan mengambil harga yang berada pada alamat memori yang ditunjukkan oleh isi dari R0 dan kemudian mengisikannya ke akumulator. Mode pengalamatan indirect addressing selalu merujuk pada RAM internal dan tidak pernah merujuk pada SFR. Karena itu, menggunakan mode ini untuk mengalamati alamat lebih dari 7Fh hanya digunakan untuk keluarga 8052 yang memiliki 256 byte spasi RAM internal.
Kelebihan dan kekurangan dari Indirect Addresing antara lain :
Kelebihan
·         Ruang bagi alamat menjadi besar sehingga semakin banyak alamat yang dapat referensi.
Kekurangan
·         Diperlukan referensi memori ganda dalam satu fetch sehingga memperlambat preoses operasi.
3.      Immediate Addresing
Mode pengalamatan immediate addressing sangat umum dipakai karena harga yang akan disimpan dalam memori langsung mengikuti kode operasi dalam memori. Dengan kata lain, tidak diperlukan pengambilan harga dari alamat lain untuk disimpan. Contohnya: MOV A,#20h. Dalam instruksi tersebut, akumulator akan diisi dengan harga yang langsung mengikutinya, dalam hal ini 20h. Mode ini sangatlah cepat karena harga yang dipakai langsung tersedia.
Kelebihan dan kekurangan dari Immedieate Addresing antara lain :
Keuntungan
·         Tidak adanya referensi memori selain dari instruksi yang diperlukan untuk memperoleh operand.
·         Menghemat siklus instruksi sehingga proses keseluruhan akan cepat.
Kekurangan
  • Ukuran bilangan dibatasi oleh ukuran field alamat.