Kamis, 04 Juni 2009

TROUBLESHOOTING MERAKIT KOMPUTER

Membongkar PC, tidak lain adalah menguraikan PC yang ada menjadi tinggal komponen-komponennya saja. Semua komponen yang ada terutama yang memang ditambahkan harus kita copot. Hal ini biasa dilakukan untuk proses troubleshooting bila PC Anda mengalami suatu permasalahan (misalnya tidak menyala).

Secara umum yang termasuk dalam komponen PC antara lain : Motherboard, Card Monitor (VGA Card), Sound Card, Prosesor, FDD, HDD, CD-ROM Drive, Port tambahan, dan kabel-kabel penghubung.

Komputer bisa diupgrage atau tidak ?

Ada beberapa pertimbangan yang harus dilakukan sebelum proses upgrade dilakukan, diantaranya :

1. Motherboard

Pengecekan Motherboard sangatlah penting karena komponen upgrade tersebut akan dipasangkan pada motherboard, dengan mengetahui kemampuan dari motherboard maka anda dapat leluasa menentukan komponen apa yang dapat diupgrade dan komponen penggantinya tentu yang sesuai dengan motherboard. Berikut ini langkah pengecekan :

· Lakukan cek apakah motherboard “support” atau tidak terhadap komponen yang akan anda tambahkan, meliputi :

· Upgrade RAM, lihat slot yang kosong.

· Upgrade VGA Card, lihat slot yang digunakan oleh VGA yang dulu.

· Baca manual Motherboard, kenali jenis dari slot (PCI, AGP, ISA) yang ada, khusus untuk AGP kenali apakah AGP anda itu AGP 1x, AGP 2x,atau AGP 4x.

· Untuk Upgrade processor, ketahui apakah motherboard anda mendukung terhadap prosesor yang anda inginkan, jika tidak maka ganti motherboard anda, namun perlu diperhatikan agar motherboard anda yang baru ini mendukung kecepatan bus dari prosesor yang anda inginkan (kalau bisa mendukung kecepatan bus terbaru). Jika ternyata motherboard anda sudah mendukung prosesor yang anda inginkan, maka prosesor yang baru itu hendaknya mendukung kecepatan bus yang sama dengan motherboard.

2. Case

Pengecekan Case ini perlu untuk melihat ruang kosong jika kita ingin menambah drive dan jika kita mengganti motherboard, periksa apakah case kita cocok dengan motherboard baru yaitu bagian sumber power, AT atau ATX, jika ternyata motherboard mendukung semuanya tidak apa, namun jika motherboard terbaru umumnya mendukung ATX, jika case kita AT maka terpaksa harus diganti.

3. RAM

Upgrade memory sangat baik, karena akan meningkatkan kecepatan akses dan kerja komputer dan hal itu akan sangat tampak apabila kita menjalankan beberapa aplikasi dalam satu waktu, mis: kita menjalankan windows, kita juga menjalankan aplikasi lain seperti MsOffice, AutoCad, Adobe dan banyak lagi keuntungannya setidaknya anda aman untuk aplikasi software sekaligus।


Langkah yang dapat diambil agar mendapat hasil yang maksimal :

  • Kenali memory anda, apa slot jenis yang digunakan oleh memory anda SIMM atau DIMM? Jika menggunakan slot SIMM (72 pin) berarti anda harus menambah tipe yang sama, sebanyak min satu bank SIMM untuk mengupgradenya, untuk tipe SIMM umumnya digunakan EDORAM, satu bank SIMM = 2 keping SIMM. Jika menggunakan slot DIMM (168pin) berati anda harus menambah min satu bank DIMM untuk mengupgradenya, satu bank DIMM = 1 keping DIMM.
  • Clock RAM, RAM yang ditambahkan hendaknya memiliki clock yang sama dengan RAM yang sudah ada. Jika ternyata clock RAM yang baru itu lebih cepat/lambat, maka keseluruhan RAM akan bekerja dengan kecepatan clock yang paling rendah diantara keping-keping RAM tersebut. Clock RAM hendaknya juga sama dengan clock dari Motherboard agar didapatkan kerja yang maksimal.

Tips : Upgrade RAM cocok untuk meningkatkan semua kinerja komputer, baik itu aplikasi bisnis, seni maupun game.

4. Processor

Upgrade processor dapat dilakukan melalui 2 hal :

  • Membeli kit Upgrade processor, yang dimaksud dengan kit ini, merupakan suatu bentuk paket upgrade dengan menggunakan teknologi overdrive. Tiga vendor – Evergreen Technologies, Kingston Technology dan Power Leap – menawarkan Upgrade CPU dengan aneka prosesor termasuk AMD K6-2 dan K6-III dan Intel Celeron. Namun upgrade processor dengan cara ini kurang disenangi karena ada saja masalah yang timbul seperti kesulitan saat ‘shutdown’, tidak cocok dengan BIOS yang ada sehingga harus mencari atau melakukan update BIOS. Contoh : AcceleraPCI dari Evergreen untuk Celeron.
  • Processor baru, merupakan cara upgrade yang paling sering dilakukan namun ada hal-hal yang perlu diperhatikan diantaranya :
  • Motherboard anda harus mendukung kecepatan bus dari prosesor
  • Clock speed dari prosesor makin cepat makin baik.
  • Dukungan cache memory dari processor(L1 cache dan atau L2 cache)


5. Harddisk

Prosesor yang bagus serta RAM yang cukup memadai memang akan mendorong kecepatan kerja dari sebuah PC, namun agar bisa bekerja dengan baik tentu dibutuhkan media penyimpan dengan kapasitas yang cukup besar. Kebutuhan ruang disk yang besar ini disebabkan perkembangan software yang kian lama kian membutuhkan ruang yang banyak. Munculnya pemikiran untuk mengganti harddisk yang dimiliki dengan harddisk lain yang memiliki kapasitas yang lebih besar merupakan salah satu cara untuk mempersiapkan media penyimpan yang lebih besar. Sekarang harddisk yang tersedia di pasaran umumnya berukuran 4,3 GB (minimal) dalam mengupgrade harddisk tentunya kita menginginkan harddisk dengan kapasitas besar yang kita perkirakan aman untuk 2-3 tahun kedepan, bukan hanya itu saja kita juga ingin harddisk dengan teknologi terbaru untuk harddisk IDE/EIDE dengan teknologi Ultra DMA/66 atau Ultra ATA/66 yang secara teoritis dapat mentransfer data 66 megabits per detik, namun hal ini harus dilihat apakah motherboardnya mendukung atau tidak. Untuk anda yang memiliki komputer lama, anda pertama-tama harus mencek BIOS anda apakah dapat menangani harddisk dengan kapasitas besar khususnya harddisk yang berukuran diatas 8.4 GB, jika sekiranya tidak mendukung anda dapat terlebih dahulu melakukan Update BIOS dengan men-download dari vendor mother board anda atau dari vendor BIOS itu sendiri. Jika untuk individu baiknya digunakan harddisk EIDE saja, namun jika untuk Server gunakan jenis SCSI.

6. ZIP DRIVE + Media Penyimpan Lainnya

Jika data yang disimpan itu sering berpindah-pindah dan kapasitasnya besar anda dapat menggunakan ZIP Drive yang memiliki catridge penyimpan yang cukup besar sekitar 100MB atau dengan menggunakan drive Jazz SCSI dengan kapasitas 2 GB dan drive ORB dengan kapasitas 2,2 BG. Suatu tawaran menarik dapat pula anda ambil dengan menggunakan CD-Recordable yang memiliki kapasitas tiap Cdnya sekitar 650MB, hal yang demikian ini sedang populer dikalangan kita khususnya untuk menyimpan file mp3 karena sering dipertukarkan dan sebagai pengganti CD music. Namun agar anda dapat melakukannya anda harus memiliki drive CD-RW nya.

7. Display

Upgrade display mungkin adalah bentuk upgrade yang sering dilakukan orang jika kita hanya melihat komponen tertentu dari display. Namun upgrade display ini terkadang dianggap bukanlah suatu hal yang penting terutama bagi orang yang tidak begitu menyenangi game komputer. Upgrade display itu sendiri meliputi upgrade monitor saja, kartu grafis saja atau kedua-duanya.

8. Monitor

Monitor yang kita pilih haruslah monitor yang memiliki dukungan resolusi yang tinggi sehingga tampilan yang dihasilkan akan lebih tajam dan lebih hidup dan memilki dukungan terhadap tampilan warna yang tinggi, bagi para pemilik monitor yang lama dapat menggantinya (jikalau mau) dengan monitor flatscreen yang sudah banyak dipasaran dan tentunya dengan layar yang lebih besar setidaknya 15”. Namun bagi anda yang penggemar game layar yang lebih besar akan lebih memberikan kepuasan semua itu kembali ke “kantong” masing-masing.

9. VGA Card

Namun peningkatan display tidak hanya dari kualitas monitor saja, upgrade kartu grafis juga akan memberikan pengaruh yang tidak sedikit. Jika anda hanya menggunakan komputer anda sebatas dokumen pengolahan kata, operasi pada spreadsheet atau untuk “surving” kartu grafis anda sekarang sudah cukup. Namun jika anda banyak bekerja dengan aplikasi 3D berat atau anda pecandu game maka upgrade kartu grafis dapat menjadi sebuah pilihan yang cukup menggiurkan, terlebih lagi jika motherboard anda memiliki slot AGP, pilihan untuk Upgrade VGA card cukup banyak. Namun dari sekian banyak opsi yang tersedia untuk upgrade VGA yang perlu anda perhatikan dari sebuah kartu grafis adalah kecepatan RAMDACnya – sebuah chip yang mengkonversikan grafik PC kedalam sinyal analog merah, hijau, biru. Yang digunakan oleh monitor. Semakin cepat RAMDAC dari dari sebuah kartu grafis semakin halus gambar yang dihasilkan (semakin bagus kualitasnya). Vga yang menggunakan Chipset RivaTNT2, Voodoo 3, Matrox G400, Savage4 dapat menjadi pilihan terutama bagi anda yang GAME MANIA, serta usahakan memiliki memory VGA min 16 MB

Tips :

1. Pilihlah Kartu grafis dengan kecepatan RAMDAC minimal 250 MHz.

2. Downloadlah driver terbaru dari situs Web pembuatnya


Anda mengalami kebingungan ketika ingin menambah komponen komputer anda karena port yang tersedia terlalu sedikit, seperti kamera desktop, scanner, kamera digital yang pada umumnya diproduksi sekarang ini dengan port USB (Universal Serial Bus), periksalah komputer anda apakah memiliki port USB ini. Port USB ini bentuknya seperti colokan persegi kecil yang berada pada panel belakang system. Port USB ini memiliki kecepatan transfer data yang lebih cepat dari port serial biasa sekitar 12 Mbps, USB juga merupakan Plug-and-Play sejati dan hot-swapping (dapat dikoneksi atau diskoneksi dengan peripheral tanpa harus mematikan PC. Jika anda measa membutuhkan port USB ini, hal pertama yang harus anda lakukan cek motherboard anda (ada USB atau tidak) apakah mendukung penambahan port USB (jika tidak ada), bila mendukung anda dapat menghubungi pembuat PC tersebut, untuk mendapatkan adapter yang diperlukan, untuk menghubungkan konektor motherboard ke panel belakang, bila tidak ada anda dapat membeli kartu add-in seperti Entrega 2-port USB upgrade. OS yang butuhkan untuk mendukung USB minimal win 95 OSR-2.

11. CD-RW vs DVD

DVD-ROM merupakan salah satu alternatif bagi anda CD-ROM anda sudah usang dan ingin menggantinya, itupun jika anda menginginkannya. DVD-ROM akan memberikan tampilan movie yang lebih baik, sebuah kit DVD-ROM terdiri dari DVD-ROM drive dan decoder card, decoder card dibutuhkan untuk memutar film DVD, karena jia menggunakan decoder MPEG-2 secara software akan memberikan hasil yang kurang bagus, selain itu decoder secara software ini membutuhkan PC high-end dan pemasangan DVD ini juga agak rumit. Sebuah DVD-ROM $200-350$.

CD-RW merupakan alternatif pilihan yang cukup baik bagi anda yang ingin mengganti CD-ROM. CD-RW dapat memungkinkan anda untuk menyinpan data pada disk dan membacanya, selain itupula CD-RW memungkin anda untuk membuat CD musik anda sendiri. Memiliki CD-RW berarti juga anda memiliki sebuah upgrade media penyimpan karena anda dapat menyimpan data anda pada CD dengan kapasitas sekitar 600 MB. Selain itu anda dapat berbisnis dengan memiliki CD-RW seperti yang banyak ditekuni para pemilik CD-RW (namun sifatnya ilegal). Sebuah CD-RW $350-600.

2. Perlukah dilakukan Overcloacking ?

Overclock atau Overclocking adalah mengubah/mengatur kecepatan dari processor/CPU diatas kecepatan normal yang tertera pada processor tersebut।


Teknik atau cara yang dapat dilakukan untuk overclocking yaitu :

1. Meningkatkan Multiplier.

2. Meningkatkan Bus clock.

3. Meningkatkan Bus clock dan Multiplier

Ketiga cara diatas dapat dilakukan secara fisik (hardware) maupun secara software.

Cara Hardware

Melakukan perubahan pada setting jumper/switch yaitu pada jumper yang mengatur bus clock dan mengatur multiplier.

Cara software

Melakukan perubahan pada bus clock atau Multiplier dengan mengaturnya pada BIOS melalui softmenu. Umumnya cara overclock semacam ini ada pada motherboard yang baru yang menggunakan jumperless dan BIOS yang memiliki softmenu tersebut.

CPU

Manufacturers spec

Tuning result

Intel Pentium

2½ X 60 MHz = 150 MHz

3 X 66 MHz = 200 MHz

Intel Pentium Pro

3 X 66 MHz = 200 MHz

3½ X 66 MHz = 233 MHz

Intel Pentium II

3½ X 66 MHz = 233 MHz

4 X 75 MHz = 300 MHz

Intel Pentium II

4½ X 100 MHz = 450 MHz

4½ X 117 MHz = 527 MHz

Tabel Contoh Overclocking Pada Intel Pentium



Faktor-faktor yang perlu diperhatikan dalam overclock, diantaranya:

1 Bus

Secara umum bus adalah penghubung secara fisik antar unit-unit dalam komputer dan antara komputer dengan dunia luar. Pendapat lain dikatakan bus adalah kumpulan garis atau kawat yang membawa sinyal pada komputer. Bus clock adalah frekuensi kerja dari bus yang ada pada motherboard. Bus clock itu sendiri berbeda-beda pada motherboard, yaitu 25 MHz, 30MHz, 33 MHz, 40 MHz, 50 MHz ini merupakan bus clock dari motherboard 486, sedangkan untuk motherboard Pentium keatas sudah menggunakan bus clock 60 MHz, 66 MHz, 75 Mhz, 83 MHz dan 100 MHz bahkan motherboard sekarang ada yang mampu mendukung sampai 150 MHz. Untuk bus clock >= 100 digunakan untuk prosesor Pentium II, Pentium III atau yangh setara dengannya. Pengguanaan bus clock harus =<>

Processor

Chip set

System bus speed

CPU speed

Intel Pentium II

82440BX82440GX

100 MHz

350, 400, 450 MHz

AMD K6-2

Via MVP3ALi Aladdin V

100 MHz

250, 300, 400 MHz

Intel Pentium Xeon

82450NX

100 MHz

450, 500 MHz

Intel Pentium III

82440JX

133 MHz

533, 665 MHz

AMD K7

?

200 MHz

600, 800 MHz

Tabel CPU clock dan BUS Clock

2. CPU clock & Multiplier

CPU clock atau CPU speed adalah frekuensi kerja dari prosesor. Misalkan Pentium II 350 maka Cpu clocknya 350MHz, artinya tiap detik prosesor akan melakukan 350 juta cycle ‘putaran’ dimana tiap satu cycle prosesor dapat melakukan beberapa operasi sedrhana atau beberapa cycle untuk sebuah operasi yang komplex. Multiplier ‘pengali’ adalah suatu faktor yang menjadi faktor pembanding antara Cpu clock dan bus clock dengan rumus:

CPU clock = Bus clock x multiplier .

Misal pentium 350 berarti bila menggunakan bus clock 100 mengunakan multiplier 3,5. Pengaturan multiplier dan bus clock pada pentium biasa dan sampai AMD K6-3 masih menggunakan jumper atau switch, sedangkan untuk motherboard yang ‘jumperless’ menggunakan set BIOS digunakan pada pentium II, pentium III, pentium Xeon।


CPU

Clock factor

Intel Pentium (P54C)

1½, 2, 2½, 3

Intel Pentium Pro

2½, 3, 3½, 4

Cyrix 6x86

2, 3

Cyrix 6x86MX (M2)

2, 2½, 3, 3½

Intel Pentium MMX (P55C)

2, 2½, 3, 3½

AMD K5 PR75 - PR133

1, 1½

AMD K5 PR150 and PR166

2

AMD K6-2 and K6-3

4, 4½, 5

Intel Pentium II

2 to 8 (theoretically)

Tabel Multiplier

3. Jumper & Switch

Jumper adalah alat yang berfungsi sebagai saklar dan switch, wujud fisiknya biasanya berupa pin-pin yang menonjol pada motherboard. Sebagai pelengkap jumper disertakan konektor yang berguna untuk menghubungkan pin-pin pada jumper. Umumnya konektor menghubungkan 2 pin. Jumper 2 pin bila pinnya dihubungkan oleh konektor maka jumper berfungsi sebagai saklar sedangkan untuk jumper 3 pin jumper berfungsi sebagai switch, karena kombinasinya bisa 1-2 atau 2-3. Pada motherboard (socket 7) banyak sekali terdapat jumper untuk mengetahui fungsinya digunakan manual motherboard. Switch adalah kumpulan jumper-jumper yang bertugas bersama, pengaturan switch akan berpengaruh pada seluruh pengaturan jumper tersebut. Contoh penggunaannya pada pengaturan Bus clock, multiplier dan CPU voltage pada DFI motherboard super 7.

· Mengatasi masalah panas

Overclocking akan mengakibatkan timbulnya panas yang cukup berlebihan, jika kita tidak menggunakan pendingin, untuk dapat overclocking dengan aman maka kita harus memiliki sistem pendingin yang baik pula. Sistem pendingin terbagi 2 :

Software

Banyak sofware yang beredar yang dapat digunakan sebagai software pendingin seperti waterfall dan rain.

Hardware

dengan memasang heatsink dan kipas pada processor atau memakai hardware khusus, yang memang bekerja sebagai pendingin seperti kyro 1.

· Dampak Overclock

Dampak negatif overclock:

1. Panas berlebihan pada prosesor karena dipaksa bekerja pada clock yang lebih tinggi, dapat dikurangi dengan penggunaan sistem pendingin yang sudah ada.

2. Kesalahan operasi (pehitungan) prosesor karena akibat panas berlebihan.

Dampak positif overclock:

1. Komputer menjadi lebih cepat seolah-olah bekerja dengan prosesor yang lebih tinggi.

2. Cara termurah meningkatkan kecepatan kerja dari CPU.

3. Dapat membuat prosesor yang tidak ada pada pasaran.

Kesalahan atau ketidakberhasilan dalam merakit komputer umumnya disebabkan antara lain :

  1. Pemasangan Memori yang tidak benar, Motherboard yang baik akan memberi sinyal suara peringatan bahwa pemasangan memori tidak benar. Cek dan pasang dengan benar.
  2. Pemasangan Card AGP atau VGA yang kurang kencang atau pas, Motherboard yang baik akan memberikan sinyal suara peringatan. Cck dan pasang dengan benar.
  3. Pemasangan Kabel data untuk HardDisk yang tidak pas atau terbalik. Atau pengaturan posisi Master atau Slavepada HardDisk yang tidak tepat. Betulkan serta check pada jumper HardDisk untuk posisi Master/Slave dan cek dengan autodetect HardDisk pada BIOS.
  4. Pemasangan Kabel Data Disk Drive yang tidak pas atau terbalik.
  5. Pemasangan panel connector yang tidak tepat sehingga lampu Indicator untuk HardDisk dan Power On tidak aktif.

Pada tabel berikut ini akan diuraikan beberapa gejala yang mungkin timbul pada PC anda setelah anda melakukan perakitan, upgrade ataupun overclock.

Gejala

Sebab

Solusi

Led Indikator menyala terus (satu atau dua)

1. Konektor terbalik

1. Perbaiki

Motor tidak berputar

1. Power supply error

2. ‘Motor On’ sinyal tidak aktif

3. Motor rusak

  1. Cek tegangan, konektor, dan kabel Power Supply
  2. Cek controller, konektor dan drive pada pin 16
  3. Ganti motor

Motor berputar tapi disk tidak ikut berputar

1. Spindle error

  1. Cek cengkraman spindle

Pesan seek error

1. Head alignment error

2. Head tidak bisa mencapai track 0

3. Index hole error

  1. Sejajarkan
  2. Perbaiki
  3. Cek sensor led atau mekanik untuk index hole Cek pin 8

Tidak bisa baca dan tulis

1. Power supply error

2. Head tidak bekerja

3. Head tidak bergerak

4. Index hole error

5. Sambungan ke head putus

6. Drive tidak diset

  1. Cek tegangan, konektor, dan kabel power supply
  2. Cek mekanisme head, biasanya tekanan head Cek pin 4
  3. Cek mekanisme stepper

    motor Cek pin 20
  4. Cek sensor led atau mekanik untuk index hole Cek pin 8
  5. Cek sambungannya
  6. Cek pin 10,12

Cek drive select jumper

Cek konektor


7. Head kotor

7. Bersihkan

READ MORE - TROUBLESHOOTING MERAKIT KOMPUTER

PEMROGRAMAN PROSEDURAL

Pemrograman dalam paradigma prosedural dilakukan dengan memberikan serangkaian perintah yang berurutan. Dalam bab ini akan dibahas hal-hal yang menjadi dasar dalam pemrograman prosedural, meliputi definisi algoritma dan konstruktor pemrograman prosedural, serta konsep Input, Proses, dan Output yang sangat lazim dalam dunia pemrograman prosedural.

Algoritma

Algoritma adalah serangkaian langkah-langkah yang tepat, terperinci, dan terbatas untuk menyelesaikan suatu masalah. Langkah yang tepat artinya serangkaian langkah tersebut selalu benar untuk menyelesaikan masalah yang diberikan. Langkah yang tidak memberikan hasil yang benar untuk domain masalah yang diberikan bukanlah sebuah algoritma. Langkah yang terperinci artinya setiap langkah diberikan secara detail dan dapat dieksekusi oleh komputer, instruksi seperti “angkat sedikit ke kiri” merupakan contoh instruksi yang tidak tepat, karena “sedikit” tidak menyatakan sesuatu yang tepat. Langkah yang diberikan harus terbatas, artinya suatu saat langkah harus berhenti, jika langkah tidak pernah berhenti (misalnya: “ambil air, masukkan ke bak mandi, ulangi ambil air, dan seterusnya”) maka serangkaian langkah itu tidak disebut sebagai algoritma (jika: “ambil air, masukkan ke bak mandi, ulangi ambil air sampai bak mandi penuh”, maka bisa disebut algoritma, namun langkah ambil air, masukkan ke bak mandi, harus diperinci).

Konstruktor (elemen) Pemrograman Prosedural

Elemen bahasa pemrograman prosedural yang penting adalah:

1. Program utama

2. Tipe

3. Konstanta

4. Variabel

5. Ekspresi, operator, dan operand

6. Struktur Data

7. Instruksi dasar

8. Program Moduler

9. File eksternal

10. Rekurens

Konstruktor ini tidak untuk dipelajari secara berurutan, namun semua perlu dipelajari dan dimengerti untuk dapat membuat program dengan baik.

Input, Proses, dan Output

Sekumpulan aksi dalam pemrograman prosedural bisa dibagi menjadi tiga bagian penting yaitu: input, proses, dan output. Bagian input, proses, dan output dikerjakan secara sekuensial, dan dalam setiap bagian mungkin akan ada input, proses, dan output.

PENGENALAN PROGRAM UTAMA

DALAM PASCAL

Mengenal program utama dalam suatu bahasa akan memberikan gambaran global bagaimana menulis program dalam bahasa tersebut. Program dalam bahasa Pascal memiliki format dasar seperti berikut (format lebih lengkap akan diberikan secara bertahap):

Program namaprogram;

begin

(*bagian program utama*)

end.

Kata-kata yang ditebalkan merupakan kata kunci (keyword) dalam bahasa Pascal. Kata kunci adalah kata-kata baku dalam bahasa Pascal yang memiliki arti khusus, kata-kata tersebut harus kita pakai sesuai dengan makna yang sudah berikan oleh Pascal, dan tidak bisa kita ubah.

Bagian pertama berisi nama program. Bagian ini tidak wajib ada di kompilator Pascal yang baru, namun sebaiknya tetap ditulis, kita bisa memberi nama program dengan kata kunci program, misalnya: program bilanganprima;

Bagian berikutnya adalah blok program utama yang ditandai dengan begin dan end. Perhatikan bahwa setelah end ada tanda titik yang menyatakan akhir program. Bagian di dalam tanda kurung diikuti oleh bintang/asterisk, (*seperti ini*) merupakan komentar program yang tidak akan diproses oleh kompilator (hanya untuk dibaca oleh manusia, sebagai tambahan keterangan). Program yang diberikan di atas tidak melakukan apa-apa, meskipun dapat dikompilasi dan dijalankan. Program sederhana yang dapat kita buat berikutnya adalah program “hello world” yang akan mencetak kalimat “hello world” ke layar komputer.

Program hello;

begin

writeln('Hello World');

end.

Program tersebut juga ada pada buku Contoh Program kecil dalam bahasa Pascal. Beberapa hal yang perlu diperhatikan adalah:

  • Pascal tidak membedakan case atau kapitalisasi huruf (jadi writeln dengan WRITELN dianggap sama)
  • Setelah setiap instruksi harus ada titik koma (titik koma adalah pemisah antar instruksi), kecuali instruksi terakhir sebelum end, boleh ada titik koma, boleh juga tidak
  • Writeln adalah salah satu prosedur standar Pascal

Batasan Penamaan Identifier

Identifier adalah nama yang diberikan untuk fungsi, prosedur, tipe, variabel, dan untuk program. Semua nama yang disebutkan memiliki batasan tergantung pada kompilator yang digunakan, namun umumnya:

  • Nama tidak boleh diawali dengan angka, 2you adalah identifier yang tidak valid
  • Nama boleh berupa huruf yang digabung dengan angka, tapi tidak boleh diawali angka: its4you adalah nama yang valid
  • Nama yang hanya terdiri dari huruf saja pasti valid (sampai panjang tertentu, tergantung kompilator)
  • Nama biasanya boleh mengandung tanda underscore (garis bawah seperti ini: nama_orang) Perhatian: pilihlah nama yang singkat namun deskriptif untuk menamai apapun dalam program.


VARIABEL DAN TIPE

Konsep variabel dalam pemrograman mirip dengan konsep variabel dalam matematika. Variabel adalah suatu nama yang dapat diasosiasikan dengan sebuah nilai yang dapat kita manipulasi. Seperti dalam matematika, kita mengenal tipe untuk suatu variabel, misalnya 1 = x <>

Contoh penggunaan variabel yang sederhana ada pada contoh program kecil BACA.PAS. Perhatikan bahwa deklarasi variabel (pernyataan variabel apa memiliki tipe apa ada pada bagian sebelum blok utama begin end, seperti ini:

Program namaprogram;

var

nama_variabel : tipevariabel;

nama_variabel2 : tipevariabel2;

begin

(*bagian program utama*)

end.

Sintaks yang lebih lengkap dapat dilihat pada buku pemrograman bahasa Pascal. Perhatikan bahwa ketika dideklarasi sebuah variabel belum terdefinisi nilainya (sudah memiliki nilai, tapi tidak bias diprediksi nilai apa yang ada). Salah satu cara untuk memberi nilai variabel adalah melalui

assignment.

Assignment

Assignment adalah pemberian nilai kepada variabel. Assignment memberikan nilai pada ruas kiri sesuai dengan hasil nilai di ruas kanan. Misalnya jika a adalah sebuah variabel yang tipenya bilangan bulat:

var a: integer;

begin

a:= 2;

end.

akan memberikan nilai 2 pada variabel a. Untuk melihat nilai a, kita bisa mengoutputkan nilai tersebut dengan instruksi writeln, seperti ini:

writeln(a);

setelah instruksi a:=2. Perhatikan bahwa tipe di sebelah kanan harus sama dengan tipe di sebelah kiri (pembahasan mengenai assignment untuk tipe yang berbeda dapat dilihat di bagian Kompatibilitas Tipe)

Representasi Tipe

Komputer hanya bisa memproses angka, sehingga semua tipe data dalam komputer akan diproses dalam bentuk bilangan integer. Bahkan kata-kata yang muncul dalam komputer juga diproses sebagai bilangan. Untuk masing-masing tipe yang dibahas di sini, akan diberikan juga representasi di dalam komputer untuk masing-masing tipe untuk mengetahui batasan dari setiap tipe. Pemahaman representasi tipe ini penting untuk mengetahui mengapa suatu tipe terbatas, mengapa hasil suatu operasi seperti yang dijelaskan. Sebenarnya representasi tipe ini menjadi bahasan dalam kuliah atau pelajaran arsitektur komputer, namun karena tidak ada buku lain yang digunakan yang memuat hal tersebut, pembahasan representasi akan digabung dalam penjelasan tipe. Perlu ditekankan bahwa pengetahuan mengenai representasi tipe tidak terlalu penting dalam pemrograman, yang penting adalah hanya mengetahui batasan dari setiap tipe yang ada, sehingga dapat memilih tipe yang tepat ketika membuat program.

Konstanta

Konstanta adalah suatu nilai yang tidak berubah. Contohnya pi (p), adalah konstanta yang digunakan sebagai perbandingan keliling lingkaran terhadap diameternya, dan e adalah konstanta bilangan euler. Dalam Pascal dan dalam semua bahasa prosedural lain sebuah nama boleh diberi nilai yang tidak akan diubah di dalam program, nama ini disebut sebagai konstanta. Kata kunci yang dipakai dalam Pascal adalah const.

Const

PI = 3.14;

Penggunaan konstanta yang lebih lengkap dapat dilihat dalam buku panduan FreePascal (buku 1).

Variabel bertipe Dasar

Variabel bertipe dasar adalah variabel yang memiliki tipe yang sudah didefinisikan oleh suatu bahasa. Tipe dasar yang sudah didefinisikan Pascal meliputi: Integer, String, Karakter, Boolean, dan Real. Variabel bertipe dasar akan sangat banyak digunakan, dan merupakan elemen pembentuk tipe bentukan, sehingga penguasaan tipe dasar ini sangat penting.

Input dan Output Variabel bertipe Dasar

Setiap bahasa pemrograman umumnya sudah menyediakan cara untuk melakukan input dan output tipe dasar. Dalam Pascal, output tipe dasar dilakukan dengan prosedur write dan writeln. Beda kedua prosedur tersebut adalah: write tidak memajukan kursor ke baris berikutnya sedangkan writeln memajukan kursor ke baris berikutnya (ln di sini berarti line atau baris).

Untuk menuliskan atau mengoutputkan variabel bertipe dasar, gunakan write atau writeln seperti ini:

write(var1);

atau agar lebih jelas, gunakan string untuk menjelaskan arti output:

writeln (‘Nilai varl adalah’, varl);

Sebaliknya untuk membaca input dari pengguna, gunakan read atau readln. Contoh penggunaan read adalah:

read(a);

dimana a adalah suatu variabel dengan tipe dasar manapun. Untuk memperjelas, sebaiknya sebelum read perlu diberikan informasi kepada pengguna mengenai apa yang harus dilakukan:

write(“Masukkan sebuah angka:”);

read(a);

read dan readln memiliki fungsi yang sama untuk variabel bukan string, pada variabel string, read hanya membaca 1 kata sedangkan readln bisa membaca 1 kalimat.

Integer

Integer adalah suatu tipe bilangan bulat (negatif, positif, dan nol). Integer dipakai dalam kebanyakan operasi matematika dan loop, bahkan beberapa prosesor tidak memiliki kemampuan perhitungan bilangan real sehingga semua perhitungan numerik dilakukan dengan integer.

Representasi integer dalam komputer

Integer memiliki representasi yang sederhana dalam komputer. Komputer memandang integer sebagai nilai dari serangkaian bilangan biner. Namun komputer tidak memproses satu bit demi satu bit, tapi per blok bit yang umumnya terdiri dari 8 bit (dikenal sebagai 1 byte atau binary eight). Ada beberapa tipe integer, tipe integer paling sederhana adalah byte yaitu integer 8 bit yang unsigned (tidak bisa menyimpan nilai negatif, atau hanya bisa menampung tipe bilangan asli/natural), dan “pasangannya” yaitu tipe shortint yang tipe integer 8 bit yang bertanda (signed atau bilangan bulat).

Bilangan integer 8 bit artinya diperlukan memori sebesar 8 bit untuk menyimpan tipe tersebut, nilai yang bisa disimpan adalah 0000 0000 sampai dengan 1111 1111. Jika dipandang sebagai tipe unsigned, maka nilai desimal untuk 8 bit tersebut adalah 0 sampai dengan 255. Untuk bisa menyimpan nilai negatif dalam biner biasanya digunakan representasi yang disebut sebagai komplemen 2. Komplemen 2 adalah kebalikan dari representasi desimal ditambah dengan 1. Untuk menyimpan -5 desimal misalnya, kita cari representasi untuk 5 yaitu 0000 0101, kita balik (not-kan) menjadi 11111010, dan kita tambahkan 1 menjadi 11111011, sehingga representasi -5 dalam biner adalah 11111011. Untuk menyimpan bilangan positif 5, tetap digunakan 0000 0101. Dengan cara komplemen 2 maka nilai yang bisa ditampung dalam 8 bit adalah dari -128 sampai dengan 127 Tipe integer lain adalah integer yang berupa tipe integer 32 bit (atau 16 bit pada Pascal di DOS), dan long yang berupa tipe integer 64 bit. Perbedaan dari masing-masing tipe tersebut adalah kemampuannya dalam jangkauan angka yang bisa disimpan.

Operasi Terhadap Integer

Ada beberapa operasi dasar untuk integer yaitu: kali, bagi, tambah, kurang, dan mod. Operasi kali (disimbolkan dengan bintang/asterisk * ), tambah (+), dan kurang (-) sudah jelas dan berlaku seperti yang sudah dipelajari. 5 + 5 = 10, 2 * 3 = 6, dan 3-2 = 1. Operasi pembagian (div) akan memberikan hasil pembagian yang dibulatkan, jadi 4 div 2 = 2, dan 5 div 2 = 2. Operasi mod memberikan sisa dari hasil bagi sehingga 5 mod 2 = 1, dan 2 mod 5 = 2 (2/5 jika dibulatkan adalah nol, sisanya adalah 2 – 0* 5 = 2). Dalam beberapa bahasa pemrograman operasi mod mungkin tidak ada. Ada satu operator unary (operator yang memakai satu operand) untuk integer yaitu minus dan plus. Contoh ekspresinya: -5 * 2 = -10. Sebelum angka 5 ada operator minus yang menyatakan bilangan negatif.

Operasi perbandingan integer meliputi, > (lebih besar), < (kurang dari), <= (kurang dari atau sama dengan), >= (lebih dari atau sama dengan), tidak sama dengan (<>) dan = (sama dengan). Operasi perbandingan memiliki semantik yang sama seperti yang dipelajari dalam matematika (artinya: sama seperti di matematika 6 <>

Urutan Operator (Precedence of operator) Integer

Ekspresi 2*4+5*2 akan menghasilkan 18 karena operasi perkalian dilakukan lebih dahulu jika dibandingkan dengan pejumlahan. Dalam hal ini dikatakan bahwa precedence kali lebih tinggi dari bagi. Umumnya precedence of operator untuk integer di aneka bahasa adalah sama.

Karakter

Di dalam Pascal dan aneka bahasa lain, dikenal tipe data char yang bisa menampung satu karakter. Satu karakter adalah satu huruf, atau satu angka, atau simbol. Sebuah variabel bertipe karakter hanya boleh diisi dengan satu simbol saja, seperti ini:

var c:char;

begin

c:= 'A'; (* c berisi huruf A *)

end.

Representasi karakter dalam komputer

Dalam bahasa Pascal standar. Sebuah karakter adalah sebuah bilangan integer 8 bit yang memiliki nilai dari 0 sampai 255. Setiap nilai ini dipetakan dalam suatu simbol, misalnya nilai 65 berkaitan dengan simbol A, 66 dengan simbol B, dan seterusnya. Pemetaan ini tergantung pada encoding yang dipakai (dan encoding ini bergantung pada wilayah atau bahasa tertentu), karakter 0-127 memiliki pemetaan standar yang disebut dan biasanya disebut dengan karakter ASCII (American Standard Code For Information Interchange), sedangkan sisanya bergantung pada encoding yang dipakai (misalnya orang Perancis memetakan menjadi beraneka huruf yang memiliki accent, orang Rusia memetakan dalam alfabet mereka).

Dalam Pascal, ada fungsi ord (ordinal) yang bisa memetakan dari karakter menjadi nilainya, dan fungsi chr (character) yang melakukan proses kebalikannya. Contoh pemakaian ord:

writeln(ord('A'));

akan mencetak angka 65, dan contoh pemakaian chr

writeln(chr(65));

akan mencetak huruf A.

UNICODE

Dalam sistem operasi yang modern, terdapat jenis karakter yang disebut dengan UNICODE, yang lebih kompleks dari karakter sederhana. Karakter UNICODE dapat merepresentasikan hampir semua karakter yang masih dipakai di bumi (dan yang sudah tidak dipakai, seperti hieroglyph). Pada dasarnya penyimpanan UNICODE tetap memakai angka tapi memakai jumlah bit yang lebih dari karakter biasa (bervariasi dari 8– 64 bit, tergantung pada encoding yang dipakai)

Operasi Terhadap char

Sebuah tipe karakter tidak bisa dioperasikan, tidak bisa dijumlahkan ataupun dikurangkan. Tipe char hanya bisa dioperasikan jika dikonversi menjadi integer dengan ord. Sebuah tipe char bias digabungkan pada sebuah tipe string. Sebuah karakter bisa dibandingkan dengan karakter lain, hasil perbandingan adalah perbandingan nilai ordinal karakter tersebut. Operasi perbandingan yang bisa dilakukan sama dengan yang bias dilakukan dengan integer.

Contoh: 'A' < 'B', karena ordinal 'A' adalah kurang dari 'B', namun 'b' > 'A', karena ordinal 'b' (b kecil) lebih dari ordina 'A' (A kapital).

Perhatian

Manipulasi karakter dengan melakukan konversi ke integer merupakan hal yang sangat tidak disarankan. Kebiasaan melakukan hal ini juga berbahaya jika suatu saat Anda beralih ke UNICODE, karena hasil manipulasi serupa mungkin tidak bisa diprediksi.

String

String sebenarnya adalah tipe variabel dasar yang cukup kompleks, namun akan sering dipakai, dalam bagian ini representasi string tidak akan dibahas, hanya penggunaannya saja. Suatu literal integer dapat ditulis seperti biasa: 5 atau 6, sedangkan literal string harus ditulis dengan diapit tanda kutip tunggal, seperti ini:

'ini string'

Jika ada tanda kutip di dalam string, digunakan dua kutip tunggal, jadi untuk menuliskan string “don't do that”, harus seperti ini:

'don''t do that'

Operasi Terhadap String

Ada beberapa operasi untuk string, namun yang akan dibahas di bagian ini hanyalah instruksi penambahan atau konkatenasi string. String dapat digabungkan seperti ini:

program concat_string;

var s1, s2, s3 : string

begin

s1:= 'hello';

s2:='world';

s3:= s1 + ' '+ s2;

writeln(s3);

end.

Nilai string s3 adalah 'hello world' yang merupakan gabungan dari string s1, spasi, dan string s2. Sebuah karakter bisa juga digabung atau disambungkan dengan sebuah karakter:

var

s:string;

c:char;

begin

writeln('Masukkan sebuah huruf:'); readln(c);

s:= 'Huruf yang Anda masukkan adalah '+c;

writeln(s);

end.

Operasi terhadap string yang lain dilakukan dengan menggunakan fungsi-fungsi string yang tergantung pada kompilator Pascal. Fungsi-fungsi string yang tersedia untuk FreePascal dapat dilihat pada buku FreePascal.

Boolean

Boolean adalah suatu tipe data yang hanya memiliki nilai true (benar) dan false (salah). Tipe Boolean sangat diperlukan dalam kondisi perulangan dan kondisional (menggunakan if). Ekspresi yang menghasilkan boolean bisa berupa ekspresi dengan tipe-tipe yang terdiri dari tipe boolean, bisa juga berupa ekspresi dari tipe lain. Contoh ekspresi yang menghasilkan boolean adalah 6 > 5, karena bilangan 6 memang lebih besar dari 5 maka nilai ekspresi tersebut adalah true, sedangkan 6 <>

Operator untuk boolean ada beberapa yaitu: and, or, not, dan xor

OR akan menghasilkan true jika salah satu operandnya bernilai true

AND akan menghasilkan true jika kedua operandnya bernilai true

XOR akan menghasilkan true jika operandnya memiliki nilai boolean yang berbeda

NOT akan menghasilkan nilai boolean kebalikan dari nilai yang diberikan

Dalam Pascal, dan berbagai bahasa umumnya nilai true lebih besar dari nilai false (true > false adalah true)

Representasi Boolean dalam komputer

Nilai boolean disimpan sebagai angka 0 untuk false dan bukan nol untuk true. Dalam bahasa Pascal, boolean tidak bisa dioperasikan sebagai integer, namun dalam bahasa lain (C misalnya), boolean dan integer adalah dua nilai yang bisa dipertukarkan.

Urutan Operator (Precedence of operator) Boolean

Sama seperti pada integer, ada urutan operator pada operasi boolean. Urutan untuk operator Boolean dapat dilihat pada buku panduan Free Pascal.

Operasi Boolean pada Bilangan Integer

Bilangan integer dapat dioperasikan dengan operator boolean, proses operasi dilakukan dengan melihat representasi bit pada bilangan integer, dan melakukan operasi boolean yang bersesuaian terhadap bit tersebut (bit 1 dianggap true, dan 0 dianggap false).

Contoh: 1 or 2 = 3

representasi biner untuk 1 desimal adalah (kita ambil 8 bit) 00000001, sedangkan representasi biner untuk 2 desimal adalah 00000010, maka jika kita or -kan masing-masing bit, hasilnya adalah 00000011, yang artinya 3 desimal

Real

Real adalah tipe yang dapat menampung bilangan real. Tipe ini bisa menampung bilangan dengan suatu nilai di belakang koma dengan presisi tertentu (lihat bagian representasi real).

Representasi Real dalam komputer

Ada banyak representasi real dalam komputer, namun umumnya real direpresentasikan dalam bentuk:

A * 2+/- b

Misalnya nilai 0.5 akan direpresentasikan sebagai 1 * 2-1 (½ = 0.5). Perhatikan bahwa tidak semua nilai bisa direpresentasikan dengan tepat dengan cara ini, nilai 1/3 misalnya tidak bisa dinyatakan dengan tepat dalam bentuk perkalian tersebut. Baik nilai A maupun nilai B memiliki presisi integer yang terbatas. Operasi Terhadap Real Operasi yang bisa dilakukan terhadap real meliputi: tambah, kali, minus (sama seperti integer), dan pembagian (memakai simbol / yang menghasilkan bilangan real), operasi MOD tidak terdefinisi untuk real.

Operasi perbandingan selain = (sama dengan) dan tidak sama dengan (<><) bisa dilakukan terhadap real (>, <, >=, <=, <>). Operasi sama dengan dan tidak sama dengan sebenarnya bisa dilakukan (tidak dibatasi oleh bahasa Pascal), namun dalam kasus tertentu hasilnya mungkin tidak sesuai dengan yang diharapkan. Cara yang benar untuk membandingkan 2 buah real adalah dengan menetapkan nilai epsilon yang kecil yang dipakai untuk membandingkan:

if (a – b <>

begin

writeln(“A sama dengan B”);

end else

begin

writeln(“A tidak sama dengan B”);

end;

(mengenai penggunaan kalimat kondisional, lihat bab Analisa Kasus)

Kompatibilitas Tipe

Sebuah variabel bertipe string tentu tidak bisa dijumlahkan dengan variabel bertipe integer, karena tipe string tidak kompatibel dengan tipe integer. Kedua tipe itu sangat berbeda, sehingga masalah kompatibilitas tipe itu sudah jelas. Namun dalam kasus tertentu, kompatibilitas tipe mungkin tidak terlalu jelas dan harus diperhatikan dengan baik. Contohnya, variabel bertipe real tidak bisa langsung diassign pada variabel bertipe integer, karena variabel bertipe real mungkin mengandung pecahan, tapi hal yang sebaliknya bisa dilakukan.

Variabel bertipe real dengan presisi yang tinggi (misalnya double di Pascal) tidak bisa diassign pada variabel bertipe real dengan presisi yang lebih rendah (tipe real biasa di Pascal), karena presisinya bisa hilang. Permasalahan menjadi lebih kompleks pada ekspresi yang melibatkan banyak variabel dengan berbagai jenis tipe. Contohnya dalam ekspresi ini:

a : integer;

b : integer;

d : integer;

c : real;

begin

a :=1;

b :=2;

c :=a/b;

d :=a/b;

end.

Ekspresi a/b akan menghasilkan tipe real, sehingga instruksi terakhir adalah salah dan tidak bias dikompilasi (tipe di ruas kanan tidak sama dengan tipe di ruas kiri).

Konversi Antar Tipe Sederhana

Suatu tipe dapat dikonversi ke tipe lain meskipun biasanya konversi ini tidak sempurna. Contoh konversi tipe adalah: konversi dari tipe dengan presisi yang lebih tinggi ke yang lebih rendah (integer ke byte misalnya, konversi dari tipe bertanda ke tidak bertanda, konversi dari string ke integer, konversi dari real ke integer. Sebagian proses konversi dapat dilakukan melalui proses yang disebut dengan casting. Casting merupakan proses konversi sederhana yang hanya melakukan perubahan representasi internal tanpa kehilangan makna. Contohnya casting bisa dilakukan untuk mengubah sebuah shortint menjadi byte, atau byte menjadi integer, namun sebuah bilangan real tidak bisa dicast menjadi sebuah integer. Cara melakukan casting adalah dengan memberikan ekspresi yang akan dicasting di dalam nama tipe tujuan casting:

var

a:byte;

b:real;

begin

a := 3 div 2;

writeln(integer(a));

b := real(a);

writeln(real(b));

writeln(real(1/2));

end.

Konversi a ke real bisa dilakukan karena bilangan integer pasti bisa dikonversi ke real. Konversi integer(b) akan menghasilkan error karena dalam konversi real ke integer ada beberapa hal yang bias dilakukan, apakah akan dibulatkan ke atas, atau dibulatkan ke bawah, atau semua angka di belakang koma akan dihilangkan. Konversi dari tipe yang lebih presisi lebih tinggi, atau yang memiliki range yang lebih besar ke tipe yang presisi atau range yang lebih kecil akan memiliki hasil yang tidak terdefinisi dalam kasus tertentu. Misalnya i adalah sebuah integer, dan b adalah sebuah byte, konversi dari i ke b (integer ke byte) akan menghasilkan hasil yang benar jika i memiliki nilai antara 0 sampai 255, jika i memiliki nilai di luar itu maka nilai b tidak bisa diprediksi.

Konversi tipe dengan fungsi

Konversi tipe yang melibatkan tipe yang berbeda jauh dapat dipandang sebagai konversi tipe yang tidak sederhana. Konversi ini melibatkan penggunaan fungsi khusus yang menjadi bagian dari bahasa, atau fungsi tambahan pendukung bahasa tersebut. Contoh fungsi yang adalah ceil untuk membulatkan bilangan ke atas (6.7 menjadi 7), floor untuk membulatkan bilangan real ke bawah (6.7 menjadi 6), dan round untuk membulatkan bilangan real ke nilai yang terdekat (6.7 menjadi 7).

Fungi atau prosedur konversi juga tersedia untuk mengubah integer/real menjadi string dan sebaliknya. Dalam kasus konversi string ke numerik, ada kemungkinan bahwa string tidak mengandung karakter angka, tapi karakter lain sehingga konversi gagal. Fungsi konversi yang disebutkan bukan merupakan standar Pascal, sehingga perlu dikonsultasikan pada dokumentasi kompilator yang dipakai. Untuk FreePascal, informasi ini juga bisa diperiksa di buku FreePascal.

READ MORE - PEMROGRAMAN PROSEDURAL