Kamis, 23 Oktober 2008

JURNAL PENYESUAIAN


Tetapi perlu Anda ingat, bahwa biasanya pada akhir periode belum semua akun saldonya telah mencerminkan jumlah yang sebenarnya (riil). Begitu juga akun pendapatan dan beban, juga belum menunjukkan jumlah pendapatan dan beban selama periode yang bersangkutan. Mengapa demikian? Karena selama berjalannya waktu telah terjadi perubahan, tetapi perubahan tersebut belum dicatat. Jadi saldo akun masih bersifat sementara.

Contohnya :
• Perlengkapan.
Selama satu periode telah terjadi pemakaian perlengkapan, tetapi pemakaian itu belum dicatat, maka saldo akun tersebut perlu disesuaikan pada akhir periode sehingga mencerminkan jumlah yang sebenarnya.

• Aktiva Tetap.
Pemakaian aktiva tetap (penyusutan) selama satu periode mengurangi nilai buku aktiva tetap yang bersangkutan, yang sebenarnya dicatat sebagai beban penyusutan, serta menambah akun akumulasi penyusutan untuk aktiva tetap yang bersangkutan.

• Beban/biaya dibayar di muka.
Selama waktu berjalan jumlah biaya berkurang tetapi pengurangannya belum dicatat seperti: asuransi dibayar di muka, sewa dibayar di muka, iklan dibayar di muka. Sebaliknya beban yang masih harus dibayar, seperti: beban gaji, pajak, bunga dan lainnya.

• Pendapatan/Beban.
Yang dicatat dalam akun merupakan pendapatan/beban periode yang bersangkutan. Bila jumlah tersebut mencakupi jumlah untuk periode yang berikutnya, pendapatan perlu dikurangkan. Sebaliknya bila ada pendapatan/beban periode bersangkutan, tetapi belum diperhitungkan maka pendapatan perlu ditambahkan.
Agar saldo akhir sesuai dengan saldo yang sesungguhnya (riil) jumlah pendapatan dan beban sesuai dengan jumlah pendapatan dan beban periode yang bersangkutan, perlu diinventarisasi data akhir periode yang dijadikan sebagai dasar penyesuaian (adjustmen). Pencatatan penyesuaian dalam bentuk jurnal umum ini disebut juga dengan jurnal penyesuaian.


1. Pengertian Jurnal Penyesuaian
Jurnal penyesuaian adalah jurnal yang dibuat dalam proses pencatatan perubahan saldo dalam akun sehingga saldo mencerminkan jumlah yang sebenarnya.
Dari informasi di atas, dapat ditarik kesimpulan fungsi jurnal penyesuaian adalah sebagai berikut:
1. Menentapkan saldo catatan akun buku besar pada akhir periode sehingga sesuai dengan saldo riil (yang sesungguhnya).
2. Menghitung pendapatan dan beban selama periode yang bersangkutan.
Anda perhatikan catatan berikut ini!
Akun yang biasa memerlukan penyesuaian pada akhir periode adalah:
• Akun perlengkapan, karena pemakaian.
• Akun beban dibayar di muka, karena waktu telah dijalani/jatuh tempo.
• Akun aktiva tetap, karena penyusutan aktiva.
• Akun pendapatan, karena ada pendapatan yang belum diperhitungkan atau penerimaan yang belum menjadi pendapatan.
• Akun beban, karena ada beban yang belum diperhitungkan atau pembayaran yang belum menjadi beban.
• Akun pendapatan diterima di muka, karena berjalannya waktu atau diserahkannya prestasi pada pelanggan.

2. Cara membuat Ayat Jurnal Penyesuaian
Contoh, akun yang memerlukan penyesuaian dan cara membuat ayat jurnal penyesuaian. Perhatikan baik-baik supaya Anda bisa memahaminya.
1. Akun perlengkapan menunjukkan saldo sementara Rp.500.000,00.
Data akhir periode: Perlengkapan masih ada senilai Rp.100.000,00
Analisis:
Akun perlengkapan (saldonya di debet).
Maka dihitung jumlah yang habis terpakai atau yang telah menjadi beban, yaitu Rp.500.000,00 - Rp.100.000,00 = Rp.400.000,00. Kemudian catatlah dalam akun beban perlengkapan debet Rp.400.000,00 dan kurangi jumlah akun perlengkapan sejumlah Rp.400.000,00 seterusnya dicatat di sisi kredit.
Jurnal penyesuaiannya adalah:
Beban Perlengkapan Rp.400.000,00
Perlengkapan Rp.400.000,00

2. Akun Asuransi dibayar di muka menunjukkan saldo sementara Rp.360.000,00.
Data akhir periode: Jumlah Asuransi yang telah jatuh tempo adalah Rp.120.000,00 yaitu untuk 4 bulan.
Analisis:
Akun Asuransi dibayar di muka (saldonya di debet), dicatat sebagai harta. Yang dicatat untuk penyesuaian adalah berapa jumlahnya yang sudah menjadi beban (yaitu sejumlah 17 yang sudah jatuh tempo/sudah dijalani). Yang disebut beban asuransi sebesar Rp.120.000,00 di sisi debet. Kemudian dicatat pada akun Asuransi dibayar di muka dikurangkan Rp.120.000,00 dicatat di sisi kredit. Jurnal penyesuaiannya adalah:
Beban Asuransi Rp.120.000,00
Asuransi dibayar di muka Rp.120.000,00

3. Akun Peralatan menunjukkan saldo Rp.3.000.000,00.
Akhir periode: Peralatan disusutkan 10 %.
Analisis:
Akun Peralatan (saldo debet).
Penyusutan Peralatan 10% x Rp.3.000.000,00 = Rp.300.000,00 dicatat sebagai Beban Penyusutan Peralatan, di sisi debet. Kemudian dicatat ke dalam akun Akumulasi Penyusutan Peralatan Rp.300.000,00 di sisi kredit untuk menampung setiap penyusutan peralatan tiap tahunnya. Jurnal penyesuaiannya adalah:
Beban Penyusutan Peralatan Rp.300.000,00
Akumulasi Penyusutan Peralatan Rp.300.000,00

4. Akun Pendapatan Jasa menunjukkan jumlah Rp.1.800.000,00.
Akhir periode: Dari jumlah pendapatan tersebut Rp.200.000,00 layanan kepada langganan belum dikerjakan.
Analisis:
Akun Pendapatan Jasa (saldo kredit).
Jumlah pendapatan yang belum menjadi pendapatan adalah Rp.200.000,00 karena pekerjaan/layanan kepada langganan belum dikerjakan. Jadi kurangkan akun Pendapatan Jasa Rp.200.000,00 dan dicatat di sisi debet. Kemudian catatlah ke dalam akun Pendapatan diterima di muka Rp.200.000,00 di sisi kredit, karena dianggap sebagai utang. Jurnal penyesuaiannya adalah:
Pendapatan Jasa Rp.200.000,00
Pendapatan diterima di muka Rp.200.000,00

5. Akun Beban Iklan menunjukkan jumlah Rp.250.000,00.
Akhir periode: Iklan yang dibayar untuk 10 kali pemasangan, sampai akhir periode baru terpasang 6 kali.
Analisis:
Akun Beban Iklan (saldo debet).
Dicatat sebagai beban, sedangkan yang dicatat untuk penyesuaian adalah berapa yang belum menjadi beban. Beban iklan yang belum terpasang adalah 4 x Rp.25.000,00 = 100.000,00 dicatat ke dalam akun Iklan dibayar di muka di debet Rp.100.000,00 dan kurangkan akun Beban Iklan Rp.100.000,00 dicatat di sisi kredit. Jurnal penyesuaiannya adalah:
Iklan dibayar di muka Rp.100.000,00
Beban Iklan Rp.100.000,00

6. Akun Sewa diterima di muka jumlahnya Rp.300.000,00.
Akhir periode: Jumlah sewa untuk 6 bulan, telah diterima sejak 1 September 1999.
Analisis:
Akun Sewa diterima di muka (saldo debet), dicatat sebagai Utang.
Yang diperhitungkan dalam penyesuaian akhir periode adalah jumlah yang benar-benar sudah merupakan pendapatan adalah 4 bulan (1 September s.d. 31 Desember 1999), yaitu 4/6 x Rp.300.000,00 = Rp.200.000,00. Jadi kurangkan akun Sewa diterima di muka Rp.200.000,00 dicatat di sisi debet dan akun Pendapatan Sewa Rp.200.000 di sisi kredit, karena jumlah tersebut sudah benar-benar merupakan pendapatan. Jurnal penyesuaiannya adalah:
Pendapatan diterima di muka Rp.200.000,00
Pendapatan Sewa Rp.200.000,00

Jumat, 17 Oktober 2008

Minggu, 14 September 2008

Pemrosesan Transaksi Berbasis Komputer

Pemrosesan Transaksi Berbasis Komputer

Penginputan data ke dalam sistem informasi dapat melalui beragam cara:
  • dengan merekam data ke dalam sebuah formulir
  • dengan menginputkan data langsung ke dalam computer
  • dengan sms
  • dengan menginputkan data di internet
  • dengan barcode scanner
  • scanner yang lain

Dokumen Input

Dokumen input adalah formulir atau dokumen sumber, yang datanya akan diinputkan ke dalam sistem informasi. Contoh adalah dokumen penjualan.

Fungsi dokumen input:
  • sarana untuk mengotorisasi suatu transaksi
  • sarana untuk memicu tindakan yang diharapkan (missal, memicu konsumen untuk membayar)
  • refleksi akuntabilitas
  • menyediakan data untuk membuat laporan

Desain dokumen input yang baik:

  • judul yang bermakna
  • marjin
  • ukuran font
  • warna
  • berat kertas
  • nomor urut tercetak untuk dokumen yang sensitif

Tampilan layar komputer untuk entry data yang baik:

  • warna yang nyaman di mata user
  • memudahkan user dalam menginput data
  • perhitungan otomatis
  • kursor otomatis berpindah ke elemen data yang mesti diinput oleh user
  • pesan kesalahan yang mudah dipahami
  • menu help yang tersedia untuk membantu user

Proses

Pemrosesan Input:

  • off line (biasanya data diinputkan secara batch). Pemrosesan secara batch relative lebih murah dibandingkan dengan pemrosesan secara online
  • on line

Dokumentasi Proses

  • System flowcharts
  • Computer system flowcharts
  • (lihat yang sistem object)

Alternatif pendekatan pemrosesan data:

  • Periodic processing approach (sistem batch)
    · Sequential updating from batched input
    · Sequential updating after online data entry
    · Direct updating
  • Immediate processing approach (real time processing)

Perbandingan antara periodic processing approach dan immediate processing approach.

Periodic processing approach
Keuntungan:
meningkatkan efisiensi pemrosesan data, khususnya pada saat perusahaan mesti memproses batch yang sangat besar
memungkinkan pengendalian menggunakan total batch untuk menjamin keakuratan dan kelengkapan data yang diproses.
pemanfaatan computer hardware dan software secara ekonomis

Kelemahan:
data dalam master file adakalanya out of date
jika ada kesalahan dalam transaksi maka koreksi atas kesalahan akan tertunda, dan pembetulan mesti menunggu sampai siklus proses berikutnya tiba

Immediate processing approach
Keuntungan:
mampu menyediakan informasi yang uptodate
transaksi dapat segera diedit pada saat transaksi direkam, koreksi atas kesalahan dapat langsung dilakukan tanpa delay

Kelemahan:
membutuhkan hardware dan software yang cukup canggih
sistem yang lebih kompleks
lebih sulit dan lebih kompleks dalam membangun jejak audit

Manajemen Data

Aktivitas utama sebuah sistem informasi adalah transformasi data. Untuk mencapai tujuan tersebut, data mesti direkam, disimpan, diupdate, dimodifikasi, dipanggil ulang –
atau dengan kata lain, dikelola. Data, tidak memiliki nilai (tidak bermanfaat) jika data tersebut tidak terorganisir dengan baik.

Model Data
  • Orientasi File
  • Orientasi Database (yang saat ini banyak diterapkan)

ORIENTASI FILE
Hirarki data dalam Model Data orientasi File: Elemen data – Record – File

Tipe file:
  • Master file (berisi record mengenai suatu entitas, misal: produk, konsumen)
  • Transaction File (memuat record mengenai suatu kejadian, seperti penjualan)
  • History File (memuat record mengenai transaksi masa lalu, archive file)
  • Reference File (table yang berisi data yang diperlukan dalam kalkulasi, seperti table harga produk).

ORIENTASI DATABASE

Hirarki data dalam Database: Elemen Data – records – Tabel – Database

Dokumentasi data dalam sistem database:

  • Kamus data (data dictionary). Kamus data memuat informasi mengenai elemen data yang ada di dalam database. Kamus data menyimpan informasi mengenai nama elemen data (field), deskripsi data tersebut, ukuran field, type data, sumber data, dan lain sebagainya.
  • Diagram Entity – Relationship. Diagram ini merupakan diagram model data secara konseptual yang menggambarkan entitas dan kaitan antar entitas secara grafis.

Perbandingan Pendekatan Orientasi File dan Orientasi Database

DATA REDUNDANCY
Data yang redundan dapat menyebabkan informasi yang tidak reliable dan mengurangi efisiensi. Peluang terjadinya redundansi data lebih tinggi dalam sistem File.

DATA CONSISTENCY AND STANDARDIZATION
Data yang konsisten akan menghasilkan informasi yang reliable dan meningkatkan efisiensi. Dalam Sistem File, setiap aplikasi memiliki file sendiri-sendiri. Oleh karena itu butuh usaha lebih untuk standardisasi data dan koordinasi data. Data dalam sistem database lebih konsisten dan lebih terstandardisasi.

DATA SHARING DAN INTEGRASI
Data sharing akan mengurangi kebutuhan media penyimpanan. Selain itu, data sharing akan memperkaya informasi yang dihasilkan. Dalam Sistem File, integrasi informasi dari beberapa file membutuhkan pemrosesan lebih lanjut. Derajat sharing lebih tinggi dalam sistem Database dibandingkan sistem File.

DATA ACCESSIBILITY
Semakin mudah akses terhadap data, semakin beragam pengguna yang dapat memanfaatkan informasi dari data tersebut. Dalam sistem Database, data yang tersentral memudahkan akses terhadap data. Derajat askesibilitas dalam sistem File lebih rendah.

DATA FLEXIBILITY
Fleksibilitas memudahkan modifikasi terhadap aplikasi. Fleksibilitas dalam sistem Database lebih tinggi, karena organisasi dan manajemen data independent dari aplikasi.

DATA SECURITY
Data sebagai sumber daya perlu diproteksi, untuk menjamin keamanan dan integritas data. Data dalam database relatif lebih rentan dibandingkan dalam sistem File. Peluang untuk kehilangan seluruh data lebih tinggi dalam sistem Database dibandingkan sistem File. Namun, sistem pengamanan dalam DBMS dan sistem backup cukup andal untuk membantu menjaga integritas database.

DATA CAPTURE DAN ENTRY
Sarana perekaman data yang efisien akan meningkatkan keakuratan data dan pengurangan biaya. Dalam sistem File, karena setiap aplikasi mengakses file mereka sendiri-sendiri, ada kalanya satu data yang sama perlu direkam lebih dari satu kali.

Data Flow Diagram

Data Flow Diagram ~ Sarana Dokumentasi Data dan Pemrosesan Data
Logical DFD (Data Flow Diagram Logika)
Logical DFD menekankan pada data tertentu dan apa yang dilakukan terhadap data tersebut

Simbol dalam DFD:

  • Simbol Entitas (segiempat)
  • Simbol Proses (lingkaran)
  • Simbol simpanan data (dua garis sejajar)
  • Simbol aliran data (anak panah)

Konteks Diagram adalah level logical DFD yang paling puncak.
Diagram level zero adalah pecahan dari konteks diagram). Setiap proses dalam diagram level zero ini, akan diberi nomor 1, 2 dan seterusnya.
Level one diagram adalah pecahan dari proses 1, 2 (dst) yang tergambar dalam diagram level zero. Setiap subproses ini akan diberi nomor, 1.1 atau 1.2 dan seterusnya.

Untuk lebih jelas tentang DFD, silahkan baca buku yang mengulas tentang DFD ….. buku apapun, silahkan dibawa untuk diskusi besok Selasa.

SOAL SATU

Rancanglah layout record Master File Mahasiswa (cukup sebutkan nama field, ukuran field dan tipe data). Minimal 10 elemen data (atau field).

SOAL DUA

Tentukan, apakah elemen data (field) berikut ini, akan muncul dalam Master File atau Transaction File, ataukah kedua nya. Jangan lupa, sebutkan, nama File (nama Tabel) nya, di sebelah kanan elemen data tersebut. Lihat contoh, untuk soal 1 (field tanggal ada dalam file transaksi, nama filenya Tabel Penjualan).

  1. Tanggal ~ Transaction File ~ Tabel Penjualan
  2. Saldo rekening
  3. Nomor rekening
  4. Jumlah pembayaran
  5. Nama konsumen
  6. Lokasi penjualan
  7. Nomor telepon
  8. Deskripsi produk
  9. Kode produk
  10. Alamat konsumen
  11. Nomor faktur penjualan
  12. Limit kredit
  13. Nama pemasok
  14. Kuantitas di tangan
  15. Jumlah penjualan per faktur
  16. Kode pemasok
  17. Kuantitas diterima

Keamanan atas Sistem Pendukung Pemrosesan Informasi

Keamanan atas Sistem Pendukung Pemrosesan Informasi

PENGENDALIAN ATAS SUMBER DAYA PERUSAHAAN

  • Proteksi dari akses oleh pihak yang tidak berwenang
  • Proteksi dari bencana alam
  • Proteksi dari breakdowns dan interupsi bisnis
  • Pengawasan atas keamanan perusahaan (audit)


PROTEKSI DARI AKSES OLEH PIHAK YANG TIDAK BERWENANG

  • Satpam
  • Resepsionis
  • Teralis
  • Lampu penerangan
  • Alarm pencuri
  • Alarm kebakaran
  • Alarm untuk mengawasi gerakan
  • Pintu yang terkunci
  • Monitor televisi
  • Brankas
  • Kas register yang terkunci
  • Logs dan register
  • Asuransi atas harta organisasi
  • Batasan atas siapa yang boleh masuk ke area tertentu
  • Terminal komputer yang terkunci
  • Terminal komputer yang tidak dapat diakses
  • Pintu yang hanya terbuka dengan kartu akses
  • Kartu identitas karyawan
  • Password
  • Log in/log out tamu
  • Foto para pengunjung/tamu
  • Pemandu bagi tamu yang berkunjung ke area tertentu


PROTEKSI DARI BENCANA ALAM

  • Sarana pemadam kebakaran
  • Lemari tahan api
  • Air conditioning (untuk mempertahankan suhu komputer)
  • Pengendali kelembaban
  • Ruang yang anti air
  • Drainase yang baik
  • Pendeteksi air bawah tanah
  • Konstruksi bangunan tahan api
  • Tenaga listrik cadangan (generator diesel)
  • Asuransi
  • Rencana keamanan dan kontijensi bencana
  • Isolasi atas ruang computer


PROTEKSI DARI BREAKDOWNS DAN INTERUPSI BISNIS

  • Sarana backup
  • Asuransi

PROTEKSI ATAS DATA ORGANISASI
Data organisasi perlu diproteksi dalam hal:

  • Deteksi dari pencurian atau akses data dari pihak yang tidak berwenang
  • Deteksi atas usaha untuk mengakses atau merubah data
  • Proteksi untuk mencegah kehilangan data dan perubahan data perusahaan
  • Rekonstruksi atas data perusahaan yang rusak atau hilang


Deteksi dari pencurian atau akses data dari pihak yang tidak berwenang

  • Pintu yang terkunci
  • Terminal yang terkunci
  • Akses yang terbatas
  • Partisi atas penyimpanan data dan program
  • Password
  • Penghancur kertas
  • Fungsi terminal yang terbatas
  • Prosedur callback


Deteksi atas usaha untuk mengakses atau merubah data

  • Log untuk mengakses data
  • Log untuk mengendalikan data
  • Aplikasi untuk mengendalikan akses
  • Log atas perubahan program dan sistem

Proteksi untuk mencegah kehilangan data dan perubahan data perusahaan

  • Log library
  • Log transaksi
  • Write protect atas media penyimpanan (CD, harddisk dll)
  • Label eksternal
  • Label internal
  • Log batch control
  • Lockout untuk menangani konkurensi


Rekonstruksi atas data perusahaan yang rusak atau hilang

  • Log aktivitas
  • Prosedur backup
  • Prosedur rekonstruksi (restore)

KEAMANAN DAN PENGENDALIAN ATAS JARINGAN DAN WEB

Paparan risiko atas jaringan dan web:

  • Kegagalan mentransmisi data
  • Akses data oleh pihak yang tidak berwenang (tapping)
  • Kesalahan dalam input data

Keamanan dan pengendalian yang dapat diaplikasikan:

  • Penunjukkan admin untuk menangani masalah sekuritas
  • Enkripsi pesan
  • Penggunaan perangkat keras yang andal
  • Backup yang terjadwal
  • Pengendalian transmisi
  • Penempatan server di lokasi yang aman
  • Password
  • Mekanisme validasi input
  • Pembatasan akses

Sabtu, 22 Maret 2008

Selamat "Paskah 2008"



Kepada seluruh umat kristiani di segala penjuru bumi. Semoga Damai Paskah 2008 ini memberikan terang dan kekuatan untuk maju dalam kebenaran; kuat akal, budi dan rasa untuk dapat mengabdi Tuhan dengan segenap ketulusan, kejujuran, dan tanggung-jawab kita sebagai umat ciptaan-Nya. Semoga kita mampu hidup, bertahan dan maju didalam kebenaran dengan iringan firman Allah yang hidup didalam kita untuk mengarungi kehidupan di alam yang penuh dengan himpitan keras ini. Semoga kita dapat terbebas dari segala yang jahat. Amin

But Jesus kept silent.And the high priest answered and said to Him, "I put You under oath by the living God: Tell us if You are the Christ, the Son of God!"Jesus said to him, It is you said.Nevertheless, I say to you, hereafter you will see the Son of Man sitting at the right hand of the Power, and coming on the clouds of heaven"Matthew 26 : 63-64


Jumat, 15 Februari 2008

ALGORITMA PASCAL

GABUNGAN ANTARA WHILE , FOR, CASE, PROCEDURE

uses wincrt;
procedure office;
vara,jml : integer;
nm,word,exl,pp : string;

begin
clrscr;
writeln(’DATA NILAI OFFICE’);
writeln(’——-----------————’);
write(’Jumlah Siswa :’); readln(jml);
for a := 1 to jml do
begin
write(’Nama ‘,a,’:');readln(nm);
write(’Nilai Ms.Word =’);readln(word);
write(’Nilai Ms.Excel =’);readln(exl);
write(’Nilai Ms.Power Point =’); readln(pp);
end;
end;

procedure desain;
vara,jml : integer;
nm,ps,cd : string;
begin
clrscr;
writeln(’DATA NILAI DESAIN’);
writeln(’—-----------—————’);
write(’Jumlah Siswa :’); readln(jml);
for a := 1 to jml do
begin
write(’Nama ‘,a,’:'); readln(nm);
write(’Nilai Photoshop =’); readln(ps);
write(’Nilai Corel Draw =’); readln(cd);
end;
end;

procedure pemrograman;
var a,jml : integer;
nm,nl : string;

begin
clrscr;
writeln(’DATA NILAI PEMROGRAMAN’);
writeln(’—------------------——————–’);
write(’Jumlah Siswa :’); readln(jml);
for a := 1 to jml do
begin
write(’Nama ‘,a,’:'); readln(nm);
write(’Nilai Nilai =’); readln(nl);
end;
end;


var pil,jwb : char;
begin
jwb := ‘Y’;
while (jwb = ‘Y’) or (jwb = ‘y’) do
begin
writeln(’PROGRAM INPUT DATA NILAI’);
writeln(’======================================’);
writeln(’1.MICROSOFT OFFICE’);
writeln(’2.DESAIN GRAFIS’);
writeln(’3.PEMROGRAMAN’);
writeln(’======================================’);
writeln(”);
write(’Pilihan Anda [1/2/3] = ‘); readln(pil);
case pil of‘1′ : office;‘2′ : desain;‘3′ : pemrograman;
else writeln(’Pilihan Anda Salah’);
end;
writeln(’————————’);
write(’Kembali Ke Menu [Y/T] = ‘);
readln(jwb);
clrscr;
end;
end.


GABUNGAN WHILE DAN IF

uses wincrt;
var ket :string;
pilihan,jwb : char;
pjg,lbr,ls,kl,r :integer;
p,l,t,vol : integer;volt,rt,tt :real;pi,lsl,kll :real;beginjwb := ‘Y’;
while (jwb = ‘Y’) or (jwb = ‘y’) do
begin
writeln(’Menu Pilihan ‘);
writeln(’———————————---------—’);
writeln(’a. Mencari luas & keliling Persegi ‘);
writeln(’b. Mencari luas & keliling lingkaran’);
writeln(’c. Mencari volume balok ‘);
writeln(’d. Mencari volume tabung ‘);
writeln(’————————————’);
write(’Pilihan Anda [a,b,c,d] : ‘);readln(pilihan);
pi :=3.14;
case pilihan of‘A’,'a’ : ket:= ‘Pilihan A’;
‘B’,'b’ : ket:= ‘Pilihan B’;
‘C’,'c’ : ket:= ‘Pilihan C’;
‘D’,'d’ : ket:= ‘Pilihan D’;
else ket:= ‘pilihan anda salah’;
end;
clrscr;
writeln(’Keterangan :’,ket);
if (pilihan = ‘a’) or (pilihan = ‘A’) then
begin
writeln(’Mencari luas & keliling Persegi’);
writeln(’——————————-----------’);
write(’nilai panjang : ‘);readln(pjg);
write(’nilai lebar : ‘);readln(lbr);
writeln(’ ‘);
ls := pjg * lbr;
kl :=2 * (pjg * lbr);
writeln(’Luas Persegi : ‘,ls);
writeln(’Keliling Persegi :’,kl);
writeln(’——————————-’);
write(’kembali ke menu utama [Y/T] :’); readln(jwb);
clrscr;
endelse
if (pilihan = ‘b’) or (pilihan = ‘B’) then

begin
writeln(’Mencari luas & keliling lingkaran’);
writeln(’——————————-’);
write(’nilai jari-jari : ‘);readln(r);
writeln(’ ‘);
lsl :=pi * r * r;
kll :=2 * pi * r;
writeln(’Luas Lingkaran :’,lsl:8:0);
writeln(’Keliling Lingkaran :’,kll:8:0);
writeln(’——————————-’);
write(’kembali ke menu utama [Y/T] :’); readln(jwb);
clrscr;
end

else if (pilihan =’c') or (pilihan =’C') then

begin
writeln(’Mencari volume balok’);
writeln(’——————————-’);
write(’nilai panjang : ‘);readln(p);
write(’nilai lebar : ‘);readln(l);
write(’nilai tinggi : ‘);readln(t);
writeln(’ ‘);
vol := p*l*t;
writeln(’volume balok :’,vol);
writeln(’——————————-’);
write(’kembali ke menu utama [Y/T] :’); readln(jwb);
clrscr;
endelse if (pilihan =’d') or (pilihan =’D') then
begin
writeln(’Mencari volume tabung’);
writeln(’——————————-’);
write(’jari-jari alas : ‘);readln(rt);
write(’tinggi tabung : ‘);readln(tt);
writeln(’ ‘);
volt := pi*(rt*rt)*tt;
writeln(’volume Tabung :’,volt:8:0);
writeln(’——————————-’);
write(’kembali ke menu utama [Y/T] :’); readln(jwb);
clrscr;
end;
end;
end.

GABUNGAN PROCEDURE DAN FUNCTION

uses wincrt;
procedure cash;
var nb : string;
hb,jml,tot : real;

begin
clrscr;
writeln(’PENJUALAN CASH’);
writeln(’——————’);
write(’Nama Barang :’); readln(nb);
write(’Harga Barang :’); readln(hb);
write(’Jumlah :’); readln(jml);
tot := hb * jml;
writeln(’Total = ‘,tot:8:0);
end;

procedure kredit;
var nb : string;
hb,jml,tot,la,ba : real;
begin

clrscr;
writeln(’PENJUALAN KREDIT’);
writeln(’——————’);
write(’Nama Barang :’); readln(nb);
write(’Harga Barang :’); readln(hb);
write(’Jumlah :’); readln(jml);
tot := hb * jml;
writeln(’Total = ‘,tot:8:0);
write(’Lama Angsuran : ‘); readln(la);
ba := tot/la;
writeln(’Besar Angsuran : ‘,ba:8:0);
end;

var pil,jwb : char;
begin
jwb := ‘Y’;
while (jwb = ‘Y’) or (jwb = ‘y’) do
begin
writeln(’DAFTAR PENJUALAN BARANG’);
writeln(’==========================’);
writeln(’1.PENJUALAN CASH’);
writeln(’2.PENJUALAN KREDIT’);
writeln(’==========================’);
writeln(”);
write(’Pilihan Anda [1/2] = ‘); readln(pil);
case pil of‘1′ : cash;‘2′ : kredit;
else writeln(’Pilihan Anda Salah’);
end;

writeln(’————————’);
write(’Kembali Ke Menu [Y/T] = ‘); readln(jwb);
clrscr;
end;
end.

GABUNGAN FUNCTION DAN FOR

uses wincrt;
var a,jml,nl,i : integer;
nm,nama,ket : string;
function kapital(ns : string) : string;
var i : integer;
begin
for i := 1 to length(ns) do
ns[i] := upcase(ns[i]);
kapital := ns;
end;

begin
writeln(’INPUT DATA NILAI’);
writeln(’==================’);
write(’Jumlah Siswa :’); readln(jml);
writeln(”);
for a := 1 to jml do
begin
write(’Nama ‘,a,’:'); readln(nm);
write(’Nilai =’); readln(nl);
writeln (’———————-’);
if nl > 85 thenket := ‘LULUS’ else ket := ‘GAGAL’;
nama := kapital(nm);
writeln(’Nama ‘,a,’:',nama);
writeln(’Keterangan’,a,’ :’,ket);
writeln(”);
end;
end.

ARRAY

uses wincrt;
var jml,a,b : integer;
nm,ket : array[1..40] of string;nl : array[1..40] of integer;

begin
writeln(’INPUT DATA NILAI’);
writeln(’==================’);
write(’Jumlah Siswa :’);
readln(jml);writeln(”);
for a := 1 to jml do

begin
write(’Nama ‘,a,’:'); readln(nm[a]);write(’Nilai =’); readln(nl[a]);writeln (”);
if nl[a] > 85 thenket[a] := ‘LULUS’
else ket[a] := ‘GAGAL’;
end;

for b := 1 to jml do
begin
writeln(’Nama ‘,b,’:',nm[b]);writeln(’Keterangan’,b,’ :’,ket[b]);writeln(”);end;
end.

GABUNGAN ARRAY DAN FOR

uses wincrt;
var jml,a,b: integer;
nm,ket : array[1..40] of string;hrg,jmlh,tot : array[1..40] of real;
begin
write(’Jumlah Data : ‘); readln(jml);
writeln(”);
for a := 1 to jml do
begin
write(’Nama Barang : ‘); readln(nm[a]);
write(’Harga : ‘); readln(hrg[a]);
write(’Jumlah : ‘); readln(jmlh[a]);
writeln(”);
end;

clrscr;

gotoxy(05,2);write(’===================================================’);
gotoxy(05,3); write(’Nama’);
gotoxy(15,3); write(’Harga’);
gotoxy(30,3); write(’Jumlah’);
gotoxy(50,3); write(’Total’);
gotoxy(05,4); write(’===================================================’);

for b := 1 to jml do
begin
tot[b] := hrg[b]*jmlh[b];
gotoxy(05,5+b); writeln(nm[b]);gotoxy(15,5+b); writeln(hrg[b]:8:0);gotoxy(30,5+b); writeln(jmlh[b]:8:0);gotoxy(50,5+b); writeln(tot[b]:8:0);
end;
end.

Jumat, 01 Februari 2008

TUGAS P.P.A.N

Gong Xi Fat Choi - Merry Imlek - Selamat New Year





1. Apakah kegunaan dari Microsoft Excel ?
2. Fitur apa sajakah yang dimiliki Microsoft Excel ?
3. Mengapa banyak orang yang menggunakan Microsoft Excel ? Apakah Alasannya ?
4. Bagaimana peranan Microsoft Excel dalam kehidupan sehari-hari ?
5. Apakah dampak (positif dan negatif) pemakaian microsoft Excel dalam bidang Bisnis, Industri dan Ekonomi ?
6 Sebutkan software pengolah Worksheet selain Microsoft Excel (min 3), apa keunggulannya ?
7. Bual soal dan penyelesaiannya yang didalamnya ada penggunaan aplikasi formating, perintah logika (if), perintah pencarian nilai pada tabel (vlookup dan hlookup), fungsi string dan fungsi lainnya.



Tugas dikumpulkan paling lambat tanggal 11 Febriari 2008
Jawaban diketik dengan spasi 1.5.
Untuk yang mengumpulkan dengan menggunakan bahasa Inggris maka Nilai akan dikalikan 2 kali !



This asignment is individual workjob.
Had better you answer my assignment in English.!
Would you send Your workjob to sekretariat Computer Faculty
6th Floor UNAKI Crown Campus tower every days between 8.00am to 04.00pm.
Good Luck !. Have nice day !


If you have any question about this assignment,
you can send your miss understand in my e-mail :
aris_eky_hs@yahoo.com
or maybe you have a friendster, please search my name to send massage.

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.…