archive: 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.

16 Konsep Dasar Pemrograman Prosedural

Tim Olimpiade Komputer Indonesia

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.

Bab 4

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 < 5 | x ? R yang artinya x

adalah suatu variabel bertipe real (domain x adalah bilangan real), dengan range (jangkauan) 1

sampai 5.

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 bisa

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:

18 Konsep Dasar Pemrograman Prosedural

Tim Olimpiade Komputer Indonesia

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.

Konsep Dasar Pemrograman Prosedural 19

Tim Olimpiade Komputer Indonesia

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 var1 adalah ‘, var1);

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);

20 Konsep Dasar Pemrograman Prosedural

Tim Olimpiade Komputer Indonesia

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 1111

1010, 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.

Konsep Dasar Pemrograman Prosedural 21

Tim Olimpiade Komputer Indonesia

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 < 5).

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.

22 Konsep Dasar Pemrograman Prosedural

Tim Olimpiade Komputer Indonesia

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 bisa

digabungkan pada sebuah tipe string.

Konsep Dasar Pemrograman Prosedural 23

Tim Olimpiade Komputer Indonesia

Sebuah karakter bisa dibandingkan dengan karakter lain, hasil perbandingan adalah perbandingan

nilai ordinal karakter tersebut. Operasi perbandingan yang bisa dilakukan sama dengan yang bisa

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:

24 Konsep Dasar Pemrograman Prosedural

Tim Olimpiade Komputer Indonesia

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 < 2 adalah ekspresi yang nilainya false.

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.

Konsep Dasar Pemrograman Prosedural 25

Tim Olimpiade Komputer Indonesia

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 (&frac12; = 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.

26 Konsep Dasar Pemrograman Prosedural

Tim Olimpiade Komputer Indonesia

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 < epsilon) then

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:

Konsep Dasar Pemrograman Prosedural 27

Tim Olimpiade Komputer Indonesia

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 bisa

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 bisa

28 Konsep Dasar Pemrograman Prosedural

Tim Olimpiade Komputer Indonesia

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.

Posted in Tak Berkategori | Tinggalkan komentar

kalimat dan kata mutiara

berikut kata kata mutiara yang saya dapat dari beberapa situs….

  1. Senyum adalah jarak yang terdekat antara dua manusia .
  2. Kekuatan yang sesungguhnya tidak memukul dengan keras , tetapi tepat sasaran
  3. Anda harus tahan terhadap ulat jika ingin dapat melihat kupu-kupu. (Antoine De Saint).
  4. Hanya orang yang berada dalam kebenaranlah orang yang bebas.
  5. Malam yang gelap selalu diikuti pagi yang tenang.
  6. Tertawa itu sehat, lebih-lebih jika mentertawakan diri sendiri.
  7. Kesalahan kecil bisa mengakibatkan kesalahan yang lebih besar. Bersamaan dengan kesalahan itu, persoalannya bisa menjadi besar pula. Maka kesalahan kecil pun harus segera dibetulkan.
  8. Sikap diam adalah seni yang terhebat dalam suatu pembicaraan.
  9. Yang terparah dalam dunia usaha adalah keadaan tidak ada keputusan. (Napoleon).
  10. Galilah sumur sebelum Anda merasa haus.
  11. santun yang baik yang terdiri dari pengorbanan –pengorbanan kecil.
  12. GAGASAN-GAGASAN HANYALAH BIBIT, MENUAI HASILNYA MEMBUTUHKAN KERINGAT.
  13. KEMALASAN MEMBUAT SESEORANG BEGITU LAMBAN SEHINGGA KEMISKINAN SEGERA MENYUSUL.
  14. SIAPA YANG DAPAT MENAHAN MARAHNYA MAMPU MENGALAHKAN MUSUHNYA YANG PALING BERBAHAYA.
  15. PENGETAHUAN DAN KETERAMPILAN ADALAH ALAT, YANG MENENTUKAN SUKSES ADALAH TABIAT.
  16. ORANG YANG SEHAT MEMPUNYAI SERATUS KEINGINAN, ORANG YANG SAKIT HANYA PUNYA SATU KEINGINAN
  17. SEORANG DOKTER MENYEMBUHKAN, DAN ALAM YANG MENCIPTAKAN KESEHATAN. (Aristoteles)
  18. ORANG YANG MENGATAKAN TIDAK PUNYA WAKTU ADALAH ORANG YANG PEMALAS.(Lichterberg)
  19. SOPAN-SANTUN ADALAH IBARAT MINYAK YANG MENGURANGI GESEKAN SATU DENGAN YANG LAIN. (Demokritus).
  20. SETETES TINTA BISA MENGGERAKAN SEJUTA MANUSIA UNTUK BERFIKIR.
  21. APA YANG BISA KITA DAPAT DARI KEHIDUPAN KITA TERGANTUNG DARI APA YANG KITA MASUKKAN KE SITU.
  22. KEKUATAN YANG SESUNGGUHNYA TIDAK MEMUKUL DENGAN KERAS, TETAPI TEPAT SASARAN
  23. JIKA ANDA MENGANTUNGKAN DIRI PADA KEBERUNTUNGAN SAJA, ANDA MEMBUAT HIDUP ANDA SEPERTI LOTERE.
  24. KEHATI-HATIAN DALAM MENILAI PENDAPAT ORANG ADALAH CIRI KEMATANGAN JIWA.
  25. BURUNG DIKENAL DARI NYANYIANNYA, MANUSIA DIKENAL DARI KATA-KATANYA.
  26. SATU ONS PENCEGAHAN SAMA NILAINYA DENGAN SATU PON OBAT.

http://safruddin.wordpress.com/

terima kasih untuk pemilik situs di atas, saya persembahkan kata kata mutiara untuk tugas PKN saya dan teman teman

Kata Mutiara Patrick Star :

1.”Pengetahuan tidak dapat menggantikan persahabatan. Aku (Patrick) lebih suka jadi idiot daripada kehilanganmu (Spongebob)”

2.”Kalau uang bisa membuatku melupakan sahabat terbaikku, maka aku memilih tidak punya uang sama sekali”

3.”Aku mungkin hanya bintang laut yang jelek,lebih baik aku pergi dari bikini bottom ini, ambil saja barang” ku, tapi aku tak pernah mengambil jaring mu kawan”

THANKS 4 LUTHFI ATAS SUMBANGAN KATA KATA MUTIARA DARI PATRICK STAR

Posted in BELAJAR SEKOLAH, copas berbobot, sman 90 jakarta selatan, Tak Berkategori | 1 Komentar

malware bikin jatuh pesawat dan membunuh orang!!

Sebuah program jahat
jenis Trojan diketahui
sempat menginfeksi
sistem komputer di
bandara Barajas-Madrid.
Ditakutkan, program
jahat itu turut
menyebabkan jatuhnya
pesawat Spanair 5022
yang menyebabkan
korban tewas.
Dikutip detikINET dari
TechDaily, Selasa
(24/8/2010), adanya
malware alias program
jahat itu diketahui dalam
penyelidikan atas
kecelakaan pesawat
udara Spanair 5022 pada
2008. Kecelakaan itu
menewaskan 154
penumpangnya ,
termasuk seorang Warga
Negara Indonesia.
Dalam kecelakaan itu,
pesawat gagal take-off di
bandara Barajas
International Airport di
Madrid, Spanyol.
Kegagalan terjadi karena
flap dan slat pesawat
belum mengembang
namun tak ada
peringatan bahwa hal itu
terjadi.
Komputer yang
terinfeksi malware itu
dikatakan memiliki fungsi
untuk mendeteksi
masalah pada pesawat
dan memberikan
peringatan. Jika saja tidak
terkena malware, dan
berhenti operasi,
komputer itu harusnya
bisa mencegah Spanair
5022 melakukan lepas
landas.
Namun hal ini masih hasil
penyelidikan awal. Belum
diketahui apakah infeksi
malware menjadi faktor
kritis dalam kecelakaan
tersebut atau bukan,
karena penyelidikan
masih berlangsung.
Jamz Yaneeza, peneliti
keamanan dari Trend
Micro, menduga
malware itu masuk
melalui beberapa cara.
Salah satu yang paling
mungkin adalah melalui
USB Flashdisk yang
terinfeksi.

Posted in Tak Berkategori | Tinggalkan komentar

laptop termahal dengan kapasitas raksasa saat ini, eurocom panther 2.0

Pernahkah terpikir
memiliki laptop dengan
kapasitas raksasa? Ini
bukan khayalan belaka,
pembuat PC asal Kanada
bernama Eurocom
menciptakan sebuah
laptop berkapasitas 4
Terabyte. Wow! Bisa
dibayangkan betapa ‘lega’
menggunakan laptop ini.
Bukan tanpa alasan jika
Eurocom membekali
laptopnya dengan
kapasitas sebesar itu.
Panther 2.0, demikian
nama laptop tersebut,
dirancang sebagai
pengganti workstation
untuk menjalankan
program CAD
(computer -aided design)
dan high-end graphic.
Untuk diketahui,
kapasitas 4 Terabyte
setara atau lebih besar
dari yang ditawarkan
kebanyakan komputer
desktop dan bahkan
server. Soal kinerja,
prosesor Intel menjadi
otak yang mendukung
performa komputer
jinjing dengan layar 17,3
inch ini.
Dikutip detikINET dari
PC World, Rabu
(18/8/2010), terdapat
pilihan untuk
menggunakan chip Intel
Core i7 Extreme Edition
atau Xeon 5600.
Keduanya memiliki
hingga enam core
prosesor dan berjalan
pada kecepatan hingga
3,33GHz.
Tambahan lain,
perangkat dengan
memori mencapai 24
Gigabyte ini bisa
dikonfigurasikan untuk
menggunakan dua kartu
grafis, Nvidia GTX480M
dan Advanced Micro
Devices ATI Radeon
HD5870, sehingga akan
menghasilkan performa
grafis luar biasa.
Tak heran, karena laptop
yang dibekali webcam
1,3 megapixel itu
mendukung teknologi
Scalable Link Interface
(SLI) CrossFire X AMD
dan Nvidia yang
menghubungkan kedua
kartu grafis.
Kabarnya, laptop
berkapasitas raksasa
tersebut akan mulai
dikapalkan akhir Agustus.
Eurocom belum belum
bisa menyebutkan
ketersediaannya secara
global, melainkan hanya
menyebut produknya
sudah mulai bisa dipesan.
Soal harga, Eurocom
membanderol produk
premium ini di kisaran
USD 8634 atau sekitar Rp
77,5 juta.

Posted in Tak Berkategori | Tinggalkan komentar

laptop termahal dengan kapasitas raksasa saat ini, eurocom panther 2.0

Pernahkah terpikir
memiliki laptop dengan
kapasitas raksasa? Ini
bukan khayalan belaka,
pembuat PC asal Kanada
bernama Eurocom
menciptakan sebuah
laptop berkapasitas 4
Terabyte. Wow! Bisa
dibayangkan betapa ‘lega’
menggunakan laptop ini.
Bukan tanpa alasan jika
Eurocom membekali
laptopnya dengan
kapasitas sebesar itu.
Panther 2.0, demikian
nama laptop tersebut,
dirancang sebagai
pengganti workstation
untuk menjalankan
program CAD
(computer -aided design)
dan high-end graphic.
Untuk diketahui,
kapasitas 4 Terabyte
setara atau lebih besar
dari yang ditawarkan
kebanyakan komputer
desktop dan bahkan
server. Soal kinerja,
prosesor Intel menjadi
otak yang mendukung
performa komputer
jinjing dengan layar 17,3
inch ini.
Dikutip detikINET dari
PC World, Rabu
(18/8/2010), terdapat
pilihan untuk
menggunakan chip Intel
Core i7 Extreme Edition
atau Xeon 5600.
Keduanya memiliki
hingga enam core
prosesor dan berjalan
pada kecepatan hingga
3,33GHz.
Tambahan lain,
perangkat dengan
memori mencapai 24
Gigabyte ini bisa
dikonfigurasikan untuk
menggunakan dua kartu
grafis, Nvidia GTX480M
dan Advanced Micro
Devices ATI Radeon
HD5870, sehingga akan
menghasilkan performa
grafis luar biasa.
Tak heran, karena laptop
yang dibekali webcam
1,3 megapixel itu
mendukung teknologi
Scalable Link Interface
(SLI) CrossFire X AMD
dan Nvidia yang
menghubungkan kedua
kartu grafis.
Kabarnya, laptop
berkapasitas raksasa
tersebut akan mulai
dikapalkan akhir Agustus.
Eurocom belum belum
bisa menyebutkan
ketersediaannya secara
global, melainkan hanya
menyebut produknya
sudah mulai bisa dipesan.
Soal harga, Eurocom
membanderol produk
premium ini di kisaran
USD 8634 atau sekitar Rp
77,5 juta.

Posted in Tak Berkategori | Tinggalkan komentar

Apakah itu kredit facebook?

APA ITU KREDIT FB?? KALO KITA MAKE FB HARUS KREDIT????

gak lah, facebook udah 100% gratis kok,

jika kalian aktif di fb, pasti kalian pernah dengar namanya kredit fb. apakah itu??

itu adalah sejenis mata uang yang bisa anda beli untuk mengganti dollar US (atau mata uang lain) yang dapat kita belanjakan di facebook, entah untuk menampilkan iklan kita di FB, membeli perlengkapan game, dll..

 

contoh kasus:

daniel lagi maen ninja saga di facebook. kalo main ninja saga, biar keliatan keren, daniel pun membeli ninja emblem. dari pada susah susah buka rekening di bank atau di paypal, daniel membeli kredit FB sebagai alat tukar untuk membeli emblem.

 

berikut penjelasan dari facebook sendiri tentang kredit facebook

Apa itu Kredit Facebook?

Kredit Facebook adalah cara yang aman dan mudah untuk membeli barang-barang pilihan, seperti binatang virtual, senjata di permainan premium, dan persediaan lainnya yang menyenangkan di banyak permainan gratis favorit Anda. Kredit mempunyai nilai layaknya uang. Gunakan atau simpan sesuka Anda.

Bagaimana cara mendapatkan kredit?

Jika Anda mempunyai saldo kredit tapi belum pernah membelinya, kemungkinan Anda mendapatkan kredit gratis langsung dari Facebook sebagai hadiah. Selain itu, Anda juga bisa mendapatkan kredit melalui penawaran spesial atau membeli kredit menggunakan PayPal, kartu kredit, atau ponsel Anda.

Permainan apa saja yang menerima kredit?

Ada banyak permainan terkenal di Facebook yang menerima kredit sebagai pembayaran untuk barang-barang premium. Untuk melihat di mana saja Anda dapat menggunakan kredit, kunjungi pusat bantuan.

Posted in Tak Berkategori | Tinggalkan komentar

youtube ‘berlubang’ , justin bieber di kabarkan tewas

Situs sharing video YouTube dilaporkan memiliki celah keamanan. Dengan ‘lubang’ tersebut, pelaku pun menyasar video milik penyanyi ABG yang tengah naik daun, Justin Bieber. Ia digosipkan tewas dalam sebuah kecelakaan.

Peristiwa ini memang bukan pertama kalinya dedemit maya menyerang pelantun lagu ‘Baby’ tersebut. Dalam aksinya pelaku menyebakan sebuah pop-up muncul, saat pengguna mengakses video Justin Bieber.

Isi pop-up itu pun sedikit ‘menakutkan’ bagi fans Bieber.

“BREAKING NEWS: Justin Bieber dilaporkan meninggal dalam sebuah kecelakaan pagi ini. Berita selengkapnya silahkan kunjungi situs CNN,”

tulis isi pesan dalam pop-up tersebut, seperti diukutipdetikINET dari neowin, Senin (5/7/2010).

Seorang pengguna dari sebuah situs bernama 4chan, mengaku bertanggung jawab atas penyerangan video Justin Bieber tersebut. Ia pun menuliskan pesan peringatan pada situsnya.“Hari ini bakal menjadi peringatan, bahwa kita dapat ‘menggoyang’ raksasa internet,” tulis 4chan.

Setelah kejadian itu, Google pun langsung mengambil tindakan dengan memperbaiki lubang pada YouTube. “Kita tengah memperbaiki kerentanan  cross-site scripting (XSS) pada youtube.com pada beberapa jam lalu. Segala komentar tidak akan muncul dalam beberapa jam ini, hingga kita memperbaiki celah keamanan tersebut dalam dua jam kedepan. Kita akan terus mempelajari kerentanan ini, untuk menghindari kasus serupa,” tulis Google dalam pesannya.

Posted in copas berbobot, detik inet, internet | Tinggalkan komentar

HAL-HAL YANG MEMBATALKAN PUASA (fun)

sekedar share aja gan…
lagi enak ngaskus dapet trid ginian…
1. MENYENTUH
Menyentuh-nyentuh gelas berisi air dan kemudian kita bawa ke kolong tempat tidur kemudian meminumnya.

2. TIDUR SIANG
Saat tidur siang kita seolah olah bermimpi minum es buah padahal kita benar benar sedang minum es buah sembari tidur.

3. MELOMPAT-LOMPAT
Jika kita melompat-lompat sambil menyaksikan film porno tentu saja akan membuat puasa kita batal

4. MELUDAH.
Meludah juga dapat membatalkan puasa kita jika kita dengan tidak sengaja meludahi seorang gadis yang sedang mandi dikali dan tepat mengenai payudaranya dan anda memaksa untuk membersihkan ludah anda tersebut

5. BERLARI SEKUAT TENAGA.
Hal ini juga membatalkan puasa jika sebelum bedug magrib dengan sekuat tenaga anda lari ke warung es cendol serutan dan minta semangkok kemudian meminumnya.

6. BERTERIAK-TERIAK WAKTU SIANG HARI.
Berteriak-teriak waktu siang hari juga membatalkan puasa , jika anda lakukan sambil makan soto pak Tomo. Apalagi teriak teriak sambil berhubungan intim.

7. MEMPERBAIKI KOMPUTER YANG RUSAK.
Memperbaiki komputer yang rusak di rumah seorang gadis dan gadis tersebut memberi anda sebotol wisky dan kemudian anda meminumnya sampai teler maka puasa anda juga menjadi batal.

8. MEMBACA BUKU PELAJARAN.
Membaca buku pelajaran tetapi di dalam buku pelajaran tersebut terdapat buku stensil “enny arrow” adalah dapat membatalkan puasa.

9. DUDUK.
Duduk sambil makan nasi Pecel + peyek teri + sembukan + bongko + empal adalah dapat membatalkan puasa. sedangkan duduk sambil menggoda ibu penjual nasi , lalu berselingkuh dengan ibu tersebut, juga membatalkan puasa.

10. MEMBACA TULISAN INI
Membaca rulisan ini sehingga anda memikirkan hal yang tidak-tidak dan anda kemudian melakukanya dengan sadar juga membuat kita batal dalam berpuasa

Posted in copas berbobot, islam, kaskus, lelucon | 1 Komentar

uang jajan dan calon pacar justin bieber

VIVAnews – Di usianya yang masih belia, Justin Bieber sudah bisa mendapatkan penghasilan yang cukup besar dari hasil penjualan albumnya yang meledak di pasaran.

Akan tetapi, mengingat usianya yang belum genap 17 tahun, Justin belum diizinkan menyimpan dan mengatur uang sendiri.

Sampai saat ini, Justin hanya mendapat jatah uang saku yang diberikan Pattie Mallette, ibundanya sebesar US$ 50 sehari atau setara dengan Rp 448 ribu. Hal ini dilakukan sebagai hasil kesepakatan Pattie dengan manajer Justin, Scooter dengan tujuan agar pelantun hits ‘Baby’ tersebut tidak menjadi anak manja.

“Ibuku ingin agar aku nantinya bisa belajar dan mengerti bagaimana mengatur keuangan dengan pintar,” kata Justin, seperti dikutip dari Showbizspy .

Ibunda Justin juga memberi kebebasan pada Justin untuk mengambil uang saku tersebut dalam jangka waktu satu minggu sekali. Dengan kata lain, Justin akan mendapatkan uang saku sebesar US$ 350 yang nilainya sama dengan Rp 3 juta.

“Jika saya tidak mengambilnya selama seminggu, maka saya punya simpanan beberapa ratus dolar yang bisa saya gunakan untuk sesuatu yang istimewa,” kata pemilik gaya rambut poni ini.

Baru-baru ini, Justin juga mengungkapkan keinginannya untuk memiliki seorang pacar. Akan tetapi, ia tidak ingin dicintai hanya karena ketenarannya saja, melainkan sang calon pacar harus bisa tulus mencintainya apa adanya. Hal inilah yang membuat Justin merasa kesulitan mendapatkan gadis tambatan hatinya.

Posted in Tak Berkategori | Tinggalkan komentar

jangan ikutin pencuri Iphone ini

SAN FRANCISCO, KOMPAS.com – Inilah nasib pencuri yang tidak melek teknologi. Lha wong iPhone lagi dipakai untuk tes GPS tracking kok ya disambarnya juga. Alhasil, dalam waktu sepuluh menit saja, pencuri sial tersebut langsung digulung polisi.

Peristiwa ini terjadi di daerah pinggiran Mountain View, California, AS awal pekan lalu saat Covia Labs, sebuah perusahaan yang menyediakan layanan pelacakan berbasis GPS, sedang menguji aplikasi buatannya. Sejumlah karyawan diminta membawa iPhone dan mengaktifkan layanan tersebut untuk mendemonstrasikan kemampuannya secara real time.

Continue reading

Posted in apple, asal usul, copas berbobot, teknology | 2 Komentar