Selasa, 29 Januari 2008

Tutorial Microsoft Excel



Mengenal Microsoft Excel


Microsoft Excel, untuk selanjutnya disingkat Excel, adalah program aplikasi yang banyak digunakan untuk membantu menghitung, memproyeksikan, menganalisa, dan mempresentasikan data. Disini kita akan banyak bersinggungan dengan metode2 pembuatan tabel dan grafik yang sangat dibutuhkan sekali dalam penyusunan data2 perusahaan, hasil2 penelitian, maupun dalam pembuatan makalah pribadi.

Bekerja dengan Microsoft Excel

Lembar Kerja Microsoft Excel

Sebelum mulai memasuki pembahasan Microsoft Excel, ada baiknya kita mengenal lebih dulu bagaimana tampilan Microsoft Excel itu, beserta beberapa istilah2 umum yang akan digunakan. Beberapa istilah2 umum yang diberikan pada gambar dibawah ini akan banyak digunakan dalam pembahasan selanjutnya, sehingga akan lebih baik bila kita menghafalkannya dengan baik.
Memindahkan Penunjuk Sel (Cell Pointer)

Ada beberapa cara untuk memindahkan cell pointer. Untuk lengkapnya silahkan lihat table dibawah.

Tombol Keterangan
Enter Pindah satu sel ke bawah
Home Pindah ke kolom A pada posisi baris yang aktif
Ctrl + Home Pindah ke sel A1 pada lembar kerja yang aktif
Ctrl + End Pindah ke posisi sel terakhir yang sedang digunakan
PgUp Pindah satu layer ke atas
PgDn Pindah satu layer ke bawah
Alt + PgUp Pindah satu layer ke kiri
Alt + PgDn Pindah satu layer ke kanan
Ctrl + PgUp Pindah dari satu tab lembar kerja ke tab lembar kerja berikutnya
Ctrl + PgDn Pindah dari satu tab lembar kerja ke tab lembar kerja sebelumnya
Memasukkan Data ke Lembar Kerja
Berbagai jenis data dapat dimasukkan ke dalam lembar kerja seperti teks, nilai, tanggal, jam dan lain sebagainya. Untuk memasukkan data ke dalam suatu sel, dapat mengikuti langkah berikut ini :
1. Pilih atau klik sel tempat anda akan memasukkan data
2. Ketikkan data yang ingin dimasukkan
3. Tekan Enter atau tombol arah panah atau tombol PgUp dan PgDn

Memperbaiki Kesalahan Pengetikan

Bila ada kesalahan pengetikan data, anda dapat memperbaikinya dengan mengikuti langkah2 berikut ini :

1. Pilih sel yang datanya ingin diperbaiki, lalu tekan F2. Atau klik tombol kiri maouse 2 kali pada sel yang datanya ingin diperbaiki.
2. Selanjutnya perbaiki data yang salah tersebut dan tekan tombol Enter bila sudah selesai.
Menggunakan Rumus

Anda dapat memasukkan rumus yang berupa instruksi matematika ke dalam suatu sel pada lembar kerja. Operator hitung yang dapat digunakan diantaranya adalah + (penjumlahan), -(pengurangan), * (perkalian), dan ^ (perpangkatan).

Menulis Rumus dengan Menggunakan Angka Tetap
a. Tempatkan penunjuk sel pada posisi yang diinginkan (dalam contoh ini E5)
b. Ketik rumus “=48*3500” pada kolom baris rumus dan tekan Enter.
Catatan : Penulisan rumus selalu diawali dengan lambng sama dengan (=).

Menulis Rumus dengan Referensi Sel
a. Tempatkan penunjuk sel pada posisi yang diinginkan (dalam contoh ini E5)
b. Ketik rumus “=E3*E4” pada kolom baris rumus dan tekan Enter.
Catatan : Dengan menggunakan cara ini, bila data di sel E3 &(atau) E4 diubah, maka hasil di sel E5 pun akan ikut berubah.

Menulis Rumus dengan Cara Menunjuk
Dengan menggunakan keyboard atau mouse :
a. Tempatkan penunjuk sel pada posisi yang diinginkan (dalam contoh ini E5)
b. Ketik “=” pada kolom baris rumus
c. Pilih atau klik sel E3, lalu ketik “*”
d. Pilih atau klik sel E4 lalu tekan Enter.

Membuat Range/Blok Sel
Pada saat bekerja menggunakan Excel, kita tidak hanya bekerja dalam satu sel saja. Terkadang, anda akan bekerja dalam grup/kumpulan sel. Misalnya saja bila anda ingin merubah jenis huruf beberapa kolom dan (atau) baris, ingin merubah rumus beberapa kolom dan (atau baris), copy-paste atau mendelete data beberapa kolom dan(atau) baris, dll. Dalam kondisi2 seperti ini, anda dapat menggunakan range/blok sel ini untuk memudahkan kerja anda.
Range dinamakan menurut alamat sel di ujung kiri atas sampai ujung kanan bawah. Sebagai caontoh, range dari sel B2 sampai E7 dituliskan sebagai range B2:E7

Range/blok sel dapat dibuat dengan beberapa cara :
Membuat Range Menggunakan Tombol Shift
a. Tempatkan penunjuk sel awal range/bagian awal sel yang ingin diblok, yaitu B2
b. Sambil menekan Shift, tekan tombol anak panah sampai sel tujuan, yaitu E7

Membuat Range Menggunakan Mouse**
a. Klik sel yang merupakan sel awal range, yaitu B2. Pointer/penunjuk mouse harus barada dalam keadaan tanda plus warna putih (tunjuk ke dalam sel, bukan tepi sel). (lihat Gambar 3).
b. Sambil tetap menekan klik kiri mouse, gerakkan mouse (drag) ke sel tujuan, yaitu sel E7.
Membuat Kolom atau Baris
Suatu kolom atau baris dapat disorot dengan mengklik huruf kolom atau nomor baris yang anda inginkan. Misalnya cukup klik huruf kolom B bilai ingin menyorot seluruh kolom B.

Menyorot Sederetan Kolom atau Baris
Untuk menyorot sederetan kolom (misalnya B, C, D) atau sederetan baris (misalnya 3, 4, 5) dapat dilakukan dengan mengikuti langkah berikut ini :
a. Klik di huruf kolom atau di nomor baris awal
b. Sambil tetap menekan tombol mouse kiri, geserlah(drag) pointer(penunjuk) mouse hingga menyorot seluruh baris itu


Menyorot Sederetan Kolom

Menghapus Data

Untuk menghapus data di suatu sel atau range tertentu, pindahkan sel ke, atau buatlah range tempat yang ingin dihapus, lalu tekan tombol Delete. Dan bila ingin menghapus format tampilan data/sel dapat dilakukan dengan memilih dan mengklik menu Edit, Clear, Formats.
Memasukkan Rangkaian Data dengan Fasilitas AutoFill

Untuk memasukkan data berupa angka atau teks dengan fasilitas AutoFill, dapat dilakukan dengan mengikuti langkah2 berikut ini :
1. Pilih/klik sel tempat posisi awal dari rangkaian data yang ingin anda buat. Misalnya pilih/klik sel B2.
2. Ketik data awal yang anda inginkan. Misalnya teks “Jan” (January)
3. Pada sel berikutnya (sel dibawah/B3 atau disampingnya/C2) ketik data berikutnya yang anda inginkan. Misalnya di B3 ketik “Feb” (February)
4. Sorot/bloklah B2:B3. (Lihat Gambar5)
Dalam keadaan masih tersorot, arahkan penunjuk/pointer mouse ke pojok kanan bawah sel B3 hingga tanda plus putih berubah menjadi plus hitam
6. Tekanlah tombol kiri mouse dan geser/drag posisi pointer mouse ke sel yang diinginkan misalnya B12. Dengan ini rangkaian data angka dapat ditampilkan.

Menggunakan Fasilitas AutoCalculate dan AutoSum

AutoCalculate
Fasilitas AutoCalculate (penghitungan otomatis) digunakan untuk melakukan penghitungan dengan cepat dan mudah dari data2 yang cukup banyak dalam suatu range tertentu. Didalam fasilitas AutoCalculate ini terdapat 6 buah perintah, yakni perintah otomatis untuk menghitung rata2 (Average), jumlah data (Count), banyak data angka (Count Nums), nilai max (Max), nilai min (Min), dan jumlah data angka (Sum).
Cara menggunakannya adalah sebagai berikut :
1. Sorot range data yang akan dikalkulasi/hitung. Misal sorot range C7:C12 dari data
2. Klik tombol kanan mouse di baris status, dan pilihlah jenis kalkulasi yang anda inginkan. Misalkan pilihlah Average(A) untuk menghitung rata2 data.
3. Hasilnya akan ditampilkan di baris status.

AutoSum
Fungsi AutoCalculate diatas adalah untuk menghitung cepat data2 yang cukup banyak, tetapi tidak dapat menuliskan secara otomatis di lembar kerja anda. Khusus untuk penjumlahan (Sum), ada cara mudah lain untuk melakukannya yang sekaligus juga dapat langsung menuliskannya ke lembar kerja anda. Caranya adalah dengan menggunakan tombol toolbar AutoSum (Σ).
Misalnya dalam contoh diatas, bila kita ingin menuliskan total unit, letakkan pointer mouse ke tempat yang kita inginkan (misalnya C13), lalu tekan tombol Σ di toolbar. Selanjutnya sorot range yang ingin dijumlahkan (dalam contoh ini adalah C5:C10) dan tekan Enter.
Mengatur Lebar Kolom
1. Mengatur Lebar Kolom Menggunakan Mouse
Arahkan pointer mouse pada batas kanan kolom yang akan diubah hingga tanda plus warna putih berubah menjadi tanda panah dua arah.
Catatan : Bila ingin mengubah lebar sederet kolom, terlebih dahulu bloklah kolom yang akan diubah lebarnya, kemudian tempatkan pointer mouse ke batas kanan salah satu kolom tersebut.
Klik tombol kiri mouse, dan sambil terus menekan mouse geser(drag)-lah mouse hingga lebar kolom sesuai yang diinginkan.
2. Mengatur Lebar Kolom Sesuai Data Terpanjang
Arahkan pointer mouse pada batas kanan huruf kolom yang akan diubah lebarnya.
Klik dua kali pada batas kolom. Lebar kolom akan mengikuti data terpanjang yang ada pada kolom

Mengatur Tinggi Baris
Arahkan pointer mouse pada batas bawah baris yang akan diubah hingga tanda plus warna putih berubah menjadi tanda panah dua arah.
Catatan : Bila ingin mengubah tinggi sederet baris, terlebih dahulu bloklah baris yang akan diubah tingginya, kemudian tempatkan pointer mouse ke batas bawah salah satu baris tersebut.
Klik tombol kiri mouse, dan sambil terus menekan mouse, geser(drag)-lah mouse hingga tinggi baris sesuai yang diinginkan.

Mengatur Format Tampilan Huruf
Data yang ketikkan pada lembar kerja dapat ditampilkan dengan berbagai bentuk untuk memudahkan dan membuat variasi dalam lembar kerja anda. Bentuk huruf (font), ukuran huruf (size), garis bawah (underline), warna huruf (color) dan efek khusus lainnya dapat anda tambahkan dalam data anda.

Dua cara dalam melakukan format huruf dapat ditempuh melalui perintah yang ada di baris menu dan toolbar.

Format Melalui Perintah di Baris Menu
a. Sorot sel atau range yang akan anda format
b. Pilih dan klik menu Format(O), Cells (CTRL+1), dan kotak dialog Format Cells akan ditampilkan
c. Pada kotak dialog Format Cells tersebut, klik tab Font.
d. Tambahkanlah efek khusus yang diinginkan pada teks dan klik OK.

Meratakan Tampilan Data
Bila diperlukan, anda dapat mengatur tampilan data yang tersimpan pada suatu sel atau range tertentu agar posisinya ditampilkan rata kanan, kiri, di tengah sel atau di tengah beberapa kolom tertentu.
Ada cara yang dapat ditempuh dalam melakukan perataan tampilan data ini, yakni dengan menggunakan perintah yang ada di baris menu dan toolbar.

Meratakan Data dengan Peintah di Baris Menu
a. Sorotlah sel atau range yang akan anda ubah tampilan datanya
b. Pilih dan klik menu Format(O), Cells (CTRL+1) dan kotak dialog Format Cells akan ditampilkan
c. Pada kotak dialog tersebut, klik tab Alignment
d. Lakukan pemilihan sesuai keinginan anda pada kotak :
Vertical : digunakan untuk memilih perataan secara vertical. Pilihan yang dapat dilakukan adalah Top (rata atas), Center (rata tengah), Bottom (rata bawah), Justify (seluruh data ditampilkan pada sel secara penuh). •
Horizontal
Orientation : untuk mengatur orientasi data dan derajat kemiringannya.
e. Klik OK

Menambahkan Garis Pembatas dan Bingkai
Sorotlah sel atau buatlah range, tempat yang akan diberi bingkai
Pilih dan klik menu Format(O), Cells (CTRL+1). Lalu klik tab border. Kotak dialog akan tampil
Pada bagian Presets, pilih dan klik salah satu tombol berikut :
None, digunakan untuk menghapus garis pembatas dan bingkai •
Outline, digunakan untuk membuat bingkai disekeliling sel atau range •
Inside, digunakan untuk membuat garis pembatas didalam range •

Pada bagian Border, pilih dan klik garis pembatas yang diinginkan
Pada kotak pilihan Style, pilih jenis garis yang diinginkan
Pada kotak pilihan Color, pilihlah jenis warna yang diinginkan
Gambar di bagian border adalah preview bingkai atau garis pembatas yang telah anda set. Klik OK bila sudah selesai.

Menyisipkan Sel, Baris dan Kolom
Kadangkala kita perlu untuk menyisipkan baris atau kolom karena saat memasukkan/mengetikkan data, ternyata ada data2 yang terlewat. Langkah2 yang dapat ditempuh adalah seperti berikut ini :
Sorotlah sel, atau buatlah range tempat sel, baris atau kolom baru akan disisipkan
Pilih dan klik di baris menu :
Insert, Rows untuk menyisipkan baris baru •
Insert, Column untuk menyisipkan kolom baru •
Insert, Cells untuk menyisipkan sel baru •

Menghapus Sel, Baris atau Kolom
Selain data yang terlewat, terkadang kita juga menemukan data2 yang mengalami penulisan dua kali. Untuk yang semacam ini, untuk memperbaiki penulisan data dapat ditempuh dengan menghapus sel, baris ataupun kolom.

Sorot sel atau range tempat sel, baris atau kolom yang akan dihapus
Pilih dan klik menu Edit, Delete. Kotak dialog Delete akan ditampilkan

Pilih dan klik salah satu pilihan berikut ini :

Shift cells left, digunakan untuk menghapus isi sel atau range yang anda sorot dan menggantinya dengan data pada baris sama di sebelah kanannya.
Shift cells up, digunakan untuk menghapus isi sel atau range yang anda sorot dan menggantinya dengan data pada kolom sama di sebelah bawahnya •
Entire row, digunakan untuk menghapus seluruh baris pada sel atau range yang anda sorot
Entire column, digunakan untuk menghapus seluruh kolom pada sel atau range yang anda sorot
Klik OK

Senin, 28 Januari 2008

MODUL PASCAL

Daftar ISI

- Pengenalan
- Tutor 1 (cara mencetak ke layar dan penggunaan variabel)
- Tutor 2 (penggunaan kondisi)
- Tutor 3 (looping)
- Tutor 4 (prosedur dan fungsi)
- Tutor 5 (array dan record)
- Tutor 6 (Database)

Contoh Program

Program 1 menghitung luas/keliling bangunan
Program 2 menentukan bilangan ganjil, genap dan prima
Program 3 menentukan bilangan terbesar (dengan if)
Program 4 penggurutan angka (looping)
Program 5 bintang (looping)
Program 6 penggabungan program 1, 2 dan 4 dengan membuat menu (prosedur, fungsi)
Program 7 toko (record dengan array)
Program 8 Operasi String
Program 9 Contoh penggunaan teori di tutor 6

PENGENALAN

Pada bagian ini gua cuman ngejelasin secara garis besar tentang pascal dan tips penulisan program. Kita mulai, ok?

Rasanya gak lengkap kalo gak tahu sejarah pascal. Pascal adalah bahasa tingkat tinggi yang orientasinya pada segala tujuan, dirancang oleh Prof. Niklaus Wirth dari Technical University di Zurich, Switzerland. Nama pascal diambil sebagai penghargaan terhadap Blaise Pascal, ahli matematik dan philosiphi terkenal abad 17 dari Prancis.

Profesor Niklaus Wirth memperkenalkan kompiler bahasa Pascal pertama kali untuk komputer CDC 6000 (Control Data Corporation) yang dipublikasikan pada tahun 1971 dengan tujuan untuk membantu mengajar program komputer secara sistematis, khususnya pemrograman terstruktur. Pada perkembangannya banyak versi-versi pascal yang beredar, MS-Pascal, Apple Pascal, Turbo Pascal, dll. Gua pernah baca kalo pascal itu di buat karena bahasa C terlalu sulit untuk di pelajari untuk pemula.

Sekarang kita ngeliat bagaimana struktur program pascal. Pascal terdiri dari 2 bagian utama, yaitu pendeklarasian variabel dan programnya. Perhatikan contoh:

1: Program KaryaPertamaku;
2: uses crt;
3: var nama: string;
4: Begin
5: write('Masukkan nama anda: '); readln(nama);
6: clrscr;
7: write('Hi ', nama, 'apakabar?');
8: End.

Gak usah dipikirin apa isi program itu. Tapi perhatikan strukturnya. Pada baris ke 3, itu yang disebut bagian pendeklarasian variabel. Sedangkan dari baris ke-4 s/d 8, disebut bagian pernyataan (tempat nulis program). Baris pertama itu hanya merupakan judul programnya doank, gak ditulis juga boleh. Judulnya adalah "KaryaPertamaku", jangan pake spasi loh nulisnya (gunakan garis bawah aja).

O iya, dalam pascal ada yang disebut unit-unit lain semacam librari lah... Misalnya pada baris kedua digunakan uses crt; (berfungsi untuk memanipulasi layar teks). Perhatikan baris 6, itu adalah salah satu fungsi dari unit crt yaitu untuk membersihkan layar (sama dengan perintah cls di dos).

Perhatikan cara penulisan programnya! Setiap baris selalu diakhiri dengan titik koma ";" (kecuali pada baris ke-4 dan 8, karena itu adalah tanda dari awal dan akhir program). Selain itu program pascal selalu dimulai dengan "begin" dan "end." (jangan lupa titiknya loh).

Bagaimana, mudah bukan? Gua kasih satu tips yang berguna. Kalo nulis program usahakan yang rapi. Ingat bila ada "Begin" pasti ada "end", nah penulisan program diantara begin dan end itu usahakan di kasih 2 spasi atau satu tab. Perhatikan baris ke-5 s/d 7. Itu akan memudahkan penelusuran program bila terjadi kesalahan
MENCETAK KE LAYAR DAN PENGGUNAAN VARIABEL

Ok, sekarang kita bakal belajar cara menampilkan teks di layar dan penggunaan variabel. Perhatikan contoh dibawah ini:

1: Program KaryaPertamaku;
2: uses crt;
3: var nama: string;
4: Begin
5: write('Masukkan nama anda: '); readln(nama);
6: clrscr;
7: write('Hi ', nama, 'apa kabar?');
8: End.

Pada baris ke-3 dideklarasikan variabel nama dengan tipe string. Karena berupa string, variabel nama bisa menampung input dari user berupa kata dan angka. Untuk lebih jelas tentang jenis tipe data lihat tabel di bawah. Jangan sampai salah mendeklarasikan jenis variabelnya loohh...

Sekarang perhatikan baris ke-5. Fungsi write adalah mencetak kalimat atau isi variabel yang ada ke layar. Jadi yang tercetak adalah "Masukkan nama anda: ". Selanjutnya ada perintah readln. Apa fungsinya? readln itu berfungsi untuk menampung (menyimpan hasil input user) dan disimpan pada variabel nama. Jadi sekarang variabel nama bernilai sama yang kamu ketikan.

Pada baris ke-7 di layar akan tercetak " Hi dijas apa kabar?" (itu kalo nama yang dimasukan dijas). Untuk menampilkan isi variabel cukup ditulis: "write(nama);". Sedangkan bila berupa teks yang fixed, contohnya sama seperti baris ke-5 (mengunakan ' (kutip) ).

Apa sih beda write dan writeln? write fungsinya mencetak di layar dan posisi kursor masih dibaris itu juga. Sedangkan writeln akan pindah kebaris yang baru. Perhatikan Contoh

1: Begin
2: write('Hi...'); write(' Apa kabar?');
3: writeln;
4: writeln('Hi.. '); writeln('Apa kabar?');
5: End.

Maka output yang tampil adalah:
Hi... Apa kabar?
Hi...
Apa kabar ?

Jelas bukan? Jadi fungsi "ln" pada writeln adalah untuk pindah kebaris yang baru. Fungsinya akan sama bila ditaruh di read. Yup tutorial pertama kelar juga...

Tipe Data yang Sering Digunakan di Pascal
Char -> hanya menampung satu karakter
string -> menampung lebih dari satu karakter
Boolean -> hanya mempunyai dua nilai True atau False
Integer -> -32.768 s/d 32.767 (gak bisa bilangan desimal)
longint -> -2.147.483.648 s/d -2.147.483.648(gak bisa bilangan desimal)
read -> 2,9 x 10-39 s/d 1,7 x 1038 (untuk menampung bilangan desimal)



PENGGUNAAN KONDISI

Tutorial yang kedua ini akan dibahas mengenai pernyataan kondisi, if dan case.

1: Program Tutorial2_if;
2: var pilih: Integer;
3: Begin
4: write('Pilih 1 atau 2'); readln(pilih);
5: if pilih=1 then write('Anda memilih 1')
6: elseif pilih=2 then write('Pilihan anda 2')
7: else write('Anda memilih yang lain')
8: End.

Perhatikan baris 5, 6 dan 7. Di situ ada 3 pernyataan kondisi if. Apabila pilihan yang kita ketik ada di satu kondisi, maka yang lain akan diabaikan. Bingung? gini maksudnya... Misal pada program di atas kita pilih 2. Pada saat program dijalankan, baris ke-5 akan di eksekusi. Berhubung pilihan kita 2 bukan 1, maka akan langsung pindah kebaris selanjutnya. Ternyata pada baris ke-6 kondisi itu terpenuhi, maka yang tercetak dilayar adalah "Pilihan anda 2". Baris ke-7 tidak diperiksa lagi karena baris ke 6 sudah memenuhi syarat.

Bila kita memilih 3, maka baris ke-5 dan ke-6 tidak memenuhi konsisi tersebut, maka yang tercetak adalah "Anda memilih yang lain".

Selain dengan if, pernyataan kondisi di atas bisa juga menggunakan case. Perhatikan contoh:

1: Program Tutorial2_case;
2: var pilih: char;
3: Begin
4: write('Pilih 1 atau 2'); readln(pilih);
5: case pilih of
6: '1': write('Anda memilih 1');
7: '2': write('Pilihan anda 2');
8: else write('Anda memilih yang lain');
9: end;
10: End.

Keterangannya gak jauh beda dengan kondisi if kok. Coba amati pada baris ke 9, di sana ada pernyataan "end;". Pernyataan itu berfungsi untuk menutup pernyataan case yang dimulai pada baris ke-5. Perlu diingat "end" disertai dengan titik hanya untuk diakhir program.
LOOPING

Looping? apa hayoo...? masih ingatkan pelajaran fisika SMU, adakan pelajaran tentang looping dirangkaian elektronik. Looping adalah proses pengulangan hingga kondisi syarat yang ditentukan tercapai. Sekarang kita ngebahas 3 jenis looping, for, while dan repeat. Perhatikan contoh di bawah ini:

1: Program Tutorial3_for;
2: var i: Integer;
3: Begin
4: For i:=1 to 5 do
5: writeln('ini yang ke ', i);
6: End.

Perhatikan baris 4 dan 5. Di sana ada satu persyaratan, yaitu baris ke-5 akan dieksekusi bila nilai i antara 1 sampai 5. Apa output yang tercetak dilayar?

ini yang ke 1
ini yang ke 2
ini yang ke 3
ini yang ke 4
ini yang ke 5

Bagaimana kalo mau pake while? Perhatikan contoh:

1: Program Tutorial3_while;
2: var i: Integer;
3: Begin
4: i:=1;
5: while i < 5 do
6: begin
7: writeln('ini yang ke ', i);
8: i:=i+1;
9: end;
10: End.

Apa perbedaan mendasar while dengan for? yup, di while dibutuhkan counter (diprogram ini adalah i). Jadi, baris ke-7 dan 8 akan dieksekusi (dijalankan) apabila nilai i < 5. Coba liat baris ke 6, di sana ada "begin" dan "end;" sebagai pasangannya (dibaris ke 9). Bila ada lebih dari satu pernyataan harus di mulai dengan begin untuk kondisi if, case, looping. Jika tidak hanya baris pertama saja yang dieksekusi. Apa outputnya?

ini yang ke 1
ini yang ke 2
ini yang ke 3
ini yang ke 4

Coba baris ke 8 kamu ganti dengan "i:=i-1;" apa yang terjadi? Coba jalankan. Akan terjadi looping terus menerus karena kondisinya memenuhi syarat terus (i selalu kurang dari lima). Tekan control break untuk menghentikannya. Hal inilah yang disebut invinitive loop. Sekarang kita coba dengan repeat.

1: Program Tutorial3_while;
2: var pilih: char;
3: Begin
4: i:=1;
5: repeat
6: writeln('ini yang ke ',i);
7: i:=i+1;
8: until i<0;
9: End.

Apa outputnya? cuman 1, "ini yang ke 1". Loh kok bisa, kan pada baris ke 8 tidak memenuhi persyaratan i<0 ? Memang nggak memenuhi persyaratan itu, tapi ini adalah keistemewaan repeat. Ia akan mengeksekusi sekali dulu baru dicek persyaratan yang ada dibawah.

Kelar juga ngebahas looping. Gunakan jenis looping yang ada seseuai kebutuhan. O iya, apa yang dilakukan bila tertulis seperti ini? "For i:=10 downto 1 do". Pernyataan itu akan menghitung mundur dari 10 sampai 1.


PROSEDUR DAN FUNGSI

Misalnya kita punya rumus menghitung luas segita, apa yang kamu lakukan bila rumus itu ingin kamu tulis ditiga tempat yang berbeda? apa kamu akan ccp (copy, cut dan paste)? emang bisa sih diperbanyak dengan yang gituan, tapi boros memori dan berabe kalo rumus yang kita tulis ternyata salah, berarti kita harus betulin di tiga tempat juga. Untuk mempermudahnya gunakan Prosedur atau Fungsi.

1: Program Tutorial4_Prosedur;
2:
3: Procedure Tampil;
4: begin
5: writeln('Hi...');
6: writeln('Apakabar');
7: end;
8: Begin
9: Tampil;
10: writeln('yang di atas menggunakan prosedur loohh...');
11: End.

Apa yang dilakukan program di atas? Coba lihat baris ke-3 sampai 7. Itulah yang disebut prosedur. Program utamanya mulai dari baris ke 8 sampai 11. Pada baris ke 9 prosedur yang kita buat sebelumnya dipanggil dan dieksekusi. Ini outputnya

Hi...
Apakabar
yang di atas menggunakan prosedur loohh...

Selain itu prosedur dan fungsi bisa di taruh variabel lohh... Perhatikan contoh penggunaan fungsi di bawah ini:

1: Program Tutorial4_Fungsi;
2: var hasil: integer;
3: Function Itung(a, b : integer) : integer;
4: begin
5: itung:=a+b;
7: end;
8: Begin
9: hasil:=itung(7, 9);
10: writeln('Hasil 7 + 9 sama dengan ', hasil);
11: End.

Baris 3 sampai 7 adalah fungsi. Tapi perhatikan bentuk fungsinya, ada pendeklarasian variabel a dan b. Coba liat baris ke 9 ketika fungsi itung dipanggil. Di sana tertulis "itung(7, 9)", secara otomatis a akan mendapat nilai 7 dan b mendapat 9. Bagaimana jika ditulis "itung(3,5,6)"? Jelas gak bisa karena dialokasikan hanya 2 variabel. Hasil penjumlahan a + b ditampung di fungsi itung (lihat baris ke-5) dan hasil itu diberikan ke variabel hasil (baris 9).

Lalu apa perbedaan prosedur dan fungsi? Prosedur hanya bisa menjalankan perintah dan tidak mengembalikan nilai (lihat kembali contoh program prosedur sebelumnya). Sedangkan fungsi bisa mengembalikan nilai untuk di tampilkan dilayar atau diolah lagi. Bila kita punya fungsi yang bernama CekSaldo, maka CekSaldo bisa berfungsi seperti variabel sama seperti pada fungsi Itung di atas.

Bagaimana? mudah bukan? gunakan prosedur dan fungsi sesuai kebutuhan. Terkadang fungsi lebih berguna dan efisien dibandingkan dengan prosedur.



ARRAY DAN RECORD

Pernahkah kamu membayangkan bila kita mau membuat program toko buah-buahan. Jika ada 3 jenis buah-buahan (melon, duku dan mangga) berarti kita harus mempunyai tiga variabel untuk masing-masing jenis buah. Tetapi betapa sulitnya jika toko itu punya 10 atau 20 jenis yang berbeda. Solusinya adalah gunakan array. Array itu adalah tipe data terstuktur yang berguna untuk menyimpan sejumlah data yang bertipe sama. Bagaimana cara kerjanya? yaitu dengan menggunakan index (semacam penanda). Perhatikan contoh:

1: Program Tutorial5_Array;
2: var buah: array [1..3] of string;
3: i: integer;
4: Begin
5: For i:=1 to 3 do
6: begin
7: write('Masukkan buah-buahan ke ',i , ' : ');readln(buah[i]);
8: end;
9: writeln;writeln('Isi buah-buahan yang dimasukkan tadi adalah : ');
10: For i:= 1 to 3 do
11: writeln('buah ke', i ,' : ', buah[i]);
12: End.

Lihat pada baris ke 7. Dengan hanya menggunakan satu nama variabel yaitu buah, kita bisa menyimpan 3 nilai yang berbeda. Misalkan yang kita masukkan adalah melon, duku dan mangga. maka buah[1] bernilai melon, buah[2] bernilai duku dan buah[3] bernilai mangga. Untuk mencetak isi variabel yang sudah disimpan di array tadi caranya bisa dilihat di baris ke 11.

Bagaimana, gampangkan? setelah mengetahui cara menggunakan array, sekarang kita belajar menggunakan record. Tidak seperti array, record adalah jenis tipe data terstruktur yang berisi beberapa data, yang masing-masing dapat berlainan tipe. Perhatikan contoh:

1: Program Tutorial5_Record;
2: type buah = record
3: nama: string;
4: harga: longint;
5: end;
6: var data:buah;
7: Begin
8: write('nama buah: ');readln(data.nama);
9: write('harga buah: ');readln(data.harga);
10: write('ditampilkan');
11: write('nama');readln(data.nama);
12: writeln('harga');readln(data.harga);
13: End.

Apa yang bisa kamu ambil kesimpulan dari program di atas? Bingung? Jadi gini, dengan menggunakan record (di sini bernama buah) kita bisa membuat tipe data yang berisi beberapa data yang berlainan tipe (nama dengan jenis string, dan harga dengan jenis long integer) yang ini disebut field.

Perhatikan baris ke 6, di situ dideklarasikan bahwa variabel data bertipe buah. Otomatis yang dimiliki buah (nama dan harga) dimiliki juga oleh data. Setelah itu lihat baris ke 8 dan 9. Nama buah disimpan dalam field nama dan harga buah disimpan di dalam field harga. Untuk bisa menyimpan data di field, urutannya harus variabel.field (contohnya di sini data.nama atau data.harga). Begitu juga bila kita ingin menampilkan isi field tersebut.

Tipe data seperti ini sangat berguna kedepannya loohh... Apalagi jika digabungkan dengan array.





DATABASE

Rasanya gak lengkap kalo buat program tapi gak bisa nyimpen data. Yang bakal dijelasin di sini adalah file bertipe, artinya harus disebutkan dulu tipe file tersebut, apakah integer, long integer, string, char atau bahkan record. Berikut ini adalah daftar prosedur dan fungsi yang berhubungan dengan program database file bertipe (no 12 sampai 16 hanya untuk file teks).
Procedure Assign (var f, NamaFile: string);
Procedure Rewrite (var f);
Procedure Reset(var f);
Procedure Close(var f);
Procedure Write(var f, var1 [, var2, ..., varn]);
Procedure Read(var f, var1 [, var2, ..., varn]);
Function Eof(var f): Boolean;
Function FilePos(var f): longint;
Function FileSize(var f): longint;
Procedure Seek(var f, N: longint);
Procedure Truncate(var f);
Function Eoln(var f:text):boolean;
Function SeekEoln(var f:text):boolean;
Function SeekEof(var f:text):boolean;
Procedure Flush(var f:text);
Procedure SetTextBuf(var f:text, var buf[, ukuran: word]);

Penjelasannya di bawah ini:
Pengacuan suatu file melalui variabel file. Setiap ingin melakukan manipulasi atau yang lainya, harus melakukan ini dulu
Apabila file tidak ada, maka file itu akan terbentuk. Tetapi bila ada, maka isi file itu akan hilang.
Membuka file yang sudah ada, tetapi tidak menghapus isinya
Menutup suatu file (lakukan setelah setelah file itu di manipulasi)
Mengisi file dengan data. (apabila filenya bertipe text, maka writeln bisa digunakan)
Membaca isi file. (apabila filenya bertipe text, maka readln bisa digunakan untuk membaca perbaris)
Memeriksa akhir file. Hasilnya akan True bila posisinya diakhir dan False apabila tidak diakhir. Biasa digunakan untuk membaca/mengubah data.
Mengetahui posisi file sekarang. Penomoran data mulai dari 0.
Mengetahui jumlah data yang ada.
Memindahkan posisi file. Data pertama bernilai 0.
Menghapus data dari posisi sekarang sampai akhir file
Menghasilkan status akhir baris file teks. Nilainya akan true kalau diakhir baris atau Eof memberikan nilai True.
Sama seperti Eoln, tetapi spasi dan tab diabaikan.
Sama seperti Eof, tetapi mengabaikan spasi, tab ataupun tanda akhir baris
Mengosongkan penyangga (buffer) file teks yang dibuka untuk keluaran (perekaman). Prosedur ini menjamin bahwa data yang direkam benar-benar telah disimpan ke file (normalnya, data akan disimpan ke file kalau penyangga file sudah penuh)
Menentukan ukuran penyangga yang digunakan file. Dipanggil setelah assign. Semakin besar semakin cepat pemrosesannya, defaultnya 128 byte.

Bila ada tulisan var f, itu artinya variabel file. NamaFile artinya nama databasenya (bila perlu pathnya). var1 artinya variabel yang bersesuaian dengan tipe filenya. N artinya data ke-N. Bila dalam bentuk fungsi, maka ia akan mengembalikan nilai tergantung jenisnya (apabila boolean maka akan mengembalikan True atau False, bila longint akan mengembalikan angka).

Waahhh... banyak yach? emang gitulah... Bahkan ada lagi yang lain loh untuk file tak bertipe. Prosedur dan fungsi di atas gua ambil dari bukunya pak Ir. Abdul Kadir, Pemrograman Pascal. Bukunya bagus juga, ada 2 jilid tebel-tebel tapinya :D. O iya, di sini gua gak ngasih contohnya loh... abis kepanjangan kalo ditulis di sini.Untuk contoh-contoh penggunaan prosedur dan fungsi di atas bisa di lihat di Program 9.




CONTOH PROGRAM

Program 1 : menghitung luas/keliling bangunan

Yup... sekarang kita buat program yang pertama, menghitung luas dan keliling bangunan. Bangunan yang dijadikan contoh adalah segitiga. Perhatikan contoh di bawah ini:

1: Program Menghitung_Luas_dan_Keliling;
2: var alas, tinggi, sisimiring, luas, keliling: real;
3: Begin
4: writeln('MENGHITUNG LUAS DAN KELILING SEGITIGA');
5: writeln('-------------------------------------');
6: write('Masukkan alas : ');readln(alas);
7: write('Masukkan tinggi : ');readln(tinggi);
8: luas:= 0.5*alas*tinggi;
9: sisimiring:=sqrt(sqr(alas)+sqr(tinggi));
10: keliling:= alas+tinggi+sisimiring;
11: writeln;
12: writeln('luas segitiga : ', luas:0:2);
13: writeln('keliling segitiga : ', keliling:0:2);
14: readln;
15: end.

Pada baris 6 dan 7 adalah tempat memasukkan alas dan tinggi segitiga yang akan diproses di baris 8 sampai 10. Ingat kan rumus menghitung sisi miring segitiga? yaitu akar dari jumlah kuadrat sisi-sisinya. Fungsi "sqrt" adalah untuk mengakarkan dan sqr untuk mengkuadratkan.

Sekarang kebaris 12 dan 13. Apa yang beda hayoo...? betul.. setelah variabel luas dan keliling dicetak ke layar ada tambahan ":0:2". Itu artinya :banyaknya alokasi angka:jumlah desimal.

Gampangkan? iya donk, kan tinggal maen logika... :D

Program 2 : menentukan bilangan ganjil, genap dan prima

Pernah kan pas di SD kita disuruh nentuin bilangan ini ganjil apa genap, prima apa bukan. Sekarang kita jadiin program.

1: Program JenisBilangan;
2: var bil: longint;
3: begin
4: writeln('MENENTUKAN JENIS BILANGAN');
5: writeln('-------------------------');
6: write('Masukkan angka: ');readln(bil);
7: if ((bil=2) or (bil=3) or (bil=5) or (bil=7)) then
8: write('bilangan prima')
9: else if ((bil mod 2 <> 0) and (bil mod 3 <> 0) and
(bil mod 5 <> 0) and (bil mod 7 <> 0)) then
10: write('bilangan prima')
11: else write('bukan bilangan prima');
12: if bil mod 2 = 0 then
13: writeln(' dan genap')
14: else
15: writeln(' dan ganjil');
16: readln;
17: end.

Pada baris ke-7 sampai 12 adalah tempat menentukan bilangan prima atau bukan. Masih ingat kan karateristik bilangan prima? bilangan yang hanya bisa dibagi 1 dan dirinya sendiri dan juga hampir semuanya ganjil. Berhubung bilangan prima dibawah 10 adalah persyaratan untuk bilangan diatas 10 (perhatikan baris ke 7 dan 9), jadi bilangan prima dibawah 10 ditulis manual. Fungsi "mod" pada baris 9 dan 13 adalah sebagai sisa dari pembagian. Jika ditulis "7 mod 3" maka hasilnya adalah 1, artinya sisa dari 7/3 (tujuh dibagi tiga) adalah 1.

Gimana? Tinggal maen logika... kan? :P


Program 3 : menentukan bilangan terbesar (dengan if)

Ini adalah program terakhir untuk mematangkan penggunaan kondisi if. Pernah kah kalian membuat program dengan susah payah tetapi setelah ditunjukkan dengan orang lain, mereka bilang "Hanya gitu doank kerjanya?". He he he... sakit hati emang :-(, kalo bisa rasanya pengen nimpuk tu orang dengan hardisk SEAGATE BARACUDA 80 giga lima biji :)). Ini salah satu program yang panjang, tapi fungsinya... yaa... gitulah :D

1: Program BilanganTerbesar;
2: Var bil1, bil2, bil3 :real;
3: Begin
4: Write('Masukkan Bilangan Pertama : ');Readln(bil1);
5: Write('Masukkan Bilangan Kedua : ');Readln(bil2);
6: Write('Masukkan Bilangan Ketiga : ');Readln(bil3);
7: If (bil1=bil2) and (bil2=bil3) then
8: Writeln('Semua bilangan yang anda masukkan sama
besar ',bil1:0:0)
9: Else If (bil1=bil2) or (bil1=bil3) or (bil2=bil3) then
10: Begin
11: If bil1=bil2 then
12: Begin
13: Writeln('Bilangan Pertama dan Kedua Adalah Sama');
14: If Bil1 < bil3 then
15: Writeln('Bilangan Terbesar Adalah ',bil3:0:0)
16: Else
17: Writeln('Bilangan Terbesar Adalah ',bil1:0:0)
18: End
19: Else If bil1=bil3 then
20: Begin
21: Writeln('Bilangan Pertama dan Ketiga Adalah Sama');
22: If Bil1 < bil2 then
23: Writeln('Bilangan Terbesar Adalah ',bil2:0:0)
24: Else
25: Writeln('Bilangan Terbesar Adalah ',bil1:0:0)
26: End
27: Else If bil2=bil3 then
28: Begin
29: Writeln('Bilangan Kedua dan Ketiga Adalah Sama');
30: If Bil1 < bil3 then
31: Writeln('Bilangan Terbesar Adalah ',bil3:0:0)
32: Else
33: Writeln('Bilangan Terbesar Adalah ',bil1:0:0)
34: End
35: End
36: Else If bil1 > bil2 then
37: Begin
38: If bil1 > bil3 then
39: Writeln('Bilangan terbesar adalah ',bil1:0:0)
40: Else
41: Writeln('Bilangan terbesar adalah ',bil3:0:0);
42: End
43: Else If bil1 < bil2 then
44: Begin
45: If bil2 > bil3 then
46: Writeln('Bilangan terbesar adalah ',bil2:0:0)
47: Else
48: Writeln('Bilangan terbesar adalah ',bil3:0:0);
49: End;
50: readln;
51: End.

Hue he he... keren kan? dengan bermodalkan if kita bisa menentukan bilangan mana yang terbesar dari 3 bilangan yang dimasukkan. Selain itu program ini bisa mendekteksi jika ada bilangan yang sama. Yup, hanya itu intinya. Prinsip utama program ini hanya membandingkan bilangan satu dengan yang lain. Mudah bukan? lebih baik kalian ngerjain yang ini tanpa ngeliat tu program, biar logikanya jalan...

Program 4 : penggurutan angka (looping)

Pernahkah kalian dikasih nilai ulangan siswa lalu disuruh ngurutin dari yang kecil ke gede? Kalo jumlahnya dibawah 10 sih gak masalah, lah kalo ada 100 biji kan berabe... Ini solusinya:

1: Program Pengurutan;
2: var i, j: integer;
3: k : longint;
4: a: array[1..5] of longint;
5: begin
6: writeln('PROGRAM MENGGURUTKAN ANGKA');
7: writeln('--------------------------');
8: for i:=1 to 4 do
9: begin
10: write('Masukkan bilangan ke- ', i, ' : ');readln(a[i])
11: end;
12: for j:=2 to 4 do
13: begin
14: k:=a[j];
15: i:=j-1;
16: while (i>0) and (a[i]>k) do
17: begin
18: a[i+1]:=a[i];
19: i:=i-1;
20: end;
21: a[i+1]:=k
22: end;
23: for i:=1 to 4 do
24: writeln(a[i]);
25: readln;
26: end.

Hhmmm... sebenarnya gak perlu dijelasin lagi yach tu program, gua harap kalian bisa nge-trace (menelusuri) algoritma programnya. Program ini dibatasi untuk 4 angka saja, bisa diubah sesuai keinginan. Pada prinsipnya program ini memasukkan input ke dalam array, kemudian membandingkannya, bila ternyata angka sebelumnya lebih besar, maka dipindah posisinya (coba dech di trace, pasti ngerti).

Program ini berguna banget buat kalian yang hobi ngitung, apa lagi buat anak smu. Untuk pengembanganya kalian bisa menghitung mean, modus dan median


Program 5 : bintang (looping)

Setelah sebelumnya kita bermain dengan if, sekarang ke for. Program di bawah ini akan memunculkan output berupa sekumpulan bintang yang membentuk tangga

1: Program BintangTangga;
2: const akhir=18;
3: var baris, kolom: integer;
4: begin
5: for baris:=1 to akhir do
6: begin
7: for kolom:=1 to baris do
8: write('*');
9: writeln;
10: end;
11: readln;
12: end.

Coba dech dijalankan, gimana hasilnya? menarik bukan?. Sekarang kita coba menampilkan sekumpulan bintang yang membentuk kubus.

1: Program BintangKubus;
2: uses crt;
3: Var i, j, x, y:integer;
4: Begin
5: clrscr;
6: Write('Masukkan Dimensi Kubus: ');Readln(x);
7: y:=0;
8: For i:=1 to x do
9: Begin
10: for j:=1 to x do
11: Begin
12: y:=y+1;
13: write(y:4);
14: if y mod x=0 then
15: Writeln;
16: End;
17: End;
18: readkey;
19: End.

Gimana? baguskan? Sekarang tugas kamu membuat sekumpulan bintang berbentuk piramida dan berbentuk tangga terbalik (seperti program pertama di atas tetapi terbalik)


Program 6 : penggabungan program 1, 2 dan 4 dengan membuat menu (prosedur, fungsi)

Setelah dari tadi belajar logika, sekarang kita menggabungkan beberapa program sebelumnya dan dibuat menu. Untuk contoh ini kita memanfaatkan repeat.

1: Program Gabung;
2: uses crt;
3: var pilih: integer;
4: Procedure luas;
5: {copy dan paste program 1}
6: end;
7: Procedure JenisBilangan;
8: {copy dan paste program 2}
9: end;
10: Procedure Pengurutan;
11: {copy dan paste program 4}
12: End;
13: begin {program utama}
14: repeat
15: clrscr;
16: writeln(' PILIHAN');
17: writeln('-------------------------------------------');
18: writeln(' 1. Menghitung Luas');
19: writeln(' 2. Jenis Bilangan');
20: writeln(' 3. Pengurutan');
21: writeln(' 4. Exit');
22: writeln('-------------------------------------------');
23: writeln;
24: writeln;
25: write(' Pilih Angka untuk Memilih Pilihan : ');
26: readln(pilih);
27: case pilih of
28: 1 : luas;
29: 2 : JenisBilangan;
30: 3 : Pengurutan;
31: 4 : exit;
32: end;
33: until pilih = 4;
34: end.

Ngertikan prisip kerjanya? Jadi program ini hanya akan berakhir jika user memilih no 4.







Program 7 : toko (record dengan array)

Pada tutorial 5 telah dijelaskan cara penggunaan array dan record. Sekarang kita akan menggabungkan array dan record tersebut. Perhatikan program di bawah ini:

1: Program Array_dan_Record;
2: type dmhs=record
3: nrp:string[10];
4: nama:string[25];
5: alamat:string[50];
6: end;
7: var data:array[1..3] of dmhs;
8: i:integer;
9: begin
10: for i:=1 to 3 do
11: begin
12: write('nrp : ');readln(data[i].nrp);
13: write('nama : ');readln(data[i].nama);
14: write('alamat : ');readln(data[i].alamat);
15: end;
16: writeln;
17: writeln('Data ditampilkan');
18: for i:=1 to 3 do
19: begin
20: writeln('nrp : ', data[i].nrp);
21: writeln('nama : ', data[i].nama);
22: writeln('alamat : ', data[i].alamat);
23: end;
24: readln;
25: end.

Di dalam program tersebut dideklarasikan bahwa dmhs (data mahasiswa) itu adalah record yang mempunyai field nrp, nama dan alamat (lihat baris 2 sampai 6). Selanjutnya variabel data dideklarasikan bertipe dmhs yang berbentuk array (baris ke 7). Kemudian seperti biasa untuk memasukkan data ke field digunakan "readln(data[i].nrp)", dst (baris 10 sampai 15). Untuk menampilkannya bisa dilihat dibaris ke 18 sampai 23.



Program 8 : Operasi String

Yang ini sebenarnya program tambahan, habis program-program sebelumnya kan kebanyakan bermain logika matematik (tentang angka melulu). Ehh... dipikir-pikir, operasi tentang string kok gak ada? Tenaaannggg.... sekarang udah ada kok :p

1: var nama : string;
2: urutan, posisi: integer;
3: begin
4: nama:='Dijas Keren';
5: writeln('Yang ini delete');
6: for urutan:=1 to 11 do
7: begin
8: posisi:= 13 - urutan;
9: delete(nama, posisi, 1);
10: writeln(nama);
11: end;
12: writeln;
13: nama:='DijasKeren';
14: writeln('Yang ini insert');
15: writeln('Sebelum di Insert : ', nama);
16: insert('-', nama, 6);
17: writeln('Setelah di Insert : ', nama);
18: readln;
19: end.

Outputnya seperti di bawah ini

Yang ini delete
Dijas Keren
Dijas Kere
Dijas Ker
Dijas Ke
Dijas K
Dijas
Dijas
Dija
Dij
Di
D

Yang ini insert
Sebelum di Insert : DijasKeren
Setelah di Insert : Dijas-Keren

Jadi isi penggunaan delete itu => delete(string, posisinya, jumlah yang di hapus). Sedangkan insert => insert(yang mau disisipkan, string, posisinya). Gampang kan? Dengan ini bisa dibuat kayak Program 5 loh (tentang bintang).

Bagaimana jika suatu saat kamu pengen ngerubah string jadi numerik atau numerik jadi string?
str(angkanya:desimal yang diambil, variabel string tempat hasilnya disimpan)
prosedur ini untuk mengubah numerik ke string
val(string, variabel numerik tempat hasilnya disimpan, posisi salah)
prosedur ini untuk mengubah string ke numerik. Khusus posisi salah, yang dideteksi adalah posisi salah yang pertama (walaupun ada 5 biji yang salah, yang ke tangkap yang pertama)
Concat(string, string, string) : string
Yang ini untuk menggabungkan string, ini fungsi loohh.. jadi hasil penggabungannya ditampung di Concat

Ini program terakhir tentang operasi string, program pembalik kata

1: program pembalik_kata;
2: var kata,hasil,tmp:string; i:integer;
3: begin
4: write('Kata : ');readln(kata);
5: hasil:='';
6: for i :=length(kata) downto 1 do
7: begin
8: tmp:=copy(kata,i,1);
9: hasil:=hasil+tmp;
10: end;
11: write('Dibalik ',hasil);
12: readln;
13: end.

Di program ini ada dua fungsi operasi string baru yang digunakan.
length(string) : integer
Fungsi ini untuk menghitung panjang atau jumlah karakter.
copy(string, posisinya, jumlah yang akan diambil)
Fungsi ini untuk mengambil sejumlah huruf dari sting yang dimasukkan
Pos(string/huruf yang akan dicari posisinya, string awal):byte
Fungsi ini untuk mengetahui posisi dari string/huruf dari kata/kalimat yang dimaksud. Bila bernilai nol berarti nilai string yang dicari tidak ada.


Program 9 : Contoh penggunaan teori di tutor 6

Program database ini adalah contoh-contoh penggunaan fungsi dan prosedur dari Tutorial 6. Perhatikan contoh berikut:

1: Program BuatFile;
2: var fText : text; data: string;
3: begin
4: writeln('MENGISI DATA');
5: writeln('------------');
6: assign(fText, 'nama.txt');
7: rewrite(fText); {gunakan reset(fText) bila file sudah ada}
8: writeln(fText, 'dijas');
9: writeln(fText, 'dian');
10: writeln(fText, 'cecep');
11: close(fText);
12: readln;
13: end.

Prosedur yang digunakan di atas adalah prosedur no. 1 sampai 5 yang ada di Tutorial 6. Untuk membaca databasenya gunakan reset (jangan rewrite) dan gunakan prosedur no 6. Perhatikan contoh di bawah ini:

assign(fText, 'bil.dat');
reset(fText);
read(fText, data);
writeln(data);

Sekarang kita gunain fungsi nomor 7 yachh... Fungsi ini biasa digunakan untuk membaca data yang ada dari awal/posisi tertentu sampai akhir. eof kepanjangan end of file

while not eof(fText) do
begin
readln(fText, data);
writeln(data);
end;

Bagaimana caranya jika ingin mengedit data yang sudah ada? Gunakan prosedur seek, perintahnya: Seek(fText, filesize(fText));. Setelah menempatkan kursor ditempat yang diinginkan, gunakan perintah write untuk mengedit atau prosedur Truncate untuk menghapus (perintahnya Truncate(fText)). Tapi hati-hati mengunakan Truncate, soalnya mulai dari posisi yang dimaksud sampai akhir file akan dihapus. Fungsi dan prosedur lainnya bisa dicoba-coba sendiri yaaa....

Huuff... akhirnya kelar juga ngebahas dasar-dasar pascal. Kalo kalian udah paham seluruh tutorial dan program yang ada di sini, berarti kalian sudah melewati level basic. Untuk pengembangannya coba cari program-program open source, terutama mengenai database. Selamat mencoba.…

Sejarah Valentine - Kisah Pengorbanan Pendeta Baik Hati




Di berbagai belahan dunia, orang beramai-ramai mengamini bahwa tanggal 14 Februari adalah hari Velentine. Di Indonesia pun, para warganya turut menyambut gembira datangnya hari kasih sayang ini, meskipun sebenarnya mereka tak tahu pasti mengapa harus ikt merayakan hari tersebut.
Bukankah untuk menunjukkan rasa sayang kita terhadap teman, kekasih ataupun keluarga kita tak perlu menunggu datangnya tanggal 14 februari, kita bisa menunjukkannya setiap hari. Kita juga tak perlu mengeluarkan uang banyak untuk membeli coklat, bunga dan pernak-pernik lainnya untuk menunjukkan rasa sayang kita, cukup dengan perhatian yang tulus.
Terlepas dari itu semua, marilah kita kupas secara detail keistimewaan hari Valentine yang kedatangannya selalu membuat dunia menjadi serba merah muda. Beberapa para ahli mengatakan bahwa asal mula Valentine itu berkaitan dengan St. Valentine. Ia adalah seorang pria Roma yang menolak melepaskan agama Kristen yang diyakininya.
Ia meninggal pada 14 Februari 269 Masehi, bertepatan dengan hari yang dipilih sebagai pelaksaan ‘undian cinta’. Legenda juga mengatakan bahwa St. Valentine sempat meninggalkan ucapan selamat tinggal kepada putri seorang narapidana yang bersahabat dengannya. Di akhir pesan itu, ia menuliskan : “Dari Valentinemu”.
Sementara itu sebuah cerita lain mengatakan bahwa Saint Valentine adalah seorang pria yang membaktikan hidupnya untuk melayani Tuhan di sebuah kuil pada masa pemerintahan Kaisar Claudius. Ia dipenjarakan atas kelancangannya membantah titah sang kaisar. Baru pada tahun 496 Masehi, pendeta Gelasius menetapkan 14 Februari sebagai hari penghormatan bagi Valentine.
Akhirnya secara bertahap 14 Februari menjadi hari khusus untuk bertukar surat cinta dan St. Valentine menjadi idola para pecinta. Datangnya tanggal itu ditandai dengan pengiriman puisi cinta dan hadiah sederhana, semisal bunga. Sering juga untuk merayakan hari kasih sayang ini dilakukan acara pertemuan besar atau bahkan permainan bola.
Di AS, Miss Esther Howland tercatat sebagai orang pertama yang mengirimkan kartu valentine pertama. Acara Valentine mulai dirayakan besar-besaran semenjak tahun 1800 dan pada perkembangannya, kini acara ini menjadi sebuah ajang bisnis yang menguntungkan.
Perlahan semarak hari kasih sayang ini merebak keluar dan menular pada masyarakat di seluruh dunia dibumbui dengan versi sentimentak tentang makna valentine itu sendiri. Bahkan anak-anak kecil pun tertular dengan wabah ini, mereka saling berkirim kartu dengan teman-temannya di sekolah untuk menunjukkan rasa sayang mereka.
Sejarah Hari Valentine
Asal mula hari Valentine tercipta pada jaman kerajaan Romawi. Menurut adat Romawi, 14 Februari adalah hari untuk menghormati Juno. Ia adalah ratu para dewa dewi Romawi. Rakyat Romawi juga menyebutnya sebagai dewi pernikahan. Di hari berikutnya, 15 Februari dimulailah perayaan ‘Feast of Lupercalia.’
Pada masa itu, kehidupan belum seperti sekarang ini, para gadis dilarang berhubungan dengan para pria. Pada malam menjelang festival Lupercalia berlangsung, nama-nama para gadis ditulis di selembar kertas dan kemudian dimasukkan ke dalam gelas kaca. Nantinya para pria harus mengambil satu kertas yang berisikan nama seorang gadis yang akan menjadi teman kencannya di festival itu.
Tak jarang pasangan ini akhirnya saling jatuh cinta satu sama lain, berpacaran selama beberapa tahun sebelum akhirnya menikah. Dibawah pemerintahan Kaisar Claudius II, Romawi terlibat dalam peperangan. Claudius yang dijuluki si kaisar kejam kesulitan merekrut pemuda untuk memperkuat armada perangnya.
Ia yakin bahwa para pria Romawi enggan masuk tentara karena berat meninggalkan keluarga dan kekasihnya. Akhirnya ia memerintahkan untuk membatalkan semua pernikahan dan pertunangan di Romawi. Saint Valentine yang saat itu menjadi pendeta terkenal di Romawi menolak perintah ini.
Ia bersama Saint Marius secara sembunyi-sembunyi menikahkan para pasangan yang sedang jatuh cinta. Namun aksi mereka diketahui sang kaisar yang segera memerintahkan pengawalnya untuk menyeret dan memenggal pendeta baik hati tersebut.
Ia meninggal tepat pada hari keempat belas di bulan Februari pada tahun 270 Masehi. Saat itu rakyat Romawi telah mengenal Februari sebagai festival Lupercalia, tradisi untuk memuja para dewa. Dalam tradisi ini para pria diperbolehkan memilih gadis untuk pasangan sehari.
Dan karena Lupercalia mulai pada pertengahan bulan Februari, para pastor memilih nama Hari Santo Valentinus untuk menggantikan nama perayaan itu. Sejak itu mulailah para pria memilih gadis yang diinginkannya bertepatan pada hari Valentine.
Kisah St. Valentine
Valentine adalah seorang pendeta yang hidup di Roma pada abad ketiga. Ia hidup di kerajaan yang saat itu dipimpin oleh Kaisar Claudius yang terkenal kejam. Ia sangat membenci kaisar tersebut, dan ia bukan satu-satunya. Claudius berambisi memiliki pasukan militer yang besar, ia ingin semua pria di kerajaannya bergabung di dalamya.
Namun sayangnya keinginan ini bertepuk sebelah tangan. Para pria enggan terlibat dalam perang. Karena mereka tak ingin meninggalkan keluarga dan kekasihnya. Hal ini membuat Claudius sangat marah, ia pun segera memerintahkan pejabatnya untuk melakukan sebuah ide gila.
Ia berfikir bahwa jika pria tak menikah, mereka akan dengan sennag hati bergabung dengan militer. Lalu Claudius melarang adanya pernikahan. Para pasangan muda menganggap keputusan ini sangat tidak manusiawi. Karena menganggap ini adalah ide aneh, St. Valentine menolak untuk melaksanakannya.
Ia tetap melaksanakan tugasnya sebagai pendeta, yaitu menikahkan para pasangan yang tengah jatuh cinta meskipun secara rahasia. Aksi ini diketahui kaisar yang segera memberinya peringatan, namun ia tak bergeming dan tetap memberkati pernikahan dalam sebuah kapel kecil yang hanya diterangi cahaya lilin, tanpa bunga, tanpa kidung pernikahan.
Hingga suatu malam, ia tertangkap basah memberkati sebuah pasangan. Pasangan itu berhasil melarikan diri, namun malang ia tertangkap. Ia dijebloskan ke dalam penjara dan divonis mati. Bukannya dihina, ia malah dikunjungi banyak orang yang mendukung aksinya. Mereka melemparkan bunga dan pesan berisi dukungan di jendela penjara.
Salah satu dari orang-orang yang percaya pada cinta itu adalah putri penjaga penjara. Sang ayah mengijinkannya untuk mengunjungi St. Valentine di penjara. Tak jarang mereka berbicara selama berjam-jam. Gadis itu menumbuhkan kembali semangat sang pendeta itu. Ia setuju bahwa St. Valentine telah melakukan hal yang benar.
Di hari saat ia dipenggal,14 Februari, ia menyempatkan diri menuliskan sebuah pesan untuk gadis itu atas semua perhatian, dukungan dan bantuannya selama ia dipenjara. Diakhir pesan itu, ia menuliskan : “Dengan Cinta dari Valentinemu.”
Pesan itulah yang kemudian merubah segalanya. Kini setiap tanggal 14 Februari orang di berbagai belahan dunia merayakannya sebagai hari kasih sayang. Orang-orang yang merayakan hari itu mengingat St. Valentine sebagai pejuang cinta, sementara kaisar Claudius dikenang sebagai seseorang yang berusaha mengenyahkan cinta.


Tradisi Valentine


– Selama beberapa tahun di Inggris, banyak anak kecil di dandani layaknya anak dewasa pada hari Valentine. Mereka berkeliling dari rumah ke rumah sambil bernyanyi.
– Di Wales, para pemuda akan menghadiahkan sendok kayu pada kekasihnya pada hari kasih sayang itu. Bentuk hati dan kunci adalah hiasan paling favorit untuk diukir di atas sendok kayu tersebut.
– Pada jaman Romawi kuno, para gadis menuliskan namanya di kertas dan memasukkan ke dalam botol. lalu para pria akan mengambil sah satu kertas tersebut untuk melihat siapakan yang akan menjadi pasangan mereka dalam festifal tersebut.
– Di Negara yang sama, para gadis akan menerima hadiah berupa busana dari para pria. Jika ia menerima hadiah tersebut, ini pertanda ia bersedia dinikahi pria tersebut.
– Beberapa orang meyakini bahwa jika mereka melihat robin melayang di udara saat hari Valentine, ini berarti ia akan menikah dengan seorang pelaut. Sementara jika seorang wanita melihat burung pipit, maka mereka akan menikah dengan seorang pria miskin. Namun mereka akan hidup bahagia. Sementara jika mereka melihat burung gereja maka mereka akan menikah dengan jutawan.
– Sebuah kursi cinta adalah kursi yang lebar. Awalnya kursi ini dibuat untuk tempat duduk seorang wanita (jaman dahulu wanita mengenakan busana yang sangat lebar). Belakangan kursi cinta dibuat untuk tempat duduk dua orang. dengan cara ini sepasang kekasih bisa duduk berdampingan.
– Pikirkan lima atau enam nama pria (jika anda wanita) atau lima atau enam nama wanita (jika anda pria) yang ingin anda nikahi. Lalu putralah setangkai apel sambil menyebut nama tersebut satu persatu. Anda akan menikah dengan nama yang anda sebut saat tangkai tersebut lepas dari buahnya.
– Petiklah sekuntum bungan dandelion yang tengah mengembang. Tiuplah putik-putik pada bunga tersebut, lalu hitunglah putik yang tersisa. Itu adalah jumlah anak yang akan anda miliki setelah menikah.
– Jika anda memotong sebuah apel pada tengahnya dan menghitung jumlah biji di dalamnya, ini juga bisa menunjukkan jumlah anak yang akan anda miliki setelah menikah.

Resep 10 tip sukses




***Satu*, bersyukurlah atas hari ini. “Just to be alive is a grand thing,” kata Agatha Christie, salah satu novelis detektif terkemuka. Jauhkanlahperasaan depresi dan sedih tanpa juntrungan. Jalani setiap hari dengan hati penuh syukur. Ingatlah akan Bill Porter. Kalau dia bisa jadi seorangsalesman berhasil, apapun yang Anda inginkan sebenarnya pasti bisa tercapai.


***Dua*, belajarlah seakan-akan Anda akan hidup selamanya, hiduplah seakan-akan Anda akan mati besok. Mohandas Gandhi pernah berkata demikian, “Live as if you were to die tomorrow, learn as if you were to live forever.” Belajar terus, upgrade diri terus dengan berbagai cara baik yang memerlukan effort maupun effortlessly.

***Tiga,* setiap ketrampilan pasti ada penggunanya. Ini saya dapat dari salah satu sahabat saya seorang wanita blonda dari San Diego.Sahabat saya Crystal ini pernah membesarkah hati saya, “There are all kinds of writers, there are all kinds of readers.” Ketika saya down karena merasa incompetent bertarung dengan penulis-penulis lokal di sini, Crystal mengingatkan bahwa setiap jenis penulis pasti ada pembacanya(niche). Find your niche, so you find your place in the world.

***Empat*, bukalah jalan sendiri, orisinil. Ralph Waldo Emerson once said, “Do not go where the path may lead, go instead where there is no path and leave a trail.”

***Lima,* belajar mencintai apa yang Anda punyai, bukan berangan-angan akan apa yang Anda tidak miliki. Use whatever you have at hand, impian hanya akan menjadi nyata kalau Anda menggunakan instrumen yang kasat mata saat ini juga.

***Enam*, lihat apa yang kelihatan dan lihat apa yang belum kelihatan. Gunakan visi dan misi untuk mengenal apa yang Anda tuju. Seringkali, apa yang belum kelihatan adalah blue print untuk sukses Anda. Begitu kelihatan, ia akan menjadi semacam de ja vu.

***Tujuh*, telan kepahitan hidup dan bersiap-siaplah dalam menyongsong hari baru. Setiap hari adalah hari baru. Bangunlah tiap pagi dengan hati yang curious akan apa yang akan Anda alami hari itu. Be excited, be courageous to start the day.

***Delapan,* semakin banyak Anda memberi, semakin banyak Anda akan menerima. The more you give, the more you get in return. Dalam marketing, ini mungkin disebut sebagai taktik public relations atau publicity. Namun, dalam kehidupan sehari-hari, ini juga berlaku tanpa diselipi dengan iming-iming tertentu. Saya sendiri sudah membuktikannya. Semakin banyak kita memberi (dalam arti luas, tidak terbatas uang dan materi), semakin besar penghargaan dan berkat yang kita terima.


***Sembilan*, jadilah mentor diri sendiri. What would Oprah do? Itu yang saya pakai sebagai ukuran. Saya tidak memilih Nabi atau pembesar negara, namun seorang wanita berkulit berwarna yang telah membalikkan nasibnya sendiri menjadi salah satu orang berpengaruh di dunia.

***Sepuluh*, saya eksis dengan maupun tanpa tubuh saya. Setidak-tidaknya sekali sehari, saya mengingatkan diri sendiri bahwa hidup ini bukanlah untuk selamanya. Maka berbuatlah terbaik pada saat ini juga. Jangan tunggu-tunggu lagi. “Just do it,” kata Cher di Farewell Concertnya beberapa tahun yang lampau. I do my best every chance I have. Berbuatlah terbaik di setiapkesempatan, karena itu mungkin yang terakhir.
Ingatlah sukses bukanlah tujuan, bukan pula perjalanan. Sukses adalah mindset. Bukan hanya cogito er go sum (saya berpikir maka saya ada), namun sum ego prosperitas (sukses adalah saya).