Senin, 31 Agustus 2015

Pemdulum



Bandul fisis digunakan untuk menggambarkan gerakan berayun dari bandul yang disebabkan oleh gravitasi. Untuk membuat bandul (pendulum), beratnya (m.g), tergantung dari titik tetap, disebut pivot. Dengan menarik pendulum kembali dan melepaskan, itu akan berayun bolak-balik karena tarikan gravitasi dan tegangan di sepanjang tali atau kawat yang menggantungkan berat tadi. Gerakan ini terus berlanjut sebagai akibat inersia.


Menurut hukum dasar inersia, ketika benda dalam keadaan istirahat atau bergerak, ia akan terus dalam keadaan itu kecuali ditindaklanjuti oleh kekuatan eksternal. Dalam kasus bandul fisis, bandul akan terus berayun kecuali kekuatan eksternal bertindak untuk menghentikannya. Karena tidak ada kekuatan eksternal bertindak di atasnya, itu dapat terus berayun tanpa batas melalui busur yang sama.
Aksi pendulum adalah contoh yang baik dari kekekalan energi mekanik. Ini hukum fisika menyatakan bahwa energi di dalam sistem selalu tetap konstan. Dengan kata lain, jumlah energi selalu sama dan energi tidak dapat diciptakan atau dihancurkan. Ada berbagai jenis energi yang menyatakan bahwa sebuah objek dapat dalam bentuk, seperti energi kinetik, potensial, kimia, nuklir dan termal. Energi Potensial dan kinetik, atau gerak, merupakan energi keadaan adalah mereka yang diukur dan diamati dalam bandul fisika.
Ketika pendulum berayun, energi keadaan yang berubah berdasarkan tempat di busur benda, tapi semuanya tetap sama dalam jumlah total potensial dan kinetik energi benda – dengan kata lain, energi kekal. Pada titik tertinggi bandul, ia tidak memiliki kecepatan dan semua energi dalam sistem adalah energi potensial. Ketika jatuh melalui busur, benda memperoleh energi kinetik dan kecepatan sambil kehilangan energi potensial. Setelah melewati bagian bawah busur, ia mulai lambat dan kehilangan energi kinetik sambil mendapatkan energi potensial dan ketinggian. Meskipun energi kinetik dan potensial bervariasi, pengukuran fisika bandul menunjukkan bahwa total tetap sama di semua titik di busur pendulum.
Dalam bandul fisis, hambatan udara dan gesekan diasumsikan tidak ada pada benda. Karena energi dari sistem bandul adalah kekal, dikatakan memiliki gerak terus-menerus, yang dapat dilanjutkan tanpa batas selama tidak ada energi yang hilang ke objek atau lingkungan lainnya. Fakta bahwa pendulum terus berayun dengan cara yang sama dari waktu ke waktu adalah mengapa hal itu digunakan dalam jam untuk menjaga waktu, dan pada awalnya digunakan untuk melakukan pengukuran gaya gravitasi.


Sumber :
http://pendulum-lever.com/news.html


Pendulum merupakan project pembuatan energi alat yang sederhana



Ball Pendulum 


Rangkaian Sensor Suhu

Kebutuhan-kebutuhan…
Perangkat keras
  • AT89C51 atau AT89S51, sebagai mikrokontroler-nya;
  • LM35, sebagai sensor suhu-nya;
  • ADC0808, sebagai ADC-nya, dan
  • MAX232, sebagai konverter RS232-TTL
Perangkat Lunak
  • C-Compiler, program mikrokontroler ditulis dalam bahasa C;
  • Visual Basic 6.0, antarmuka komputer menggunakan Visual Basic 6.0
Gambar Rangkaian
Sumber 
http://agfi.staff.ugm.ac.id/blog/index.php/2008/12/at89-sistem-akuisisi-data-dan-pemantauan/

Jenis-Jenis Sensor

Jenis-jenis sensor bermacam-macam, contoh. 
(Photo by Krodal, Public Domain)

Sensor Kelembaban
Akan tetapi sebelum kita menilik lebih lanjut kita perlu mengetahui apakah sensor itu. Sensor merupakan alat yang berfungsi untuk mengubah suatu daya menjadi daya lain. Sensor sendiri merupakan turunan dari transedur yang memiliki fungsi sama dengan sensor. Sensor sendiri terbagi kedalam beberapa jenis, seperti yang sudah dijelaskan di awal jenis sensor terbagi menjadi 8 macam. Yang pertama adalah sensor suhu.Sensor suhu sendiri memiliki empat jenis yang sering digunakan dibandingkan dengan jenis lainnya. Keempat jenis tersebut adalah Termistor, IC sensor, Thermocouple, serta Resistance Temperature Detector. Sensor suhu biasa dipakai pada termometer. Selain itu terdapat sensor kecepatan dan tekanan. Sensor tekanan memanfaatkan kinerja kawat. Ketika kawat mengalami tekanan maka akan diubah menjadi sinyal listrik. Sensor tekanan biasa dipakai pada remot atau kalkulator. Sedang untuk sensor kecepatan yang biasa diaplikasikan kepada kendaraan bermotor. Sensor kecepatan biasa memanfaatkan perputaran roda pada kendaraan bermotor.
Jenis-jenis sensor lain adalah sensor ultrasonik. Sensor jenis ini memanfaatkan pantulan gelombang suara. Dengan memancarkan gelombang serta menangkap kembali pantulan gelombang suara tersebut. Sensor ultrasonik sering digunakan oleh kapal laut untuk menentukan kedalaman laut yang mereka lewati. Selajutnya adalah sensor sinar atau cahaya. Sensor cahaya memiliki tiga kategori; Fotovoltaic (sel solar), Fotokonduktif, dan Fotolistrik. Sensor cahaya biasa digunakan pada alat detektor harga pada berbagai supermarket ataupun infrared pada handphone. Berikutnya adalah sensor magnet. Seperti namanya, sensor jenis ini memanfaatkan medan magnet pada objek yang menyebabkan perubahan pada indikator. Sensor model ini harus terbebas dari debu, pasir, asap, dan juga uap. Sensor ini banyak diaplikasikan pada detektor logam yang biasa dipakai oleh satpam guna mendeteksi barang-barang berbahaya.

Jenis-Jenis Sensor


Jenis-jenis sensor berikutnya adalah sensor penyandi. Sensor jenis ini memanfaatkan gerakan berputar menjadi sinyal digital. Sensor jenis ini memiliki dua lapisan; penyandi rotasi tambahan dan penyandi absolut. Penyandi rotasi berfugsi untuk mengkalkulasi rotasi untuk setiap putarannya. Sedangkan penyandi absolut melengkapi kinerja penyandi rotasi serta memberi kode binary pada masing-masing sudut. Sensor jenis ini banyak dipakai pada brangkas-brangkas penyimpanan pada bank. Yang terakhir adalah sensor proximity. Sensor ini mendeteksi adanya target logam tanpa bersentuhan. Sensor jenis ini banyak diaplikasikan pada berbagai saklar mikro dan terkemas dari getaran, cairan, serta cairan kimia.
Dari jenis-jenis sensor tersebut terdapat berbagai keuntungan yang bisa kita ambil untuk diaplikasikan kedalam berbagai peralatan yang kita miliki. Selain itu, dengan mengetahui seluk beluk beberapa sensor yang ada diatas kita dapat memilih jenis sensor yang tepat untuk kegiatan kita. Kerusakan pada sensor pun dapat kita tanggulangi dan juga diantisipasi mengingat kita mengetahui beberapa hal yang harus dihindari ketika menggunakan sensor-sensor terbut. Pengaplikasian yang tepat guna juga bermanfaat untuk mengantisipasi berbagai kriminal yang semakin hari semakin banyak.

Sabtu, 29 Agustus 2015

Tutorial Belajar Pascal Part 13: Pengertian Algoritma dan Flowcart

PENDAHULUAN
A. Asal Usul Kata Algoritma
Kata algoritma TIDAK berasal dari kata Yunani (Greek) seperti algos yang berarti kesakitan akan tetapi merupakan pemelesetan (corruption) dari nama ahli matematika berkebangsaan Persia yaitu “Abu „Abd Allah Muhammad ibn Musa al-Khawariezmi” yang diterjemahkan sebagai “Mohammad, bapak dari Adbdulla, anak dari Musa, si Kwarizmian” (Kwarizm merupakan sebuah kota tua yang sekarang terletak di Provinsi Xorazm, Uzbekistan). Al-Khawarizmi dikenal sebagai penulis terkenal risalah Kitab al-jabr wa’l-Muqabala dimana kata aljabar moderen diturunkan.

Orang barat membaca Al-Khuwarizmi menjadi Algorism yang sebenarnya tidak berhubungan dengan kata Yunani arithmos yaitu angka akan tetapi dulunya digunakan untuk menerangkan sistem desimal moderen untuk menulis dan memanipulasi angka-angka khususnya dalam angka-angka arab.
Perubahan kata dari Algorism menjadi Algorithm muncul karena kata Algorism sering dipelesetkan (corrupted) dengan Arithmetic, sehingga akhiran -sm berubah menjadi -thm. Mengingat perhitungan dengan angka Arab sudah menjadi hal yang biasa, maka lambat laun kata Algorithm berangsur-angsur dipakai sebagai metode perhitungan (komputasi) secara umum, sehingga kehilangan makna kata aslinya. Istilah Algorithm dalam Bahasa Indonesia disebut menjadi Algoritma.
B. Definisi Algoritma
“Algoritma merupakan suatu urutan langkah-langkah (steps) yang disusun secara logis dan sistematis untuk menyelesaikan suatu masalah dan dapat dieksekusi. “
Dalam defenisi diatas istilah “komputer” tidak terlihat sehingga sebuah algoritma tidak selalu berhubungan dengan komputer. Dalam kehidupan sehari-hari banyak terdapat proses yang dinyatakan dalam suatu algoritma. Contohnya, cara membuat masakan yang dinyatakan dalam suatu resep juga dapat disebut sebagai sebuah algoritma. Pada setiap resep selalu ada urutan langkah-langkah membuat masakan. Bila langkah-langkahnya tidak logis, maka tidak akan dapat dihasilkan masakan yang diinginkan. Ibu-ibu yang mencoba suatu resep masakan akan membaca (mengikuti) satu per satu langkah-langkah pembuatannya lalu ia mengerjakan proses itu sesuai dengan yang ia baca. Secara umum, pihak (benda) yang mengerjakan proses disebut pemroses (processor). Pemroses tersebut dapat berupa manusia, komputer, robot atau alat-alat elektronik lainnya. Pemroses melakukan suatu proses dengan melaksanakan atau “mengeksekusi” algoritma yang menjabarkan proses tersebut.
Melaksanakan Algoritma berarti mengerjakan langkah-langkah di dalam Algoritma tersebut. Pemroses mengerjakan proses sesuai dengan algoritma yang diberikan kepadanya. Juru masak membuat kue berdasarkan resep yang diberikan kepadanya, pianis memainkan lagu berdasarkan papan not balok. Karena itu suatu Algoritma harus dinyatakan dalam bentuk yang dapat dimengerti oleh pemroses. Jadi suatu pemroses harus :
1. Mengerti setiap langkah dalam Algoritma
2. Mengerjakan operasi yang bersesuaian dengan langkah tersebut.
Kata logis merupakan kata kunci dalam sebuah Algoritma karena setiap langkah dalam Algoritma harus logis (jelas dan pasti) dan harus dapat ditentukan bernilai salah atau benar. Sebuah algoritma diperbolehkan tanpa ada input tetapi minimal harus ada 1 output. Jumlah langkah (steps) dalam sebuah algoritma harus berhingga atau dengan kata lain harus ada akhir proses.
Umumnya sebuah algoritma sering dikaitkan dengan perhitungan dan mengingat proses perhitungan dilakukan dengan cepat oleh sebuah komputer maka secara umum sekarang ini sebuah algoritma menjadi selalu berkaitan dengan komputer. Komputer merupakan suatu alat elektronika yang mempunyai kemampuan untuk melakukan perhitungan dan membuat keputusan logika dengan jumlah waktu yang jauh lebih cepat dari kemampuan manusia. Pada saat ini, sebuah PC (personal computer) dapat melakukan puluhan juta penjumlahan dalam waktu satu detik. Sebuah output kadang-kadang memerlukan lebih dari satu algoritma khususnya dalam Penginderaan Jarak Jauh yang umumnya memerlukan banyak algoritma untuk menghasilkan sebuah output sehingga untuk menghasilkan sebuah output yang benar dan cepat maka algoritma dalam Penginderaan Jarak Jauh selalu berhubungan dengan komputer.
Komputer memproses data dengan menggunakan kumpulan instruksi (langkah) yang disebut program. Program ini memandu komputer untuk melaksanakan kerja (mengeksekusi perintah) yang secara sistematis dan berstruktur disusun oleh seseorang yang disebut programmer. Program yang disusun secara sistematis dan logis dan dapat menyelesaikan masalah (menghasilkan output) adalah merupakan sebuah algoritma. Secara umum, ada tiga elemen penting yang harus dimiliki mulai dari pembuatan sebuah algoritma (brainware), program untuk menjalankan algoritma (software), dan alat untuk pemrosesan algoritma (hardware) yang secara struktural dapat digambarkan pada Gambar 1.1. dibawah ini.
.
Perangkat keras (hardware) merupakan berbagai peralatan yang terdapat di dalam suatu sistem komputer seperti papan ketik (keyboard), layar (monitor), disk, memori, dan unit pemroses (CPU=Central Processing Unit). Perangkat keras sebuah komputer terdiri dari enam unit (logika) yang saling berhubungan membentuk suatu organisasi komputer yaitu:
(i) Unit input, yang digunakan untuk menerima masukan data dan/atau program komputer dari berbagai alat masukan (input devices) dan menempatkannya ke unit lain sedemikian rupa sehingga dapat diproses.
(ii) Unit output, yang digunakan untuk menyimpan data atau informasi yang telah diproses oleh komputer dan menempatkannya pada berbagai alat output (output devices) sehingga dapat digunakan oleh pengguna.
(iii) Unit memori, yang sering disebut sebagai memori utama digunakan untuk menyimpan atau menampung masukan dari unit input, sehingga data (informasi) tersebut selalu tersedia untuk diproses pada saat dibutuhkan.Unit ini juga menampung hasil proses komputer sampai diperlukan oleh unit output.
(iv) ALU(Arithmetic and Logic Unit), yang bertugas untuk melakukan operasi aritmetika (perhitungan) seperti penjumlahan, pengurangan, perkalian, dan pembagian. Disamping itu, ALU juga bertugas untuk melakukan keputusan dari suatu operasi logika dasar maupun operasi boolean sesuai dengan instruksi program seperti sama dengan (=), tidak sama dengan (≠), kurang dari (<), kurang atau sama dengan (), dan lebih besar atau sama dengan (>), dan lain-lain.
(v) CPU (Central Processing Unit) merupakan ”brain” atau ”processor” dari sebuah komputer yang merupakan koordinator dan penanggung jawab bagi operasi unit-unit lainnya. Unit ini menyampaikan informasi pada unit input, menentukan kapan informasi harus dibaca ke dalam unit memori, dan pada unit output, kapan harus mengirim informasi dari memori ke alat-alat output.
(vi) Secondary storage unit, yaitu media penyimpan data dan/atau program yang non-volatile berupa Flash Drive, Optical Disc, Magnetic Disk, Magnetic Tape. Media ini biasanya daya tampungnya cukup besar dengan harga yang relatif murah.
Program untuk menjalankan suatu komputer disebut dengan perangkat lunak (software). Dalam perangkat lunak termasuk sistem operasi, bahasa pemrograman, dan program aplikasi. Sistem operasi (operating system) atau OS adalah perangkat lunak sistem yang bertugas untuk melakukan layanan inti dan umum maupun kontrol dan manajemen perangkat keras (hardware) serta operasi-operasi dasar sistem, termasuk menjalankan software aplikasi seperti program-program pengolah kata dan browser web. Bagian kode yang melakukan tugas-tugas inti dan umum tersebut dinamakan dengan kernel suatu Sistem Operasi.
Sistem Operasi bisa juga berfungsi sebagai penghubung antara lapisan hardware dan lapisan software. Sistem Operasi ini melakukan semua tugas-tugas penting dalam komputer, menjamin aplikasi-aplikasi yang berbeda dapat berjalan secara bersamaan dengan lancar, menjamin aplikasi software lainnya dapat menggunakan memori, melakukan input dan output terhadap peralatan lain, dan memiliki akses kepada sistem file. Bilamana beberapa program aplikasi berjalan secara bersamaan, maka
Sistem Operasi akan mengatur jadwal yang tepat, sehingga sedapat mungkin semua proses yang menggunakan prosesor (CPU) akan berjalan dengan lancar dan tidak saling mengganggu. Dalam banyak kasus, Sistem Operasi menyediakan suatu pustaka dari fungsi-fungsi standar, dimana aplikasi lain dapat memanggil fungsi-fungsi itu, sehingga dalam setiap pembuatan program baru, tidak perlu membuat fungsi-fungsi tersebut dari awal.
Secara umum sebuah Sistem Operasi terdiri dari 5 (lima) bagian:
(1) Mekanisme boot yaitu meletakkan kernel ke dalam memory
(2) Kernel yaitu inti dari sebuah Sistem Operasi
(3) Command Interpreter atau shell yang bertugas membaca input dari pengguna
(4) Library (pustaka) yang menyediakan kumpulan fungsi dasar dan standar yang
dapat dipanggil oleh aplikasi lain
(5) Driver untuk berinteraksi
Dewasa ini, sebagian besar Sistem Operasi membolehkan beberapa aplikasi berjalan secara simultan pada waktu yang bersamaan yang disebut sebagai Multi-tasking Operating System. Beberapa contoh Sistem Operasi yang berkembang saat ini adalah MS-DOS, Microsoft Windows, Unix, Linux, dan Mac-OS. Dalam kuliah ini akan dipelajari Sistem Operasi MS-DOS, Microsoft Windows, dan Linux. Sedangkan bahasa pemrograman akan digunakan Interactive Data Language (IDL) software yang dikeluarkan oleh ITTS Inc. Software ini akan dipelajari dan dikembangkan untuk menghasilkan sebuah algoritma untuk aplikasi penginderaan jarak jauh.
C. Tipe-tipe Algoritma Berdasarkan Format Penulisan
Algoritma adalah independen terhadap bahasa pemrograman tertentu, artinya algoritma yang telah dibuat tidak boleh hanya dapat diterapkan pada bahasa pemrograman tertentu. Penulisan algoritma tidak terikat pada suatu aturan tertentu, tetapi harus jelas maksudnya untuk tiap langkah algoritmanya. Namun pada dasarnya algoritma dibagi menjadi beberapa macam berdasarkan format penulisannya, yaitu:
1. Deskriptif
Algoritma bertipe deskriptif maksudnya adalah algoritma yang ditulis dalam bahasa manusia sehari-hari (misalnya bahasa Indonesia atau bahasa Inggris) dan dalam bentuk kalimat. Setiap langkah algoritmanya diterangkan dalam satu atau beberapa kalimat.
Sebagai contoh misalnya algoritma menentukan bilangan terbesar dari 3 bilangan berikut ini:
.
.
2. Flow Chart (Diagram Alir)
Selain dalam bentuk tulisan, algoritma juga dapat ditulis dalam bentuk diagram-diagram dengan anak panah sebagai penunjuk urutan langkah algoritmanya. Algoritma yang ditulis dengan simbol-simbol demikian yang dinamakan flow chart. Contoh algoritma menentukan bilangan terbesar dari 3 bilangan seperti yang dicontohkan sebelumnya, tetapi ditulis dalam bentuk flow chart.
.
Berikut simbol – simbol Flow Chart yang sering digunakan :
.
D. Pseudocode
Pseudo berarti imitasi dan code berarti kode yang dihubungkan dengan instruksi yang ditulis dalam bahasa komputer (kode bahasa pemrograman). Apabila diterjemahkan secara bebas, maka pseudocode berarti tiruan atau imitasi dari kode bahasa pemrograman.
Pada dasarnya, pseudocode merupakan suatu bahasa yang memungkinkan programmer untuk berpikir terhadap permasalahan yang harus dipecahkan tanpa harus memikirkan syntax dari bahasa pemrograman yang tertentu. Tidak ada aturan penulisan syntax di dalam pseudocode. Jadi pseudocode digunakan untuk menggambarkan logika urut-urutan dari program tanpa memandang bagaimana bahasa pemrogramannya.
Walaupun pseudocode tidak ada aturan penulisan syntax, di dalam buku ini akan diberikan suatu aturan-aturan penulisan syntax yang cukup sederhana agar pembaca dapat lebih mudah dalam mempelajari algoritma-algoritma yang ada di dalam buku ini. Pseudocode yang ditulis di dalam buku ini akan menyerupai (meniru) syntax-syntax dalam bahasa Pascal. Namun dibuat sesederhana mungkin sehingga tidak akan ada kesulitan bagi pembaca untuk memahami algoritma-algoritma dalam buku ini walaupun pembaca belum pernah mempelajari bahasa Pascal.
Contoh algoritma menentukan bilangan terbesar dari tiga bilangan yang ditulis dalam bentuk pseudocode bergaya buku ini.
.

Silahkan pelajari tutorial selanjutnya
Tutorial Belajar Pascal Part 14: Kumpulan Program Pascal

Tutorial Belajar Pascal Part 12: Pengertian dan Cara Penggunaan Tipe Data Integer Pascal

Pada lanjutan tutorial belajar bahasa pemrograman Pascal di Duniailkom kali ini, saya akan membahas tentang pengertian dan cara penggunaan tipe data Integer di Pascal.

 

Pengertian Tipe Data Integer

Dalam bahasa pemrograman, tipe data integer adalah tipe data yang terdiri dari angka bulat (tidak mengandung nilai pecahan atau nilai desimal). Nilai ini bisa berbentuk angka positif maupun negatif, contohnya 1, 2, 6, -44, 20000, atau 128730123.
Pascal mendukung beragam tipe data integer, seperti byte, shortint, smallint, word, integer, cardinal, longint, longword, int64, dan qword. Tipe-tipe ini dibedakan berdasarkan jangkauan nilai dan kapasitas memory yang dibutuhkan.

Cara Penggunaan Tipe Data Integer dalam Pascal

Untuk menggunakan tipe data integer di Pascal, kita tinggal menulisnya seperti variabel biasa. Berikut contoh kode program yang mendefenisikan variabel integer di dalam pascal:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
program tipe_integer;
uses crt;
var
  a:integer;
begin
  clrscr;
  a:=20;
  writeln('a: ',a);
  
  a:=15;
  writeln('a: ',a);
  
  a:= a + 10;
  writeln('a: ',a);
  readln;
end.
Dalam kode diatas saya mendefenisikan variabel a dengan tipe data integer (baris ke-4). Kemudian sepanjang kode program variabel a ini diubah-ubah nilainya, dan pada setiap perubahan, ditampilkan sebagai output (menggunakan perintah writeln).
Hasil akhir kode diatas adalah sebagai berikut:
Contoh program tipe data integer pascal 1
Contoh lain penggunaan tipe data integer bisa dilihat dari kode program dibawah ini:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
program tipe_integer;
  uses crt;
var
  a,b,c,d:integer;
begin
  clrscr;
  a:=1234;
  b:=-1234;
  
  c:= a + b;
  d:= a * 3;
  
  writeln('a: ',a);
  writeln('b: ',b);
  writeln('c: ',c);
  writeln('d: ',d);
  readln;
end.
Contoh program tipe data integer pascal
Kali ini saya mendefenisikan variabel a, b, c dan d bertipe integer. Variabel a dan b langsung diisi dengan nilai 1234 dan -1234, sedangkan variabel c dan d digunakan untuk menampung operasi penambahan dan perkalian.


Terkait operasi aritmatika di dalam Pascal, akan saya bahas dalam tutorial tersendiri.
Pascal menganut sistem variabel bertipe, oleh karena itu jika sebuah variabel di defenisikan sebagai integer, kita tidak bisa mengisinya dengan nilai lain seperti huruf, kalimat, atau bahkan angka pecahan.
Sebagai contoh, jika saya mengisi huruf kedalam variabel integer, compiler Pascal akan ‘komplain’ dengan Error 26: Type mismatch:
1
2
3
4
5
6
7
8
9
program tipe_integer;
  uses crt;
var
  a:integer;
begin
  clrscr;
  a:='Duniailkom';
  readln;
end.
Kode Error Pascal - Error 26 - Type mismatch
Begitu juga jika kita menginput nilai yang diluar jangkauan integer, seperti kode berikut ini:
1
2
3
4
5
6
7
8
9
program tipe_integer;
uses crt;
var
 a:integer;
begin
 clrscr;
 a:=32767;
 readln;
end.
Kode Error Pascal - Error 76 - Constant out of range
Kode errornya adalah Error 76: Constant out of range. Karena secara default tipe data integer hanya bisa menampung nilai dari -32768 hingga 32767. Bagaimana jika angka yang kita butuhkan lebih besar dari ini? Kita harus menggunakan tipe data selain ‘integer’.

Jenis-jenis Tipe Data Integer di dalam Pascal

Walaupun kita sudah menggunakan tipe data integer di dalam contoh kode program diatas, tetapi ‘integer’ hanyalah salah satu tipe data angka bulat di dalam Pascal. Setidaknya terdapat 10 tipe data integer yang bisa digunakan. Tabel berikut merangkum seluruh tipe data integer Pascal beserta jangkauan dan kapasitas memory yang dibutuhkan:
Type Range Ukuran (dalam byte)
Byte 0 .. 255 1
Shortint -128 .. 127 1
Smallint -32768 .. 32767 2
Word 0 .. 65535 2
Integer* antara smallint atau longint size 2 atau 4
Cardinal longword 4
Longint -2147483648 .. 2147483647 4
Longword 0 .. 4294967295 4
Int64 -9223372036854775808 .. 9223372036854775807 8
QWord 0 .. 18446744073709551615 8
Tabel diatas adalah tipe data integer yang tersedia didalam Free Pascal. Untuk Turbo Pascal 7, mungkin terdapat sedikit perbedaan.
* Dalam Free Pascal, secara default jangkauan tipe data integer sama dengan smallint, namun dalam aplikasi Object Pascal seperti Delphi atau Lazarus, jangkauan tipe integer sama dengan longint.
Berikut contoh penggunaan tipe data ini:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
program tipe_integer;
  uses crt;
var
  a:shortint;
  b:byte;
  c:longint;
  d:longword;
  e:int64;
begin
  clrscr;
  a:=-128;
  b:=255;
  c:=-2147483648;
  d:=4294967295;
  e:=9223372036854775807;
  
  writeln('a: ',a);
  writeln('b: ',b);
  writeln('c: ',c);
  writeln('d: ',d);
  writeln('e: ',e);
  readln;
end.
Contoh program tipe data integer pascal 2
Pada contoh program diatas saya mendefenisikan 5 variabel: a, b, c, d, dan e dengan berbagai tipe variabel integer.

Tipe data integer yang kita pelajari disini sangat penting untuk dipahami, terutama tentang jangkauan tipe-tipe data integer. Jika anda butuh jangkauan yang cukup besar, bisa menggunakan tipe data longword atau int64.

Tutorial Belajar Pascal Part 11: Cara Penggunaan serta Perbedaan Read dan Readln Pascal

Setelah mempelajari perintah write dan writeln, dalam tutorial belajar pascal kali ini kita akan membahas tentang cara penggunaan perintah read dan readln di dalam bahasa pemrograman pascal.

Fungsi perintah read dan readln

Jika perintah write dan writeln berfungsi untuk menampilkan ‘sesuatu’ ke jendela tampilan, maka perintah read dan readln berfungsi untuk memasukkan ‘sesuatu’ ke dalam kode program. Di dalam pemrograman, ini disebut sebagai perintah ‘input’.

 

Cara Penulisan read dan readln

Untuk dapat menggunakan perintah read dan readln, kita harus mempersiapkan variabel yang akan menampung hasil inputan dari pengguna. Variabel ini juga harus memiliki tipe data yang sama dengan apa yang akan diinput.
Sebagai contoh, jika kita mengharapkan pengguna untuk memasukkan nama, maka variabel penampung harus bertipe string, namun jika kita meminta inputan umur, maka harus menggunakan variabel bertipe integer.
Agar lebih memahami konsep ini, berikut adalah contoh kode program penggunaan kedua perintah ini:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
program input;
uses crt;
var
  nama,alamat:string;
  umur:integer;
  ipk:real;
begin
  clrscr;
  writeln('Masukkan Data Mahasiswa');
  writeln('=======================');
  write('Nama   :');
  readln(nama);
  write('Alamat :');
  readln(alamat);
  write('Umur   :');
  read(umur);
  write('IPK    :');
  readln(ipk);
  writeln;
  writeln('=========HASIL=========');
  write('Nama: ',nama,'. Alamat: ',alamat);
  writeln('. Umur: ',umur,'. IPK: ',ipk:1:2);
  readln;
end.
Hasil kode program:

Dalam kode diatas, saya menampung hasil inputan dalam variabel nama, alamat, umur, dan ipk. Ketika kode program sampai pada perintah readln(nama), maka tampilan akan berhenti sesaat untuk menunggu inputan. Tombol Enter digunakan untuk mengakhiri proses input, dan program akan lanjut ke perintah berikutnya.

Perbedaan read dan readln

Perintah read dan readln sama-sama digunakan untuk meminta input dari pengguna. Keduanya memiliki perbedaan dari cara pembacaan data.
Perintah read akan membaca data secara ‘horizontal’. Setelah proses input selesai, posisi cursor akan tetap berada di baris yang sama. Kita bisa menggunakan karakter ‘spasi’ atau ‘enter’ untuk memisahkan 1 input dengan input lainnya (dengan beberapa pengecualian).
Perintah readln akan membaca data secara ‘vertikal’. Setelah proses input selesai, posisi cursor akan pindah ke baris baru. Kita bisa menggunakan karakter ‘enter’ untuk memisahkan 1 input dengan input lainnya.
Defenisi perbedaan diatas ‘hanya’ secara teori. Dalam prakteknya, kedua perintah ini akan membuat prilaku berbeda tergantung tipe data yang digunakan. Terutama untuk perintah read yang kadang berfungsi ‘aneh’. Kita akan melihat permasalahan ini melalui beberapa contoh kode program.

Penggunaan read dan readln untuk tipe data integer dan real

Jika menggunakan tipe data angka (integer/real), perintah read akan membaca seluruh inputan yang dipisah dengan spasi maupun enter. Berikut contoh penggunaannya:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
program input;
uses crt;
var
  a,b,c,d:integer;
begin
  clrscr;
  writeln('Input 4 angka, dipisah dengan spasi:');
  read(a);
  read(b);
  read(c);
  read(d);
  writeln;
  writeln('Hasil Input:');
  writeln('a: ',a,', b: ',b,', c: ',c,', d: ',d);
  readln; readln;
end.
Hasil kode program:
Input 4 angka, dipisah dengan spasi:
65 7 89 999
Hasil Input:
a: 65, b: 7, c: 89, d: 999
Perhatikan bahwa saya menggunakan 2 kali perintah readln di akhir program. Ini digunakan untuk ‘menahan’ jendela program agar tidak langsung menutup ketika di–run. Jika tidak menggunakan ini, anda bisa melihat hasil program dari menu Debug->User Screen atau menekan tombol ALT+F5.
Perintah diatas juga bisa ditulis menjadi seperti berikut ini:
1
2
3
4
5
6
7
8
9
10
11
12
13
program input;
uses crt;
var
  a,b,c,d:integer;
begin
  clrscr;
  writeln('Input 4 angka, dipisah dengan spasi:');
  read(a,b,c,d);
  writeln;
  writeln('Hasil Input:');
  writeln('a: ',a,'. b: ',b,'. c: ',c,' d: ',d);
  readln;
end.
Kali ini saya menggabungkan penulisan input 4 variabel ke dalam 1 perintah read.
Jika menggunakan perintah readln, maka kita harus memisahkan keempat inputan dengan enter, seperti contoh berikut:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
program input;
uses crt;
var
  a,b,c,d:integer;
begin
  clrscr;
  writeln('Input 4 angka, dipisah dengan enter:');
  readln(a);
  readln(b);
  readln(c);
  readln(d);
  writeln;
  writeln('Hasil Input:');
  writeln('a: ',a,'. b: ',b,'. c: ',c,' d: ',d);
  readln;
end.
Hasil program:
Input 4 angka, dipisah dengan enter:
45
23
65
111
Hasil Input:
a: 45. b: 23. c: 65 d: 111
Khusus untuk tipe data angka (integer/real), perintah read bisa digunakan dengan pemisah spasi, maupun enter. Berikut contohnya:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
program input;
uses crt;
var
  a,b,c,d,e,f,g,h,i:integer;
begin
  clrscr;
  writeln('Input Matriks 3x3');
  read(a,b,c);
  read(d,e,f);
  read(g,h,i);
  writeln;
  writeln('Hasil Matriks:');
  writeln(a,' ',b,' ',c);
  writeln(d,' ',e,' ',f);
  writeln(g,' ',h,' ',i);
  readln;
  readln;
end.
Hasil program:
Input Matriks 3x3
4 5 6
9 7 1
4 9 9
Hasil Matriks:
4 5 6
9 7 1
4 9 9

Penggunaan read dan readln untuk tipe data char

Jika menggunakan tipe data char, perintah read akan membaca seluruh karakter teks (termasuk spasi dan enter) dalam 1 baris secara vertikal. Kita bisa mencoba hal ini melalui kode program berikut:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
program input;
uses crt;
var
  a,b,c,d,e:char;
begin
  clrscr;
  writeln('Input Teks Sembarang (5 karakter)');
  read(a);
  read(b);
  read(c);
  read(d);
  read(e);
  
  writeln;
  writeln('Hasil Teks:');
  write(a,' ',b,' ',c,' ',d,' ',e);
  readln;
  readln;
end.
Hasil program:
Input Teks Sembarang (5 karakter)
belajar
Hasil Teks:
b e l a j
Jika kita menginput 5 karakter (atau lebih), dan mengakhiri dengan tombol enter, tiap-tiap varibel akan diisi dengan 5 karakter pertama dari teks (teks ke-6 dan seterusnya akan diabaikan).
Jika anda mencoba menekan ‘enter’ pada saat menginput 5 karakter awal, maka pascal akan menampilkan sesuatu yang ‘berbeda’:
Input Teks Sembarang (5 karakter)
a
b
Hasil Teks:
  b
Hasil diatas di dapat dengan mengetik huruf a, ‘enter’, huruf b, dan program akan langsung selesai. Ini terjadi karena cara pascal memproses karakter ‘enter’.
Sebuah karakter enter di dalam pascal terdiri dari 2 karakter khusus, yakni carriage return dan line feed. Kedua karakter ini hanya tampak seperti ‘spasi’ (kosong), sehingga jika kita menekan tombol enter, 2 variabel akan langsung terisi. 1 dengan karakter carriage return, dan 1 lagi dengan karakter line feed. Kedua variabel ini akan ditampilkan ‘kosong’.
Jika kita mengganti read dengan readln, pembacaan karakter akan dilakukan secara vertikal. Setiap karakter di pisah dengan enter, seperti contoh kode program berikut:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
program input;
uses crt;
var
  a,b,c,d,e:char;
begin
  clrscr;
  writeln('Input Teks Sembarang (5 karakter) :');
  readln(a);
  readln(b);
  readln(c);
  readln(d);
  readln(e);
  
  writeln;
  writeln('Hasil Teks:');
  write(a,' ',b,' ',c,' ',d,' ',e);
  readln;
end.
Hasil kode program:
Input Teks Sembarang (5 karakter) :
i
l
k
o
m
Hasil Teks:
i l k o m
Kali ini, enter pada karakter ke-2 atau lebih dianggap sebagai tombol untuk masuk ke variabel selanjutnya.
Jika anda menambahkan beberapa karakter setelah karakter pertama di sebuah baris, sisanya akan diabaikan oleh readln:
Input Teks Sembarang (5 karakter) :
belajar
pascal
di
dunia
ilkom
Hasil Teks:
b p d d i

Penggunaan read dan readln untuk tipe data string

Apabila menggunakan tipe data string, perintah read berprilaku sedikit ‘membingungkan’. Perhatikan contoh kode berikut:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
program input;
uses crt;
var
  a,b,c,d:string;
begin
  clrscr;
  writeln('Input 4 kata:');
  
  read(a);
  read(b);
  read(c);
  read(d);
  
  writeln;
  writeln('Hasil Teks:');
  writeln('a: ',a);
  writeln('b: ',b);
  writeln('c: ',c);
  writeln('d: ',d);
  readln;
  readln;
end.
Jika kita menginput 4 kata yang dipisah dengan spasi, dan menekan tombol enter, keempat kata ini akan diinput kedalam variabel a:
Hasil program:
Input 4 kata:
saya sedang belajar pascal
Hasil Teks:
a: saya sedang belajar pascal
b:
c:
d:
Namun jika kita membuat sebuah kata dan menekan enter, program akan ‘melewati’ variabel b, c, dan d:
Hasil program:
Input 4 kata:
saya
Hasil Teks:
a: saya
b:
c:
d:
Solusi untuk hal ini, kita mengganti perintah read dengan readln. Dengan begitu, setiap teks dipisah dengan enter dan diinput kepada masing-masing variabel.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
program input;
uses crt;
var
  a,b,c,d:string;
begin
  clrscr;
  writeln('Input 4 kata:');
  readln(a);
  readln(b);
  readln(c);
  readln(d);
  writeln;
  writeln('Hasil Teks:');
  writeln('a: ',a);
  writeln('b: ',b);
  writeln('c: ',c);
  writeln('d: ',d);
  readln;
end.
Hasil kode program:
Input 4 kata:
belajar pascal
di duniailkom
sangat
menyenangkan
Hasil Teks:
a: belajar pascal
b: di duniailkom
c: sangat
d: menyenangkan
Untuk menghindari hal ini, sebaiknya kita selalu menggunakan perintah readln jika ingin memproses data input bertipe string.

Dalam tutorial kali ini kita telah membahas tentang cara menginput data ke dalam program menggunakan perintah read dan readln. Umumnya anda akan banyak menggunakan perintah readln dari pada read, karena seperti yang kita lihat pada kasus tipe data string, perintah read kadang tidak sesuai dengan apa yang dirancang. Selanjutnya kita membahas
Referensi:
http://stackoverflow.com/questions/5693186/pascal-read-readln-function-impurities
http://stackoverflow.com/questions/8997678/pascal-read-function-strange-behavior