Anda di halaman 1dari 77

MODUL PEMBELAJARAN

MATA KULIAH PENGANTAR SISTEM KOMPUTER DAN


PEMROGRAMAN
TEKNIK ELEKTRO UNM GCS SINGAPURA

D
I
S
U
S
U
N

OLEH :

NAMA : ST NURROFIAH CHAERUNNISA KADIR


NIM : 200204622029
PRODI : TEKNIK ELEKTRO GCS
TAHUN AJARAN 2020/2021
DOSEN PA : ZULHAJJI, ST. MT
DOSEN MATA KULIAH:

Dr.Eng. H. Muh Agung, ST., MT

Page i
DAFTAR ISI
Sampul ................................................................i
Daftar Isi ................................................................ii
Bab I
I.1Hardware Komputer ................................................................1
I.2 Software Komputer ................................................................3
I.3 Output ................................................................9
I.4 Input ................................................................10
I.5 Sistem Bilangan ................................................................11
I.6 Logic Gate ................................................................21
Bab II
II.1 CPU Dan Process Device ................................................................22
Bab III
III.1 Set Instruksi ................................................................29
Bab IV
IV.1 Pengantar Pemrograman ................................................................32
Bab V
V.1 Data, Variabel, Tipe Dan Modulisasi ...............................................................37
Bab VI
VI.1 Struktur Program ................................................................44
Bab VII
VII.1 Control Structure ................................................................53
Bab VIII
VIII.1 Looping ................................................................61
Bab IX
IX.1 Arrays ................................................................65
Bab X
X.1 Sorting And Searching ................................................................68

Page ii
BAB I
 HARDWARE KOMPUTER

Perangkat keras komputer (computer hardware) adalah komponen-komponen fisik yang


membentuk satu kesatuan sistem Personal Computer (PC). Biasanya perangkat-
perangkat ini dirakit dan sebagian besar dimasukkan ke dalam sebuah casing komputer
dan sebagian lain berada di luar casing. Perangkat keras yang berada di dalam casing
umumnya terdiri dari:

 Motherboard/Mainboard (papan utama), merupakan komponen utama untuk


membangun sebuah sistem komputer. Berbentuk papan persegi dengan slot-slot
untuk memasukkan komponen-komponen lain. Fungsinya untuk
menghubungkan seluruh komponen PC. Perangkat keras komputer yang lainnya
semuanya melekat langsung pada slot motherboard atau setidaknya terhubung
menggunakan kabel.

 Central Processing Unit (CPU), biasa juga dikenal dengan sebutan processor
atau otak komputer. Fungsi dari CPU adalah untuk memproses dan mengolah
semua kalkulasi dan perintah-perintah yang membuat komputer dapat
dioperasikan. Karena panas yang dihasilkannya, CPU selalu dilengkapi dengan
kipas dan juga heat sink untuk mengurangi suhunya. Pada jenis-jenis CPU
terbaru, sudah dilengkapi pula dengan Graphic Processing Unit (GPU) yang
terintegrasi ke dalam CPU sebagai pengolah data-data grafis.

 Random Access Memory (RAM), berfungsi sebagai tempat transit data


sementara untuk operasi-operasi yang tengah dijalankan oleh CPU. RAM bersifat
volatile, artinya perangkat ini tidak menyimpan data secara permanen, hanya
untuk operasi yanh dibutuhkan saja. Kapasitas RAM pada PC yang sering kita
temukan cukup beragam, mulai dari 256MB (Mega Byte) – 16GB (Giga Bytes).
 Video Graphic Adapter (VGA), berfungsi sebagai penghubung yang
memungkinkan pengiriman data-data grafis antara PC dan perangkat display
seperti monitor atau proyektor. Sebagain besar komputer memiliki VGA yang
terpisah sebagai kartu ekspansi yang dipasang pada slot motherboard. Namun
ada juga komputer yang mempunyai VGA terintegrasi pada motherboard atau
pada CPU-nya.
 Hard Disk, berfungsi sebagai tempat penyimpanan data utama dalam sebuah
sistem komputer. Sistem operasi, aplikasi, dan dokumen-dokumen disimpan
pada hard disk ini. Pada PC terbaru, ada juga perangkat keras baru yang
bernama solid state drive (SSD). Fungsinya sama seperti hard disk, namun
menawarkan kecepatan transfer data yang lebih cepat.

Page 1
 Optical Disc Drive, biasa juga dikenal dengan CD/DVD Drive. Fungsi dari
perangkat ini adalah untuk membaca dan juga menyimpan data dari ke media
cakram optik seperti CD, DVD, atau Blue-Ray Disc.

Selain dari perangkat keras komputer yang terdapat di dalam casing, ada juga
komponen-komponen yang umum kita lihat diluar casing:
 Monitor, disebut juga screen atau display. Fungsi dari layar monitor adalah
untuk menampilkan video dan informasi grafis yang dihasilkan dari komputer
melalui alat yang disebut kartu grafis (VGA Card). Monitor ini bentuk fisiknya
hampir sama dengan televisi, hanya saja televisi biasanya mampu menampilkan
informasi grafis dengan ukuran resolusi yang lebih tinggi.
 Keyboard dan Mouse, berfungsi sebagai alat input untuk memasukkan perintah
teks, karakter, atau menggerakkan objek pada antarmuka grafis untuk diproses
oleh komputer. Ukuran dan bentuk dari kedua alat ini cukup beragam, namun
fungsinya sama saja.
Diluar komponen-komponen yang sudah kita sebutkankan diatas, ada pula
perangkat keras komputer yang tidak semua pengguna komputer memilikinya:

 Uniterruptable Power Supply (UPS), sering disebut juga sebagai baterai


cadangan, fungsi utama UPS adalah menyimpan dan menyediakan cadangan
listrik yang akan digunakan ketika sumber listrik utama padam. Selain sebagai
cadangan listrik, kebanyakan UPS juga berfungsi sebagai stabilizer yang
mengatur aliran listrik agar sesuai dengan yang dibutuhkan.
 Printer dan Scanner, berfungsi sebagai alat output cetak dokumen elektronik
baik berbentuk teks maupun grafis. Pada komputer rumahan biasanya
menggunakan kertas sebagai media cetaknya. Sedangkan fungsi scanner adalah
kebalikkan dari printer yaitu memindai input data dari luar komputer ke dalam
bentuk elektronik yang dapat diolah secara digital.
 Speaker, berfungsi sebagai alat output suara yang dihasilkan dari komputer.
Selain speaker, sering juga kita temukan orang yang menggunakan
headphones/headset sebagai alat output suara.

 Sound Card (Kartu Suara), fungsinya sebagai penghubung anatar komputer dan
alat
output audio seperti speaker.

 Modem, alat ini berfungsi untuk menghubungkan komputer dengan jaringan


internet.
 LAN Card, fungsinya sebagai penghubung komputer dengan suatu jaringan.
 Power Supply Unit (PSU), berfungsi sebagai pengkonversi dan penyalur energi
listrik dari outlet sumber (misalnya listrik PLN) ke bentuk energi listrik yang
dapat digunakan untuk menjalankan komponen-komponen komputer yang
berada di dalam casing. Biasanya, PSU ini diletakkan di bagian belakang casing.

Page 2
 SOFTWARE KOMPUTER
komputer merupakan mesin yang memproses data menjadi suatu informasi.
Komputer digunakan users untuk meningkatkan hasil kerja dan memecahkan berbagai
masalah. Yang menjadi pemroses data atau pemecah masalah itu adalah software atau
perangkat lunak. Bentuk terkecil dari perangkat lunak adalah operasi aritmatik (+, -, :,
x) dan logika (AND, OR, >, <, =). Dari operasi dasar ini disusun program atau
perangkat lunak.

KLASIFIKASI PERANGKAT LUNAK

Perangkat lunak dapat diklasifikasikan sebagai berikut


System Software:

 Operating System (OS) : merupakan perangkat lunak yang mengoperasikan


komputer serta menyediakan antarmuka dengan perangkat lunak lain atau
dengan pengguna. Contoh sistem operasi: MS DOS, MS Windows (dengan
berbagai generasi), Macintosh, OS/2, UNIX (dengan berbagai versi), LINUX
(dengan berbagai distribusi), NetWare, dll.

 Programming Languages : merupakan perangkat lunak untuk pembuatan atau


pengembangan perangkat lunak lain. Bahasa pemprograman dapat
diklasifikasikan menjadi tingkat rendah, tingkat sedang, dan tingkat tinggi.
Pergeseran dari tingkat rendah ke tinggi menunjukkan kedekatan dengan
“bahasa manusia”. Bahasa tingkat rendah (atau biasa disebut bahasa assembly)
merupakan bahasa dengan pemetaan satu per satu terhadap instruksi komputer.
Contoh bahasa tingkat tinggi : Pascal, BASIC, Prolog, Java dll. Contoh bahasa
tingkat menengah : bahasa C.
Compiler atau interpreter bisa diibaratkan sebagai suatu
kamus yang berfungsi untuk menterjemahkan bahasa pemrograman yang ditulis
oleh programmer kedalam bahasa mesin agar komputer bisa bekerja sesuai
dengan ketentuan program yang ditulis. Bahasa mesin merupakan suatu bahasa
yang dikenal oleh komputer

Komputer merupakan peralatan elektronik, artinya komputer komputer bekerja


berdasar pulsa-pulsa elektronik. Pulsa elektronik hanya memiliki 2 kondisi, yaitu
ON (ada arus listrik) dan OFF (tidak ada arus). Kondisi ON dan OFF ini
kemudian diterjemahkan dalam
angka 0 dan 1

Page 3
Dengan demikian, sebenarnya untuk meng-gerakkan
komputer agar bisa bekerja, maka dituntut untuk mengetahui kombinasi kerja dari ON dan
OFF Kombinasi ini kemudian dikenal sebagai bahasa mesin, bahasa yang dikenal oleh
komputer. Aturan yang ada didalam bahasa mesin, hanya merupakan kode-kode binary
ataupun kode-kode tertentu yang tentunya sangat sulit untuk dipelajari.
Karena sulitnya bahasa mesin atau low level language ini, pabrik pembuat komputer
kemudian membuat kamus agar bisa dimanfaatkan oleh pemakai. Kamus ini dikenal
sebagai compiler atau interpreter.
Kamus yang ada berisi terjemahan angka 0 s/d 9, huruf A s/d Z, aneka tanda baca, aneka
rumus perhitungan ataupun aturan-aturan yang terdapat dalam suatu bahasa program.
Terjemahan yang ada akan berbentuk pulsa- pulsa elektronik yang kemudian
dilambangkan dengan angka 0 dan 1 (konsep binary)
Dengan adanya compiler ataupun intrepreter, pemakai kemudian bisa berkomunikasi
dengan bahasa yang lebih "manusiawi" jika dibanding dengan bahasa mesin. Bahasa
yang lebih manusiawi ini kemudian dikenal sebagai high level language. Pemakai
menuliskan instruksi dalam high level language dan komputer menterjemahkan dalam
low level language (bahasa mesin).
Jenis high level language cukup banyak, seperti misalnya: Basic, Cobol, Pascal, Fortran
dan lain sebagainya. Dalam hal ini, setiap high level language memiliki aturan-aturan
tersendiri dan juga memiliki compiler ataupun interpreter tersendiri. Hal ini dapat
diilustrasikan dengan bahasa Inggris, Perancis ataupun Jepang. Dimana setiap bahasa
juga memiliki aturan-aturan dan kamus tersendiri.
Interpreter akan menterjemahkan instruksi demi instruksi, dan apabila ditemui sesuatu
kesalahan, maka proses akan berhenti, dan interpreter kemudian menunjukkan kesalahan
tersebut. Untuk memulai proses, kesalahan yang ada harus dibetulkan terlebih dahulu.
Interpreter biasanya hanya ditemui pada komputer jenis kecil, misalnya Personnal
Computer.
Dalam bekerja, compiler akan menterjemahkan seluruh instruksi yang ada, dan seluruh
kesalahan yang ditemui dalam instruksi yang ada, akan ditampilkan pada akhir proses
penterjemahan.
Program yang ditulis dengan menggunakan language, juga disebut sebagai source
program atau program yang masih mentah. Disebut mentah karena program ini masih
harus diproses ataupun diterjemahkan kedalam bahasa mesin. Hasil penterjemahan suatu
program kedalam
bahasa mesin, dikenal sebagai object program.
System Utility : merupakan program khusus yang berfungsi sebagai perangkat
pemeliharaan komputer, seperti antivirus, partisi hardisk, manajemen hardisk, dll. Contoh
produk program utilitas: Norton Utilities, PartitionMagic, McAfee, dll.

Page 4
Application Software
 Custom-made Software / Custom Software / Tailor-made Software :
merupakan program yang dikembangkan untuk memenuhi kebutuhan yang spesifik.
Contoh
: aplikasi akuntansi, aplikasi perbankan, aplikasi manufaktur, dll.
Commercial Software / Package Software :
 wordprocessor,
 desktop publishing,
 spareadsheet,
 database management system,
 graphics software, dsb

PERANGKAT LUNAK APLIKASI

Aplikasi Office
`Perangkat lunak aplikasi perkantoran yang umum adalah pemroses kata dan pemroses
tabel . Pemroses kata umum di gunakan untuk menggantikan tugas pengetikan yang sering
di lakukan. Selain dapat melakukan format pengetikan seperti penomoran, pengaturan
spasi, margin (jarak pinggir kertas), jenis huruf (font), pemroses kata juga dapat melakukan
proses pengecekan kata bahkan kalimat.
Pemroses tabel biasanya di gunakan untuk melakukan perhitungan yang menggunakan
tabel (tabulasi). Fungsi standar yang di gunakan adalah penjumlahan di suatu range dalam
baris atau kolom tertentu, atau fungsi lainnya seperti pencarian nilai rata-rata, maksimal,
minimal atau deviasi. Automasi pemrosesan dapat dilakukan dengan menggunakan macro,
misalnya perhitungan bulanan.

Aplikasi Multimedia
Aplikasi multimedia saat ini sangat banyak dan beragam. Di katakan Multimedia karena
selain penggunaan media teks, aplikasi ini dapat memproses / menampilkan dalam bentuk
yang lain yaitu gambar, suara dan film
Aplikasi Multimedia sangat berkaitan dengan format data yang di gunakan. Aplikasi
Multimedia umumnya di pisahkan lagi menjadi aplikasi yang di gunakan untuk membuat,
yang hanya di gunakan untuk menampilkan saja dan aplikasi pengaturan.
Format-format digital

 MIDI (Musical Instrument Digital Interface) , format suara instrumen ini di


perkenalkan pada tahun 1983 oleh perusahaan musik elektrik seperti Roland,
Yamaha dan Korg. Format MIDI bersifat sangat kompak dengan ukurannya yang
kecil, suara yang di hasilkan oleh MIDI dengan dukungan sound card yang
memilik synthesizer (penghasil suara elektrik) sangatlah mirip dengan organ
elektrik yang bisa memainkan berbagai alat musik.
 MP3, format suara yang terkenal saat ini berbeda dengan MIDI yang hanya
instrument, MP3 merekam seluruh suara termasuk suara penyanyinya. Kualitas
suara MP3 akan berbanding dengan ukuran penyimpannya. Kualitas yang banyak
di gunakan untuk merekam musik adalah standar CD-ROM (44,2 KHz, 16 bit,
stereo), sementara kualitas terendah adalah kualitas seperti telepon (5 KHz, 8 bit,
mono)
.

Page 5
 MPEG (Moving Picture Experts Group), merupakan format yang di susun oleh
ahli dari berbagai penjuru dunia untuk format multimedia.
 AVI (Audio Video Interleave), format AVI di buat oleh Microsoft dan mudah di
pindah- pindahkan di aplikasi buatan Microsoft lainnya seperti Word atau
PowerPoint
 Quicktime, sama dengan AVI, Quicktime dapat digunakan baik di komputer
berbasis Intel maupun Mac. Quicktime dapat menyaingin AVI di karenakan tingkat
kompresinya yang lebih baik. Tingkat kompresi menentukan besar-kecilnya file
yang akan menentukan pula besar- kecilnya media penyimpanan, dan lebar jalur
data yang dibutuhkan untuk transfer.

Aplikasi Internet

Aplikasi Internet adalah protokol yang digunakan untuk berhubungan antara satu orang
atau mesin dengan pihak lain yang berjauhan. Aplikasi internet akan menyangkut dua sisi,
yaitu sisi penyedia (server) atau sisi pengguna (client).
Contoh aplikasi internet dan perangkat lunak dari sisi pengguna yang umum di gunakan
adalah :
 HTTP (Hypertext Transfer protocol), merupakan aplikasi internet yang
menampilkan baris kalimat, atau gambar, dengan beberapa kata yang di beri tanda
garis bawah (hypertext). Dari hypertext ini, pengguna dapat melompat dari satu
dokumen (page) ke dokumen lainnya.
Perangkat lunak di sisi pengguna yang menjalankan http di kenal sebagai browser.
Contoh browser adalah Internet Explorer dan Netscape.
 E-mail (Electronic mail), merupakan aplikasi surat menyurat di internet. Contoh
perangkat lunaknya adalah Outlook Express
 Messenger
Messenger di gunakan untuk berkomunikasi antara satu orang atau lebih
(conference), selain komunikasi melalu teks (messsage), juga bisa berupa suara
(voice) mapun film (webcam)
Contoh : Yahoo Messenger

LISENSI PERANGKAT LUNAK

Perangkat Lunak Gratis

 Freeware : Freeware adalah perangkat lunak bebas yang mengacu pada kebebasan
para penggunanya untuk menjalankan, menggandakan, menyebarluaskan,
mempelajari, mengubah dan meningkatkan kinerja perangkat lunak. Suatu program
merupakan perangkat lunak bebas, jika setiap pengguna memiliki semua dari
kebebasan tersebut. Dengan demikian, kita seharusnya bebas untuk menyebarluaskan
salinan program itu, dengan atau tanpa modifikasi (perubahan), secara gratis atau pun
dengan memungut biaya penyebarluasan, kepada siapa pun
dimana pun. Kebebasan untuk melakukan semua hal di atas berarti kita tidak harus
meminta atau pun membayar untuk ijin tersebut. Ada beberapa kategori yang
dikatakan freeware :

Page 6
 Copylefted: Copyright pada author, contoh LGPL dan GPL, jadi perubahan dan
distribusinya bisa dilakukan tanpa ada batasannya.
 Non Copylefted : free software yang mengizinkan distribusi ulang atau modifikasi
dengan menambahkan batasan baru, sehingga setiap kopi software ini, dalam bentuk
binary ataupun termodifikasi bisa menjadi proprietary software.Contoh : X Window
System
 Non Copyrighted: public domain yang terdiri dari pekerjaan
kreatif dan pengetahuan lainnya; tulisan,hasil seni, musik, sains, penemuan, dan
lainnya; yang tidak ada seseorang atau suatu organisasi memiliki minat proprietari.
(minat proprietary biasanya dilakukan dengan sebuah hak cipta atau paten.) Hasil
kerja dan penemuan yang ada dalam domain umum dianggap sebagai bagian dari
warisan budaya publik, dan setiap orang dapat menggunakan mereka tanpa batasan
(tidak termasuk hukum yang menyangkut keamanan, ekspor, dll.).Contoh : STP MP3
Player
 Copyrighted pada author: MIT license, BSD license, Apache license

Semi-Free Software

Software yang non-free, namun mengizinkan untuk menggunakan, mendistribusikan, dan


memodifikasinya untuk kepentingan nonprofit. Contoh : PGP

Perangkat Lunak dengan hak cipta

 Open Source : adalah sistem pengembangan yang tidak dikoordinasi oleh suatu
orang/lembaga pusat, tetapi oleh para pelaku yang bekerja sama dengan
memanfaatkan kode sumber (source- code) yang tersebar dan tersedia bebas (biasanya
menggunakan fasilitas komunikasi internet). Pola pengembangan ini mengambil
model ala bazaar, sehingga pola Open Source ini memiliki ciri bagi komunitasnya
yaitu adanya dorongan yang bersumber dari budaya memberi, yang artinya ketika
suatu komunitas menggunakan sebuah program Open Source dan telah menerima
sebuah manfaat kemudian akan termotivasi untuk menimbulkan sebuah pertanyaan
apa yang bisa pengguna berikan balik kepada orang banyak.
 Evaluation Copy / Trial / Preview/ Demo : adalah software yang dapat Anda
gunakan tapi ada batasan waktu atau jumlah pengguna, atau ada trialware yang
menonaktifkan beberapa fungsi dari software tersebut.

Page 7
Copyrighted software

 Shareware : Shareware adalah perangkat lunak yang membatasi penggunanya


dengan mengurangi fitur-fitur tertentu atau membatasi masa penggunaannya
selama jangka waktu tertentu ataupun juga penggabungkan kedua hal ini. Tujuan
dari publikasi shareware adalah untuk berbagi fungsi dan keunggulan perangkat
lunak itu kepada konsumen sehingga konsumen bisa berkesempatan mencoba
secara langsung perangkat lunak tersebut untuk kemudian memutuskan tidak lagi
memakai software tersebut atau membeli versi penuhnya.Contoh : Winzip, mIRC,
MusicMatch Jukebox, Real Jukebox

Istilah yang terkait dengan software lainnya

 Adware : Varian dari freeware yang menampilkan iklan pada tampilan software
(umumnya berupa banner). Contoh : GoZilla!, JetAudio (mulai versi 4.7), Eudora
Pro (mulai versi 4.2), Opera (mulai versi 5)
 Spyware : Suatu istilah untuk menyebut software yang 'membonceng' sebuah
adware, yang bertugas mendownload iklan untuk ditampilkan pada adware
tersebut. Namun, spyware umumnya juga melakukan 'penyadapan' data teknis
komputer yang ditempatinya dan dikirimkan saat komputer itu online.
 Nagware : Varian dari shareware yang selalu menampilkan layar peringatan setiap
digunakan, layar ini akan hilang jika software diregistrasi (dengan membayar),
namun software itu sendiri masih berfungsi secara normal walaupun tidak
diregistrasi .Contoh : ACDSee (sampai versi 2.42), WinZip, mIRC
 Stripware : Varian dari freeware yang menawarkan versi gratis dari software
komersial dengan fasilitas yang terbatas, biasanya ditandai dengan pemberian
nama Personal Edition/Lite Version/Basic. Contoh : Eudora Lite, Real Player
Basic, Linux (distribusi Corel)
 Optionware :Varian dari freeware yang meminta imbalan secara sukarela dalam
bentuk selain uang, misalnya : e-mail (mailware), prangko (stampware),
surat/kartupos, dll, bahkan ada yang meminta anda untuk menyumbangkan
sejumlah uang kepada yang membutuhkan, bahkan ada yang hanya meminta Anda
untuk berhenti menggerutu tentang sulitnya hidup (!). Contoh : Arachnophilia.
 Alpha Version : Software proprietary yang telah selesai pengkodeannya dan dapat
digunakan, namun masih harus menjalani pengujian internal (dalam lingkungan
pembuatnya).Contoh : Mozilla
 Beta Version :Software proprietary yang telah selesai pengkodeannya dan dapat
digunakan, namun masih harus menjalani pengujian eksternal (di luar lingkungan
pembuatnya). Software beta bisa gratis, bisa juga komersial.Contoh : ICQ
 Commercial Sofware : Software yang dijual dan dilindungi hak cipta (copyright),
dapat bersifat open source atau closed source (proprietary). Contoh : Zope, GNU
Ada
 Proprietary Software :Software komersial yang bersifat closed source,
merupakan kebalikan dari free software. Contoh : MS Windows, MS Office

Page 8
 OUTPUT
Alat Keluaran (Output Devices) merupakan bagian dari perangkat keras (hardware)
yang digunakan untuk memperlihatkan informasi bagi pengguna komputer dan juga
digunakan sebagai alat interaksi antara pengguna komputer dengan komputer itu
sendiri. Ada tiga jenis alat keluaran yang paling umum digunakan, yaitu layar
(monitor), alat cetak (printer), dan perangkat suara (sound system).
 Monitor, digunakan untuk menampilkan informasi di layar dan juga sebagai
alat untuk memudahkan interaksi antara pengguna komputer dengan komputer
itu sendiri.
 Printer, digunakan apabila pengguna komputer membutuhkan hasil cetakan
(printout) pada kertas. Jadi, informasi yang diperoleh berupa hard copy karena
berwujud dan permanent.
 Sound Output, digunakan untuk mendapat informasi dalam bentuk suara
Layar (Monitor)

 Layar atau monitor merupakan alat keluaran yang paling penting karena
monitor merupakan alat keluaran yang paling sering berinteraksi dengan
pengguna komputer.

 Monitor dapat menampilkan teks maupun gambar di layar dengan cara


menampilkan sejumlah titik cahaya yang dikombinasikan membentuk teks
ataupun gambar yang dimaksud. Setiap titik cahaya pada layar monitor dikenal
dengan istilah pixel.

Alat Cetak (Printer)

 rinter digunakan apabila pengguna komputer membutuhkan hasil cetakan


(printout) pada kertas atau media lainnya, seperti plastik transparansi.

 Printer secara umum dibagi atas dua kelompok, yaitu Impact


Printer dan NonImpact Printer.
IMPACT PRINTER
Impact Printer, secara fisik bekerja dengan cara melakukan pengetukan pita tinta pada
kertas untuk membentuk karakter. Contoh printer jenis ini adalah printer dot-matrix dan
printer daisy-wheel.
 Dot-matrix Printer, bekerja dengan menyusun dan menggerakkan matrix pin
yang menghasilkan suatu bentuk karakter tertentu.
 Daisy-Wheel Printer, disebut juga Character Printer mempunyai cara kerja mirip
mesin tik. Karakter-karakter disusun dalam bentuk seperti roda. Kualitas hasil
pencetakan karakter lebih baik dari dot-matrix, tapi proses pencetakan lebih lambat.
 Non Impact Printer, printer ini bekerja menggunakan tinta untuk Inkjet Printer
atau menggunakan serbuk (toner) untuk Laserjet Printer.
 Inkjet Printer, bekerja dengan cara menyemprotkan tinta dari lubang jet. Beberapa
merek Injet Printer dibuat oleh perusahaan besar, seperti Canon, Epson, HP, dan
lain-lain.
 Laser Printer, bekerja menggunakan cahaya pijar untuk memindahkan informasi
ke dalam kertas, seperti pada mesin fotocopy

Page 9
 Thermal Printer, bekerja menggunakan kertas khusus yang dipanaskan
(Direct Thermal). Contohnya printer yang digunakan untuk mencetak foto
menggunakan Thermal Dye Transfer atau printer untuk mencetak slip
pembayaran.

 Plotter, biasa digunakan untuk mencetak gambar atau image dengan ukuran
besar. Misalnya untuk mencetak rancangan rumah, peta, dan lain-lain. Jenis
plotter ada dua, yaitu Flatbed Plotter dan Drum Pl

 INPUT DEVICE

alat Masukan (Input Devices) merupakan bagian dari perangkat keras (hardware)
yang digunakan untuk memasukkan data dan juga memberikan instruksi.
beberapa alat masukan agar dapat bekerja dengan baik membutuhkan perangkat lunak
(software) yang biasa juga disebut device driver.

 Papan ketik atau biasa disebut keyboard merupakan alat masukan yang
paling utama dan paling umum dipakai. Dipergunakan untuk memasukan
data yang berupa teks (huruf, angka, dan tanda baca) dan juga perintah atau
instruksi dengan cara diketik. Sekarang ini, mengetik adalah cara tercepat
untuk memasukan data berupa teks dan data lain ke dalam komputer.
 Keyboard yang paling umum digunakan saat ini dikeluarkan oleh IBM
Enhanced Keyboard, yang mempunyai 101 tombol dengan pengelompokan.

A. Alphanumeric Keys, bagian keyboard yang menyerupai mesin tik. Jenis yang paling
umum digunakan adalah keyboard QWERTY dengan susunan enam tombol di kiri atas
dari tombol alphanumeric, yaitu Q, W, E, R, T, dan Y.
B. Modifier Keys, yang penggunaannya harus digabungkan dengan tombol lain.
Pada komputer IBM, berupa tombol Shift, Ctrl
C. Function Keys, biasanya terletak di sisi atas keyboard dengan diberi nama F1, F2, dan
seterusnya. Digunakan untuk memberi perintah dengan cepat tanpa harus mengetik
karakter yang panjang.
D. Cursor movement keys, digunakan untuk memindahkan posisi kursor pada layar
E. Numeric Keypad, umumnya terletak di sisi kanan keyboard dengan sepuluh digit
angka dan operasi aritmetika (+, -, *, /).
Alat Penunjuk (Screen-Pointing Devices)

Alat penunjuk (screen pointing device) yang paling umum digunakan pada saat
bekerja dengan komputer adalah mouse. Alat penunjuk (pointing device) selain
mouse, di antaranya Graphics Tablet (Digitizing Tablet), Joystick, Light Pen, Stylus
(Pen), Trackball, dan lain-lain.

Page
10
Alat Pemindai (Scanner)
Alat pemindai yang banyak digunakan saat ini adalah Scanner. Scanner
akan mengkonversi setiap image (baik gambar maupun teks) dengan cara
menyorotnya dengan sinar dan menangkap intensitas refleksi dari image tersebut,
yang selanjutnya dapat Anda simpan sebagai file image.
Bentuk alat pemindai (Scanner) bermacam-macam, di antaranya:
Flatbed, bentuknya seperti mesin fotocopy di mana image sebagai sumber diletakkan
di atas kaca.

 SISTEM BILANGAN
Sistem Bilangan Oktal.
Sistem bilangan oktal adalah suatu sistem atau cara menghitung bilangan dengan
menggunakan delapan simbol angka yaitu ‘0’ ,‘1’, ‘2’,’3’,’4’,’5’,’6’,dan ’7’ bilangan ini
sering disebut dengan sistem bilangan berbasis atau radix 8.

Sistem Bilangan Heksadesimal.


Sistem bilangan heksadesimal adalah suatu sistem atau cara menghitung bilangan
dengan menggunakan 16 simbol yaitu ‘0’ ,‘1’, ‘2’,’3’,’4’,’5’,’6’,’7’,’8’,’9’,
’A’,’B’, ’C’,’D’,’E’, dan ‘F’ bilangan ini sering disebut dengan sistem bilangan berbasis
atau radix 16.
Konversi Bilangan

Konversi bilangan desimal ke biner.


Cara untuk mengubah bilangan desimal ke biner adalah dengan membagi bilangan
desimal yang akan diubah, secara berturut-turut dengan pembagi 2, dengan memperhatikan
sisa pembagiannya. Sisa pembagian akan bernilai 0 atau 1, yang akan membentuk bilangan
biner dengan sisa yang terakhir menunjukkan MSBnya. Sebagai contoh, untuk mengubah 5210
menjadi bilangan biner, diperlukan langkah-langkah berikut

52/2 = 26 sisa 0,
LSB
26/2 = 13 sisa 0

13/2 = 6 sisa 1

6/2 = 3 sisa 0

3/2 = 1 sisa 1

½ = 0 sisa 1,
MSB
Sehingga bilangan desimal 5210 dapat diubah menjadi bilangan biner 1101002.

Konversi bilangan desimal ke oktal.


Page
11
Teknik pembagian yang berurutan dapat digunakan untuk mengubah bilangan desimal
menjadi bilangan oktal. Bilangan desimal yang akan diubah secara berturut-turut dibagi
dengan 8 dan sisa pembagiannya harus selalu dicatat. Sebagai contoh, untuk mengubah
bilangan 581910 ke oktal, langkah-langkahnya adalah :
5819/8 = 727, sisa 3,
LSB
727/8 = 90, sisa 7

90/8 = 11, sisa 2

11/8 = 1, sisa 3

1/8 = 0, sisa 1,
MSB

Sehingga 581910 = 132738


Konversi bilangan desimal ke heksadesimal.
Teknik pembagian yang berurutan dapat juga digunakan untuk mengubah bilangan
desimal menjadi bilangan heksadesimal. Bilangan desimal yang akan diubah secara
berturut-turut dibagi dengan 16 dan sisa pembagiannya harus selalu dicatat. Sebagai
contoh, untuk mengubah bilangan 340810 menjadi bilangan heksadesimal, dilakukan
dengan langkah-langkah sebagai berikut :
3409/16 = 213, sisa 110 = 116,
LSB
213/16 = 13, sisa 510 = 516

13/16 = 0, sisa 1310 = D16, MSB

Sehingga, 340910 = D5116.

Konversi bilangan biner ke desimal.


Page
12
Seperti yang terlihat pada tabel 2.1. sistem bilangan biner adalah suatu sistem
posisional dimana tiap-tiap digit (bit) biner mempunyai bobot tertentu berdasarkan atas
posisinya terhadap titik biner seperti yang ditunjukkan pada tabel 2.3.
Tabel 2.3. Daftar Bobot tiap bit Bilangan Biner dan Ekivalensinya dalam desimal

24 23 22 21 20 2-1 2-2 2-3 Bobot tiap-tiap bit biner

Titik biner

16 8 4 2 1 0.5 0.25 0.125 Ekivalensinya dalam desimal

Titik desimal

Oleh karena itu bilangan biner dapat dikonversikan ke bilangan desimal


dengan cara menjumlahkan bobot dari masing-masing posisinya yang bernilai 1.

Sebagai contoh, untuk mengubah bilangan biner 1100112 menjadi bilangan


desimal dapat dilakukan sebagai berikut:
1 1 0 0 1 1Biner

25 + 2 4 + 21 + 20

32 + 16 + 2 + 1 = 51 Desimal
Sehingga bilangan biner 1100112 berubah menjadi bilangan desimal 5110.
Tabel 2.4. adalah contoh perubahan beberapa bilangan biner menjadi bilangan

desimal. Tabel 2.4. Contoh Pengubahan Bilangan Biner menjadi Desimal


Kolom biner Desimal
Biner
32 16 8 4 2 1

1110 - - 1 1 1 0 8 + 4 + 2 + 0 =14

1011 - - 1 0 1 1 8 + 0 + 2 + 1 =11

11001 - 1 1 0 0 1 16+ 8 + 0 + 0 + 1 =25

10111 - 1 0 1 1 1 16+ 0 + 4 + 2 + 1 =23

110011 1 1 0 0 1 1 32+16+ 0 + 0 + 2 + 1 = 51

Cara lain untuk mengkonversikan bilangan biner menjadi bilangan desimal dapat
Page
13
dilakukan dengan cara menjumlahkan angka 2 dengan pangkat koefisien biner yang
berharga 1. Sebagai contoh, untuk mengubah bilangan 101112 menjadi bilangan desimal,
dilakukan dengan langkah- langkah sebagai berikut :

101112 = 1x 24 + 0x 23 + 1x 22 + 1x 21 + 1x 20 = 2310

Konversi bilangan biner ke oktal.


Konversi dari bilangan biner ke bilangan oktal dilakukan dengan mengelompokkan setiap
tiga digit biner dimulai dari digit paling kanan(LSB). Kemudian, setiap kelompok diubah
secara terpisah ke dalam bilangan oktal.
Sebagai contoh, bilangan 111100110012 dapat dikelompokkan
menjadi: 11 110 011 001, sehingga:

112 = 38,

MSB 1102 =

68 0112 = 38

0012 = 18, LSB


Jadi, bilangan biner 111100110012 apabila diubah menjadi bilangan oktal = 36318.

Konversi bilangan biner ke heksadesimal.

Page
14
Bilangan biner dapat diubah menjadi bilangan heksadesimal dengan cara
mengelompokkan setiap empat digit dari bilangan biner tersebut dimulai dari digit paling
kanan (LSB). Kemudian, setiap kelompok diubah secara terpisah ke dalam bilangan
heksadesimal.
Sebagai contoh, 01001111010111102 dapat dikelompokkan
menjadi: 0100 1111 0101 1110. Sehingga:

01002 = 416, MSB

11112 = F16

01012 = 516

11102 = E16, LSB

Dengan demikian, bilangan 01001111010111102 = 4F5E16.

Konversi bilangan oktal ke desimal.


Sistem bilangan oktal adalah suatu sistem posisional dimana tiap-tiap digit oktal
mempunyai bobot tertentu berdasarkan atas posisinya terhadap titik oktal seperti yang
ditunjukkan pada tabel 2.5.
Tabel 2.5. Daftar Bobot tiap digit bilangan oktal dan ekivalensinya dalam desimal

84 83 82 81 80 8-1 8-2 Bobot tiap-tiap digit oktal

Titik oktal

4096 512 64 8 1 0.125 0.015625 Ekivalensinya dalam desimal

Titik desimal
Oleh karena itu bilangan oktal dapat dikonversikan ke bilangan desimal
dengan cara menjumlahkan bobot kali nilai-nilai dari masing-masing posisinya.

Page
15
Sebagai contoh, untuk mengubah bilangan oktal 3728 menjadi bilangan desimal
dapat dilakukan sebagai berikut:

3 7 2 Oktal

3x82 + 7x81 + 2x80

192 + 56 + 2 = 250 Desimal

Sehingga bilangan oktal 3728 berubah menjadi bilangan desimal 25010.


Konversi bilangan oktal ke biner.
Konversi dari bilangan oktal ke bilangan biner dilakukan dengan cara mengubah setiap
digit pada bilangan oktal secara terpisah menjadi ekivalen biner 3 digit, seperti yang
terlihat pada Tabel 2.6.

Tabel 2.6. Ekivalen setiap digit bilangan oktal menjadi 3 bit bilangan biner

Digit oktal 0 1 2 3 4 5 6 7

Ekivalen biner 3 bit 000 001 010 011 100 101 110 111

Sebagai contoh, bilangan oktal 35278 dapat diubah menjadi bilangan


biner dengan cara sebagai berikut:

38 = 0112, MSB

58 = 1012

28 = 0102

78 = 1112, LSB

Sehingga bilangan oktal 35278 sama dengan bilangan biner 011 101 010 1112.

Konversi bilangan oktal ke heksadesimal.


Konversi dari bilangan oktal ke bilangan heksadesimal dapat dilakukan dengan cara
Page
16
mengubah bilangan oktal ke bilangan biner atau ke bilangan desimal terlebih dahulu.
Sebagai contoh, bilangan oktal 3278 dapat diubah menjadi bilangan heksadesimal dengan
cara diubah dulu ke bilangan desimal, sebagai berikut:

Oktal 3 2 7

Desimal 3x82 + 2x81 + 7x80 = 215

Selanjutnya hasil bilangan desimal diubah ke bilangan

heksadesimal, 215/16 = 13, sisa 710 = 716, LSB

13/16 = 0, sisa 1310 = D16, MSB

Sehingga, 3278 = 215 10 = D716.

Cara lain diubah dulu ke bilangan biner, sebagai

berikut: Oktal 3 2 7

Biner 011 010 111

Selanjutnya hasil bilangan biner dikelompokkan setiap empat bit dimulai dari
digit paling kanan (LSB). Kemudian, setiap kelompok diubah secara terpisah ke dalam
bilangan heksadesimal.

Biner 0 1101 0111

Heksadesimal 0 D 7

Sehingga, 3278 = 110101112 = D716.

Konversi bilangan heksadesimal ke desimal.


Sistem bilangan heksadesimal adalah suatu sistem posisional dimana tiap-tiap digit
Page
17
heksadesimal mempunyai bobot tertentu berdasarkan atas posisinya terhadap titik
heksadesimal seperti yang ditunjukkan pada tabel 2.7.
Tabel 2.7. Daftar Bobot tiap digit bilangan heksadesimal dan ekivalensinya dalam desimal

162 161 160 16-1 16-2 Bobot tiap-tiap digit heksadesimal

Titik heksadesimal

256 16 1 0.0625 0.00390625 Ekivalensinya dalam desimal

Titik desimal

Oleh karena itu bilangan heksadesimal dapat dikonversikan ke bilangan desimal


dengan cara menjumlahkan bobot kali nilai-nilai dari masing-masing posisinya.

Sebagai contoh, bilangan heksadesimal 152B16 dapat diubah menjadi bilangan


desimal dengan cara sebagai berikut:

152B16 = (1 x 163) + (5 x 162) + (2 x 161) + (11 x 160)

= 1 x 4096 + 5 x 256 + 2 x 16 + 11 x 1

= 4096 + 1280 + 32 + 11

= 541910

Sehingga, 152B16 = 541910

Page
18
Konversi bilangan heksadesimal ke biner.
Konversi dari bilangan heksadesimal ke bilangan biner dapat dilakukan dengan
cara mengubah setiap digit pada bilangan heksadesimal secara terpisah menjadi
ekivalen biner 4 bit, seperti yang terlihat pada Tabel 2.8.
Tabel 2.8. Ekivalen setiap digit dari bilangan heksadesimal menjadi 4 bit bilangan
biner

Digit Ekivalen biner 4 bit


Heksadesimal
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
A 1010
B 1011
C 1100
D 1101
E 1110
F 1111

Sebagai contoh, bilangan heksadesimal 2A5C16 dapat diubah ke bilangan biner


sebagai berikut.

216 = 0010, MSB

A16 = 1010

516 = 0101
C16 = 1100, LSB

Sehingga, bilangan heksadesimal 2A5C16 dapat diubah menjaid bilngan biner


0010 1010 0101 11002.

Konversi bilangan heksadesimal ke oktal.

Page
19
Konversi dari bilangan heksadesimal ke bilangan oktal dapat dilakukan dengan
cara mengubah bilangan heksadesimal ke bilangan biner atau ke bilangan desimal
terlebih dahulu.
Sebagai contoh, bilangan heksadesimal 9F216 dapat diubah menjadi
bilangan oktal dengan cara diubah dulu ke bilangan desimal, sebagai berikut:
Heksadesimal 9 F 2
Desimal 9x162 + 15x161 + 2x160 =
2304 + 240 + 2 = 254610
Selanjutnya hasil bilangan desimal diubah ke bilangan oktal,
2546/ = 31 sis 21 = 28,
8 8, a 0 LSB
318/8 = 39 sis 6 = 68,
, a 1
0
39/8 = 4, sis 7 = 78,
a 1
0
4/8 = 0, sis 4 = 48,
a 1 MSB
0

Sehingga, 9F216 = 2546 10 = 47628.


Cara lain diubah dulu ke bilangan biner,

sebagai berikut: Heksadesimal

9 F2

Biner 1001 1111 0010


Selanjutnya hasil bilangan biner dikelompokkan setiap tiga bit
dimulai dari digit paling kanan (LSB). Kemudian, setiap kelompok diubah
secara terpisah ke dalam
bilangan heksadesimal.
Biner 100 111 110 010
Heksadesimal 4 7 6 2
Sehingga, 9F216 = 1001111100102 = 47628.

 LOGIC GATE

Page
20
Gerbang Logika (Logic Gates) adalah sebuah entitas untuk melakukan pengolahan
input-input yang berupa bilangan biner (hanya terdapat 2 kode bilangan biner yaitu,
angka 1 dan 0) dengan menggunakan Teori Matematika Boolean sehingga dihasilkan
sebuah sinyal output yang dapat digunakan untuk proses berikutnya.
Pengertian Gerbang Logika (Logic Gates) "Gerbang logika atau gerbang
logik adalah suatu entitas dalam elektronika dan matematika Boolean yang mengubah
satu atau beberapa masukan logik menjadi sebuah sinyal keluaran logik. Gerbang
logika terutama diimplementasikan secara elektronis menggunakan diode atau
transistor, akan tetapi dapat pula dibangun menggunakan susunan komponen-
komponen yang memanfaatkan sifat-sifat elektromagnetik (relay), cairan, optik dan
bahkan mekanik."

 JENIS-JENIS GERBANG LOGIKA (LOGIC GATES)


Gerbang AND :Apabila semua / salah satu input merupakan bilangan biner
(berlogika) 0, maka output akan menjadi 0. Sedangkan jika semua input adalah
bilangan biner (berlogika) 1, maka output akanberlogika 1.
A. Gerbang OR  : Apabila semua / salah satu input merupakan bilangan biner
(berlogika) 1, maka output akan menjadi 1. Sedangkan jika semua input adalah
bilangan biner (berlogika) 0, maka output akan berlogika 0.
B. Gerbang NOT :Fungsi Gerbang NOT adalah sebagai Inverter (pembalik). Nilai
output akan berlawanan dengan inputnya.
C. Gerbang NAND :Apabila semua / salah satu input bilanganbiner (berlogika) 0,
maka outputnya akan berlogika 1. Sedangkan jika semua input
adalahbilanganbiner (berlogika) 1, maka output akanberlogika 0.
D. Gerbang NOR : Apabila semua / salah satu input bilangan biner (berlogika) 1,
maka outputnya akan berlogika 0. Sedangkan jika semua input adalah bilangan
biner (berlogika) 0, maka output akan berlogika 1.
E. Gerbang XOR : Apabila input berbeda (contoh : input A=1, input B=0) maka
output akan berlogika 1. Sedangakan jika input adalah sama, maka output akan
berlogika 0.
F. Gerbang XNOR :Apabila input berbeda (contoh : input A=1, input B=0) maka
output akan berlogika 0. Sedangakan jika input adalah sama, maka output akan
berlogika

Page
21
BAB II
 CPU DAN PROCESS DEVICE
 Apa Fungsi CPU?

Tujuan setiap komputer adalah melakukan beberapa bentuk pemrosesan data. CPU
mendukung pemrosesan data dengan melakukan fungsi mengambil, menkode, dan
mengeksekusi pada instruksi yang diprogram.

Secara bersamaan, fungsi-fungsi ini sering disebut sebagai siklus instruksi. Selain
fungsi siklus instruksi, CPU melakukan fungsi mengambil dan menulis data
 Fungsi Siklus Instruksi CPU

Ketika suatu program berjalan pada komputer, instruksi disimpan dalam memori
komputer sampai mereka dieksekusi. CPU menggunakan penghitung program untuk
mengambil instruksi selanjutnya dari memori, di mana ia disimpan dalam format yang
dikenal sebagai kode assembly. 

CPU mendekode instruksi menjadi kode biner yang dapat dieksekusi. Setelah


ini selesai, CPU melakukan apa yang diperintahkan instruksi, baik melakukan operasi,
mengambil atau menyimpan data atau menyesuaikan penghitung program untuk
melompat ke instruksi yang berbeda.

Jenis operasi yang biasanya dapat dilakukan oleh CPU mencakup fungsi matematika
sederhana seperti penjumlahan, pengurangan, perkalian, dan pembagian. 

CPU juga dapat melakukan perbandingan antara objek data untuk menentukan
apakah mereka sama.

Semua hal luar biasa yang dapat dilakukan komputer dilakukan dengan ini dan
beberapa operasi dasar lainnya. Setelah instruksi dieksekusi, instruksi selanjutnya
diambil dan siklus berlanjut.

 Fungsi Data CPU

Page
22
Saat melakukan fungsi eksekusi dari siklus instruksi, CPU mungkin diminta untuk
menjalankan instruksi yang membutuhkan data. Misalnya, menjalankan fungsi
aritmatika membutuhkan angka yang akan digunakan untuk perhitungan. 

Untuk mengirimkan data yang diperlukan, ada instruksi untuk mengambil data dari
memori dan menulis data yang telah diproses kembali ke memori.

Instruksi yang digunakan oleh CPU dan data yang dioperasikannya disimpan di area
memori yang sama. Alamat unik digunakan oleh CPU untuk melacak lokasi memori
yang berbeda.
 CPU mikroprosesor

Mikroprosesor komputer pribadi adalah chip yang berisi semua sirkuit yang
diperlukan untuk mengontrol operasi komputer.

Ini memungkinkan setiap fungsi CPU dijalankan oleh satu chip yang lebih murah
untuk diproduksi dan lebih dapat diandalkan karena penggunaan sirkuit terintegrasi. 

Sebelum pengenalan mikroprosesor, CPU komputer terkandung pada papan sirkuit


yang berisi beberapa chip yang dihubungkan oleh sirkuit terintegrasi. 

Saat ini, banyak prosesor modern memiliki beberapa CPU pada chip yang sama,
disebut sebagai core.
 Komponen CPU

CPU memiliki sejumlah komponen. Yang pertama adalah unit logika aritmatika


(ALU), yang melakukan operasi aritmatika dan logis sederhana. Kedua adalah unit
kontrol (CU), yang mengelola berbagai komponen komputer.

Unit logika aritmatika membaca dan menafsirkan instruksi dari memori dan
mengubahnya menjadi serangkaian sinyal untuk mengaktifkan bagian lain dari
komputer. Unit kontrol memanggil unit logika aritmatika untuk melakukan
perhitungan yang diperlukan.

Ketiga adalah cache, yang berfungsi sebagai memori berkecepatan tinggi tempat
instruksi dapat disalin dan diambil. CPU awal terdiri dari banyak komponen yang
terpisah, tetapi sejak 1970-an, mereka telah dibangun sebagai satu unit terintegrasi
yang disebut mikroprosesor.

Page
23
Dengan demikian, CPU adalah jenis mikroprosesor tertentu. Komponen individual
dari CPU telah menjadi sangat terintegrasi sehingga Anda bahkan tidak dapat
mengenalinya dari luar. CPU ini berukuran sekitar dua inci kali dua inci.

CPU terletak di motherboard. Motherboard memiliki soket untuk ini, yang


khusus untuk jenis prosesor tertentu. CPU menjadi sangat panas dan karenanya
membutuhkan sistem pendinginnya sendiri dalam bentuk pendingin dan / atau kipas.

ALU adalah tempat perhitungan terjadi, tetapi bagaimana perhitungan ini


benar-benar dilakukan? Untuk komputer, dunia terdiri dari nol dan satu. Di dalam
prosesor, kita dapat menyimpan nol dan yang menggunakan transistor. 

Ini adalah sakelar mikroskopis yang mengontrol aliran listrik tergantung pada apakah
sakelar hidup atau mati. Jadi transistor berisi informasi biner: satu jika arus melewati
dan nol jika arus tidak melewati.

Transistor terletak pada potongan silikon yang sangat tipis. Satu chip silikon
dapat berisi ribuan transistor. Sebuah CPU tunggal berisi sejumlah besar
chip. Gabungan, ini hanya mencakup sekitar satu inci persegi atau lebih. 

Dalam CPU modern, bagaimanapun, bahwa inci persegi dapat menampung


beberapa ratus juta transistor - CPU high-end terbaru memiliki lebih dari satu miliar!

Penghitungan dilakukan dengan sinyal yang menghidupkan atau mematikan


kombinasi transistor yang berbeda. Dan lebih banyak transistor berarti lebih banyak
perhitungan. 

Page
24
 Bagaimana Prosesor Komputer Bekerja

Kerja CPU didefinisikan sebagai proses tiga langkah. Pertama, instruksi diambil


dari memori. Kedua, instruksi diterjemahkan dan prosesor mengetahui apa yang
diperintahkan untuk dilakukan. Ketiga, instruksi dieksekusi dan operasi dilakukan.

Tiga langkah ini berulang dalam siklus yang dimulai kembali dengan CPU
mengambil instruksi selanjutnya. Langkah-langkah ini disebut sebagai siklus instruksi
CPU.

CPU menggunakan penghitung program untuk melacak instruksi mana yang


harus diambil selanjutnya. Penghitung adalah alamat lokasi memori yang menyimpan
instruksi berikutnya yang akan dieksekusi. 

Ini disimpan dalam register, yang merupakan lokasi memori khusus di CPU itu
sendiri. Penghitung program bertambah untuk menunjuk ke instruksi berikutnya
setelah masing-masing mengambil dalam siklus instruksi.
 Operasi Dilakukan oleh CPU

CPU menjalankan instruksi yang melakukan serangkaian operasi dasar. Ada


operasi aritmatika seperti penjumlahan, pengurangan, perkalian dan pembagian. 

Operasi memori memindahkan data dari satu lokasi ke lokasi lain. Operasi logis
menguji suatu kondisi dan mengambil keputusan berdasarkan hasilnya. Pengendalian
operasi mempengaruhi komponen lain dari komputer. 

Jenis operasi dasar ini, yang dijalankan dengan sangat cepat, memungkinkan
komputer untuk melakukan berbagai fungsi. Jumlah pasti operasi yang didukung oleh
CPU tergantung pada arsitekturnya.

 Bagaimana CPU Menggunakan Memori

Memori komputer mengacu pada area tempat data dan program disimpan. Memori
bukan bagian dari CPU, tetapi CPU harus berinteraksi erat dengannya. Ada dua jenis
memori komputer: primer, atau utama, dan sekunder. 

Page
25
CPU sangat bergantung pada memori utama untuk menyimpan instruksi program
dan data instruksi beroperasi. Memori utama bersifat sementara dan hanya
menyimpan instruksi dan data untuk suatu program saat program sedang dijalankan. 

Memori sekunder adalah penyimpanan yang lebih permanen yang disediakan oleh
hard drive dan flash drive.

Komponen CPU yang dikenal sebagai unit kontrol bertanggung jawab untuk
memindahkan instruksi dan data dari penyimpanan sekunder ke memori utama
sebelum pelaksanaan instruksi. Unit kontrol juga memindahkan hasil instruksi ke
penyimpanan sekunder.
 Process Device 
pada komputer adalah perangkat keras yang berfungsi untuk memproses dan
mengolah data yang diberikan oleh peralatan input kemudian di keluarkan dalam
bentuk informasi ke dalam peralatan output yang akan diterima oleh manusia.
Peralatan proses terdiri dari beberapa komponen perangkat keras komputer yang
saling berhubungan satu sama lain. Peralatan proses tersebut diantaranya
adalah: CPU, motherboard, Prosesor, RAM, ROM, Memory, Vga card, Lan card, Cm
os, Hard disk, Floppy Disk, CD ROM, DVD ROM, Power Supply, dan lain-lain.
A. CPU adalah : unsur yang paling penting dari sebuah sistem komputer.
Pada mesin besar, CPU memerlukan satu atau lebih papan sirkuit tercetak. Pada
komputer pribadi dan workstation kecil, CPU ditempatkan dalam sebuah chip tunggal
yang disebut mikroprosesor.
B. Motherboard adalah : Pusat pengendali yang mengatur kerja dari semua
komponen yang terpasang padanya. Mengatur pemberian daya listrik pada setiap
komponen PC. Lalu lintas data semuanya diatur oleh motherboard, mulai dari
peranti peyimpanan (harddisk, CD-ROM), peranti masukan data (keyboard,
mouse, scanner), atau printer untuk mencetak.
C. Prosesor adalah : sebuah perangkat di gunakan untuk mengolah data yang masuk,
atau bisa di ibaratkan sebagai otaknya computer.

D. RAM adalah : Memori penyimpanan sementara yang bersifat acak, biasanya


disebut juga dengan memory kerja. Pada memory ini karena disimpan sementara
(volatile), maka apabila komputer tidak mendapatkan daya (off), maka data yang
disimpan pada memori ini akan hilang.

E. ROM adalah : Memori yang hanya dapat dibaca. ROM dapat dibaca tapi tidak
dapat diperbaharui. Biasanya ROM dipakai untuk menyebutkan bagian-bagian

Page
26
elektronik tertentu dlam suatu komputer. Disk non alterable seperti CD-ROM
merupakan suatu jenis penyimpanan yang hanya bisa dibaca. Read Only Memory
bersifat non-volatile dan tidak hilang meskipun power dimatikan.

F. Memory adalah : Sebuah alat yang di gunakan untuk menyimpan data sementara
saja, Memori merupakan bagian dari komputer yang berfungsi sebagai tempat
penyimpanan informasi yang harus diatur dan dijaga sebaik-baiknya.

G. VGA Card adalah : untuk mengolah data graphis dan ditampilkan di layar
monitor, VGA juga memiliki processor yang dinamakan GPU(Graphics
Processing Unit) dan membutuhkan memory juga

H. LAN Card adalah : kartu yang dipasang pada mainboard sebagai alat penghubung
komputer dalam suatu jaringan / network. Pengertian Ethernet merupakan jenis
skenario perkabelan dan pemrosesan sinyal untuk data jaringan
.
I. CMOS adalah : suatu memory yang khusus yang berisi data vital mengenai
konfigurasi komputer dan bersifat semi-permanen.CMOS memerlukan daya yang
sangat kecil untuk mempertahankan kontennya, dan chip ini memanfaatkan baterai
sebagai sumber daya listriknya.

J. Hard Disk adalah : Untuk menyimpan data sementara maupun sementara.


Harddisk me rupakan ruang simpan utama dalam sebuah computer. Di situlah
seluruh sistem operasi dan mekanisme kerja kantor dijalankan, setiap data dan
informasi disimpan.

K. Floppy Disk adalah : perangkat penyimpanan data yang terdiri dari sebuah
medium penyimpanan magnetis bulat yang tipis dan lentur, dilapisi lapisan persegi
yang berbentuk persegi atau persegi panjang.

L. CD ROM adalah : digunakan untuk membaca compact disk dalam bentuk audio
atau CD-ROM. CD-ROM keluaran terbaru dapat membaca CD-R (CD yang dapat
ditulis) dan juga CD-RW (CD yang dapat ditulis berulang-ulang).
M. DVD ROM adalah : Perangkat komputer yang berfungsi sebagai pembaca data
pada DVD. Perangkat ini memiliki bentuk fisik sama persis seperti CD ROM
Drive, akan tetapi memiliki fungsi yang berbeda.

N. Power Supply adalah : sebuah perangkat yang ada di dalam CPU yang berfungsi
untuk menyalurkan arus listrik ke berbagai peralatan computer.

Page
27
BAB III
 SET INSTRUKSI
 Pengertian Set Instruksi
Set Instruksi (bahasa Inggris : Instruction Set, atau Instruction Set Architecture
(ISA)) didefinisikan sebagai suatu aspek dalam arsitektur komputer yang dapat dilihat
oleh para pemrogram. Secara umum, ISA ini mencakup jenis data yang didukung,
jenis instruksi yang dipakai, jenis register, mode pengalamatan, arsitektur memori,
penanganan interupsi, eksepsi, dan operasi I/O eksternalnya (jika ada).
ISA merupakan sebuah spesifikasi dari kumpulan semua kode-kode biner (opcode)
yang diimplementasikan dalam bentuk aslinya (native form) dalam sebuah desain
prosesor tertentu. Kumpulan opcode tersebut, umumnya disebut sebagai bahasa mesin
(machine language) untuk ISA yang bersangkutan. ISA yang populer digunakan
adalah set instruksi untuk chip Intel x86, IA-64, IBM PowerPC, Motorola 68000, Sun
SPARC, DEC Alpha, dan lain-lain.
 Elemen Set Instruksi
Operation Code (Opcode), menspesifikasikan operasi yang akan dilakukan. Kode
operasi berbentuk kode biner. Dalam komputasi, sebuah opcode (disingkat dari kode
operasi) adalah bagian dari instruksi bahasa mesin yang menentukan operasi yang
akan dilakukan. Selain opcode itu sendiri, instruksi biasanya menentukan data mereka
akan memproses, berupa operan. Selain opcodes digunakan dalam arsitektur set
instruksi dari berbagai CPU, yang merupakan perangkat keras, mereka juga dapat
digunakan di mesin komputasi abstrak sebagai bagian dari spesifikasi kode byte
Contoh opcode :
0001(2) = 1(16) = Load AC dari memori
0010(2) = 2(16) = Simpan AC pada memori
0101(2) = 5(16) = tambahkan pada AC dari memori
Accumulator(AC/ACC) = penyimpanan sementara
Source Operand Reference, operasi dapat berasal dari lebih satu
sumber. Operand adalah input instruksi. Sumber dan hasil operand dapat berada di
salah satu dari ketiga daerah di bawah ini. Memori utama atau memori virtual dengan
referensi alamat berikutnya, maka alamat memori utama atau virtual harus diketahui.
Register CPU : instruksi harus diberi nomor register yang dimaksud.
Perangkal I/O : instruksi harus menspesifikasikan modul I/O yang diperlukan oleh
operasi.

Page
28
Result Operand Reference, merupakan hasil atau keluaran operasi. Result Operand
Reference : merupakan hasil dari operasi yang dilaksanakan.
Contoh set instuksi dalam microsoft :
PRINT
QUICK PRINT
PRINT PREVIEW
Contoh dalam matematika 5+5=10 (10 tersebut hasil perintah dari operand)
Next Instruction Reference, menginformasikan CPU untuk melakukan instruksi
berikutnya yang harus diambil dan dieksekusi atau juga memberitahu CPU untuk
mengambil (fetch) instruksi berikutnya setelah instruksi yang dijalankan selesai
(fetching).
 Jenis Instruksi
lnstruksi-instruksi diklasifikasikan dalam tipe yang berbeda berdasarkan faktor-
faktor berikut :
Opcode : kode operasi yang harus dikerjakan oleh instruksi.
Data : tipe data : biner, desimal dan sebagainya.
Lokasi operand : memori, register, dan sebagainya.
Pengalamatan operand : metode penentuan lokasi operand (alamat).
Panjang instruksi : satu byte, dua byte, dan sebagainya.
Jumlah medan alamat : nol alamat, satu alamat, dua alamat, dan sebagainya.
Tidak ada dua komputer yang mempunyai set instruksi yang sama. Hampir
setiap komputer mempunyai beberapa instruksi yang unik yang menarik pemrogram.
Arsitek komputer memberikan perhatian dalam pembentukan set instruksi karena
melibatkan pemrogram dan mesin komputer. lnstruksi-instruksi dapat diklasifikasikan
ke dalam delapan jenis :
lnstruksi transfer data : instruksi ini menyalin data dari satu register/lokasi
memori ke yang lainnya.
lnstruksi aritmetika : instruksi ini melakukan operasi-operasi aritmetika.
lnstruksi logika : instruksi ini melakukan operasi-operasi logika Boolean.
lnstruksi transfer kontrol : instruksi ini modifikasi/mengubah urutan eksekusi
program.
lnstruksi I/O : instruksi ini melakukan transfer informasi antara peripheral eksternal
dan inti sistem (CPU/memori).

Page
29
lnstruksi manipulasi strint : instruksi ini melakukan manipulasi
string byte, word, double word, dan sebagainya.
lnstruksi Translate: instruksi ini melakukan konversi data dari satu format ke format
lain.
lnstruksi kontrol prosesor: instruksi ini melakukan kontrol operasi prosesor.
Pada Gambar 1 diberikan beberapa contoh instruksi untuk setiap jenis instruksi.
Karena pabrik komputer mempunyai dokumentasi/notasi instruksi masing-masing
yang saling berbeda, maka diberikan mnemonic sederhana untuk mewakili secara
komprehensif.

Page
30
BAB IV

 PENGANTAR PEMROGRAMAN
 Logika Pemrograman
A. Logika Pemrograman digunakan oleh pemrogram untuk menulis program
komputer yang efisien dan efektif.
B. Setiap program harus dimulai dengan logika program, yang merupakan
cetak biru, dan diakhiri dengan pengkodean pernyataan bahasa
pemrograman.
C. Logika program digunakan oleh programmer untuk memodelkan instruksi
bahasa pemograman yang dilakukan oleh komputer pada saat program
dijalankan.
D. Instruksi struktur logika program mungkin memberikan keputusan program
(yaitu jika file tidak ada, menampilkan pesan) atau loop melalui serangkaian
instruksi berulang.
 Komponen dan Operasi Komputer
A. Perangkat keras dan perangkat lunak: dua komponen utama dari sistem
komputer mana pun
B. Hardware : perlengkapan, atau perangkat
C. Software : program yang berisi instruksi untuk komputer
D. Empat operasi utama di komputer:

o Memasukkan
o Pengolahan
o Keluaran
o Penyimpanan

E. Perangkat input : memungkinkan data masuk ke komputer

o Mouse, keyboard, pemindai

F. Pengolahan : mengerjakan data; seperti:

o Mengorganisir data
o Memeriksa akurasi data
o Manipulasi matematika atau lainnya pada data

G. Central Processing Unit (CPU) : perangkat keras yang melakukan tugas


H. Perangkat keluaran : memberikan data kepada pengguna
o Printer, monitor, speaker
I. Bahasa pemrograman : bahasa khusus yang berisi instruksi untuk
komputer
o Visual Basic, Java, C #, C ++, COBOL
J. Sintaks : aturan yang mengatur penggunaan kata dan tanda baca dalam
bahasa
K. Bahasa mesin : bahasa yang mengontrol sirkuit hidup / mati komputer

Page
31
L. Compiler atau interpreter : perangkat lunak yang menerjemahkan bahasa
pemrograman ke bahasa mesin
M. Kesalahan logika , atau kesalahan semantik , lebih sulit ditemukan
daripada kesalahan sintaks
N. Logika untuk mengalikan angka dengan 2 (termasuk pernyataan input,
pemrosesan dan output)
O. Dua kategori penyimpanan: internal dan eksternal
o Penyimpanan internal :

Memori utama, memori akses acak (RAM)


Terletak di dalam sistem komputer
V olatile : konten akan hilang saat listrik mati
o Penyimpanan eksternal :
 P ersistent : isinya relatif permanen
 Floppy drive, hard drive, media flash, pita magnetik
 Terletak di luar sistem komputer
 Proses Pemrograman

Enam fase pemrograman:

o Pahami masalahnya
o Rencanakan logikanya
o Kode program
o Gunakan perangkat lunak untuk menerjemahkan program ke bahasa
mesin
o Uji programnya
o Terapkan program ke dalam produksi

Memahami masalah:

o Mungkin fase tersulit


o Pengguna mungkin tidak dapat mengartikulasikan kebutuhan mereka
dengan baik
o Kebutuhan pengguna mungkin sering berubah
o Pemrogram mungkin harus mempelajari tugas pekerjaan fungsional
pengguna
o Kegagalan untuk memahami masalah adalah penyebab utama sebagian
besar kegagalan proyek)

Page
32
Merencanakan logika:

o Rencanakan langkah-langkah yang akan diambil program


o Gunakan alat-alat seperti diagram alur dan kodesemu
o Flowchart : representasi bergambar dari langkah-langkah logika
o Pseudocode : Representasi logika yang mirip bahasa Inggris
o Telusuri logika sebelum membuat kode dengan memeriksa logika di
meja

Coding program:

o Pilih bahasa pemrograman


o Tulis instruksinya

Menggunakan perangkat lunak untuk menerjemahkan program ke dalam bahasa


mesin:

o Pemrogram menulis instruksi dalam bahasa tingkat tinggi seperti bahasa


Inggris
o Compiler atau interpreter mengubah program menjadi bahasa mesin
tingkat rendah yang dapat dijalankan
o Kesalahan sintaks diidentifikasi oleh kompilator atau juru bahasa

Menguji program:

o Jalankan dengan data sampel dan periksa hasilnya


o Identifikasi kesalahan logika dan perbaiki
o Pilih data uji dengan hati-hati untuk melatih semua cabang logika

Menempatkan program ke dalam produksi

oLakukan ini setelah pengujian selesai dan semua kesalahan yang


diketahui telah diperbaiki
o Mungkin memerlukan koordinasi dengan aktivitas atau perangkat lunak
terkait lainnya
 Memahami Hierarki Data

Hierarki data : mengurutkan tipe data berdasarkan ukuran

o Karakter : simbol tunggal (huruf, angka, simbol khusus)


 “A”, “7”, “$”
o Field : sekelompok karakter yang membentuk satu item data
 “Smith”
o Rekam : sekelompok bidang terkait
 Catatan pelanggan berisi bidang nama dan alamat
o File : sekelompok rekaman terkait
 File pelanggan, berisi semua catatan pelanggan

Page
33
o Database : kumpulan file terkait, yang disebut tabel, yang melayani
kebutuhan informasi organisasi
 Menggunakan Simbol Diagram Alir dan Pernyataan Kode Pseudo
A. Flowchart : representasi bergambar dari logika
B. Pseudocode : Representasi logika yang mirip bahasa Inggris
 Menggunakan dan Menamai Variabel

Variabel : lokasi memori yang isinya dapat bervariasi; juga disebut pengenal

A. Setiap bahasa pemrograman memiliki aturannya sendiri untuk penamaan


pengenal, termasuk:

o Karakter hukum
o Panjang maksimum
o Penggunaan huruf besar atau kecil

B. Nama variabel harus satu kata, tetapi dapat dibentuk dari beberapa kata

o rate, interestRate, interest_rate

C. Pilih nama yang bermakna untuk variabel

o Meningkatkan keterbacaan dan pemeliharaan kode


 Mengakhiri Program dengan Menggunakan Nilai Sentinel

Perulangan tak terbatas : urutan pernyataan yang berulang selamanya tanpa jalan
keluar

A. Hindari loop tak terbatas dengan menguji nilai yang telah ditentukan
B. sebelumnya yang berarti "hentikan pemrosesan"
C. Keputusan : menguji nilai
D. Simbol keputusan diagram alir : bentuk berlian, dengan dua garis alur,
satu untuk Ya dan satu untuk Tidak
E. Nilai sentinel (atau nilai dummy )

o Tidak mewakili data nyata


o Sinyal untuk berhenti
o Dapat digunakan dengan masukan dari file atau dari pengguna

F. Penanda akhir file ( EOF ) :

o Kode disimpan dalam file yang menandai akhir dari data


o Biasanya digunakan sebagai pengganti nilai sentinel untuk input file

Page
34
 Memahami Tipe Data
A. Dua tipe data dasar:
B. Teks
o Numerik
C. Data numerik disimpan oleh variabel numerik
D. Data teks disimpan oleh string, teks, atau variabel karakter
E. Konstanta :
o Nilai yang tidak berubah saat program berjalan
o Memiliki pengenal, dan dapat digunakan seperti variabel untuk
kalkulasi, tetapi tidak dapat diberi nilai baru

Beberapa bahasa pemrograman mengimplementasikan beberapa tipe data numerik,


seperti:

o Integer : hanya bilangan bulat


o Floating-point : nilai numerik pecahan dengan titik desimal

A. Data karakter atau string direpresentasikan sebagai karakter yang diapit


oleh tanda kutip
o “X”, “warna”
B. Tipe data harus digunakan dengan tepat
 Memahami Evolusi Teknik Pemrograman
A. Pemrograman dimulai pada 1940-an, menggunakan alamat memori dan
kode mesin secara langsung
B. Bahasa tingkat yang lebih tinggi dikembangkan untuk memungkinkan
instruksi seperti bahasa Inggris
C. Program yang lebih lama bersifat "monolitik", dan dijalankan dari awal
hingga akhir
D. Program yang lebih baru berisi modul yang dapat digabungkan menjadi
program formulir
E. Dua teknik pemrograman utama:
o Pemrograman prosedural
o Pemrograman berorientasi objek
F. Pemrograman prosedural : berfokus pada prosedur yang dibuat
pemrogram
G. Pemrograman berorientasi objek : berfokus pada objek yang
mewakili hal-hal dunia nyata dan atribut serta perilakunya
H. Kedua teknik tersebut menggunakan modul program yang dapat
digunakan kembali

Page
35
BAB V
 DATA, VARIABEL, TYPE DAN MODULISASI
 Modul
unit dari organisasi sistem perangkat lunak yang membundel sekumpulan entitas
(data dan metoda operasi) dan dengan secara teliti mengontrol apa "user eksternal"
bisa lihat atau gunakan.
 Penyembunyian informasi
dilakukan modul untuk melindungi informasi dari "user external" dalam
penggunaannya (misalnya software error, security) dan merupakan basis dari abstract
data type (ragam data abstraks).
 Abstract data type (ADT)
Kumpulan obyek dan metoda operasi yang mempresentasikan sifat-sifat abstraks
bagi "user" dengan menyembunyikan bagaimana semua itu direpresentasikan dalam
representasi data level yang lebih rendah.
 Interface dari modul
Spesifikasi bagaimana modul tersebut dilihat atau digunakan oleh "user" sementara
bagian yang private tetap tersembunyi.
Contoh
o Sebuah microwave oven sebagai suatu modul. Pemakai dapat
menggunakannya dengan tersedianya interface panel tombol. Pemakai
hanya perlu tahu untuk apa tombol-tombol tersebut dan bagaimana
mengoperasikannya. Pemakai tidak perlu tahu mekanisme kerja oven
tersebut secara intenal (tabung magnetron, chip, dsb.).
o Window menyediakan sejumlah button untuk dapat menutup,
memperbesar, memperkecil, dsb windows tersebut.
 Bahasa Pemrograman Modular
Bahasa-bahasa pemrograman moderen menyediakan cara-cara untuk dapat
membuat sistem perangkat lunak secara modular demikian, yaitu
o cara untuk mengelompokkan bersama data dan metoda operasi
o cara untuk mendefinisikan interface yang "clean"
o cara untuk menyembunyikan rincian internal dari data dan metoda-
metoda operasi
o cara untuk kompilasi secara terpisah
Contoh:
o Turbo Pascal menyediakan fasilitas pembuatan TPU dengan definisi
interface.

Page
36
o Bahasa C memungkinkan pembuatan object module (*.obj) dan library
(*.a) yang dapat di-link ke modul program utama melalui interface
header file (*.h).
 Bahasa Java
Bahasa Java memungkinkan konsep pemrograman modular, enkapsulasi, dan
abstraksi data dengan disediakannya skema-skema class, interface, dan packages.
Enkapsulasi dimungkinkan dengan pendefinisian private bagi data/metoda yang
disemebunyikan dan public bagi data/metoda yang berperan sebagai interface.
Dalam Java terdapat keyword interface dengan pengertian yang lain. Keword ini
digunakan sebagai suatu definisi teknis yang menyatakan sekumpulan metoda
abstraks yang bisa diimplementasikan dalam pendefinisian kelas-kelas obyek.
Manfaat definisi interface ini agar obyek-obyek dari sejumlah kelas yang
mengimplementasikan interface ini dapat saling direfer oleh variabel beragam
interface ini.
Contoh:
interface Xclass {
   public void whataMethod();
}
public class Aclass implements Xclass {
   public void whataMethod() {
      ...// diimplementasikan disini
   }
}
public class Bclass implements Xclass {
   public void whataMethod() {
      ...// diimplementasikan disini
   }
}
class Mainclass {
   Xclass a,b;
   static public void main(String [] a) {
      a = new Aclass();
      b = new Bclass();
      a.whataMethod();
      b.whataMethod();
   }
}

Page
37
Contoh lain adalah untuk masalah pencarian data (searching). Key data bisa
muncul dalam berbagai tipe data: int, float, String, dsb. Fasiltas interface ini dapat
memungkinkan pedefinisan algoritma umum compareTo() dalam
interface ComparisonKey untuk setiap tipe data. Selanjutnya kelas-kelas yang
mengimplementasikan interface tersebut dapat didefinisikan sesuai denga tipe data
yang dikehendaki.
Dengan fasilitas-fasilitasa  ini kita bisa mengembangkan sistem perangkat
lunak besar dengan komponen-komponennya yang bersifat umum demikian dan
selanjutnya dapat di-plug-and-play implementasi dalam berbagai tipe data.
Fasilitas Java lain dalam pendefinisian modularitas dan ADT adalah
keyword package. Keyword ini membundle sekumpulan kelas yang satu dengan yang
lainnya saling memiliki relasi khusus. Pendefinisian package ini memungkinkan
kompilasi secara terpisah dan diimport sebagai library.
Sebagai contoh kasus untuk pembahasan modularitas dan ADT adalah suatu kelas
Priority Queue.
 Definisi
o Priority Queue
Priority queue (PQ) adalah suatu struktur data abstraks yang berperilaku
sebagai berikut. PQ adalah kumpulan item data yang masing-masing memiliki tingkat
prioritas yang bisa berbeda. Apabila item data diambil dari kumpulan tersebut maka
item data yang berprioritas paling tinggi lah yang diperoleh.
Dalam pengembangannya pertama kali adalah memformulasikan konsep
abstraksnya tanpa harus memikirkan tipe datanya, apalagi implementasi rincinya.
Implementasinya sendiri dapat dilakukan dalam dua representasi level bawah yang
berbeda: array atau linked-list yang dapat belakangan kita buat.
 
 Kegunaannya PQ
Banyak ditemukan dalam masalah-masalah penjadwalan, misalnya untuk sistem
antrian untuk pelayanan pasien dalam ruang praktek dokter, penjadwalan pembayaran
tagihan, dsb. Prioritas bisa didefinisikan dalam beberapa aspek. PQ dapat digunakan
juga untuk pengurutan data kengan key data sebagai harga prioritas: sejumlah data tak
terurut dimasukkan ke dalam PQ lalu setelah semua masuk satu demi satu data
diambil dari PQ. Pada pengurutan menaik maka data yang diambil ditaruh dari kanan
ke kiri elemen-elemen array. Pada pengurutan menurun harga key bisa kebalikan dari
harga prioritas, alterntifnya data yang di ambil satu demi satu di taruh dari kiri ke
kanan elemen-elemen array.

Page
38
 Spesifikasi PQ
Terdapat sejumlah metoda operasi yang menjadi 'interface': bagi pemakai kelas
obyek ini.
o mengkonstruksikan PQ yang diinisialisasi kosong
PQ = new PriorityQueue();
o mendapatkan ukuran (jumlah item data) dalam PQ,
n = PQ.size();
o menyisipkan item baru dalam PQ,
PQ.insert(X);
o bila PQ tidak kosong, menghapus item dengan prioritas tertinggi dalam
PQ
X = PQ.remove();
Secara sepintas bisa diketahui bahwa terdapat suatu proses internal (yang tidak perlu
diketahui oleh user) di dalam skema ini yaitu pengurutan item data. Implementasi
bagaimana pun user "tidak perduli".
Contoh penggunaan dalam metoda pengurutan data berdasarkan Priority Queue:
 
void priorityQueueSort(ComparisonKey[] A) {
   int n = A.length;
   PriorityQueue PQ = new PriorityQueue();  // create & inisialisasi PQ
   for (int i = 0; i < n; i++) PQ.insert(A[i]);  // mengisi PQ
   for (int i = n-1; i >= 0; i--) A[i] = PQ.remove(); // mengambil satu/satu
}
Selanjutnya contoh penggunaan PQ dengan tipe key integer ini dapat dilihat
dalam program lebih  lengkapnya.
Pada saat ini definisi kelas PriorityQueue belum diimplementasikan. Sebelum
mengimplementasikannya maka key data item yang sedang kerjakan ini dibungkus
dalam tipe data yang generik yaitu ComparisonKey sebagai suatu interface.
 
interface ComparisonKey {
   int compareTo(ComparisonKey value);
   String toString();
}
Untuk selanjutnya ComparisonKey ini diimplementasikan sesuai dengan tipe data
yang sedang digunakan, dalam hal ini misalnya kita menggunakan  integer (nanti kita
lihat bila key bertipe String).
 
public class PQItem implements ComparisonKey {
   private int key;

Page
39
   PQItem(int value) {
      key = value;
   }
   public String toString() {
      return Integer.toString(key);
   }
   public int compareTo(ComparisonKey value) {
      int a = this.key;
      int b = ((PQItem) value).key;
      return ((a==b)? 0:( (a > b)?1:-1));
   }
}
 Implementasi Kelas PriorityQueue
Pada level yang lebih rendah kelas priority queue ini dapat diimplementasikan baik
dengan array atau dengan linked list
 
o Versi Implementasi Unsorted Array (berukuran dinamis)

PQ menyimpan item data dalam suatu array yang apabila penuh


panjangnya dapat diperbesar secara otomatis. Item data masuk begitu
saja di bagian belakang. Saat di-remove maka item data dengan key
terbesar dicari (dilakukan sequential search). Key yang diremove
tempatnya digantikan oleh key yang paling belakang (tidak melakukan
pergeseran!)
o Versi Implementasi Sorted Linked-list
Saat item data masuk dalam PQ maka langsung ditempatkan pada posisi yang sesuai
dalam urutan menurun (dilakukan pencarian posisi terlebih dulu lalu dilakukan insert),
dan saat di-remove maka cukup dilakukan delete-first (node pertama yang diambil.
Kedua implementasi tersebut berfungsi sama tapi dengan implementasi yang berbeda
namun sekali lagi user melihatnya sesuai dengan abstraksi spesifikasi PQ yang
ditentukan. Dalam prakteknya maka kedua versi itu bisa dipilih tanpa mengubah
modul-modul pemakainya selama spesifikasinya ditaati.

Page
40
 Representasi Untuk tipe key lain (Representation Independent Module)
Selain implementasinya yang bisa berbeda tanpa mengubah rancangan modul
tingkat di atasnya, representasi key data pun dapat diimplementasikan secara berbeda
karena ComparisonKey yang didefinisikan abstraks tersebut. Dengan
abstraksi ComparisonKey di atas maka key bertipe lain dapat menggantikan tipe key
integer dalam contoh di atas.ComparisonKey ini memiliki konsep Representation
Independent Module. Berikut ini representasi String untuk key.
 
class PQItem implements ComparisonKey {
   private  String  key;
   PQItem(String value) {
      key = value;
   }
   public String toString() {
      return key;
   }
   public int compareTo(ComparisonKey value) {
      String a = this.key;
      String b = ((PQItem)value).key;
      return a.compareTo(b);  // metoda compareTo dalam kelas String
   }
}
Dalam program aplikasinya perubahan terjadi pada bagian data, sementara sejumlah
metoda tetap sama, contoh dalam program lebih  lengkapnya.
 
 Modularitan dan Penyebunyian Informasi dalam Rancangan Program
Saat program menjadi semakin besar terjadi situasi berbahaya: rumit, sulit
melakukan debug, dan hampir tidak mungkin di modifikasi kecuali dikembangkan
dengan taat dan secara terstruktur.
Penulisan program komputer dilakukan melalui medium yang memungkinkan
bervariasinya cara penulisan ekspresi-ekspresi yang potensial dapat menyebabkan
masalah yang besar. Dekomposisi ke dalam komponen-komponennya pun dapat
bervariasi, bisa saling kait-mengkait secara kompleks atau teratur dalam layer-layer.

Page
41
Abstraksi prosedural: menyatakan fungsi "apa" (what) yang dilakukan suatu prosedur.
Kita perlu mendefinisikan "apa" dari suatu prosedur  terpisah dari "bagaimana" (how)
cara yang dilakukan prosedur untuk mencapai fungsi tersebut. Setelah terdefinisi
dengan baik abstraksi prosedur ini kemudian kita boleh menuliskan rincian
"bagaimana" tersebut, bahkan suatu saat misalnya untuk peningkatan efisiensi maka
metodologi/algoritmanya dapat disubstitusikan tanpa mengubah abstraksi
proseduralnya. Jadi pemisahan tersebut memberi manfaat:
o memudahkan penggunaan -- hanya perlu tahu apa yang dilakukan suatu
prosedur P
o memudahkan modifikasi -- rincian penulisan P dapat diubah tabpa
mengganggu program secara keseluruhan (di mana saja pada
pemanggilan-pemanggian P).
Secara umum pendefinisian abstraksi dengan baik pada perancangan program dapat
mengendalikan kompleksitas program serta meningkatkan modifiabilitas.
Penyembunyian informasi (enkapsulasi) baik variabel ataupun metoda dalam modul-
modul bermanfaat dalam:
o menghindari interferensi entitas  lokal dalam modul terhadap entitas
bernama sama di luar modul
o menghindari interferensi entitas  diluar modul terhadap entitas lokal
dalam modul terhadap entitas bernama sama
Bahasa berorientasi obyek semacam C++ atau Java mengakomodasikan enkapsulasi
ini dengan baik dengan deklarasi private. Dalam Java terdapat tingkatan lebih lanjut
sepain private, yaitu: package, protected, baru kemudian public.
Istilah package dalam Java memiliki konsep yang sama dengan istilah unit atau
module dalam bahasa pemrograman lain.

Page
42
BAB VI
 STRUKTUR PROGRAM
 Deklarasi Structure pada C++

Pendeklarasian structure selalu diawali kata baku struct diikuti nama structure dan


deklarasi field-field yang membangun structure di antara pasangan tanda kurung
kurawal buka dan kurung kurawal tutup yang diakhiri dengan tanda titik koma ( ; ).
Jika terdapat field dengan tipe data yang sama, dapat dideklarasikan bersama dengan
dipisahkan oleh tanda koma ( , ) sehingga tidak perlu menuliskan tipe datanya
berulang-ulang.
Bentuk umum:
struct nama_struct
{
     <tipe_data> nama_field_1;
     <tipe_data> nama_field_2;
     ...
     <tipe_data> nama_field_n;
}
Contoh:
struct Mahasiswa {
     char NIM[9];
     char Nama[25];
     char Alamat[30];
     float Ipk;
};
Apabila suatu struktur telah dideklarasikan, struktur ini dapat digunakan untuk
mendeklarasikan suatu variabel. Untuk mendeklarasikan suatu variabel struktur dapat
dilakukan dengan:
nama_struct nama_var_struct
Contoh:
Mahasiswa Mhs;
merupakan pendeklarasian variabel struktur bertipe struktur Mhs. Dengan
pendeklarasian di atas, maka Mhs memiliki 4 (empat) anggota/field, yaitu Nim, Nama,
Alamat, dan Umur.

Page
43
 Pemakaian Structure pada C++
Untuk menggunakan structure dapat dilakukan dengan menuliskan nama structure
yang diikuti dengan nama fieldnya yang dipisahkan dengan tanda titik ( . ) atau tanda
panah ( -> ). Jika variabel tunggal maka digunakan tanda titik sebagai pemisah, tetapi
jika variabel pointer maka digunakan tanda panah sebagai pemisah. Misalnya dari
structure Mahasiswa di atas, kita akan mencetak biodata seorang mahasiswa ke layar
maka penulisannya dapat dilakukan seperti berikut.
cout<<Mhs.NIM;                    cout<<Mhs->NIM;
cout<<Mhs.Nama;                   cout<<Mhs->Nama;
cout<<Mhs.Alamat;                 cout<<Mhs->Alamat;
cout<<Mhs.Ipk;                    cout<<Mhs->Ipk;
Contoh 1: Buatlah program untuk membaca biodata yang meliputi Nim, Nama,
Alamat, dan Umur kemudian cetak (Lat_Struct_01).
/*Program structure dengan penggunaan tanda titik
Nama File : Lat_Struct_01 */
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
struct Mahasiswa
{
char Nim[9];
char Nama[25];
char Alamat[40];
short Umur;
};
main()
{
Mahasiswa Mhs;
cout<<"Nim : ";
cin.getline(Mhs.Nim,9);
cout<<"Nama : ";
cin.getline(Mhs.Nama,25);
cout<<"Alamat : ";
cin.getline(Mhs.Alamat,40);
cout<<"Umur : ";

Page
44
cin>>Mhs.Umur;
cout<<"\n\n\nNim : "<<Mhs.Nim;
cout<<"\nNama : "<<Mhs.Nama;
cout<<"\nAlamat : "<<Mhs.Alamat;
cout<<"\nUmur : "<<Mhs.Umur;
getch();
}
 
 Struct dalam Struct
Suatu struktur juga dapat mengandung suatu struktur yang lain. Artinya field-field
dalam suatu structure merupakan suatu structure juga. Misalkan biodata Mahasiswa
yang terdiri dari NIM, Nama, Alamat, dan Tanggal Lahir. Alamat terdiri dari Nama
Jalan, Kota, dan Kode Pos. Demikian juga halnya dengan Tanggal terdiri dari
Tanggal, Bulan, dan Tahun. Dengan demikian maka struktur dibagi dalam tiga
struktur, yaitu:
struct Tinggal
{
     char Jalan[40];
     char Kota[15];
     char Pos[5];
};
 
struct Tgl_Lahir
{
     int Tanggal;
     int Bulan;
     int Tahun;
};

Page
45
struct Mahasiswa
{
     char Nim[9];
     char Nama[25];
     Tinggal Alamat;
     Tgl_Lahir Lahir;
};
Kemudian deklarasikan suatu variabel struktur yang bertipe
struktur Mahasiswa, seperti:
Mahasiswa Mhs;
Perlu diingat bahwa jika suatu struktur dengan field bertipe struktur yang lain,
maka struktur tersebut harus berada di atas struktur yang menggunakannya.
Misaslnya, perhatikan ketiga struktur di atas. Struktur Mahasiswa letaknya harus di
bawah dari struktur Tinggal dan Tgl_Lahir. Sedangkan Tinggal dan struktur
Tgl_Lahir boleh saling dipertukarkan posisinya, karena kedua struktur tidak saling
terkait.
Contoh 2: Dengan menggunakan ketiga struktur di atas buatlah program untuk
membaca dan mencetak nilai dari masing-masing field (Lat_Struct_02).
/* Program Struktur di dalam Struktur
Nama File : Lat_Struct_01 */
#include<stdio.h>
#include<iostream.h>
#include<conio.h>
struct Tinggal
{
char Jalan[40];
char Kota[15];
char Pos[5];
};
struct Tgl_Lahir
{
int Tanggal;
int Bulan;
int Tahun;
};

Page
46
struct Mahasiswa
{
char Nim[9];
char Nama[25];
Tinggal Alamat;
Tgl_Lahir Lahir;
};
voidmain()
{
Mahasiswa Mhs;
cout<<"NIM : "; cin.getline(Mhs.Nim,9);
cout<<"Nama : "; cin.getline(Mhs.Nama,25);
cout<<"Alamat :\n";
cout<<"\tJalan : "; cin.getline(Mhs.Alamat.Jalan,40);
cout<<"\tKota : "; cin.getline(Mhs.Alamat.Kota,15);
cout<<"\tKode Pos : "; cin.getline(Mhs.Alamat.Pos,5);
cout<<"Tanggal Lahir :\n";
cout<<"\tTanggal : "; cin>>Mhs.Lahir.Tanggal;
cout<<"\tBulan : "; cin>>Mhs.Lahir.Bulan;
cout<<"\tTahun : "; cin>>Mhs.Lahir.Tahun;
cout<<"\n\nMencetak Kembali Nilai Anggota\n\n";
cout<<"NIM : "<<Mhs.Nim;
cout<<"\nNama : "<<Mhs.Nama;
cout<<"\nAlamat :\n";
cout<<"\n\tJalan : "<<Mhs.Alamat.Jalan;
cout<<"\n\tKota : "<<Mhs.Alamat.Kota;
cout<<"\n\tKode Pos : "<<Mhs.Alamat.Pos;
cout<<"\nTanggal Lahir : "<<Mhs.Lahir.Tanggal<<"-";
cout<<Mhs.Lahir.Bulan<<"-"<<Mhs.Lahir.Tahun;
getch();
}
 

Page
47
 Array dalam Struct
Suatu structure juga dideklarasikan menjadi sebuah array apabila hendak
menggunakan satu struct untuk beberapa kali. Sebenarnya sama dengan struktur
tunggal, perbedaannya adalah hanya pada saat pendeklarasian variabelnya saja.
Bentuk umum pendeklarasian array dari suatu struktur, yaitu:
struct nama_struct
{
     <tipe_data> nama_field_1;
     <tipe_data> nama_field_2;
     ...
     <tipe_data> nama_field_n;
};
Kemudian deklarasikan suatu variabel bertipe struktur di atas dengan bentuk:
Nama_struct nama_var_struct[banyak_elemen];
Contoh:
struct Mahasiswa {
     char NIM[9];
     char Nama[25];
     char Alamat[30];
     float Ipk;
};
Kemudian deklarasikan variabel bertipe struct di atas.
Mahasiswa Mhs[5];
berarti struct mahasiswa digunakan untuk Mhs[0], Mhs[1], Mhs[2], Mhs[3] dan
Mhs[4].
/*Program Array of Structure
Nama File : Lat_Struct_03 */
#include<stdio.h>
#include<conio.h>
#include<iostream.h>

Page
48
struct Mahasiswa
{
char Nim[9];
char Nama[25];
char Alamat[4];
int Umur;
};
main()
{
Mahasiswa Mhs[5];
int i;
for(i=0; i<5; i++)
{
cout<<"Nim : ";
cin>>Mhs[i].Nim;
cout<<"Nama : ";
cin>>Mhs[i].Nama;
cout<<"Alamat : ";
cin>>Mhs[i].Alamat;
cout<<"Umur : ";
cin>>Mhs[i].Umur;
}
for(i=0; i<5; i++)
{
cout<<"\n\nNIM : "<<Mhs[i].Nim;
cout<<"\nNama : "<<Mhs[i].Nama;
cout<<"\nAlamat : "<<Mhs[i].Alamat;
cout<<"\nUmur : "<<Mhs[i].Umur;
}
getch();
}
 

Page
49
Demikian juga untuk program Lat_Struct_02 di atas dengan menggunakan array dapat
dibuat menjadi program Lat_Struct_04 berikut ini.
/* Program Array of Struct
Nama File: Lat_Struct_04 */
#include<stdio.h>
#include<iostream.h>
#include<conio.h>
struct Tinggal {
char Jalan[40];
char Kota[15];
char Pos[5];
};
struct Tgl_Lahir {
int Tanggal;
int Bulan;
int Tahun;
};
struct Mahasiswa {
char Nim[9];
char Nama[25];
Tinggal Alamat;
Tgl_Lahir Lahir;
};
voidmain()
{
Mahasiswa Mhs[5];
int i;
for(i=0;i<3;i++)
{
cout<<"NIM : "; cin>>Mhs[i].Nim;
cout<<"Nama : "; cin>>Mhs[i].Nama;
cout<<"Alamat :\n";
cout<<"\tJalan : "; cin>>Mhs[i].Alamat.Jalan;

Page
50
cout<<"\tKota : "; cin>>Mhs[i].Alamat.Kota;
cout<<"\tKode Pos : "; cin>>Mhs[i].Alamat.Pos;
cout<<"Tanggal Lahir :\n";
cout<<"\tTanggal : "; cin>>Mhs[i].Lahir.Tanggal;
cout<<"\tBulan : "; cin>>Mhs[i].Lahir.Bulan;
cout<<"\tTahun : "; cin>>Mhs[i].Lahir.Tahun;
}
cout<<"\n\nMencetak Kembali Nilai Anggota\n\n";
for(i=0;i<3;i++)
{
cout<<"\nNIM : "<<Mhs[i].Nim;
cout<<"\nNama : "<<Mhs[i].Nama;
cout<<"\nAlamat :\n";
cout<<"\n\tJalan : "<<Mhs[i].Alamat.Jalan;
cout<<"\n\tKota : "<<Mhs[i].Alamat.Kota;
cout<<"\n\tKode Pos : "<<Mhs[i].Alamat.Pos;
cout<<"\nTanggal Lahir : "<<Mhs[i].Lahir.Tanggal<<"-";
cout<<Mhs[i].Lahir.Bulan<<"-"<<Mhs[i].Lahir.Tahun;
}
getch();
}
 

Page
51
BAB VII
 CONTROL STRUCTURE
 Control Structure

Adalah kumpulan pernyataan yang mampu mengatur hasil(eksekusi). Pengaturan


hasilek sekusi biasanya dapat mengubah alur dari jalannya suatu pemograman seperti
mengulangi eksekusi dari beberapa pernyataan, dan melewati suatu kondisi.
Pernyataan yang memiliki kemampuan pengaturan ini disebut control statement. Dari
cara kerjanya, control structure dibagi ke dalam 2 tipe pernyataan yaitu selection
statement dan iterative statement.

 Selection Statement

Selection statement adalah sebuah pernyataan yang menyediakan fitur untuk


memilih diantara 2 atau lebih jalan eksekusi yang terdapat didalam program. Biasanya
contohnya berupaif,if-else,else-if,dan switch-case.Selection statement dapat dibagi ke
dalam 2 kategori umum yaitu : two-way selection dan n-way(multiple selection).

 Two-Way Selection Statement

Two-way selection merupakan tipe pernyataan statement yang paling dasar dan


hampir sama bentuknya dengan imperative language. Keyword yang biasa digunakan
adalah if dan if-else (compound-statement). Bentukdari keyword ini juga dapat
dimanipulasi ke dalambentuk yang lain seperti nested-if, dideklarasikan kedalam 1
pernyataan atau lebih atau menggunakan ekspresirelasi atau boolean atau aritmatika
bahkan campuran dari ketiga ekspresi tersebut sebagai ekspresi dari selector. Berikut
contoh-contoh dari penggunaan two-way selection statement pada bahasa
pemograman PHP :

No. Keyword Contoh Penggunaan

1 IF <?php

$t=date(“H”);  //mengambil data jam dari

waktukomputer server

if ($t>”0″ && $t<“5” )*

Page
52
echo “Sekarang masih fajar”;

?>

*contoh manipulasi control expression dengan


menggunakan ekspresi aritmatika ,relasi dan boolean

<?php

$t=date(“H”);

if ($t<“5”)

echo “Sekarang masihfajar”;

2 IF-ELSE }

else

echo “Sekarang tidak fajar lagi”;

?>

3 NESTED-IF <?php

$t=date(“H”);

if ($t<“5”)

echo “Sekarang masih fajar”;

if ($t>”5″)

Page
53
{

echo “Sekarang tidak fajar lagi”;

?>

 Multiple Statement

Multiple selection statement memperbolehkan seleksi satu dari banyak


keseluruhan dari pernyataan atau  tumpukan pernyataan. Keyword yang biasa
digunakan adalah switch-case dan if-elseif. Penggunaan if-elseif juga dapat memakai
“go-to” namun hal ini tidak disarankan karena dapat memperburuk jalur jalannya
program menjadi berantakan. Berikut contoh penggunaan  multiple statement pada
bahasa PHP :

No. Keyword ContohPenggunaan

<?php

$t = date(“H”);// data diambildarikomputer

if ($t < “10”) {

echo “Have a good morning!”;

1 IF-ELSEIF } elseif ($t < “20”) {

echo “Have a good day!”;

} else {

echo “Have a good night!”;

?>

2 SWITCH-CASE <?php

Page
54
$favcolor = “red”;

switch ($favcolor) {

case “red”:

echo “Your favoritecolor is red!”;

break;

case “blue”:

echo “Your favoritecolor is blue!”;

break;

case “green”:

echo “Your favoritecolor is green!”;

break;

default:

echo “Your favoritecolor is neither red, blue, nor


green!”;

?>

 Iterative Statement

Iterative statement adalah eksekusi dari sebuah atau beberapa pernyataan yang di


dapatkan dari iteration and recursion. Iterative statement dapat juga disebut loop.
Keyword yang biasa dipakai ialah for,while dan do-while.Berdasarkan prioritas
eksekusinya, loop dibagi dua yaitu pretest loop dan posttest loop.

Pretest loop adalah proses pengulangan dimana eksekusiakan dijalankan sesuai


instruksi. Maka,apabila data tidak sesuai dengan instruksi maka tidak muncul hasil
dari program.Contoh pretest loop adalah while dan for .Sebaliknya Posttest loop
adalah proses pengulangan dimana paling tidak eksekusi dijalankan 1 kali terlebih
dahulu walaupun nantinya pada proses pengecekan dimana data tidak sesuai dengan

Page
55
instruksi. Contoh pretest loop adalah while dan for.Berdasarkan pembacaan kondisi
syarat perulangan,iterative statement dapatdibagi 2 yaitu  counter-controlled
loops dan logically controlled loops.

 Counter-Controlled Loops

     Counter-Controlled Loops adalah pernyataan yang memiliki variabelloop (variabel


yang menampung nilai perhitungan) yang bermakna menspesifikasi intial (nilai awal
dari variabel loop) and terminal (nilai akhir dari variabel loop), dan stepsize
value (perubahan nilai variabel loop). Contoh dari counter-controlled loops adalah
pengunaan for. Berbeda dengan bahasa pemograman yang lain, PHP
memiliki keyword tambahan yaitu for-each yang digunakan pada saat perulangan
yang menggunakan array. Berikut contoh penggunaan counter-controlled loops:

No. Keyword ContohPenggunaan

<?php

for ($x = 0; $x <= 10; $x++)

{
1 FOR
echo “The number is: $x <br>”;

?>

<?php

$colors = array(“red”,”green”,”blue”, “yellow”);

2 FOR-EACH foreach ($colors as $value) {

echo “$value <br>”;

?>

Page
56
 

 Logically Controlled Loops

Dalam beberapa kasus,kumpulan statement perlu dieksekusi berulang kali namun


perulangan itu tidak berdasarkan perhitungan namun ekspresiboolean. Pada kasus
seperti ini, maka perulangan dapat menggunakan logically controlled
loops.Contohdari logically controlled loops adalah while dan do-
while.While tergolong dalam kategori pretest loop sedangkan do-while tergolong
dalam kategori posttestloop. Berikut contoh penggunaan logically controlled
loops pada bahasa pemograman PHP :

No. Keyword ContohPenggunaan

<?php

$x = 1;

while($x <= 5)

1 WHILE {

echo “The number is: $x <br>”;

$x++;

?>

2 DO-WHILE <?php

$x = 1;

do

echo “The number is: $x <br>”;

$x++;

Page
57
} while ($x <= 5);

?>

 User-Located Loop Control Mechanisms

Terkadang programmer perlumenempatkan loop control di dalam body. Karena itu


beberapa bahasa pemograman memberikan mekanisme untuk melakukan hal tersebut.
Mekanisme ini memungkinkan programmer untuk dapat keluar dari loop saat berada
di dalam body. Keyword pada user-located loop control mechanisms berupa break dan
continu. Pada break ,setelah memenuhi kondisi untuk break maka perulangan
langsung dihentikan.Sedangkan pada continu,setelah memenuhi kondisi untuk
continue ,maka hanya perulangan pada kondisi tersebut dihentikan (dilewati/skip) dan
dilanjutkan dengan perulangan berikutnya. Berikut contoh pengunaan user-located
loop control mechanism pada bahasa pemograman PHP :

 Iteration Based on Data Structure

Tidak seperti counter loop dan logical loop,struktur looping ini dikontrol oleh
jumlah element dari sebuah struktur data. Pada iteration based on data
structure memiliki sebuah fungsi bernama iterator yang bertugas mencari element baru
yang belum dikunjungi. Perulangan akan berhenti saat iterator gagal menemukan
element baru lagi.Pada bahasa pemograman PHP , iteration based on data
structure menggunakan iterator yang telah didefinisikan terlebih dahulu untuk akses
iterative pada array unik PHP,contoh :

 reset $list

Page
58
echo (“first number : ” +current($list) + “<br/>”);

while ($current_value=next($list))

echo (“Next number : ” + $current_value + “</br>”);

– current menunjuk  pada elemen terakhir yang diakses pada saatiterasi.

– next iterator berpindah pada current keelemenberikutnya.

– reset memindahkan current keelemen pertama

Page
59
BAB VIII
 LOOPING
 STRUKTUR KONTROL PERULANGAN (LOOPING)
Perulangan :

Perulangan data atau yang biasa disebut dengan “looping” adalah proses yang
dilakukan secara berulang-ulang sampai batas yang ditentukan. Biasanya bila dalam
perulangan tersebut tidak disertakan batasnya maka syntax akan error karena proses
itu akan berulang terus hingga tak terhingga sementara variabel dalam komputer
masih terbatas.

Jenis :

a. FOR

Syntax : for (inisialisasi ; syarat ; penambahan) {pernyataan}

inisialisasi : keadaan awal dari variabel control

syarat : ekspresi relasi yang merupakan kondisi

penambahan : pengatur perubahan nilai variabel control

Contoh :

for (i=0;i<10;i++)

p=2+i;

Page
60
b. WHILE

Syntax : while (kondisi){

pernyataan}

Contoh :

i=0

while (i<10)

p=2+i;

i++;

c. DO – WHILE

Syntax : do {

pernyataan}

while (kondisi);

Contoh :

i=0

do

i++;

while (i<10)

Perbedaanantara FOR, WHILE, dan DO-WHILE :

Page
61
For :
untuk mengulang suatu proses yang telahdiketahui jumlahnya.

While : Pre Tested Loop

untuk mengulang suatu proses yang belum diketahui jumlahnya. Pengecekan kondisi
akan dilakukan terlebih dahulu. Jika kondisi masih bernilai true, maka looping akan
terus berlanjut.

Do-while : Post Tested Loop

untuk mengulang suatu proses yang belum diketahui jumlahnya. Instruksi akan
dijalankan lebih dahulu, kemudian dilakukan pengecekan kondisi apabila masih
bernilai true maka looping akan terus berlanjut.

Makna lainya yang sama :

PERULANGAN / LOOP

Struktur Perulangan digunakan untuk mengulang sekumpulan perintah sesuai dengan


kondisi yang diberikan. Proses perulangan biasanya digunakan untuk mengulang
proses pemasukan data, mengulang proses perhitungan dan mengulang untuk proses
penampilan hasil pengolahan data, dengan jumlah tertentu jika sebuah kondisi belum
terpenuhi.

Pada bahasa pemrograman, perulangan proses ditangani dengan suatu mekanisme


yang dinamakan dengan nama loop. Dengan loop, suatu proses yang berulang dapat
diimplementasikan dengan menggunakan statement-statement yang pendek, tanpa
harus menuliskan statemen berulang-ulang.

Ada 3 (tiga) carauntukmelakukanperulangan di C++ yaitu :

For statement
While statement
Do while statement
PENJELASAN

For Statement
Ini adalah statement perulangan yang paling sering digunakan. Statement for memiliki
3 parameter, yaitu nilai awal (initial value), teskondisi yang menentukan akhir loop,
dan penentu perubahan nilai.

Bentukumum :

For (<init-exp> ; <test-exp> ; <inc/dec-exp> )


Statement ;

Page
62
Keterangan :

Init-exp : ekspresi yang digunakan untuk melakukan inisialisasi terhadap variable-


variabel tertentu, terutama variable yang digunakan untuk melakukan iterasi. Init-exp
dapat berupa ekspresi maupun pendefinisian variable.
Test-exp :ekspresi yang memegang control terhadap proses perulangan tersebut, pada
bagian ini akan ditentukan apakah proses perulangan akan tetap berlangsung atau
tidak.
Inc/dec-exp : digunakan untuk mengatur perubahan nilai variable. Umumnya nilai
variable tersebut bertambah / berkurang 1 (satu)

2. WHILE STATEMENT

Pernyataan while adalah pernyataan yang berguna untuk memproses suatu pernyataan
atau memproses pernyataan beberapa kali. Pernyataan atau aksi akan di ulang jika
kondisi bernilai benar dan jika salah maka keuar dari blok perulangan (loop)

Bentuk umumWhile :

<Inisialisasi>

while (kondisi)

Pernyataan ;

3. DO WHILE STATEMENT

Perulangan akan dilakukan minimal 1x terlebih dahulu, kemudian baru dilakukan


pengecekan terhadap kondisi,

Page
63
BAB IX
 ARRAYS
 Apa itu Array?
Secara pengertian: Array atau larik (dalam Bahasa Indonesia) adalah sebuah tipe
data bentukan yang terdiri dari sejumlah komponen dengan tipe yang sama.
Artinya, kita dapat menyimpan banyak data dalam satu variabel.
Analoginya seperti ini:
Mari kita bayangkan bahwa array merupakan sebuah hotel yang memiliki
beberapa kamar. Kemudian setiap kamar dikenal dengan index atau urutan angka.
Intinya adalah: kita akan menyiapkan kamar dalam hotel dengan nomor index
0-sekian. Untuk penggunaanya sendiri pengunjung dibagi berdasarkan nomor kamar
hotel.
Jika kita lihat lagi masalah diatas, kita tidak lagi membutuhkan banyak variabel
untuk menyiman data yang sama. Namun kita hanya membutuhkan satu variabel saja.
Ada beberapa hal yang perlu anda ketahu tentang array:
Nomor index pada Array dimulaidarinol (0).
Array hanya mampu menyimpan data dengan tipe yang sama.
Artinya, semuaisi array memiliki tipe data sama.
Jika anda sudah paham mari kita lanjutkan.
 Syntax Array
Ketika kita mendeklarasikan array ke compiler, maka sama saja dengan
menciptakan sebuah hotel dengan masing-masing nomor kamar yang tersedia.
Setelah kita berhasil mendeklarasikan array, maka kita dapat mulai memberikan
nilai untuk setiap kamar-kamar yang tersedia dalam hotel yang tadi kita deklarasikan.
Tipe data array yang dapat digunakan antara lain: int, char, double, string, dan
boolean.
Berikut cara mendeklarasikan array dalam program pascal.
nama_Array:array[panjang_indeks]oftipe_Array
Contoh pendeklarasian array berdimensi 1 (satu):
X :array[0..9]of integer;
Pada contoh diatas kita telah mendeklarasikanvariabel X bertipe Array yang
memiliki indeks 0-9 (10 larik) dengan tipe data integer. Artinya kita dapat menyimpan
10 angka.
Berikut cara memberikan nilai pada array:
X[0]:=9; X[1]:=8; X[2]:=7; X[3]:=10; X[4]:=8;
X[5]:=7; X[6]:=9; X[7]:=7; X[8]:=8; X[9]:=10;

Page
64
TIPS:X[0] := 9  menunjukkan bahwa  X  adalah nama larik,  0  adalah nilai
indeks, 10 menunjukkan nilai integer. Sedangkan untuk mengakses nilai darivariabel:
...menggunakan namaVariabel[nomorIndeks], contoh:
Writeln(X[0]);
Dalam penggunaannya, array dipasangkan dengan sebuah fungsi perulangan.
 Macam-Macam Array
Ada dua jenis tipe data array:
Array 1 dimensi
Array 2 dimensi (multi dimensi)
Jika array satu dimensi kita asumsikan sebagai deretan data maka array
berdimensi dua mewakili suatu bentukt abel atau matrik dimana indeks yang pertama
menunjukkan baris kemudian indeks yang kedua menunjukkan kolom dari tabel atau
matriks.
Berikut bentuk umumnya:
Nama_larik:Array[indeks_baris,Indeks_Kolom]ofTipe_Array;
 Contoh Array dalam Program Pascal
Berikut contoh array dimensi satu dalam pascal dengan fungsi for to do:
Program Contoh Array;
usescrt;
vardata:array[0..4]of integer;
m,n,i: integer;
Begin
n:=4;
Write('Masukan 5 buahangka (1-10): ');
fori:=0to ndo
begin
write('Data ke-',i+1,' = ');readln(data[i]);
end;

Write('data keberapa yang ingin dia lihat? (1-5) : ');readln(m);

Write('Data Ke-',m,' = ',data[m-1]);


readln;
end.

Page
65
Berikut contoh array berdimensi dua:
Program Matriks;
uses crt;
var A:array[1..3,1..3] of integer;
i,j,m,n,k,l : integer;
Begin
Writeln('Program input matriks A');
writeln('-----------------------');
write('Banyaknyabaris : ');readln(m);
write('Banyaknyakolom : ');readln(n);
for i:=1 to m do
begin
for j:=1 to n do
begin
write('A [',i,',',j,'] : ');readln(A[i,j]);
end;
writeln;
end;

writeln('MelihatElemenMatrik A');
write('Bariske-');readln(k);
write('Kolomke-');readln(l);
Write('ElemenMatrik A bariske-',k,' kolomke-',l,' =',A[k,l]);
readln;
end.

Page
66
BAB X
 SORTING AND SEARCHING
 SORTING

Sorting adalah pengurutan data. Data diurutkan dari yang terkecil sampai yang
paling besar atau sebaliknya. Tujuannya supaya data tersebut jadi tersusun rapi,
terurut dan teratur. Algoritma untuk melakukan sorting sperti itu ada bermacam-
macam diantaranya Bubble Sort, SelectionSort, InsertionSort, QuickSort,
ExchangeSort, HeapSort, SmoothSort, CocktailSort, ShellSort, MergeSort, dan masih
banyakl agi yang lainnya. Kali ini kita akan membahas 5 macam sorting saja yaitu
BubbleSort, SelectionSort, InsertionSort, ExchangeSort dan QuickSort.

 1.-BubbleSort

BubbleSort adalah pengurutan data yang dilakukan dengan membandingkan antara


data[n] dengan data[n+1] atau antara data[n] dengan data[n-1] kemudian jika data
lebih kecil/besar dilakukan pertukaran. Pada setiap iterasi dapat terjadi beberapa kali
pertukaran atau tidak sama sekali. Jumlah iterasi ditentukan oleh banyaknya data atau
‘N’. Iterasi=N-1.”

Langkah-langkah bubble sort yaitu :

Bandingkan nilai pada data ke-1 dengan data ke-2

Jika nilai data ke-1 lebih besar dari data ke-2 maka tukar posisinya

Kemudian data yang lebih besar tersebut dibandingkan lagi dengan data ke-3

Jika data ke-3 lebih kecil dari data ke-2 maka tukar posisinya, dan begitu seterusnya
sampai data yang ada jadi terurut.

Page
67
Contoh secara manual :

iterasi Urutan data

0 87 74 71 54 88 60

1 74 71 54 87 60 88

2 71 54 74 60 87 88

3 54 71 60 74 87 88

4 54 60 71 74 87 88

Contoh syntax bubble sort:

void bubble_sort()

{
for(int i=1;i<n;i++)< span=""></n;i++)<>

{
for(int j=n-1;j>=i;j--)

{
if(data[j]
}
}
}

Dengan cara ini data akan terurut naik (ascending),untuk data terurut turun
(descending)
silahkan rubah bagian di bawahini:

(data[j]

menjadi:

if (data[j]>data[j-1]) tukar(j,j-1);

Intinya bubble sort itu salah satu metode yang simpel untuk sorting, tetapi jika jumlah
data yang disorting besar akan memakan waktu yang lama.

Page
68
 2.-SelectionSort

Selection Sort adalah merupakan sebuah algoritma pengurutan yang secara


berulang mencari data yang belum terurut dan mencari paling sedikit satu untuk
dimasukkan ke dalam lokas iakhir.

Prinsip kerja dari Teknik Section sort ini adalah:

Pengecekan dimulai dari data 1 sampai dengan data ke n

Tentukan bilangan dengan Index terkecil dari data bilangn tersebut

Tukar bilangan dengan index terkecil tersebut dengan bilangan pertama (I=1) dari data
bilangan tersebut

Lakukan langkah 2 dan3 untuk bilangan berikutnya (I=I+1) sampai di dapatkan data
yang optimal

Syntax program fungsi Selection Sort

for ( i=0 ; i<= N-2 ; i++) { kecil = i; for ( k = i+1 ; k <= N-1 ; k++ ) { if (A[k] > A[j])
{
kecil=k;
}
}
temp=A[i];
A[i]=A[kecil];
A[kecil]=temp;
}

 3.-InsertionSort

Insertion Sort dilakukan dengan cara menyisipkan sebuah angka keposisi yang
diinginkan. Angka yang disisipkan sesuai dengan urutan iterasinya.
Jumlahiterasiditentukan oleh banyaknya data atau ‘N’. Iterasi=N”.Sekilas algoritma
ini tidak jauh berbeda dengan Bubble Sort, namun sesungguhnya berbeda.

Langkah-langkahnya :

Bandingkan data kedua dengan data pertama, jika data kedua lebih kecil maka
tukar posisinya, jika tidak biarkan saja.

Data ketiga dibandingin dengan data ke-1 dan ke-2,jika data ke-3 lebih kecil tukar
lagi posisinya.

Page
69
Data ke-4 dibandingin dengan data ke-3, ke-2, dan ke-1, jika data ke-4 lebih kecil dari
ketiganya maka letakkan data ke-4 keposisi paling depan, gitu dech seterusnya.

Contoh (secara manual aja) :

Misalkandata : 10 5 7 9 2 1 8 6

Iterasi Data

0 10 5 7 9 2 1 8 6

1 5 10 7 9 2 1 8 6

2 5 7 10 9 2 1 8 6

3 5 7 9 10 2 1 8 6

4 2 5 7 9 10 1 8 6

5 1 2 5 7 9 10 8 6

6 1 2 5 7 8 9 10 6

7 1 2 5 6 7 8 9 10

Pada iterasi 7, data sudahterurut.

Contoh syntax insertion sort:

void insertion_sort(){
int temp;
for(int i=1;i
temp = data[i];
j = i -1;
while(data[j]>temp && j>=0){
data[j+1] = data[j];
j--;
}
data[j+1] = temp;
}

Page
70
 4.-QuickSort

QuickSort merupakan divide and conquer algorithm. Algoritma ini mengambil


salah satu elemen secara acak (biasanya dari tengah) lalu menyimpan semua elemen
yang lebih kecil di sebelah kirinya dan semua elemen yang lebih besar di sebelah
kanannya. Hal ini dilakukan secara rekursif terhadap elemen di sebelah kiri dan
kanannya sampai semua elemen sudah terurut. Algoritma ini termasuk algoritma yang
cukup baik dan cepat. Hal penting dalam algoritma ini adalah pemilihan nilai tengah
(pivot) yang baik sehingga tidak memperlambat proses sorting secara keseluruhan.

Ide dari algoritma inia dalah sebagai berikut:

Pilih satu elemen secara acak

Pindahkan semua elemen yang lebih kecil kesebelah elemen tersebut dan semua
elemen yang lebih besar kesebelah kanannya. Elemen yang nilainya sama bisa di
simpan di salah satunya. Ini di sebut operasi partisi

Lakukan sort secara rekursif terhadap sublist sebelah kiri dan kanannya.

Contoh program QuickSort :

void QuickSort (int L,int R)


{
int i, j;
int mid;

i=L;
j=R;
mid = data[(L+R) / 1];

do
{
while (data[i] <>
while (data[j] > mid) j--;

if (i<= j)
{
tukar(i,j);
i++;
j--;
};
} while (i<>

Page
71
if (L <>
if (i<>
}

 5.-ExchangeSort

Exchange Sort hampir sama dengan Bubble Sort. Tapi ada bedanya, yaitu
bagaimana membandingkan antar elemen-elemennya. Exchange sort membandingkan
suatu elemen dengan elemen-elemen lainnya dalam array tersebut, dan melakukan
pertukaran elemen jika diperlukan. Jadi ada elemen yang selalu menjadi elemen pusat
(pivot). Sedangkan Bubble sort akan membandingkan elemen pertama/terakhir dengan
elemen sebelumnya/sesudahnya, kemudian elemen sebelum/sesudahn yaitu akan
menjadi pusat (pivot) untuk di bandingkan dengan elemen sebelumnya/sesudahnya
lagi.

Contoh programnya :

void exchange_sort()
{
for (int i=0; i
{
for(int j = (i+1; j
{
if (data [i] < data[j]) tukar(i,j); //descending
}
}
}

untuk pengurutan secara ascending, silahkan gunakan/ ganti syntax sebelum nya
menjadi :
if (data [i] > data[j]) tukar(i,j);

 SEARCHING

Page
72
Searching adalah pencarian suatu data dalam sekumpulan data . Kali ini kita akan
bahas tentang 2 jenis searching yaitu Sequential Search dan Binary Search.

 1.-Sequential Search

Sequential Search merupakan proses pencarian data dengan metode pencarian


langsung. Ini di lakukan dengan cara mencocokkan data yang akan dicari dengan
semua data yang adalam kelompok data. Proses pencocokan data dilakukan secara
berurutan. Satu demi satu dimulai dari data ke1 hingga data pada urutan terakhir.

Secara manual contoh :

Data : 20 25 35 79 80 90

Data yang dicari 35

Iterasi Data keterangan

0 20 25 35 79 80 90 Data awal

1 20 25 35 79 80 90 Belum cocok

2 20 25 35 79 80 90 Belum cocok

3 20 25 35 79 80 90 Data ditemukan

Ket :angka yang ditebalkan maksudnya angka yang diseleleksi.

Yang diatas pengertian secara manual. Secara teoritis sequential


search :pencarian ini hanya melakukan pengulangan dari 1 sampai dengan jumlah
data. Pada setiap pengulangan, dibandingkan data ke-idengan yang dicari.
Apabilasama, berarti data telah ditemukan. Sebaliknya apabila sampai akhir
pengulangan tidak ada data yang sama, berarti data tidak ada. Pada kasus yang paling
buruk, untuk N elemen data harus dilakukan pencarian sebanyak N kali pula.
Algoritma pencarian berurutan dapat dituliskan sebagai berikut :

i←0

ketemu←false

Selama (tidak ketemu) dan (i<= N) kerjakan baris 4 4 Jika (Data[i] = x) maka ketemu
← true, jika tidak ← i + 1 5 Jika (ketemu) maka I adalah indeks dari data yang dicari,

Page
73
jika tidak data tidak ditemukan Di bawah ini merupakan fungsi untuk mencari data
menggunakan pencarian sekuensial.

int Sequential Search(int x)

int i = 0;

bool ketemu = false;

while ((!ketemu) && (i<>

if(Data[i] == x)

ketemu = true;

else

i++;

if(ketemu) return i;

else

return -1;

 2.-Binary Search

Binary Search adalah sebuah teknik untuk menemukan nilai tertentu dalam sebuah
larik (array) linear, dengan menghilangkan setengah data pada setiap langkah, dipakai
secara luas tetapi tidak secara ekslusif dalam ilmu komputer. Sebuah pencarian biner
mencari nilai tengah (median), melakukan sebuah pembandingan untuk menentukan
apakah nilai yang dicari ada sebelum atau sesudahnya, kemudian mencari setengah
sisanya dengan cara yang sama. Sebuah pencarian biner adalah salah satu contoh
dari algoritma divide and conquer .

Penerapan terbanyak dari binary search adalah untuk mencari sebuah nilai tertentu
dalam sebuah list terurut. Jika dibayangkan, pencarian biner dapat dilihat sebagai
sebuah permainan tebak-tebakan, kita menebak sebuah bilangan, atau nomor tempat,
dari daftar (list) nilai.

Pencarian diawali dengan memeriksa nilai yang ada pada posisi tengah list; oleh
karena nilai-nilainya terurut, kita mengetahui apakah nilai terletak sebelum atau

Page
74
sesudah nilai yang di tengahtersebut, dan pencarian selanjutnya dilakukan terhadap
setengah bagian dengan cara yang sama.

Contoh syntax nya :

int BinarySearch(int x)

int L = 0, R = Max-1, m;

bool ketemu = false;

while((L <= R) && (!ketemu))

m = (L + R) / 2;

if(Data[m] == x)

ketemu = true;

else if (x <>

R = m - 1;

else

L = m + 1;

if(ketemu)

return m;

else

return -1;

Page
75

Anda mungkin juga menyukai