Rabu, 28 Juli 2010

Tips Jodoh Buat Anda

TIPS YANG MENAWAN

1. Semua orang ada jodoh atau pasangan yang menanti dan biasanya ia berada tidak jauh dari anda. Jarang orang bertemu dengan jodoh yang berada jauh darinya.
2. Jodoh itu ketentuan Allah dan kita wajib berusaha. Doa, usaha yang betul dan bersungguh-sungguh disertai dengan tawakkal, insyallah akan menemukan anda dengan pasangan anda.
3. Banyak orang masih belum bertemu jodoh karena mudah patah semangat. Teruskan usaha sehingga anda bertemu jodoh.
4. Seimbangkan hidup anda dengan sempurna agar diri anda jadi seperti “magnet” yang menarik bakal pasangan anda kepada anda.
5. Daya tarik yang sebenarnya berpusat di hati yang murni. Berusahalah untuk mencuci hati anda daripada semua perasaan yang negatif terhadap semua orang di dunia ini.
6. Agar mudah orang sayang, cuci hati dengan jaga ibadah, solat taubat, beristighfar, baca Al-Quran, maafkan orang lain, meminta maaf, bersedekah dan berfikiran positif.
7. Sayangi semua orang di sekitar anda dan anda akan menarik sayang terhadap anda. Jika anda membenci orang, ditakuti bakal pasangan anda akan membenci anda.
8. Orang yang sedang mencari pasangan harus sentiasa bersedia untuk bertemu dengan pasangannya pada kapanpun. Justeru, kita perlu sentiasa dalam keadaan yang paling menarik setiap aktu. Tanggapan pertama adalah yang terpenting.
9. Untuk lelaki, tarikan pertama ialah pakaiannya. Untuk perempuan, wajah dan bentuk badan menjadi tarikan pertama. Sediakan diri untuk menawan bakal pasangan anda.
10. Buka hati dan minta anda untuk menerima cinta. Cinta boleh berputik pada kapan saja. Cinta mudah datang kepada mereka yang sentiasa bersedia untuk menerima cinta.
11. Cinta datang melalui mata lalu turun ke hati. Justeru, perhebatkan hubungan mata secara memandang bakal pasangan dengan penuh kasih sayang.
12. Kita boleh berkomunikasi melalui fikiran. Hantarlah kasih sayang dan hasrat murni anda terhadap pasangan dengan gelombang fikiran ini secara berterusan hingga berjaya.
13. Banyak yang kehilangan peluang dan patah hati sebab lewat menyatakan hasrat kepada bakal pasangan. Perkara yang baik disegerakan (iaitu menyatakan perasaan anda kepada bakal pasangan).
14. Tidak salah untuk orang perempuan yang mengawali usaha untuk berkenalan. Orang lelaki akan sentiasa merasakan mereka yang memulakan perkenalan walaupun sebenarnya orang perempuan yang mulai.
15. Berkomunikasi dengan mesra dan bersemangat menggunakan lidah, mata, hati dan bahasa badan. Elakkan bercakap sambil lewa atau kurang sopan terhadap bakal pasangan.
16. Berbual dengan pasangan mengenai apa yang dia suka. Beri tumpuan kepada minat dan perasaannya. Elakkan sibuk memberi tumpuan kepada diri sendiri.
17. Layani bakal pasangan dengan mesra seperti kawan lama walaupun baru berkenalan. Bentuk suasana keintiman dengan segera agar bakal pasangan rasa selesa.
18. Makin mudah kita menceritakan hal peribadi yang munasabah kepada bakal pasangan, semakin mudah dia menceritakan hal dirinya kepada kita.
19. Berdoa dan latih diri agar kita pandai mendampingi orang lain dan seronok untuk didampingi oleh orang lain. Buang perangai yang menyebabkan orang benci kepada kita.
20. Beri sayang untuk mendapat sayang. Orang yang masih ada perasaan benci terhadap sebarang orang boleh menyebabkan bakal pasangan benci atau tidak tertarik kepada kita. Justeru buang semua benci.
21. Untuk wanita, jangan jual mahal terhadap bakal pasangan. Tetapi, nyatakan dengan hikmah kepadanya yang anda amat sukar untuk berkenalan dengan lelaki lain.
22. Kebanyakan lelaki mudah tertarik kepada perempuan yang simple, tidak materialistik, mudah berterima kasih dan redha dengan setiap pemberian lelaki tersebut.
23. Orang perempuan mudah tertarik kepada lelaki yang memberi perhatian, penghargaan dan penghormatan kepada mereka. Justeru, orang lelaki janganlah terlalu jimat(memnjijik amat).
24. Orang lelaki perlu belajar mengenal kerenah orang perempuan. perasaan, pemikiran, kehendak, keperluan, kesukaan dan kebenciannya.
25. Elakkan memberi tumpuan kepada kelemahan dan kesilapan kecil yang ada pada bakal pasangan. Jangan sesekali mengutuk atau memalukan bakal pasangan.
26. Senyuman ikhlas, wajah yang menawan dan bahasa badan yang penuh kemesraan akan menambat lelaki terhadap wanita.
27. Orang mudah tertawan kepada bakal pasangan yang ada persamaan dan ada perbedaan sifat, tindakan dan minat. Terlalu banyak persamaan membosankan. Banyak sangat perbedaan menyesakkan.
28. Orang mudah tertarik kepada bakal pasangan yang ada sikap dan sifat yang saling mengimbangi dan melengkapkan sikap dan sifatnya.
29. Walaupun belum kenal rapat dengan bakal pasangan, nyatakan yang anda sering merasa atau berfikir seperti yang dia rasa atau fikir. Keserasian adalah tarikan.
30. Perempuan membentuk hubungan dengan berbual dan bercakap. Lelaki bentuk hubungan dengan melakukan sesuatu kegiatan secara bersama.
31. Orang mudah tertawan kepada bakal pasangan yang mempunyai persamaan daripada berbagai segi seperti kefahaman politik, aktiviti keagamaan, sikap terhadap harta, wang dan hobi.
32. Dua orang yang amat banyak perbedaan boleh serasi antara satu sama lain jika mempunyai satu atau dua persamaan yang mendalam seperti suka kepada kucing, suka melancong atau suka banyak anak.
33. Tindakan yang serentak akan menarik bakal pasangan terhadap anda. Contohnya, serentak berpaling, serentak angkat gelas, serentak berdiri, serentak nak ke tandas.
34. Tawan hati bakal pasangan dengan pamerkan emosi yang sama terhadap sesuatu kejadian atau peristiwa – sama-sama gembira, sedih, terperanjat, benci, simpati dan sebagainya.
35. Dua insan mudah serasi jika mempunyai pentafsiran yang sama mengenai hubungan – tahap keakraban, kebebasan, kebergantungan, pemberian, pengorbanan dan sebagainya.
36. Kenalpasti ciri-ciri yang disukai oleh bakal pasangan anda. Bentuk ciri-ciri yang disukai oleh bakal pasangan anda. Bentuk ciri-ciri ini dalam diri anda dan pamerkan kepadanya yang anda mempunyai ciri-ciri tersebut.
37. Semua orang mencari cinta sejati tanpa syarat. Bakal pasangan anda akan tertarik kepada anda jika anda mengasihinya bukan kerana wajah, harta, keturunan atau glamornya.
38. Bakal pasangan akan tertawan kepada anda jika anda dapat bantu mengukuhkan imej dirinya, rangsang semangatnya dan pupuk keyakinan dirinya.
39. Keikhlasan amat penting dalam memuji atau memotivasi bakal pasangan. Jika kita didapati bohong, dia akan terus menjauhkan diri daripada kita.
40. Pujian yang berhikmah dan ikhlas bertindak sebagai magnet yang menarik anda kepada bakal pasangan. Pujian daripada kawan baru lebih bermakna dan berkesan berbanding pujian daripada kawan lama.
41. Ulang sebut perkataan, ayat atau slogan yang digemari bakal pasangan anda. Ini menyebabkan dia rasa istimewa dan dihargai dan akan tertawan kepada anda.
42. Kenalpasti keistimewaan bakal pasangan anda yang orang lain tidak nampak. Sampaikan kehebatan ini dengan bersemangat dan dia akan mudah tertawan kepada anda.
43. Untuk bakal pasangan yang popular dan sering dipuji , cari pujian yang original untuk menambat hatinya. Untuk orang yang tidak popular, sebarang pujian amat dialukan dan dihargai.
44. Beri penghargaan serta merta kepada setiap pencapaian atau kejayaan bakal pasangan. Ini membelai dan melembutkan hatinya terhadap anda.
45. Jika bakal pasangan memuji anda, pamerkan keseronokan anda dengan senyuman dan ucapan terima kasih dan bersyukur. Dia akan rasa dihargai.
46. Cari keunikan, kelucuan atau ‘kegilaan’ bakal pasangan anda. Nyatakan yang anda suka kepadanya sebab keunikan tersebut. Ini buat dia rasa istimewa.
47. Banyak pasangan sengsara bila isteri terlalu cantik atau suami terlalu handsome. Justeru, cari bakal pasangan yang setara dan sepadan dengan kita.
48. Orang yang merasa dirinya hodoh sukar untuk mendapat pasangan. Carilah kecantikan yang ada pada anda dan bentuk keyakinan diri. Hati yang suci dan keyakinan yang tinggi menyerlahkan kecantikan anda.
49. Wanita mudah tertawan kepada lelaki yang gentleman – bersopan santun, suka membantu, menghormati wanita, berani dan yakin diri.
50. Untuk jadi lebih menawan, teruslah belajar, perbaiki perangai dan peribadi, baiki kemahiran komunikasi, murnikan hati, pemaaf dan sentiasa bersangka baik.
51. Lelaki harus mempamerkan sifat kelelakiannya di samping memasukkan sifat perempuan dalam dirinya seperti lebih prihatin, memahami emosi , timbang rasa, dan gunakan gerak batin.
52. Perempuan harus mempamerkan sifat kewanitaan disamping menghayati sifat lelaki seperti minat dalam politik, sukan, memancing, dan aktiviti macho yang lain. Bertindak bijak tapi, jangan terlalu bijak.
53. Untuk menambat hati wanita, kerap bertanya tentang perasaannya, aktiviti yang dijalankannya, kegemarannya, kebenciannya atau sebarang perkara yang berkaitan dengan emosi.
54. Sebelum benar-benar rapat, orang perempuan harus elakkan diri dari bertanya bakal pasangan mengenai perasaannya mengenai sesuatu perkara, peristiwa atau situasi.
55. Orang lelaki amat pantang bila bakal pasangan menempelak atau menunjukkan kesilapan atau kebodohan lelaki tersebut. Ini cara terbaik memutuskan hubungan.
56. Orang perempuan mudah tertawan kepada lelaki yang boleh mengaku salah, meminta maaf, meminta bantuan, bertolak ansur, pandai mendengar, bersabar dan lemah lembut terhadap wanita.
57. Bila bercakap dengan lelaki, orang perempuan harus fokus kepada fakta dan sampaikan secara ringkas. Penjelasan yang berjela-jela dan memasukkan unsur perasaan akan membunuh minat lelaki terhadapnya.
58. Jika orang perempuan marah, pujuklah dengan kasih sayang. Tanya kenapa dia marah, dengari dengan teliti dan jangan komen atau coba beri nasihat. Orang perempuan mudah sayang pada lelaki yang pandai mendengar dan sensitif kepada perasaannya.
59. Jika lelaki marah, jangan sibuk nak tanya kenapa dia marah. Pamerkan kasih sayang dan bentuk suasana yang tenang. Doakan dia dan beri waktu untuk dia merawat dirinya sendiri.
60. Fahami bahawa orang lelaki bercakap secara terus terang, ringkas dan objektif. Orang perempuan sering bercakap secara berlapik, terperinci dan banyak yang tersirat.

Selasa, 27 Juli 2010

Metodologi Penelitian

METODE PENELITIAN DAN PENULISAN ILMIAH


Metode ialah suatu kerangka kerja untuk melakukan suatu tindakan, atau suatu kerangka berfikir menyusun gagasan, yang beraturan, berarah dan berkonteks, yang paut (relevant) dengan maksud dan tujuan. Secara ringkas, metode ialah suatu sistem berbuat. Karena berupa sistem maka metode merupakan seperangkat unsure-unsur yang membentuk suatu kesatuan.

Unsusr-unsur metode ialah wawasan intelektual, konsep, cara penghampiran (approach) persoalan, dan rancangbangun alas data (database). Wawasan Intelektual berkenaan dengan nalar, tanggap rasa (sensation), cerapan (perception), pengalaman, dan ilmu pengetahuan.

Konsep adalah hasil proses intelektual berupa kejadian imajinatif untuk memperluas atau memperkaya cearpan, sehingga dapat dibentuk gagasan baru yang dapat menganalisis persoalan secara lebih cermat. Cara berkenaan dengan pola berfikir. Alas data ialah cerminan citra tentang “kenyataan” yang dimiliki seorang peneliti, atau cerapan peneliti tentang “kenyataan”. Alas data dirancangbangun sedemikian rupa agar semua data yang terkumpulkan dapat dialokasikan kepada kedudukan atau fungsinya yang sepadan menurut maksud dan tujuan penelitian.

Penelitian
Penelitian (research) ialah suatu kegiatan mengaji (study) secara teliti dan teratur dalam suatu bidang ilmu menurut kaedah tertentu. Kaedah yang dianut ialah metode. Mengaji ialah suatu usaha memperoleh atau menambah pengetahuan. Jadi, meneliti dilakukan untuk memperkaya dan meningkatkan ketahanan tentang sesuatu
Ada kegiatan yang disebut penyelidikan (investigation), yaitu mencari fakta secara telti dan teratur menurut suatu kaedah tertentu untuk menjawab suatu pertanyaan. Jadi, menyelidik dikerjakan untuk menjelaskan sesuatu.
Pada dasarnya suatu penyelidikan dinyatakan selesai setelah berhasil menemukan penyebab kejadian. Suatu penelitian baru dianggap selesai setelah berhasil menetapkan factor atau latar belakang penggerak atau pengendali penyebab atau pelaku kejadian. Jadi, suatu penelitian menjangkau persoalan secara lebih jauh atau lebih mendalam daripada suatu penyelidikan. Semua asa penyelidikan digunakan dalam penelitian, akan tetapi tidak semua asas penelitian digunakan dalam penyelidikan. Oleh karena penelitian selalu berusaha mengungkapkan factor penimbul sebab maka penelitian menjadi sumber ilmu. Dengan kata lain, tanpa penelitian tidak akan ada ilmu dan ilmu hanya dapat tumbuh dan berkembang kalau didorong dan didukung dengan penelitian.
Ilmu menjadi rujukan penelitian, membentuk wawasan intelektual yang menjadi salah satu unsure metode penelitian. Ilmu tersusun atas fakta dan teori. Dengan saran fakta dan teori ilmu membuka peluang untuk memahami makna suatu gejala yang teramati dan pada gilirannya kepahaman tersebut dapat memberikan peluang menyelesaikan persoalan. Sasaran ilmu ialah menjelaskan, meramal, dan mengendalikan keadaan.
Mengaji atau mengkaji dapat berjalan dengan jalan membaca, mengamati kejadian, melakukan sigi (survey), membuat percobaan lapangan atau rumahkaca, atau mengadakan analisis laboratorium. Maka ada penelitian pustakan, penelitian pengamatan (observational research), penelitian geografi, dan penelitian analitik dengan percobaan (experimental research).

Persoalan
Persoalan (problem) adalah pangkal penelitian. Tidak akan ada penelitian kalau tidak ada persoalan. Persoalan ialah segala sesuatu yang dihadapi atau dirasakan seseorang yang menimbulkan dalam diri orang bersangkutan suatu keinginan atau kebutuhan untuk membahasnya, mencari jawabannya, atau menetapkan cara menyelesaikannya.

Kejadian, kenyataan, atau keadaan yang menjadi sumber persoalan berada di luar rohani pengamat, berarti di luar alam fakir dan alam rasanya. Sumber persoalan berada di lingkungan tempat pengamat berada, atau dapat berada di jasmani pengamat.
Persoalan adalah tafsir sesuatu yang teramati lewat tanggap rasa, cerapan dan konsep, yang ketiganya merupakan cetusan alam fakir dan alam rasa. Jadi, sumber persoalan adalah sesuatu yang objektif, akan tetapi persoalan selalu bersifat subejektif. Kejadian yang sama dapat menimbulkan persoalan yang berbeda dalam diri pengamat yang berbeda.

Tanggap rasa ialah kepekaan indera menangkap atau merasakan sesuatu yang khusus atau khas pada kejadian yang diamati. Kekhususan atau kekhasan tersebut dapat berkenaan dengan potensi bahaya, kesulitan, penyimpangan dan kewajara, dsb. Kepekaan di suatu pihak merupakan watak pembawaan dan di pihak lain berkenaan dengan latar belakang kehidupan pribadi dan social, pengetahuan dan pengalaman yang dimiliki, dan dipengaruhi keadaan tempat, suasana lingkungan dan waktu pengamatan, termasuk keadaan emosi pengamat.

Cerapan ialah seni merangkaian sesuatu yang terhayati dengan tanggap rasa dengan pengalaman dan pengetahuan yang dimiliki. Cerapan digunakan memberikan makna kepada kejadian yang tertangkap indera (pengertian indera mencakup alat pengamat). Kekuatan cerapan ditentukan oleh kepekaan tanggap rasa dan keluasan serta kedalaman pengalaman dan pengetahuan. Cerapan digolongkan seni karena banyak melibatkan bakat atau pembawaan. Tradisi, adapt istiadat, budaya, kepercayaan dan agama berpengaruh kuat atas cerapan.

Intensitas persoalan dapat berubah mengikuti perjalanan waktu dan pergeseran tempat kejadian. Persoalan penting pada masa lalu menjadi tidak penting pada waktu sekarang (misalnya suatu penyakit sudah ditemukan cara penanggulangannya yang mujarab). Suatu persoalan dinilai berat kalau muncul di suatu tempat, akan tetapi dinilai tidak berat kalau muncul di tempat lain (misalnya persoalan perambahan hutan berkurang berat setelah berpindah dari hulu ke hilir). Intensitas persoalan juga bergantung pada kepekaan tanggap rasa dan kekuatan cerapan. Maka persoalan itu bermatra ruang, waktu dan kejiwaan.

Modul ini masih berkelanjutan artinya belum selesai ditulis, mohon maaf...

Rabu, 07 Juli 2010

Contoh Soal Ujian Semester

UJIAN AKHIR SEMESTER
MATAKULIAH : Pemrograman Bahasa C
HARI/TANGGAL : .................../..........................
WAKTU : 100 Menit
Sifat Ujian : Close Book
Tipe Soal : A

Buatlah sebuah program untuk mengkonversikan nilai angka menjadi nilai huruf, berdasarkan ketentuan sebagai berikut :
•Untuk variabel dan tipe data atur sendiri sesuai ketentuan Bahasa C.

Nilai angka Nilai huruf
< 50 E
50-59 D
60-69 C
70-84 B
85-100 A

Sebagai Input:
Npm, Nama, Nilai Angka

Sebagai Output :
No Nama Npm Nilai angka Nilai Huruf
1 Andi 12345 55 D
2 Bejo 23451 85 A
3 Guci 54321 60 C
Dst.


Cut here...!


MATAKULIAH : Pemrograman Bahasa C
HARI/TANGGAL : .................../..........................
WAKTU : 100 Menit
Sifat Ujian : Close Book
Tipe Soal : B

Buatlah sebuah program untuk menghitung jumlah belanja yang harus dibayar, bila berlaku ketentuan:
•Discount 10% diberlakukan bagi pembeli yang berbelanja 100.000,- ke atas.

Sebagai Input:
Jumlah belanja

Sebagai Output:
Discount
Jumlah yang harus di bayar.

Ketentuan tentang nama dan tipe variabel yang digunakan adalah sebagai berikut:
Variabel untuk Nama variabel Tipe
Jumlah belanja jml_belanja float
Discount discount float
Jumlah yang harus dibayar jml_bayar float

Bentuk tampilan atur sendiri!


MATAKULIAH : Pemrograman Bahasa C
HARI/TANGGAL : .................../..........................
WAKTU : 100 Menit
Sifat Ujian : Close Book
Tipe Soal : C

Buatlah sebuah program untuk menghitung luas bujursangkar, dengan menggunakan FUNGSI dan RETURN yang menghasilkan nilai.

Output seperti berikut:

Program menghitung luas bujur sangkar
Sisi bujur sangkar : 2
Luas Bujursangkar : 4


Cut here...!


UJIAN AKHIR SEMESTER
MATAKULIAH : Pemrograman Pascal
HARI/TANGGAL : .................../..........................
WAKTU : 100 Menit
Sifat Ujian : Close Book
Tipe Soal : A

Buatlah sebuah program untuk menghasilkan keluaran seperti berikut:

ENTRY DATA PENJUALAN
KODE BARANG : C012
NAMA BARANG : CALCULATOR CASIO
HARGA/UNIT : 150.000
JUMLAH BARANG : 1
TOTAL : Rp.150.000
DISCOUNT : Rp. 15.000
HARUS BAYAR : RP.135.000.

MASIH ADA DATA [Y/T]?

Ketentuan :
1.Untuk tampilan, nama variabel dan tipe data silahkan diatur sesuai keinginan.
2.Apabila nilai belanja di atas Rp.100.000,- diberi discount 10% dari nilai belanja.
3.Pengisian data akan beulang bila dijawab dengan “ya” dan berhenti bila “tidak”.



MATAKULIAH : Pemrograman Pascal
HARI/TANGGAL : .................../..........................
WAKTU : 100 Menit
Sifat Ujian : Close Book
Tipe Soal : B

Buatlah sebuah program untuk mengkonversikan nilai rata-rata menjadi nilai huruf, berdasarkan ketentuan sebagai berikut :
•NILAI Rata-rata = 0.4 x nilai mid + 0.6 x nilai semeseter

Nilai Rata-rata Nilai huruf Nilai Angka
<50 E 0
50-60 D 1
60-69 C 2
70-79 B 3
80-100 A 4

Sebagai Input:
Nama, Npm, Matakuliah, NilaiMid, NilaiSemester

Sebagai Output :

HASIL NILAI UJIAN
NAMA SISWA : HERMAN
N.P.M. : 12345678
NO MATAKULIAH MID SEMT RATA2 ANGKA HURUF
1 PASCAL 45 45 45 0 E
Dst...


Cut here...!


MATAKULIAH : SISTEM BASIS DATA II
HARI/TANGGAL : .................../..........................
WAKTU : 100 Menit
Sifat Ujian : Close Book
Tipe Soal : A

Soal:
1.Buatlah sebuah file database dengan nama “Mahasiswa.mdb” yang berisi tabel DataSiswa di kelas Anda! Field-field yang harus Anda sertakan dalam laporan adalah NPM,NAMA,Tempat dan Tanggal Lahir (TTL), Alamat,Jenis Kelamin, dan Matakuliah yang disukai.
2.Sortirlah tabel yang dibuat berdasarkan tanggal kelahiran (ascending) simpan hasil sortiran tsb.
3.Buatlah 2(dua) buah Query masing-masing dengan nama siswa berwalan huruf “A” dan berawalan huruf “S”.
4.Untuk model Form entry data aturlah sesuai keinginan Anda!
5.Buatlah laporan berdasarkan tabel pada soal nomor 1 di atas !



UJIAN AKHIR SEMESTER
MATAKULIAH : ANALISA SISTEM
HARI/TANGGAL : .................../..........................
WAKTU : 100 Menit
Sifat Ujian : Close Book
Tipe Soal : A

Soal :
1.Jelaskan cara mengatasi kendala yang terjadi pada saat investigasi !
2.Sebutkan tahapan dalam problem solving !
3.Dalam melakukan investigasi kita harus bekerja keras, hal ini sangatlah membosankan, beri opini Anda tentang statemen ini !
4.Observasi adalah salah satu requirement analysis methode, jelaskan kapan metode ini sebaiknya digunakan !
5.Sebutkan gejala yang memperlihatkan poor usability dari suatu sistem !
6.Kenapa seorang analis sistem memerlukan initial investigation, jelaskan !
7.Pengumpulan data dengan interview kadangkala melibatkan orang luar, kenapa demikain jelaskan!
8.Dalam konfigurasi sistem informasi selalu disarankan perancangan online data entry, jelaskan tujuannya !
9.Sebutkan kekurangan maupun keuntungan dari Decentralized dan decentralized data entry!
10.Jangan memberikan pemecahan awal terhadap masalah merupakan salah satu taktik investigasi, jelaskan maksudnya!


>>>Selamat Ujian<<<


Selasa, 22 Juni 2010

Praktikum Pemrograman Bahasa C

Contoh-contoh Pemrograman


/* Contoh Program Sederhana 1 */
main()
{
clrscr();
printf("Sebuah contoh program sederhana");
getch();
}

/* Contoh Program Sederhana 2 */
main()
{
clrscr();
printf("Saya");
printf("Belajar");
printf("Turbo C");
getch();
}

/* Contoh Program Sederhana 3 */
#include
int main(void)
{
/* Mendeklarasikan variabel X yang bertipe int */
int X;
/* Menampilkan teks sebagai informasi bagi pengguna
program (user) */
printf("Masukkan sebuah bilangan bulat : ");
/* Membaca data masukan dari keyboard */
scanf("%d", &X);
/* Menampilkan kembali data yang telah dimasukan dari
dari keyboard */
printf("Anda telah memasukan bilangan %d",X);
getch();
}


/* Contoh Program Sederhana 4 */

/* Inisialisasi suatu variabel */
main()
{
/* Deklarasi variabel */
float harga_satuan,jumlah,harga_total;
/*Membersihkan layar*/
clrscr();
/* Inisialisasi */
harga_satuan=112.50;
jumlah=50;
/*Menghitung harga total*/
harga_total=harga_satuan*jumlah;
/*Mencetak harga total*/
printf("Harga Total :%f",harga_total);
getch();
}


/* Contoh Program Sederhana 5 */
#include
#include
main()
{
int x=100;
int *p, *q;
p=&x;
q=p;
clrscr();
printf("Alamat dari x(&x) atau p adalah %u \n",p);
printf(" Isi dari x adalah *p atau %d\n\n", *p);
printf(" Q ==>%u\n",p);
printf("*Q ==>%d\n",*q);
getch();
}


/* Contoh Program Sederhana 6 */
/* Program pengenalan variabel automatis */
#include
#include /* Untuk memakai fungsi pow() */
int main() {
int B=5, e;
clrscr();
printf("Masukkan nilai pangkat : ");scanf("%d", &e);
if (e >= 0)
{
auto int hasil;
hasil=pow(B,e);
printf("%d^%d=%d",B,e,hasil);
}
getch();
}


/* Contoh Program Sederhana 7 */
#include
main()
{
float bil=2.5,nomor=30.756;
clrscr();
printf("Lebar field yang tidak ditentukan\n");
printf("Bilangan = %f\n",bil);
printf("Nomor = %f\n\n",nomor);
printf("Lebar field ditentukan\n");
printf("Bilangan = %10.2f\n",bil);
printf("Nomor = %10.2f",nomor);
getch();
}

/* Contoh Program Sederhana 8 */
#include
main()
{
clrscr();
printf("Ini Baris 1\nIni Baris 2");
printf("Ini Baris 3\n\n");
printf("Ini Baris 1\nIni Baris 2\nIni Baris 3");
getch();
}


/* Contoh Program Sederhana 9 */
#include
main()
{
clrscr();
printf("\xDA\xC4\xBF\n");
printf("\xCO\xC4\xD9");
printf("\nBell berbunyi, setelah tulisan ini\x07");
getch();
}


/* Contoh Program Sederhana 10 */
#include
main()
{
float bil1,bil2,bil3;
clrscr();
printf("Masukan bilangan pertama : ");scanf("%f",&bil1);
printf("Masukan bilangan ke-dua : ");scanf("%f",&bil2);
bil3=bil1+bil2;
printf("Total kedua bilangan : %.3f",bil3);
getch();
}


/* Contoh Program ke-11 */
/* Kasus 1: Buatlah program Bhs C untuk menghitung jumlah serta selisih
dua bilangan integer. Kemudian cetaklah hasil penjumlahan serta selisih
tadi dengan menggunakan format lebar field = 8.
Sebagai Input - bilangan 1
- bilangan 2
Sebagai Outpt - Jumlah
- Selisih
Ketentuan variabel yang digunakan:
variabel untuk nama variabel tipe
bilangan 1 bil_1 integer
bilangan 2 bil_2 integer
jumlah jumlah integer
selisih selisih integer
Tampilan/hasil di layar yang diinginkan adalah seperti berikut:
Masukan Bilangan 1 :......
Masukan Bilangan 2 :......
*/

#include
#include
main()
{
int bil_1,bil_2,jumlah,selisih;
clrscr();
printf("Masukan Bilangan 1 : ");scanf("%d",&bil_1);

printf("Masukan Bilangan 2 : ");scanf("%d",&bil_2);
jumlah=bil_1+bil_2;
selisih=bil_1-bil_2;
printf("\nJumlah kedua bilangan : %8d\n",jumlah);
printf("Selisih kedua bilangan : %8d",selisih);
getch();
}


/* Contoh Program ke-12 */
/* Operasi Arithmatic pada data karakter */
#include
main()
{
char c1,c2,c3,c4;
clrscr();
printf("Ketik karakter pertama :");c1=getche();
printf("\nKetik karakter kedua :");c2=getche();
c3=c1+c2;
c4=c1-c2;
printf("\nJumlah nilai ASCII kedua karakter tadi : %d",c3);
printf("\nKarakter ASCIInya :%c",c3);
printf("\nSelisih nilai ASCII kedua karakter tadi: %d",c4);
printf("\nKarakter ASCIInya :%c",c4);getch();
}


/* Contoh Program ke-13 */
/* Program pengenalan variabel automatis */
#include
#include /* Untuk memakai fungsi pow() */
int main() {
int B=5, e;
clrscr();
printf("Masukkan nilai pangkat : ");scanf("%d", &e);
if (e >= 0)
{
auto int hasil;
hasil=pow(B,e);
printf("%d^%d=%d",B,e,hasil);
}
getch();
}


/* Contoh Program ke-14 */
/*Operator Increment 1*/
main(){
int i,total=0;
clrscr();
for(i=0;i<=20;++i)
total+=i;
printf("Hasil For(i=0;i<=20;++i)"); /*Sebagai keterngan*/
printf("\nTotal Bilangan dari 1 hingga 20 = %d",total);getch();
printf("\nHasil For(i=1;i<=20;i+=3)");
for(i=1;i<=20;i+=2)
total+=i;
printf("\nTotal Bilangan dari 1 hingga 20 = %d",total);getch();
for(i=3;i<=20;i+=3)
total+=i;
printf("\nHasil For(i=3;i<=20;i+=3)");
printf("\nTotal Bilangan dari 1 hingga 20 = %d",total);getch();
for(i=0;i<=20;i++)
{
if((i % 3)==0)
total+=i;
}
printf("\nKeluaran For(i=0;i<=20;i++) dan jika(i%3)==0)");
printf("\nTotal Bilangan dari 1 hingga 20 = %d",total);getch();
}


/* Contoh Program ke-15 */
/* Inisialisasi Array Berdimensi satu*/
main()
{
int bil[5]={0,0,0,0,0};
int i,n;
clrscr();
/*Mengganti nilai elemen suatu array */
printf("\xBO Mengganti Nilai Elemen Suatu Array \xBO");
printf("\n----------------------------------------");
while(1)
{
printf("\nInputkan nomor elemen yang akan diganti\n");
printf("\n\tInputkan nol (0) untuk berhenti : ");
scanf("%d",&n);
if (n==0)
break;
printf("\tElemen ke %2d Nilai lama %10d Nilai baru : ",
n,bil[n-1]);
scanf("%d",&bil[n-1]);
}
/*Mencetak nilai elemen array yang baru */
printf("\n\nNilai elemen yang baru : ");
for (i=0;i<5;i++)
printf("\n\tElelemen ke %2d = %d",i+1,bil[i]);
printf("\n\nTekan sembarang tombol");
getch();
}


/*Contoh Program Array berdimensi dua
Penjumlahan dua matriks */
#define N 10
main()
{
float A[N][N],B[N][N],C[N][N];
int i,j;
float n;
char jawab;
clrscr();
printf("\xB1\xB1 Penjumlahan dua matriks bujursangkar \xB1\xB1");
/* Input dimensi matriks */
printf("\n\nInput dimensi matriks (1-10) : ");
scanf("%f",&n);
/* Input elemen matriks A*/
printf("\n\nMatriks A : ");
for (i=0;i{
printf("\nBaris ke %d\n",i+1);
for (j=0;j{
printf("\tElemen [%d][%d] : ",i+1,j+1);
scanf("%f",&A[i][j]);
}
}
/*Koreksi data Matrisk */
printf("\n\nAda data yang salah (Y/T) ?.");
jawab=getch();
if(jawab=='Y' || jawab=='y')
{
while(1)
{
printf("\nBaris ke (0 untuk stop) : ");scanf("%d",&i);
if(i==0)
break;
printf("Kolom ke : ");scanf("%d",&j);
printf("Elemen [%d][%d] Nilai lama %f akan diganti dengan ",
i,j,A[i-1][j-1]);scanf("%f",&A[i-1][j-1]);
}
}
/*Input elemen matriks B*/
printf("\n\nMatriks B : ");
for(i=0;i{
printf("\nBaris ke %d\n",i+1);
for(j=0;j{
printf("\tElemen [%d][%d] : ",i+1,j+1);
scanf("%f",&B[i][j]);
}
}
/*Koreksi Data Matrsik B */
printf("\n\nAda data yang salah (Y/T) ?");

jawab=getche();
if(jawab=='Y' || jawab=='y')
{
while(1)
{
printf("\nBaris ke (0 untuk stop) : ");
scanf("%d",&i);
if(i==0)
break;
printf("Kolom ke : ");scanf("%d",&j);
printf("Elemen [%d][%d] Nilai lama %f akan diganti dengan ",

i,j,B[i-1][j-1]);
scanf("%f",&B[i-1][j-1]);
}
}
/* Menjumlahkan matriks A dan matriks B */
for(i=0;i for(j=0;j C[i][j]=A[i][j]+B[i][j];
/*Mencetak Output*/
clrscr();
printf("\n\mJumlah Matriks A dan B adalah : ");
for(i=0;i {
printf("\n");
for(j=0;j printf("%12.3f",C[i][j]);
}
printf("\n\nTekan sembarang tombol...");
getch();
}


/* Contoh Program ke-16 */
/* Program Faktorial */
main(){
int i,bil;
float faktorial=1;
clrscr();
printf("Inputkan sebuah bilangan bulat positif : ");
scanf("%d",&bil);
for(i=1;i<=bil;++i)
faktorial*=i;
printf("\nNilai faktorialnya : %10.0f",faktorial);getch();
}


/* Contoh Program ke-17 */
/*Fungsi yang sederhana */
main()
{
char x;
while(1)
{
clrscr();
printf("\nIni kotak pertama \n");
/*Memanggil kotak 1*/
kotak1();
printf("\nIni kotak kedua \n");
/*Memanggil kotak 2*/
kotak2();
printf("\n\nKotak mana yang akan dicetak (1 atau 2) :");
x=getche();
printf("\n\n");
if (x=='1')
kotak1();
else if(x=='2')
kotak2();
else
{
printf("\nPilihan Anda Salah ");
break;
}
printf("\n\nTekan sembarang tombol ");
getch();
}
}
/* Fungsi untuk menggambar kotak 1 */
kotak1()
{
int i,j;
printf("\n");
for (i=1;i<=3;++i)
{
for (j=1;j<=6;++j)
printf("\xB1");
printf("\n");
}
}
/*Fungsi untuk menggambar kotak 2*/
kotak2()
{
int i,j;
printf("\n");
for (i=1;i<=3;++i)
{
for (j=1;j<=6;++j)
printf("\xDB");
printf("\n");
}
}


/* Contoh Program ke-18 */
/*Pengulangan tak hingga */
main()
{
char kar;clrscr();
printf("\nProgram pengulangan tak hingga ");
printf("\nCarilah karakter untuk menghentikan pengulangan ini ");
for(;;)
{
printf("\n\nKetikkan satu karakter : ");
kar=getche();
if(kar=='q')
{
printf("\nYes...!You are right");
break;
}
printf("\nHa..ha..,Anda salah mengetikkan karakter");
printf("\nPengulangan berjalan terus");
printf("\nCoba lagi, jangan putus asa");
}
getch();clrscr();
}


/* Contoh Program ke-19 */
/* Kombinasi For dan While */
main()
{
int j;
int k;
clrscr();
for (j=1;j<=5;j++)
{
k=1;
while(k<=j)
{
printf("%2d ",j*k);
k++;
}
printf("\n");
}
J=4;
while(j>=1)
{
for(k=1;k<=j;k++)
{
printf("%2d ",j*k);
}
printf("\n");
j--;
}
getch();
}

/* Contoh Program ke-20 */
main()
{
int jbrs=5;
char blank=' ';
char star='*';
int i,baris,lb,hitstar;
clrscr();
for(jbrs=1;jbrs<=5;jbrs++);
{
for(lb=jbrs-
for(lb=;(baris*2)-1<=2);
printf("%c",star);
printf("\n");
}
getch();
}


/* Contoh Program ke-21 */
/* Program konversi huruf besar ke kecil */
main(){
char besar,kecil;
clrscr();
printf("\xDB PROGRAM KONVERSI HURUF \xDB");
printf("\n\nInputkan sebuah huruf Capital (A-Z) ");
besar=getche();
kecil=besar+32;
printf("\n\nHuruf kecil dari %c adalah %c",besar,kecil);
getch();
}


/* Contoh Program ke-22 */
/* Program konversi Jam ke Menit */
main(){
int jam;
float jam_input,menit,tot_menit;
clrscr();
printf("\xB1\xB1 PROGRAM KONVERSI JAM \xB1\xB1");
printf("\n\nInputkan jam (x.xx) ");scanf("%f",&jam_input);
/*Konversi*/
jam=(int) jam_input;
menit=(jam_input-(int) jam_input)*60;
tot_menit=jam*60+menit;
printf("\n%f Jam = %d jam %5.2f menit = %.2f menit",
jam_input,jam,menit,tot_menit);
getch();
}


/* Contoh Program ke-23 */
/* Operasi Arithmatic pada data karakter */
#include
main()
{
int gaji_jam=15000;
float jam_kerja,gaji;
clrscr();
printf("Input jumlah jam kerja ?:");
scanf("%f",&jam_kerja);
if (jam_kerja > 7)
gaji=7*jam_kerja+(jam_kerja - 7)*1.5*gaji_jam;
/* Jika ada lembur */
else
gaji=jam_kerja*gaji_jam; /* Tidak ada lembur */
printf("\nGaji yang diterima :%10.2f",gaji);
getch();
}


/* Contoh Program ke-24 */
/* Struktur Else If */
main()
{
float angka;
char huruf;
clrscr();
printf("\nMasukan Nilai Angka : ");scanf("%f",&angka);
if(angka<50) huruf='E';
else if(angka>=50 && angka <60) huruf='D';
else if(angka>=60 && angka <70) huruf='C';
else if(angka>=70 && angka <85) huruf='B';
else huruf='A';
printf("\nAnda Mendapat Nilai :%c",huruf);
getch();
}



/* Contoh Program ke-25 */
/* Menghitung uang pembelian */
main()
{
float jml_belanja,discount=0,jml_bayar;
clrscr();
printf("\nBesarnya belanja : ");
scanf("%f",&jml_belanja);
if (jml_belanja >= 100000)
discount=0.10*jml_belanja;
jml_bayar=jml_belanja-discount;
printf("\nDiscount : %10.2f",discount);
printf("\nUang Pembayaran : %10.2f",jml_bayar);
getch();
}


/* Contoh Program ke-26 */
/* Penggunaan Nested If */
main()
{
int umur;
clrscr();
printf("\nBerapa usia Anda : ");
scanf("%d",&umur);
if (umur <50)
if (umur >21)
printf("\nAnda Sudah dewasa");
else
printf("\nAnda Masih Muda");
else
printf("\nAnda Sudah Tua");
getch();
}

>>>Selamat Berkarya, Success is waiting for you<<<
Created by:Chairul Candra,S.Kom. AMIK-DP

/* Contoh Program ke-27 */
#include
void fungsi1(void) {
/* Mendeklarasikan variabel x yang bersifat lokal */
int x;
x = 12;
printf("Nilai x di dalam fungsi1() : %d\n",x);
}
void fungsi2(void) {
/* Mendeklarasikan variabel x yang bersifat lokal */
int x;
/* Mendeklarasikan variabel y yang bersifat lokal */
int y=50;
x = 35;
printf("Nilai x di dalam fungsi2() : %d\n", x);
printf("Nilai y di dalam fungsi2() : %d\n", y);
}
/* Fungsi Utama */
int main() {
/* Melakukan pemanggilan terhadap fungsi1() dan fungsi2() */
fungsi1();
fungsi2();
getch();
}


/* Contoh Program ke-28 */
#include
/* Mendefinisikan makro untuk mengset nilai PI */
#define PI 3.1416
int main(void) {
/* Mendeklarasikan variabel untuk menampung
Nilai jari-jari dan luas lingkaran */
double jari2, luas;
/* Meminta pengguna (user) untuk memasukkan panjang jarijari */
clrscr();
printf("Masukkan panjang jari-jari lingkaran = ");
scanf("%lf", &jari2);
/* Melakukan perhitungan luas lingkaran dan
memasukkan hasilnya ke dalam Variabel luas */
luas = PI * jari2 *jari2;
/* Menampilkan nilai dari variabel luas */
printf("Luas lingkaran = %.2lf", luas);
getch();
}


/* Contoh Program ke-29 */
/* Penggunaan fungsi atoi() dan atof()
ASCII to integer dan ASCII to float */
main()
{
int bil;
char x[10];
clrscr();
printf("Inputkan sebuah bilangan bulat : ");
gets(x);
/*Konversi String ke Integer */
bil=atoi(x);
printf("\nBilangan tersebut : %d",bil);
printf("\nBilangan + 10 : %d",bil+10);
getch();
}



/* Contoh Program ke-30 */
/* Penggunaan fungsi atoi() dan atof()
ASCII to integer dan ASCII to float */
main()
{
float atof();
float bil;
char x[10];
clrscr();
printf("\nInput bilangan bulat : ");
gets(x);
/*Konversi String ke Float */
bil=atof(x);
printf("\nBilangan tersebut : %.3f",bil);
printf("\nBilangan + 10 : %.3f",bil+10);
getch();
}


/* Contoh Program ke-31 */
/* Penggunaan fungsi gets() dan puts() */
main()
{
static char nama[20];
clrscr();
puts("Nama Anda : ");gets(nama);
puts("Senang berkenalan dengan Anda, ");
puts(nama);
getch();
printf("\nLihat hasil yang kedua ini\n");
printf("Simpulkan sendiri...!\n\n");
cputs("Nama Anda : ");gets(nama);
cputs("Senang berkenalan dengan Anda, ");puts(nama);
getch();
}


/* Contoh Program ke-32 */
#define KEDIP "\x1B[5m"
#define NORMAL "\x1B]0m"
#define HAPUS printf("\x1B[2J")
main()
{
int brs,kol;
char nama[20];
HAPUS;
printf("\x1B[2;15f");
printf("Input Nama Anda : ");gets(nama);
printf("\x1B[3;15f");
printf("Ingin dicetak di posisi (brs,kol) : ");
scanf("%d,%d",&brs,&kol);
printf("\x1B[%d;%d",brs,kol);
printf("%s %s %s",KEDIP,nama,NORMAL);getch();
}
>>>Selamat Berkarya, Success is waiting for you<<<
AMIK-DP Kerinci
Writen by: Chairul Candra, S.Kom.

Senin, 14 Juni 2010

Pascal

Penggunaan Turbo Pascal

Dari modus prompt DOS, hal yang dilakukan sbb:
A:\>turbo
Dari desktop sorot dan double klik Turbo Pascal atau Pascal saja.

I. Menu dalam Pascal:
a.File (Alt-F)
Load / Pick :untuk mengambil program yang sudah ada di disk kerja
New :untuk membuat program baru
Save :untuk menyimpan program
Write to :untuk merekam program ke suatu file
Directory :untuk menampilkan directory
Cahnge dir :untuk mengganti directory yang aktif
OS Shell :untuk menjalankan perintah-perintah DOS
Quit :mengakhiri turbo Pascal dan kembali ke prompt DOS.


b.Edit (Alt-E)Digunakan untuk keperluan memperbaiki program.
c.Run (Alt-R)Digunakan untuk menjalankan program yang ada di jendela edit.
d.Compile (Alt-C)Digunakan untuk mengkompilasi program. Destination Memory (di simpan di memory). Destination Disk ( disimpan dalam disk dengan ext.EXE).
e.Options (Alt-O)Digunakan untuk mengatur/menentukan kembali bagaimana F1-help, F2-Save, F3-new, F4-import data, F9-expand, F10-contact danEsc-exit integrated environment bekerja.
f.Debug dan Break/Watch (Alt-D & Alt-B)Digunakan untuk melacak program, mengaktifkan Debug & Break/Watch.

**Catatan: tekan Esc untuk meninggalkan menu.

II. Struktur Program Pascal
Secara ringkas, struktur suatu program Pascal dapat terdiri dari:
1.Judul Program
2.Tubuh Program

Tubuh program dibagi menjadi dua bagian utama :
a.Bagian deklarasi
-deklarasi label
-deklarasi konstanta
-deklarasi tipe
-deklarasi variable/perubah
-deklarasi prosedur
-deklarasi fungsi

b.Bagian Pernyataan/Terproses.
Catatan: baris-baris komentar untuk memperjelas program diletakkan diantara tanda (* dan *) atau { dan }.

1.Judul Program
Judul program ini digunakan untuk memberi nama program dan sifatnya optional. Jika ditulis harus terletak pada awal dari program dan diakhiri dengan titik koma(;).
Contoh penulisan judul program:
PROGRAM latihan;
PROGRAM latihan(input, output);
PROGRAM lat_1;
PROGRAM lat_satu(output);

2.Bagian Pernyataan
Bagian ini adalah bagian yang akan terproses dan terdapat dalam suatu blok yang diawali dengan BEGIN dan diakhiri dengan END (penulisan END diikuti dengan tanda titik). Bagian ini berisi pernyataan/statemen yang merupakan instruksi program. Setiap statemen diakhiri dengan tanda titik koma (;).

Bentuk umumnya adalah sbb:

BEGIN
………..
statemen;
statemen;
………..
END.

3.Bagian deklarasi
Bagian ini menjelaskan secara rinci semua data yang akan digunakan pada suatu program. Dalam penulisannya tidak boleh sama dengan kata-kata cadangan (reserved words) dan selalu diakhiri dengan titik koma (;).

Deklarasi label
Deklarasi label digunakan jika pada penulisan program akan menggunakan statemen GOTO (untuk meloncat ke suatu statemen tertentu).
Contoh:
PROGRAM cetak;
LABEL satu,akhir;
BEGIN
WRITELN(‘AMIK’);
GOTO satu;
WRITELN(‘NOFEAR’);
Satu:
WRITELN(‘DEPATI PARBO’);
GOTO akhir;
WRITELN(‘MARA CANDRA’);
Akhir:
END.

Bila program diatas dijalankan, akan menghasilkan:
AMIK
DEPATI PARBO.

Deklarasi konstanta
Deklarasi ini digunakan untuk mengidentifikasikan data yang nilainya sudah ditentukan dan pasti, tidak dapat dirubah dalam program.
Contoh:
PROGRAM CETAK_2(OUTPUT);
CONST a = 64; (* selalu menggunakan tanda = *)
b = ’INDONESIA Merdeka’);
BEGIN
WRITELN(a,’TAHUN’);
WRITELN(b);
END.
Bila program dijalnkan, output sbb:
64 TAHUN
INDONESIA Merdeka.

Deklarasi tipe
Deklarasi ini digunakan untuk menyebutkan tipe setiap data yang akan digunakan pada program Pascal. Tipe data menentukan jangkauan nilai yang mungkin dari data yang digunakan.
Contoh:
PROGRAM SATU;
TYPE bulat = INTEGER; {selalu menggunakan tanda =}
Hasil,pecahan = REAL;
Ket = STRING[20];
BEGIN
Pecahan:=2.52;
Bulat:=2;
Hasil := pecahan + bulat;
Ket := ‘hasil penjumlahan =’;
WRITE(ket,hasil:4:2);
END.
Keluaran program, sbb: hasil penjumlahan = 4.52

Deklarasi variable/perubah
Deklarasi ini berisi data-data yang bias berubah-ubah nilainya di dalam program. Deklarasi variable harus diletakkan setelah deklarasi tipe (jika ada).
Contoh:
VAR satu : INTEGER;
Dua : INTEGER;
A : REAL;
B : REAL; {selalu menggunakan tanda : }
BEGIN
Satu := 5;
Dua := 4;
A := 2.3;
B := 5+4*2.3; {hasilnya real}
WRITE(‘hasil = ‘,b:4:1);
END.

Output program : hasil = 14.2
Program di atas bisa ditulis sbb:
VAR satu, dua : INTEGER;
BEGIN
……
Statemen;
…….
END.

Contoh jika terdapat deklarasi tipe:
TYPE
Bilangan = integer;
VAR
Satu, dua, a : bilangan;
B : real;
BEGIN
……..
Statemen;
……..
END.
Deklarasi prosedur dan Fungsi
Program dapat dibagi menjadi beberapa bagian/subprogram, yang terdiri dari satu program utama dan satu/lebih program bagian (bias berupa prosedur/fungsi). Deklarasi prosedur/fungsi terletak pada subprogram yang menggunakannya.

III. Tipe Data
Tipe data dapat terletak pada deklarasi variable maupun pada deklarasi tipe. Pascal menyediakan beberapa macam tipe data, yang terdiri dari:
1.Tipe data sederhana/scalar, terdiri dari :
1.1 Tipe data standar/predefinisi
1.1.1 bulat (integer)
1.1.2 real
1.1.3 karakter
1.1.4 string
1.1.5 logika (Boolean)
1.2 Tipe data didefinisikan pemakai:
1.2.1 subjangkauan (subrange)
1.2.2 terbilang (enumerated)
2.Tipe data terstruktur, terdiri dari :
2.1 larik (array)
2.2 rekaman (record)
2.3 berkas (file)
2.4 himpunan (set)
3.Tipe data penunjuk (pointer)

1.1 Tipe data standar
1.1.1 Tipe data integer
Tipe integer adalah bilangan yang tidak mempunyai titik decimal/bilangan pecahan. Integer terdiri dari beberapa tipe, yaitu :
-byte, dengan jangkauan nilai 0..255
-shortint, dengan jangkauan nilai -128..127
-integer, dengan jangkauan nilai -32768..32767
-word, dengan jangkauan nilai 0..65535
-longint, dengan jangkauan nilai -2147483648..2147483647

Operator yang dapat digunakan pada data tipe integer :
+,penjumlahan
-,pengurangan
*,perkalian
Div,pembagian
Mod,sisa pembagian

Contoh:
VAR a,b,jumlah1,jumlah2 : INTEGER;
BEGIN
Jumlah1 :=10;
Jumlah2 :=3;
A:= jumlah1 DIV jumlah2;
B:= jumlah1 MOD jumlah2;
WRITELN(‘HASIL A = ‘,A);
WRITELN(‘HASIL B = ‘,B);
END.
Hasil program : HASIL A = 3
HASIL B = 1

1.1.2 Tipe data real
Tipe real adalah bilangan yang mengandung pecahan, paling sedikit harus ada satu digit sebelum dan sesudah titik decimal.
Operator yang dapat digunakan pada data tipe real adalah:
+,penjumlahan
-,pengurangan
*,perkalian
/,pembagian

Contoh:
VAR nilai1,nilai2,hasil : REAL;
BEGIN
Nilai1 := 2.52;
Nilai2 := 3.2;
Hasil := nilai1 + nilai2;
Write(‘HASIL PENJUMLAHAN = ‘,hasil:4:2);
END.
Output program, sbb : HASIL PENJUMLAHAN = 5.72

1.1.3Tipe data karakter
Nilai data karakter berupa sebuah karakter yang ditulis diantara tanda petik tunggal, misalnya : ‘A’, ‘b’, ‘@’, dan sebagainya. Karakter yang dapat diterima oleh computer:
Huruf besar/kecil : AB,C,..,Z / a,b,c,…,z
Digit : 1,2,3,…,9
Operator aritmatika : * / + -
Tanda baca : , . ; : ? !
Symbol khusus : $ @ {} () [] % #
Spasi
Contoh:
VAR nilai : CHAR;
BEGIN
Nilai := ‘A’;
WRITELN(‘NILAI TERBAIK =’,nilai); END.
Hasilnya : NILAI TERBAIK = A

1.1.4Tipe data string
Nilai data string adalah satu atau lebih karakter yang terletak diantara tanda petik tunggal, missal : ‘DEPATI PARBO’. Bila panjang dari suatu string di dalam deklarasi variable tidak disebutkan, maka dianggap panjangnya 255 karakter.
Contoh:
VAR kata1 : STRING[5];
Kata2 : STRING[9];
Kata : CHAR;
BEGIN
Kata1 :=’AMIK’;
Kata2 :=’DEPATI PARBO’;
Kata :=’ ‘; {karakter berupa spasi}
WRITELN(kata1,kata,kata2);
END.
Hasilnya : AMIK DEPATI PARBO

1.1.5Tipe data boolean
Data tipe Boolean mempunyai dua nilai, yaitu True dan False.
Contoh:
VAR
Benar : BOOLEAN;
BEGIN
Benar := TRUE;
Writeln (‘benar = ‘,benar);
END.
Hasil program bila dijalankan : benar = TRUE

1.2Tipe data terdefinisi
1.2.1Tipe data subjangkauan
Tipe data ini adalah tipe data yang dapat didefinisikan sendiri oleh pemakai. Nilai data pada tipe ini mempunyai jangkauan tertentu.
Misalkan nilai ujian mempunyai harga 0 sampai 100, maka nilai ujian dapat didefinisikan sbb:
TYPE
Nilai = 0..100;
Contoh:
VAR sks : 1..4;
Angkatan : 07..09;
Nilai : ‘A’..’E’;
1.2.2Tipe data terbilang
Tipe data ini juga dapat didefinisikan sendiri oleh pemakai. Disebut tipe terbilang karena semua nilai disebut satu persatu.
Contoh:
TYPE hari = (Senin, Selasa, Rabu, Kamis, Jumat, Sabtu, Minggu);
Hari_kerja = (Senin,Selasa,Rabu,Kamis,Jumat);
Situasi = (Senang,gembira,sedih,susah);
2.1. Tipe data larik (array)
Larik (array) adalah kumpulan data yang mempunyai tipe data sejenis. Daftar nomor telpon, daftar kode mata kuliah, vector, matrik merupakan contoh larik.
Contoh penulisan tipe larik berdimensi satu sbb:
CONST batas = 20;
VAR telpon : ARRAY[1..3] OF STRING[7];
{ larik dengan nama telpon mempunyai 3 data dengan tipe string}
Nilai : ARRAY[1..5] OF INTEGER;
{ larik dengan nama nilai mempunyai 5 data dengan tipe integer }
Gaji : ARRAY[1..batas] OF REAL;
{ larik dengan nama gaji mempunyai 20 data dengan tipe real}

Contoh larik yang mempunyai tipe data terbilang atau subjangkauan :
TYPE batas = 0..100;
Keadaan = (baru,lama,bagus,jelek);
VAR
Nilai : ARRAY[1..30] OF ‘A’..’B’;
{ larik dengan nama nilai mempunyai 30 data, dan pengisian data yang diperbolehkan hanya A,B,C,D,E }
Angka : ARRAY[1..50] OF batas;
{ larik dengan nama angka mempunyai 50 data, dan pengisian data yang diperbolehkan hanya 1,2,3,…,99,100 }
Baju : ARRAY[1..10] OF keadaan;
{ larik dengan nama baju mempunyai 10 data, dan pengisian data yang diperbolehkan baru,lama,bagus, dan jelek }

Contoh program :
VAR jumlah : INTEGER;
Nilai : ARRAY[1..3] OF ‘A’..’E’;
Angka : ARRAY[1..3] OF INTEGER;
BEGIN
Nilai[1] := ‘C’;
Nilai[2] := ‘B’;
Nilai[3] := ‘A’;
angka[1] := 75;
angka[2] := 60;
angka[3] := 90;
jumlah := angka[1]+angka[2]+angka[3];
WRITELN(‘Nilai = ‘,angka[2],’Mendapat’,nilai[1]);
WRITELN(‘Jumlah = ‘,jumlah);
END.
Hasil program : Nilai 60 Mendapat C
Jumlah = 225

Contoh penulisan tipe larik berdimensi dua sbb:
VAR table : ARRAY[1..3,1..2] OF BYTE;
{ larik table mempunyai 3 baris dan 2 kolom dengan tipe byte }
BEGIN table[1,1]:=5; { baris 1, kolom 1 }
Table[1,2] :=7;
Table[2,1]:=21; { baris 2, kolom 1}
Table[2,2]:=18;
Table[3,1]:=8;
Table[3,2]:=7;
Writeln(‘Baris 1 Kolom 2 =’,table[1,2]);
END.

Hasil program bila dijalankan: Baris 1 Kolom 2 = 7

2.2 Tipe data record dan file
(akan dibahas pada pembahasan record dan file)

Statemen-statemen Pada Pascal
Reserverd Word
Reserved Word adalah kata-kata baku yang digunakan dalam program dan mempunyai bentuk serta kegunaan tertentu yang telah didefinisikan oleh Pascal.
Reserved Word tidak boleh didefinisikan kembali oleh pemakai, sehingga tidak dapat digunakan sebagai pengenal (Identifier). Dalam bahasa pemrograman Pascal, beberapa Reserved Word tersebut adalah:
AND ASM ARRAY BEGIN CASE CONST CONSTRUCTOR DESTRUCTOR DIV DO WITH DOWNTO
ELSE END EXPORTS FILE FOR IF IMPLEMENTATION VAR IN INHERITED INLINE INTERFACE LABEL LIBRARY FUNCTION GOTO NOT OBJECT USES OF OR PACKED
PROCEDURE PROGRAM RECORD MOD NIL SHL SHR STRING THEN TO TYPE UNIT
UNTIL REPEAT SET WHILE


Selain dari Reserved Word di atas, Turbo Pascal masih memiliki tambahan Reserved Word berikut:
ABSOLUTE ASSEMBLER() FAR FORWORD INDEX

Beberapa statemen/perintah pada Pascal
Statemen adalah perintah untuk pengerjaan Pascal. Statemen terletak di bagian dekalarasi ststemen dengan diawali oleh kata cadangan BEGIN dan diakhiri dengan kata cadangan END. Akhir dari setiap statemen diakhiri dengan titik koma(;). Statemen-statemen dalam bahasa Pascal terdiri dari pernyataan yang berupa fungsi dan prosedur yang telah disediakan sebagai perintah standar Turbo Pascal.
1.Statemen-statemen yang digunakan untuk input/output
2.Statemen-statemen yang digunakan untuk pengaturan letak di layer
3.Statemen-statemen yang digunakan untuk memanipulasi string

Array

Array adalah tipe data terstruktur yang terdiri dari sejumlah komponen-komponen yang mempunyai tipe sama. Komponen-komponen tersebut disebut sebagai komponen type,larik mempunyai jumlah komponen yang jumlahnya tetap. Banyaknya komponen dalam larik ditunjukkan oleh suatu index, dimana tiap komponen di array dapat diakses dengan menunjukkan nilai indexnya atau subskript. Array dapat bertipe data sederhana seperti byte, word, integer, real, bolean, char, string dan tipe data scalar atau subrange. Tipe larik mengartikan isi dari larik atau komponen- komponenya mempunyai nilai dengan tipe data tersebut.

Contoh:
Var
Untai : array[1..50] of Integer;

Pada contoh Array dengan nama untai telah dideklarasikan dengan tipe integer, dengan jumlah elemen maksimum 50 elemen, nilai dari elemen array tersebut diatas harus bertipe integer.

Contoh Program :
Program Contoh_Array_Input;
Uses Crt;
Var
Bilangan : array[1..50] of Integer;
Begin
ClrScr;
Bilangan[1]:=3;
Bilangan[2]:=29;
Bilangan[3]:=30;
Bilangan[4]:=31;
Bilangan[5]:=23;
Writeln('nilai varibel bilangan ke 3 =',Bilangan[3]);
Readln;
End.

Array juga dapat dideklarasikan bersama dengan tipe yang beragam seperti contoh dibawah ini :

Program Contoh_Deklarasi_Array_Beragam;
Uses Crt;
Var
NPM : array[1..20] of string[10];
Nama : array[1..20] of string[25];
Nilai : array[1..20] of real;
Umur : array[1..20] of byte;
banyak,i : integer;
Begin
ClrScr;
Write('Isi berapa data array yang diperlukan :');Readln(banyak);
For i := 1 to banyak Do
Begin
Write('NPM =');Readln(NPM[i]);
Write('Nama =');readln(Nama[i]);
Write('Nilai=');readln(Nilai[i]);
Write('Umur =');readln(Umur[i]);
End;
{cetak varibel array}
Writeln('NPM NAMA NILAI UMUR ');
For i:= 1 to banyak Do
Begin
Writeln(Npm[i]:10,Nama[i]:25,Nilai[i]:3:2,' ',Umur[i]:3);
End;
Readln;
End.

Untuk deklarasi array dapat digunakan beberapa cara seperti berikut ini :

Type
Angka = String[20];

Var
Nama : Array [1..50] of Angka;
Begin
.
.
End.

Deklarasi tipe indeks subrange integer Indeks pada array dapat tipe skalar atau subrange, tetapi tidak bisa real.

Contoh:
Var
Nilai : Array[1..10] of Integer;

Pada contoh ini array nilai mempunyai 10 buah elemen yaitu dari 1 sampai 10. Array tersebut dapat dideklarasikan dengan type seperti berikut ini :
Type
Skala = 1..10;
Var
Nilai : Array [skala] of Integer;

atau :

Type
Skala = 1..10;
Y = Array[skala] of Integer;
Var
Nilai : Y;

atau :

Type
Y = Array[1..10] of Integer;
Var
Nilai : Y;

atau :

Const
Atas =1;
Bawah = 5;
type
Y = Array[Atas..Bawah] of Integer;
Var
Nilai : Y;


I. Deklarasi Type Indeks Skalar

Indeks dari larik dapat berupa tipe skalar.

Contoh. :
Program Deklarasi_Indeks_Array_Skalar;
Uses Crt;
Var
Jum : Array[(jan,feb,mar,apr,mei)] of Integer;
Begin
Jum[jan]:=25;
Jum[feb]:=45;
Jum[mar]:=21;
Jum[apr]:=23;
Jum[mei]:=50;
Writeln('Jumlah nilai bulan maret =',Jum[mar]);
Readln;
End.

dapat juga ditulis :

type
Bln = (jan,feb,mar,apr,mei);
Var
Jum : Array[bln] of Integer;

atau :

type
Bln =(jan,feb,mar,apr,mei);
Var
Jum : Array[jan..mei] of Integer;



II. Deklarasi Konstanta Array

Array tidak hanya dapat berupa suatu varibel yang dideklarasikan di bagian deklarasi variabel, tetapi dapat juga berupa konstanta (const).

Contoh Program :
Program Contoh_Deklarasi_Array_Konstan;
Uses Crt;
Const
Tetap : Array[1..4] of Integer=(7,10,21,20);
Var
i : Integer;
Begin
For i:= 1 to 4 Do
Writeln('Nilai Konstan array ke ',i:2,' =',Tetap[i]);
Readln;
End.

Konstanta array dapat juga berupa ketetapan dalam bentuk karakter seperti berikut.

Contoh Program :
Program Contoh_Konstan_Array_Char_;
Uses Crt;
Const
Huruf : Array[0..5] of Char=('A','B','C','D','E','F');
Var
i : Integer;
Begin
For i:= 0 to 5 Do
Writeln('Nilai konstan array ke',i:2,' = ',Huruf[i]);
Readln;
End.

Konstanta array dapat juga berupa string seperti berikut ini.

Contoh Program :
Program Constanta_Array_String;
Uses Crt;
Type
A = Array [1..5] of String;
Const
Nama : A = ('basic','pascal','cobol','paradox','dbase');
Var
i : Integer;
Begin
For i:= 1 to 5 Do
Writeln('Nilai Array ke-',i:2,'= ',Nama[i]);
readln;
end.
Dalam pascal string merupakan array dari elemen- elemen karakter seperti berikut :

Contoh Program :
Program String_Adalah_Array_Tipe_Char;
Uses Crt;
Var
Nama : string;
i : Integer;
Begin
Nama:='Turbo Pascal';
For i:= 1 to Length(nama) Do
Writeln('Elemen ',i,' dari ',Nama,'= ',Nama[i]);
Readln;
End.

Contoh program bilangan prima dengan menggunakan bantuan array.

Contoh program :
Program Mencari_Bilangan_Prima_Dengan_Array;
Uses Crt;
Var
Prima : Array[1..100] of Integer;
i,j : Integer;
bil : Integer;
Begin
ClrScr;
For i := 2 to 100 Do
Begin
Prima[i]:=i;
For j:= 2 to i-1 Do
Begin
bil := (i mod j); {* i dibagi j dicek apakah 0*}
If bil = 0 then Prima[i]:=0; {*jika habis dibagi,berarti bkn prima*}
End;
If Prima[i]<> 0 Then Write(Prima[i],' '); {*cetak array yg prima*}
End;
Readln;
End.

Contoh pengurutan data dengan metode buble sort, yaitu dengan cara penukaran, dapat
dilihat pada contoh dibawah ini :

Contoh Program :
Program Penggunaan_Array_Untuk_Sortir_Buble_Sort;
Uses Crt;
Var
nil1 : Array[1..100] of Integer;
n,i,j,dum : Integer;
Begin
ClrScr;
Write('mau isi berapa data acak (integer) ='); readln(n);
For i := 1 to n Do
Begin
Write('Data Ke ',i,':');Readln(nil1[i]);
End;
{ penyapuan proses}
for i:= 1 to n-1 do
begin
for j:= i to n do
begin
if nil1[j]III. Array Dua Dimensi

Di dalam pascal Array dapat berdimensi lebih dari satu yang disebut dengan array dimensi banyak (Multidimensional array), disini akan dibahas array 2 dimensi saja. Array 2 dimensi dapat mewakili suatu bentuk tabel atau matrik, yaitu indeks pertama menunjukkan baris dan indeks ke dua menunjukkan kolom dari tabel atau matrik.
Untuk mengetahui cara mendeklarasikan dari penggunaan aray dua dimensi dapat dilihat pada listing program dibawah ini .

Contoh Program:
Program Deklarasi_Array_Dua_Dimensi;
Uses Crt;
Var
Tabel : Array[1..3,1..2] of Integer;
i,j : Integer;
Begin
ClrScr;
Tabel[1,1]:=1;
Tabel[1,2]:=2;
Tabel[2,1]:=3;
Tabel[2,2]:=4;
Tabel[3,1]:=5;
Tabel[3,2]:=6;
For I := 1 to 3 Do
Begin
For J:= 1 to 2 Do
Begin
Writeln('Elemen ',i,',',j,'= ',tabel[i,j]);
End;
End;
Readln;
End.


IV. Alternatif Deklarasi Array Dua Dimensi.

Ada beberapa cara dalam mendeklarasikan array dua dimensi, beberapa cara tersebut dapat dilihat dibawah ini :

Contoh :
Var
Tabel : Array[1..3] of Array[1..2] of Byte;

atau :

Type
Matrik = Array[1..3,1..2] of Byte;
Var
Tabel : Matrik;

atau :

Type
Baris = 1..3;
Kolom = 1..2;
Matrik = Array[Baris,Kolom] of Byte;
Var
Tabel : Matrik;

atau :

Type
Baris = 1..3;
Kolom=1..2;
Matrik= Array[Baris] of Array[Kolom] of Byte;
Var
Tabel : Matrik;

Dibawah ini akan diberikan listing program penggunaan array dua dimensi dalam aplikasi penjumlahan matrik :
Contoh Prorgam:

Program Penjumlahan_Matrik;
Uses Crt;
Var
Matrik1,Matrik2, Hasil : Array[1..3,1..2] of Integer;
i,j : Integer;
Begin
ClrScr;
{ input matrik ke satu }
Writeln(' Elemen matrik satu');
For i := 1 to 3 Do
Begin
For j := 1 to 2 Do
Begin
Write('Elemen baris -',i,' Kolom -',j,'= ');
Readln(matrik1[i,j]);
End;
End;
{input matrik ke dua}
Writeln('input elemen matrik dua');
For i:= 1 to 3 Do
Begin
For j:= 1 to 2 Do
Begin
Write('Elemen baris -',i,' kolom -',j,'= ');
Readln(matrik2[i,j]);
End;
End;
{proses penjumlahan tiap elemen}
For i := 1 to 3 Do
Begin
For j:= 1 to 2 Do
Begin
Hasil[i,j]:=Matrik1[i,j]+Matrik2[i,j];
End;
End;
{proses cetak hasil}
For i:= 1 to 3 Do
Begin
For j:= 1 to 2 Do
Begin
Write(Hasil[i,j]:6);
End;
Writeln;
End;
Readln;
End.


V. Array Sebagai Parameter

Array dapat digunakan sebagai parameter yang dikirimkan baik secara nilai (by value) atau secara acuan (by reference) ke procedure atau ke function. Procedure yang menggunakan parameter berupa array harus dideklarasikan di dalam judul procedure yang menyebutkan parameternya bertipe array.

Contoh Program :
Program Contoh_Pengiriman_Parameter_Array_Di_Procedure;
Uses Crt;
Const
Garis ='---------------------------------------------------';
Type
Untai = Array[1..10] of String[15];
Bulat = Array[1..10] of Integer;
Huruf = Array[1..10] of Char;
Var
i,Banyak : Integer;

Procedure Proses(Nama:Untai;Nilai:Bulat);
Var
Ket : String;
Abjad : Char;
Begin
Writeln(Garis);
Writeln('Nama Nilai Abjad Keterangan');
Writeln(Garis);
For i := 1 to Banyak Do
Begin
If Nilai[i] > 90 Then
Begin
Abjad:='A';
Ket :='Istimewa';
End;
If (Nilai[i]<90)>70) Then
Begin
Abjad:='B';
Ket :='Memuaskan';
End;
If (Nilai[i]<70)>60) Then
Begin
Abjad:='C';
Ket :='Cukup';
End;
If (Nilai[i]<60)>45) Then
Begin
Abjad:='D';
Ket :='Kurang';
End;
If Nilai[i]< data ="');Readln(Banyak);" nama ="');readln(Nama[i]);" nilai ="');readln(Nilai[i]);" style="font-weight: bold;">Record
Tipe record merupakan tipe data terstruktur. Dalam penggunaan tipe data record dapat dikumpulkan beberapa item data yang masing-masing mempunyai tipe data berbeda-beda. Record dapat berisi beberapa field untuk sebuah subjek tertentu.
I. Deklarasi record
Diawali dengan kata cadangan Record, lalu diikuti daftar field dan diakhiri kata cadangan end;
Contoh:
Type
Data_pegawai = record
Nip : string[5];
Nama : string[15];
Alamat : string[20];
Gaji : longint;
End;
Var
Pegawai : data_pegawai;
Atau langsung dideklarasikan di variable :
Var
Pegawai : record
Nip : string[5];
Nama : string[15];
Alamat : string[20];
Gaji : longint;
End;
Cara menggunakan tiap field dari record untuk input, cetak dan proses adalah sebagai berikut:
Nama_record.nama_field
Contoh:
Program contoh_record_sederhana;
Uses crt;
Type
Data_pegawai = record
Nip : string[5];
Nama : string[15];
Alamat : string[20];
Gaji : longint;
End;
Var
Pegawai : data_pegawai;
Begin
Clrscr;
Write(‘Kode pegawai = ‘);readln(pegawai.nip);
Write(‘Nama pegawai = ‘);readln(pegawai.nama);
Write(‘Alamat pegawai = ‘);readln(pegawai.alamat);
Write(‘Gaji pegawai = ‘);readln(pegawai.gaji);
{cetak di layar}
Writeln(‘Kode pegawai : ‘,pegawai.nip);
Writeln(‘Nama pegawai : ‘,pegawai.nama);
Writeln(‘Alamat pegawai : ‘,pegawai.alamat);
Writeln(‘Gaji pegawai : ‘,pegawai.gaji);
Readln;
End.



II.Statemen with
Penggunaan statemen nama_record.nama_field seperti contoh sebelumnya dapat diringkas menjadi :
Contoh:
Program contoh_record_menggunakan_statemen_with;
Uses crt;
Type
Data_pegawai = record
Nip : string[5];
Nama : string[15];
Alamat : string[20];
Gaji : longint;
End;
Var
Pegawai : data_pegawai;
Begin
Clrscr;
With pegawai do
Write(‘Kode pegawai = ‘);readln(pegawai.nip);
Write(‘Nama pegawai = ‘);readln(pegawai.nama);
Write(‘Alamat pegawai = ‘);readln(pegawai.alamat);
Write(‘Gaji pegawai = ‘);readln(pegawai.gaji);
{cetak di layar}
Writeln(‘Kode pegawai : ‘,nip);
Writeln(‘Nama pegawai : ‘,nama);
Writeln(‘Alamat pegawai : ‘,alamat);
Writeln(‘Gaji pegawai : ‘,gaji);
Readln;
End.

Penjelasan:
Dengan menggunakan statemen with maka blok statemen berikutnya setelah statemen with dapat menggunakan nama field tanpa menyebutkan nama recordnya lagi.

III.Record dalam array
Dalam contoh sebelumnya penggunaan tipe data record hanya dapat menyimpan satu record. Untuk dapat menyimpan sejumlah record maka dapat digunakan array yang bertipe record yang sudah didefinisikan. Untuk itu dapat dilihat listing program berikut.
Contoh:
Program contoh_record_dalam_array;
Uses crt;
Type
Data_pegawai = record
Nip : string[5];
Nama : string[15];
Alamat : string[20];
Gaji : longint;
End;
Var
Pegawai : array[1..10] of data_pegawai;
I : integer;
Begin
Clrscr;
For i:= 1 to 10 do
Begin
With pegawai[i] do
Begin
Writeln(‘Record ke_ ‘,i);
Write(‘Kode pegawai = ‘);readln(nip);
Write(‘Nama pegawai = ‘);readln(nama);
Write(‘Alamat pegawai = ‘);readln(alamat);
Write(‘Gaji pegawai = ‘);readln(gaji);
Writeln;
End;
End;
{cetak}
Writeln(‘ NIP Nama Alamat Gaji’);
For i:= 1 to 10 do
Begin
With pegawai[i] do
Begin
Write(nip:5);
Writenama:15);
Write(alamat:20);
Writeln(gaji:10);
End;
End;
Writeln(‘-------------------------------------‘);
Readln;
End.


IV.Field record bertipe array
Jika dalam satu record terdapat beberapa field yang sama tipenya dapat digunakan array. Contoh ada data barang yang mempunyai struktur.
- Nama barang  bertipe string
- Jumlah unit barang ke 1  bertipe byte
- Jumlah unit barang ke 2  bertipe byte
- Jumlah unit barang ke 2  bertipe byte
Terlihat bahwa jumlah unit barang 1,2,3 bertipe sama. Dalam hal ini dapat digunakan array ber index 1..3 untuk mempersingkat field jumlah unit barang.
Contoh:
Program penggunaan_field_record_tipe_array;
Uses crt;
Type
Data_brg = record
namaBrg : string[15];
unitBrg : array[1..3 of byte;
end;
var
Barang : array[1..10] of data_brg;
i,j,banyak,jum1,jum2,jum3 : integer;
Begin
Jum1:=0;jum2:=0;jum3:=0;
Write(‘Banyak record Max. 10 = ‘);readln(banyak);
For I := 1 to banyak do
Begin
With barang[i] do
Begin
Writeln(‘Record ke-‘,i);
Write(‘Nama barang =’);readln(namabrg);
For j:= 1 to 3 do
Begin
Write(‘Unit barang ke-‘,j,’=’);readln(unitbrg[j];
End;
End;
End;
Clrscr;
Writeln(‘--------------------------------------‘);
Writeln(‘Nama barang unit1 unit2 unit3’);
Writeln(‘--------------------------------------‘);
{cetak data }
For i:= 1 to banyak do
Begin
With barang[i] do
Begin
Jum1:=jum1+unitbrg[1];
Jum2:=jum2+unitbrg[2];
Jum3:=jum2+unitbrg[2];
Writeln(namabrg:15,unitbrg[1]:5,unit[2]:5,unitbrg[3]:5);
End;
End;
Writeln(‘-----------------------------------------‘);
Writeln(‘Jumlah unit 1 =’,jum1:6);
Writeln(‘Jumlah unit 2 =’,jum2:6);
Writeln(‘Jumlah unit 3 =’,jum3:6);
Readln;
End.

V.Tipe data record dengan field tipe record
Dalam Turbo Pascal tipe data record didefinisikan juga sebagai field dari suatu record. Artinya suatu record dapat juga mempunyai field yang merupakan record. Contoh: sebuah data pegawai mempunyai struktur sebagai berikut:
-nama pegawai  string
-mulai masuk  -Tgl
-Bln
-Thn
-alamat pegawai  -Jalan
-Kota
-Gaji  -Gaji pokok
-Lembur
-Tunjangan
Maka dapat disusun program sebagai berikut :
Contoh:
Program penggunaan_field_tipe_record;
Uses crt;
Type
Masuk = record
Tgl :1..31;
Bln : 1..12;
Thn : integer;
End;
Alamat = record
Jalan=string[20];
Kota[10];
End;
Gajipeg=record
Pokok,tunjangan,lembur :real;
End;
Datapegawai = record
Nama:string[20];
Tglmasuk : masuk;
Almt:alamat;
Gaji:gajipeg;
End;
Var
Pegawai : array[1..10] of datapegawai;
I,p,banyak:integer;
Begin
Clrscr;
Write(‘Banyaka data record =’);readln(banyak);
For i:=1 to banyak do
Begin
Writeln(‘Record ke-‘,i);
With pegawai[i] do
Begin
Write(‘Nama Pegawai :’);readln(nama);
Write(‘Tanggal Masuk :’);readln(tglmasuk.tgl);
Write(‘Bulan Masuk :’);readln(tglmasuk.bln);
Write(‘Tahun Masuk :’);readln(tglmasuk.thn);
Write(‘Alamat :’);readln(alamat.jalan);
Write(‘Kota :’);readln(almt.kota);
Write(‘Gaji pokok :’);readln(gaji.pokok);
Write(‘Tunjangan :’);readln(gaji.tunjangan);
Write(‘Lembur :’);readln(gaji.lembur);
End;
End;
{cetak data}
For i:=1 to banyak do
Begin
Writeln(‘Record ke-‘,i);
With pegawai[i] do
Begin
Write(‘Nama Pegawai :’,nama);
Write(‘Tanggal Masuk :’,tglmasuk.tgl;
Write(‘Bulan Masuk :’,tglmasuk.bln);
Write(‘Tahun Masuk :’,tglmasuk.thn);
Write(‘Alamat :’,alamat.jalan);
Write(‘Kota :’,almt.kota);
Write(‘Gaji pokok :’,gaji.pokok);
Write(‘Tunjangan :’,gaji.tunjangan);
Write(‘Lembur :’,gaji.lembur);
End;
End;
Readln;
End.

VI.Record bervariasi
Record yang telah dibahas sebelumnya merupakan struktur record yang pasti, artinya field-field di dalam record sudah tertentu dan pasti. Selain itu di program Pascal dapat juga dibuat suatu record yang mempunyai field yang tidak pasti atau dapat berubah, yang disebut sebagai record yang bervariasi. Dalam record yang bervariasi dapat mengandung suatu field yang tergantung dari suatu kondisi. Dalam penerapannya dalam program hanya dapat diterima suatu buah field yang bervariasi saja. Field bervariasi ini harus terletak di bawah field yang tetap.
Contoh: Ada sebuah struktur data pegawai yang terdiri dari:
-Nama pegawai
-Alamat pegawai
-Umur
-Gaji
untuk gaji dibedakan antara pegawai tetap dengan honorer.
Untuk tetap -Tunjangan
-Lembur
-Gaji pokok
Untuk honorer -Gaji pokok

Deklarasi dan program :
Type
Status_pegawai = (Honorer, Tetap);
Data_pegawai = record
Nama :string[15];
Alamat:string[20];
Umur:byte;
Case status: status_pegawai of Honorer (gaji_h :real);
Tetap (gaji_t :real;
Tunajangan:real;
Lembur :real);
End;
Var
Pegawai : array[1..10] of data_pegawai;
Banyak,I : integer;
Kode : char;
Begin
{ input data }
Write(‘banyak Data maax.10 :’);readln(banyak);
For i:= 1 to banyak do
Begin
with pegawai[i] do
Begin
Write(‘Nama pegawai =’);readln(nama);
Write(‘Alamat pegawai =’);readln(alamt);
Write(‘Umur pegawai =’);readln(umur);
Write(‘Pegawai tetap(T) atau Honorer(H) :’);readln(kode);
Kode := upcase(kode);
Case kode of
‘H’:begin
Status:=Honorer;
Write(‘Gaji didapat =’);readln(gaji_h);
End;
‘T’:begin
Status:=Tetap;
Write(‘Gaji tetap =’);readln(gaji_t);
Write(‘Tunjangan =’);readln(tunjangan);
Write(‘Lembur =’);readln(lembur);
End;
End;
End;
End;
{ cetak data }
Writeln(‘-----------------------------------------------------------------------------‘);
Writeln(‘Nama Alamat Umur Status Gaji Tunjangan Lembur’);
Writeln(‘-----------------------------------------------------------------------------‘);
For i:= 1 to banyak do
Begin
With pegawai[i] do
Begin
Write(nama:15);
Write(alamat:20);
Write(umur:3,’’);
Case status of
Honorer:
writeln(‘Honorer’,gaji_h:8:2);
Tetap :
writeln(‘Tetap ‘,gaji_t:8:2,tunjangan:8:2,lembur:8:2);
End;
End;
End;
Writeln(‘-----------------------------------------------------------------------------‘);
Readln;
End.

Program contoh_record_bervariasi;
Uses crt;
Type
Status_karyawan = (lajang,menikah,cerai);
Data_karyawan = record
Nama : string[15];
Alamat : string[20];
Gaji : integer;
Case status : status_karyawan of Lajang:();
Menikah:(anakm:0..20);
Cerai:(anakc:0..20; lagi: char);
End;
Var
Karyawan: array[1..10] of data_karyawan;
I,banyak : integer;
Sts : char;
Begin
Clrscr;
Write(‘Jumlah data record :’);readln(banyak);
For i:= 1 to banyak do
Begin
With karyawan[i] do
Begin
Write(‘Nama :’);readln(nama);
Write(‘Alamat :’);readln(alamat);
Write(‘Gaji :’);readln(gaji);
Write(‘Status M=menikah L=Lajang C=cerai’);readln(sts);
If upcase(sts)=’L’ then
Begin
Status :=lajang;
End;
If upcase(sts)=’M’ then
Begin
Status:=Menikah;
Write(‘Jumlah anak= ‘);readln(anakm);
End;
If upcase(sts)=’C’ then
Begin
Status:=cerai;
Write(‘Jumlah anak= ‘);readln(anakc);
End;
Write(‘Kawin lagi (Y/T)?’);readln(lagi);
End;
End;
End;
{ tampilkan }
For i:= 1 to banyak do
Begin
With karyawan[i] do
Begin
Write(nama);
Write(alamat);
Write(gaji);
Case status of
Lajang:
writeln(‘lajang’);
Menikah :
Begin
Writeln(‘menikah’,’ ’,anakm:4);
End;
Cerai :
Begin
Write(‘cerai’,’ ‘,anakc:4,’’,lagi);
End;
End;
End;
Readln;
End.

Program penggunaan_field_tipe_record;
Uses crt;
Type
Masuk = record
Tgl :1..31;
Bln :1..12;
Thn: integer;
End;
Alamat = record
Jalan : string[20];
Kota : string[10];
End;
Gajipeg = record
Pokok,tunjangan,lembur : real;
End;
Datapegawai = record
Nama : string[20];
Tglmasuk :masuk;
Almt : alamat;
Gaji : gajipeg;
End;
Var
Pegawai : array[1..10] of datapegawai;
I,p,banyak : integer;
Begin
Clrscr;
Write(‘Banyak data record =’);readln(banyak);
For i:= 1 to banyak do
Begin
Writeln(‘record ke-‘,i);
With pegawai[i] do
Begin
Write(‘Nama pegawai :’);readln(nama);
Write(‘Tanggal Masuk :’);readln(tglmasuk.tgl);
Write(‘Bulan Masuk :’);readln(blnmasuk.bln);
Write(‘Tahun Masuk :’);readln(thnmasuk.thn);
Write(‘Alamat :’);readln(almt.jalan);
Write(‘Kota :’);readln(almt.kota);
Write(‘Gaji pokok :’);readln(gaji.pokok);
Write(‘Tunjangan :’);readln(gaji.tunjangan);
Write(‘Lembur :’);readln(gaji.lembur);
End;
End;
{ cetak data }
For i:= 1 to banyak do
Begin
Writeln(‘record ke-‘,i);
With pegawai[i] do
Begin
Write(‘Nama :’,nama;
Write(‘Tanggal Masuk :’,tglmasuk.tgl;
Write(‘Bulan Masuk :’,blnmasuk.bln;
Write(‘Tahun Masuk :’,thnmasuk.thn;
Write(‘Alamat :’,almt.jalan;
Write(‘Kota :’,almt.kota;
Write(‘Gaji pokok :’,gaji.pokok;
Write(‘Tunjangan :’,gaji.tunjangan;
Write(‘Lembur :’,gaji.lembur;
End;
End;
Readln;
End.


Procedure
Procedure adalah suatu program yang terpisah dalam blok tersendiri yang berfungsi sebagai subprogram (program bagian). Penggunaan prosedur diawali dengan kata cadangan procedure di dalam bagian deklarasi procedure. Pemanggilan procedure dengan menggunakan judul procedure.
Pada program terstruktur banyak menggunakan procedure karena :
- sebagai penerapan program yang modular yaitu memecah program yang rumit menjadi program-program bagian yang lebih sederhana dalam bentuk procedure.
- Untuk beberapa perintah yang sering digunakan berulang, cukup dituliskan sekali dalam procedure dan dapat dipanggil sewaktu-waktu.

Contoh Procedure tanpa parameter,
Procedure garis;
Begin
Writeln(‘--------------------‘);
End;
Procedure judul;
Begin
Writeln (‘Pascal’);
End;
{ modul utama }
Begin
Garis;
Judul;
Garis;
End.
Hasil :
--------------------
Pascal
--------------------

I.Parameter dalam procedure
Nilai di dalam suatu prosedur sifatnya adalah lokal, berarti hanya dapat digunakan oleh procedure tersebut saja dan tidak dapat digunakan oleh procedure yang lain.
Contoh:
Procedure hitung;
Var
a,b,c : integer;
Begin
Write(‘Nilai a =’);readln(a);
Write(‘Nilai b =’);readln(b);
C:=a+b;
Writeln(‘Hasil penjumlahan =’,c:5);
Readln;
End;
{ modul utama } akan salah jika pada modul utama :
Begin Begin
Hitung; hitung;
End. Writeln(‘Nilai a=’,a); -> a tidak dikenal
End.
Pada kasus di atas dapat diselesaikan dengan menggunakan deklarasi secara global, sehingga semua prosedur di bawah deklarasi global dapat menggunakannya.
Contoh penggunaan deklarasi global:
Uses crt;
Procedure kali;
Var
a,b,c : integer; {deklarasi secara local untuk procedur kali saja }
Begin
Write(‘A =’);readln(a);
Write(‘B =’);readln(b);
c:=a*b;
Writeln(‘Hasil C =’,c:5);
End;
Var
d,e,f : integer; {deklarasi secara global hingga dikenal oleh}
Procedure tambah; { procedure tambah dan procedure di bawahnya }
Begin
Write(‘nilai d =’);readln(d);
Write(‘nilai e =’);readln(e);
f:=d+e;
Writeln(‘nilai f =’,f:5);
End;
Procedure kurang; {procedure ini menggunakan variabel global }
Begin { yang terletak di atas prosedur tambah }
Write(‘Nilai D =’);readln(d);
Write(‘Nilai E =’);readln(e);
f:=d-e;
Writeln(‘Nilai f= ‘,f:5);
End;
{ modul utama }
Begin
Clrscr;
Kali;
Tambah;
Kurang
Readln;
End.

II.Pengiriman parameter secara Nilai
Pada pengiriman parameter secara nilai ( by value), parameter formal akan berisi nilai yang dikirimkan dari parameter nyata dan nilai parameter tersebut akan local di procedure yang dikirim, sifat dari pengiriman nilai ini adalah satu arah, sehingga perubahan nilai dari parameter formal tidak akan mempengaruhi nilai parameter nyta.
Contoh:
Program pengiriman_parameter_secara_nilai;
Procedure kali(a,b : integer); {parameter formal}
Var
Hasil: integer; {local variabel}
Begin
Hasil:=a*b;
Writeln(‘Hasil =’,hasil:6);
End;
{ modul utama }
Var
Bil1,bil2: integer;
Begin
Write(‘Bilangan 1= ‘);readln(bil1);
Write(‘Bilangan 2= ‘);readln(bil2);
Kali(bil1,bil2); {parameter nyata }
Readln;
End.
Di bawah ini merupakan contoh bahwa perubahan pada parameter formal tidak akan mempengaruhi nilai parameter nyata, karena sifatnya adalah satu arah.
Procedure kali(a,b :integer);
Kali(bil1,bil2);
Contoh:
Program parameter_nilai_tidak_mempengaruhi_parameter_nyata;
Uses crt;
Procedure test_hitung(a,b,hasil: integer);
Begin
Hasil:=a*b;
Writeln(‘A=’,a:4,’B=’,b:4,’Hasil=’,hasil:6);
End;
{ modul utama }
Var
Bil1,bil2,bil3 : integer;
Begin
Bil1:=3;bil2:=4;bil3:=0;
Test_hitung(bil1,bil2,bil3);
Writeln(‘Bil1=’,bil1:4,’Bil2=’,bil2,’Bil3=’,bil3);
Readln;
End.

III.Pengiriman parameter secara acuan (by reference)
Sifat dari pengiriman parameter secara acuan adalah dua arah, artinya perubahan dari parameter formal akan mempengaruhi nilai dari parmaeter nyata. Cara deklarasi di procedure dengan kata cadangan Var seperti berikut :
Procedure kali(var a,b,c : integer);  parameter formal
Kali(x,y,z);  parameter nyata.
Contoh:
Program pengiriman_parameter_secara_acua;
Uses crt;
Procedure kali(var a,b,c: integer); {parameter formal acuan }
Begin
c:=a*b;
End;
{ modul utama }
Var
X,y,z : integer;
Begin
Write(‘Nilai x=’);readln(x);
Write(‘Nilai y=’);readln(y);
Kali(x,y,z); { mengirimkan parameter secara acuan}
Writeln(‘Nilai z= ‘,z:5);
Readln;
End.
Contoh penggunaan parameter secara acuan untuk perhitungan faktorial:
Program contoh_penggunaan_parameter_acuan;
Uses crt;
Procedure faktor(var banyak,hasil: integer);
Var
I : integer;
Begin
Hasil:=1;
For i:= 1 to banyak do
Begin
Hasil:=hasil*I;
End;
End;
{ modul utama }
Var
N,jumlah : integer;
Begin
Write(‘Berapa faktorial =’);readln(n);
Faktor(n,jumlah);
Writeln(n,jumlah);
Writeln(n:5,’ faktorial adalah =’,jumlah:6);
Readln;
End.
Contoh program dengan penggunaan procedure dengan parameter secara acuan pada perhitungan pangkat lebih besar dari 2:
Program pangkat;
Uses crt;
Procedure pangkat(var bil,hasil:real; pang:integer);
Var
I:=integer;
Begin
Hasil:=1;
For i:= 1 to pang do
Begin
Hasil:=hasil*bil;
End;
End;
{ modul utama }
Var
Angka,hasil: real;
Pang: integer;
Begin
Clrscr;
Write(‘Bilangan yang dipangkat=’);readln(angka);
Write(‘dipangkatkan= ‘);readln(pang);
Pangkat(angka,hasil,pang);
Write(‘hasil= ‘,hasil:5:2);
Readln;
End.

IV.Procedure memanggil procedure yang lain
Di dalam Pascal diperkenalkan procedure memanggil procedure yang lain seperti contoh berikut:
Program procedure_memanggil_procedure_yang_lain;
Uses crt;
Procedure satu(a1:integer);
Begin
Writeln(‘Nilai a=’,a1:2,’ada di procedure satu’);
End;
Procedure dua(a2:integer);
Begin
Writeln(‘Nila a=’,a2,’ada di procedure dua’);
Satu(a2);
End;
Procedure tiga(a3:integer);
Begin
Writeln(‘Nilai a=’,a3:2,’ada di procedure tiga’);
Dua(a3);
End;
Procedure empat(a4:integer);
Begin
Writeln(‘Nilai a=’,a4:2,’ada di procedure empat’);
Tiga(a4);
{ modul utama }
Var
A:integer;
Begin
Clrscr;
Write(‘Nilai a=’);readln(a);
Empat(a);
Readln;
End.

V.Procedure tersarang
Procedure tersarang adalah procedure yang terdapat di dalam procedure yang lain dan dipanggil oleh procedure diluarnya.
Program contoh_procedure_tersarang;
Uses crt;
Procedure satu; {deklarasi satu}
Procedure dua;
Begin { awal procedure dua }
Writeln(‘Procedure dua ada di prosedur satu’);
End; {akhir procedure dua}
Procedure tiga;
Begin
Writeln(‘Procedure tiga ada di procedure sat’);
End; {akhir procedure tiga}
Begin { awal procedure satu)
Writeln(‘Procedure satu’);
Dua; {memanggil prosedur dua}
Tiga; {memanggil prosedur tiga}
End; {akhir prosedur satu}
{ modul utama}
Begin
Clrscr;
Writeln(‘Modul utama’);
Satu; {memanggil prosedur satu}
Readln;
End.

OPERASI STRING
Penyeleksian String
Dua buah string dikatakan sama bila nilai string yang pertama isi dan panjangnya sama dengan nilai kedua. Blank(spasi kosong) dianggap nilai yang signifikan. Bila dua buah string di bandingkan, maka urutan nilainya akan digunakan urutan karakter yang sesuai dengan kode kode ASCII. Jadi karakter ‘A’ lebih kecil dari karakter ‘B’.
Contoh dalam program Pascal:
Uses crt;
Var
NamaAnda, NamaTeman : string[30];
Begin
Clrscr;
Write(‘Nama Anda : ‘);readln(namaAnda);
Write(‘Nama Teman : ‘);readln(namaTeman);
If NamaAnda = NamaTeman then
Writeln(‘Nama Anda sama dengan nama Teman Anda !’);
If NamaAnda <> NamaTeman then
Writeln(‘Nama Anda urutannya lebih besar dari Nama Teman Anda !’);
End.


Prosedur Standar Operasi String
1.Delete
Bentuk Umum : Delete(var s:string;index:integer;count:integer);
Contoh:
Uses crt;
Var
Kalimat : string[50];
Urutan,posisi : integer;
Panjang_kalimat : integer;
Begin
Clrscr;
Kalimat :=’Percobaan’;
Panjang_kalimat := length(kalimat); {fungsi length : panjang sebuah karakter }
For urutan := 1 to panjang_kalimat Do
Begin
Posisi := (panjang_kalimat + 2) – urutan;
Delete(kalimat, posisi, ,1);
Writeln(kalimat);
End;
End.

2.Insert
Bentuk Umum : Insert(source: string;var s:string;index:integer);
Digunakan untuk menyisipi (insert) suatu string (ditunjukkan oleh nilai string source), ke nilai string lainnya (ditunjukkan oleh nilai string s) nilai dari posisi yang ditunjukkan oleh nilai integer index. Bila hasil dari penyisipan menjadi string yang panjangnya lebih dari 255 karakter, maka hanya sampai dengan 255 karakter saja.
Contoh :
Uses crt;
Var kalimat : string[100};
Begin
Kalimat := ‘NORA’;
Clrscr;
Writeln(kalimat);
Insert(‘FEAR’,kalimat,3);
Writeln(kalimat);
End.

3.Str
Bentuk Umum : Str(x[:width{:decimals}; var s : string);
Digunakan untuk mengubah nilai numerik (ditunjukkan oleh nilai x) menjadi nilai string (ditunjukkan oleh variabel string s). Nilai x dapat berupa nilai integer atau real. Hasil dari ubahan dapat terformat atau tidak terformat. Bila width atau decimals disebutkan, maka akan dihasilkan nilai string dengan format(bentuk) panjang tertentu.
Contoh:
Uses crt;
Var
N1,n2 : integer;
S1,s2 : string[10];
Begin
Clrscr;
N1:=40;
N2:=35;
Writeln(‘n1 + n2 = ‘,n1+n2);
Str(n1,s1);
Str(n2,s2);
Writeln(‘s1 + s2 = ‘,s1+s2);
Str(n1:4,s1);
Str(n2:4,s2);
Writeln(‘s1 + s2 = ‘,s1+s2);
End.

4.Val
Bentuk Umum : val(s:string;v;var code);
Digunakan untuk mengkonversikan suatu nilai string (ditunjukkan oleh nilai s) menjadi nilai numerik (ditunjukkan oleh nilai variabel numerik v). Walaupun s merupakan nilai string, tetapi harus berisi angka atau tanda (+) atau (-), bila tidak berarti salah dan letak kesalahannya ditunjukkan oleh nilai variabel code. Nilai variabel code akan bernilai nol, bila tidak mengandung kesalahan.
Contoh:
Uses crt;
Vae
nilaiString : string[10];
nilaiReal : Real;
PosisiSalah : integer;
Begin
Clrscr;
NilaiString :=’123.45’;
Val(NilaiString,NilaiReal,PosisiSalah);
Writeln(‘Nilai String : ‘,NilaiString);
Writeln(‘Nilai Real : ‘,NilaiReal);
Writeln(‘Posisi Salah : ‘,posisiSalah);
End.

FUNGSI STANDAR OPERASI STRING
1.Copy
Bentuk Umum : Copy(s:string;index:integer;count:integer):string;
Fungsi ini digunakan untuk menyalin(copy) sejumlah karakter yang disalin ditunjukkan oleh nilai count mulai dari posisi yang ditunjukkan oleh index dari nilai string yang ditunjukkan oleh s.
Contoh dalam program:
Var
Kalimat : string[100];
Hasil : string[100];
Begin
Kalimat:=’ABCDEFGHIJKLMNOPQRSTUVWXYZ’;
Writeln(kalimat);
Hasil:=Copy(kalimat,4,6);
Writeln(hasil);
Writeln(Copy(kalimat,9,1));
End.

2.Concat
Bentuk Umum : Concat(s1[,s2,...,sn]:string):string);
Digunakan untuk menggabungkan beberapa string yang ditunjukkan oleh variabel s(n).
Contoh:
Const
Nama = ‘Pascal’;
Dll =’dan keluarga’;
Begin
Writeln(concat(‘Bahasa ‘,nama,’ untuk Anda ‘,dll);
End.

3.Pos
Bentuk Umum : Pos(substr:string; s:string):byte;
Digunakan untuk mencari posisi letak dari suatu string (yang ditunjukkan oleh substr) yang ada di dalam nilai string yang lain (ditunjukkan oleh s). Nilai yang dihasilkan adalah berupa nilai byte yang menunjukkan letaknya. Bila bernilai nol berarti nilai string yang dicari tidak ada.
Contoh:
Const
Alfabet =’ABCDEFGHIJKLMNOPQRSTUVWXYZ’;
Kar1 =’FGHI’;
Kar2=’F’;
Kar3=’JUGA’;
Kar4=’PQRST’;
Begin
Writeln(Alfabet);
Writeln;
Writeln(kar1,’ ada di posisi ke ‘,pos(kar1,alfabet));
Writeln(kar2,’ ada di posisi ke ‘,pos(kar2,alfabet));
Writeln(kar3,’ ada di posisi ke ‘,pos(kar3,alfabet));
Writeln(kar4,’ ada di posisi ke ‘,pos(kar4,alfabet));
End.
4.Length
Bentuk Umum: Length(s:string):integer;
Digunakan untuk menghitung panjang atau jumlah karakter yang ada di nilai string yang ditunjukkan oleh s. Hasil dari fungsi ini adalah nilai numerik integer positif.
Contoh:
Var
namaAnda : string[50];
Begin
Write(‘Nama Anda : ‘);readln(namaAnda);
Writeln(“Panjang nama Anda adalah ‘,Length(namaAnda),’ karakter.’);
End.


FUNGSI (FUNCTION)
Blok fungsi hampir sama dengan blok prosedur, hanya saja fungsi dapat mengembalikan nilai dari tipe yang dideklarasikannya. Contoh:
Function Hitung(Var A,B : integer):integer;
Begin
Hitung:=A+B;
End;
Var
X,Y :integer;
Begin
Write(‘Nilai X = ‘);readln(X);
Write(‘Nilai Y = ‘);readln(Y);
Writeln;
Writeln(X,’ + ‘,Y,’ = ‘,Hitung(X,Y);
End.

RECORD
Record merupakan tipe data terstruktur yang terdiri dari item data dan masing-masing dapat mempunyai tipe data yang berbeda-beda. Item data itu dinamakan FIELD.

Deklarasi Record
Tipe data record diawali dengan keyword RECORD yang diikuti oleh suatu daftar field dan diakhiri dengan keyword END.

Contoh:
TYPE
Rec_langganan = record
Kode : string[10];
Nama : string[25];
Alamat : string[50];
Piutang: real;
End;
Var
Pelanggan : rec_langganan;

Atau mendeklarasikan langsung di bagian deklarasi variable.

Var
Pelanggan : record;
Kode : string[10];
Nama : string[25];
Alamat : string[50];
Piutang: real;
End;

MENGGUNAKAN TIPE DATA RECORD
Tipe data recordnya adalah “Rec_langganan” dan variable yang menggunakan tipe tersebut adalah “PELANGGAN”, jika ingin memberikan nilai ke salah satu field, contohnya field “NAMA” maka cara penulisannya adalah:

Pelanggan.Nama :=’Bla-bla bin bla’;


Contoh program:
Uses crt;
Type myRec = record
Nama : string[30];
Npm : string[8];
Kelas : string[6];
Nilai_mid : real;
Nilai_sem : real;
Nilai_rata : real;
End;
Var
Mhs : myRec;

Procedure Input;
Begin
Writeln(‘Input data Mahasiswa ‘);writeln;
Write(‘Nama Mahasiswa : ‘);readln(mhs.nama);
Write(‘Npm ……… : ‘);readln(mhs.npm);
Write(‘Kelas : ‘);readln(mhs.kelas);
Write(‘Nilai Mid : ‘);readln(mhs.nilai_mid);
Write(‘Nilai Semester : ‘);readln(mhs.nilai_sem);
End;
Function Hitung_nilai_rata(mid,sem : real) : real;
Var
Rasio1,rasio2 : real;
Begin
Rasio1 := mid*(70/100); { 70% dari nilai mid }
Rasio2 := sem*(30/100); { 30% dari nilai semester }
End;
Procedure proses;
Begin
Mhs.nilai_rata := Hitung_nilai_rata(mhs.nilai_mid, mhs.nilai_sem);
End;
Procedure cetak;
Begin
Writeln(‘Cetak Data Mahasiswa’); writeln;
Writeln(‘Nama Mahasiswa : ‘,mhs.nama);
Writeln(‘N.P.M : ‘,mhs.npm);
Writeln(‘Kelas : ‘,mhs.kelas);
Writeln(‘Nilai Mid : ‘,mhs.nilai_mid);
Writeln(‘Nilai Semester : ‘,mhs.nilai_sem);
Writeln(‘Nilai Rata-rata : ‘,mhs.nilai_rata);
End;
Begin
Clrscr;
Input;
Proses;
Writeln;
Cetak;
End.

Penulisan variabel record dapat dipersingkat dengan menggunakan statemen WITH.
Contoh:
Type
Hasil = RECORD
Jari_jari : Real;
Keliling : Real;
Luas : Real;
End;
Var
Lingkaran : Hasil;
Begin
With Lingkaran Do
Begin
Write(‘Jari-jari lingkaran : ‘);readln(jari_jari);
Keliling := 2*PI*jari_jari;
Luas:= PI*SQR(jari_jari);
Writeln;
Writeln(‘Keliling Lingkaran = ‘,keliling:7:2);
Writeln(‘Luas Lingkaran = ‘,luas:7:2);
End;
End.

Contoh program Record menggunakan Array.
Uses crt;
Type myRec = Record
Nama : string[30];
Npm : string[8];
Kelas : string[6];
Nilai_mid : real;
Nilai_sem : real;
Nilai_rata : real;
End;
Var
Mhs : array[1..100] of myRec;
Tombol : char;
Nomo : integer;
Procedure BikinGaris(x,y,max:integer;k:char);
Var
a : integer;
Begin
For a:= 0 to max-1 do
Begin
Gotoxy(x+a,y);
Write(k);
End;
Writeln;
End;
Procedure Input;
Begin
Repeat
Clrscr;
Inc(nomor);
Writeln(‘Input Data Mahasiswa yang ke: ‘,nomor);writeln;
With mhs(nomor) do
Begin
Write(‘Nama Mahasiswa : ‘);readln(nama);
Write(‘NPM : ‘);readln(npm);
Write(‘Kelas : ‘);readln(kelas);
Write(‘Nilai Ujian Mid : ‘);readln(nilai_mid);
Write(‘Nilai Ujian Semester : ‘);readln(nilai_sem);
End;
Writeln;
Write(‘Anda Mau Input Lagi[Y/T] ?’);
Tombol:=readkey;
{ readkey, berfungsi untuk membaca 1 karakter dari keyboard }
Until tombol in[‘T’,’t’];
End;
Function Hitung_Nilai_Rata(mid,sem:real):real;
Var
rasio1,rasio2 : real;
Begin
rasio1 := mid*(70/100); { 70% dari nilai mid }
rasio2 := sem*(30/100); { 30% dari nilai semester }
Hitung_nilai_rata := rasio1 + rasio2;
End;
Procedure proses;
Var
i : integer;
Begin
For i:= 1 to nomor do
Mhs[i].nilai_rata:=Hitung_nilai_rata(mhs[i].nilai_mid,mhs[i].nilai_sem);
End;
Procedure Cetak;
Var
I : integer;
Begin
Clrscr;
Writeln(‘Cetak Data Mahasiswa di Monitor’);writeln;
BikinGaris(1,wherey,72,’=’);
End;
{ Modul utama }
Begin
Clrscr;
Input;
Proses;
Cetak;
End.


F I L E
File (berkas) adalah kumpulan sejumlah komponen yang bertipe data sama, yang jumlahnya tidak tertentu. Pengertian file atau berkas di analogikan dengan simpanan arsip.
Di dalam Pascal, berkas menyediakan data yang nantinya akan digunakan oleh suatu program. Berkas dapat berupa disk file yaitu media penyimpanan yang berupa cakram magnetis, pita magnetis, kartu plong dan media-media penyimpanan lainnya.
Berkas mempunyai sifat sebagai berkas berurutan (Sequential File), dimana untuk membaca record ke-10 misalnya, maka pembacaan harus dilakukan dari record 1,2,3 dan seterusnya. Atau dapat pula sebagai berkas acak (Random File).

Mendeklarasikan FILE
Type var1 = File of var2;
Atau
Var var1 = File of var2;
Contoh:
Type
Tipe_data = Record
Nama : string[25];
Alamat : string[50];
No_telp : string[15];
Usia : integer;;
End;
Var
File_data : File of Tipe_data
D_Data : Tipe_Data;


OPERASI PADA FILE
1.Statemen ASSIGN
Statemen ini digunakan untuk memilih/membuka berkas yang akan dioperasikan sesuai dengan tipe berkas yang kita deklarasikan.
ASSIGN(variabel_berkas, nama_berkas);
Contoh:
Assign(File_data,’biodata.dat’);

2.Statemen CLOSE
Close digunakan untuk menutup berkas yang telah dibuka oleh statemen assign. Dan hanya menyebutkan variabel_berkasnya saja tanpa nama berkas.
Contoh:
Close(File_Data);



3.Statemen REWRITE
Digunakan untuk membuat berkas baru yang telah dinyatakan dengan variabel berkas. Jika berkas tersebut sudah ada dalam media penyimpanan, maka berkas tersebut akan digantikan dengan berkas yang baru.
Contoh:
REWRITE(File_Data);

4.Statemen RESET
Digunakan untuk mengeset penunjuk komponen kembali ke nomor 0.
Contoh:
RESET(File_Data);

5.Statemen WRITE
Statemen ini digunakan untuk menuliskan komponen berkas (data) ke dalam media penyimpan. Dan akan menempatkan komponen baru tersebut di akhir record.

6.Statemen READ
Read digunakan untuk membaca komponen berkas dari dalam media penyimpanan. Pembacaan disesuaikan dengan posisi penunjuk komponen, setelah selesai membaca, posisi penunjuk komponen akan ditempatkan ke komponen berkas berikutnya.
READ(variabel_berkas,variabel_komponen_berkas);
Contoh:
READ(File_Data,D_Data);

7.Statemen SEEK
Digunakan untuk menggerakkan penunjuk komponen ke nomor tertentu. Dengan nomor awal record adalah 0.
SEEK(variabel_berkas, nomor_record);
Contoh:
SEEK(File_Data,3); { diarahkan ke komponen yang ketiga }

8.Fungsi FILEPOS
Fungsi ini digunakan untuk mengetahui letak penunjuk(pointer) komponen berada. Dan hasilnya berupa bilangan bulat yang menunjukkan posisi penunjuk komponen pada saat itu.
FILEPOS(variabel_berkas);

Contoh:
Posisi := FILEPOS(File_Data);

9.Fungsi FILESIZE
Digunakan untuk mengetahui ukuran dari suatu berkas (file). Jika fungsi ini bernilai 0 berarti berkas tersebut masih kosong.
FILESIZE(variabel_berkas);
Contoh:
Ukuran := FILESIZE(File_Data); { ukuran data dalam satuan byte }

10.Fungsi EOF
Fungsi ini digunakan untuk mengetahui apakah penunjuk komponen berada di akhir berkas (End Of File =EOF), jika YA maka bernilai TRUE dan jika tidak maka bernilai FALSE.
EOF(variabel_berkas);
Contoh:
Akhir_File := EOF(File_Data);

11.Statemen FLUSH
Flush digunakan untuk mengosongkan penyangga (buffer) dari berkas, dengan demikian akan memastikan bahwa isi penyangga telah dituliskan dalam media penyimpan setelah statemen WRITE selesai dikerjakan.
Contoh:
FLUSH(File_Data);

12.Statemen ERASE
Erase digunakan untuk menghapus file atau berkas yang telah tertutup atau sedang tidak digunakan.
ERASE(variabel_berkas);
Contoh:
ERASE(File_Data);

13.Statemen RENAME
Digunakan untuk memberi nama baru pada berkas yang dinyatakan oleh variabel berkas. Dan hanya dapat dilakukan pada berkas yang tertutup.
RENAME(variabel_berkas, nama_baru);
Contoh:
RENAME(File_Data,’baru.dat’);

Contoh Program Lengkap :

Uses Crt;
Type
Nilai = Record
Nama : string[25];
Npm : string[8];
Nilai_mid :real;
Nilai_sem :real;
Nilai_rata :real;
End;
Var
File_Nilai : File of Nilai;
Nilai_Mhs : Nilai;
i, j : integer;
Lagi : char;
Function Hitung_nilai_Rata(mid, sem : real):real;
Var
Rasio1,rasio2 : real;
Begin
Rasio1 := mid*(70/100); { 70% dari nilai mid }
Rasio2 := sem*(30/100); { 30% dari nilai semester }
Hitung_nilai_rata := rasio1 + rasio2;
End;
Begin
Assign(File_Nilai,’Mhs.dat’);
Rewrite(File_Nilai);
I := 0;
Repeat
Inc(i);
Clrscr;
Writeln(‘Mengisi data pada File “Mhs.Dat”......’);
Writeln(‘----------------------------------------------‘);
Writeln(‘Mengisi Data ke-‘,i:2);
Writeln;
With Nilai_Mhs Do
Begin
Nilai_rata :=0.0;
Write(‘Nama Mahasiswa : ‘);readln(nama);
Write(‘NPM Mahasiswa : ‘);readln(npm);
Write(‘Nilai Mid Test : ‘);readln(nilai_mid);
Write(‘Nilai Semester Test : ‘);readln(nilai_sem);
Nilai_rata := Hitung_nilai_rata(Nilai_mid, Nilai_sem);
End;
Write(File_Nilai, Nilai_Mhs);
Writeln;
Write(‘Akan Mengisi Lagi [a atau idak] : ‘);readln(lagi);
Until Not (Lagi in [‘Y’,’y’]);
Close (File_Nilai);
End.


Uses crt;
Const
Garis=’----------------------------------------------------------------------------------------------------------------‘;
Type
Nilai = Record
Nama : string[25];
Nilai_mid : string[8];
Nilai_sem : real;
Nilai_rata : real;
End;
Var
File_Nilai : File Of Nilai;
Nilai_Mhs : Nilai;
i,j,jumlah_data : integer;
Lagi : char;
Function Hitung_nilai_Rata(mid, sem : real):real;
Var
Rasio1,rasio2 : real;
Begin
Rasio1 := mid*(70/100); { 70% dari nilai mid }
Rasio2 := sem*(30/100); { 30% dari nilai semester }
Hitung_nilai_rata := rasio1 + rasio2;
End;
Begin
Assign(File_nilai,’Mhs.dat’);
Reset(File_nilai);
Clrscr;
Writeln(‘ ‘:20,’DAFTAR NILAI UJIAN MAHASISWA’);
Writeln(‘ ‘:20,’-------------------------------------------------‘);
Writeln;
Writeln(garis);
Write(‘| No | Nama Mahasiswa | NPM |’);
Writeln(‘ MID | SEM | RATA |’);
Writeln(garis);
For i:=1 to jumlah_data Do
Begin
Read(file_nilai,nilai_mhs);
Gotoxy(1,wherey);write(‘| ‘,i:2,’ | ‘);
With Nilai_mhs Do
Begin
Gotoxy(8,wherey);write(‘| ‘,npm);
Gotoxy(35,wherey);write(‘| ‘,npm);
Gotoxy(46,wherey);write(‘| ‘,nilai_mid:2:1);
Gotoxy(54,wherey);write(‘| ‘,nilai_sem:2:1);
Gotoxy(62,wherey);write(‘| ‘,nilai_rata:2:1,’ | ‘);
End;
Writeln;
End;
Writeln(garis);
Close(File_nilai);
End.

Reference :

Pranata, Anthony., Algoritma Pemrograman, J&J Learning,Yogyakarta
Sutopo, Anton, Pemrograman Komputer Dasar, 2005,Yogyakarta
Hadi S., Chendra, Memahami Struktur dan Elemen pada bahasa Pemrograman, 2003, www.ilmukomputer.com
Ir.P. Insap Santosa, M.Sc. Dasar-dasar Pemrograman Pascal, Teori dan Program terapan.