program pascal kereta

21
DAFTAR PUSTAKA DAFTAR PUSTAKA.....................................................2 BAB I..............................................................3 A. DASAR TEORI...................................................3 B. TUJUAN........................................................7 BAB II.............................................................8 PEMBAHASAN....................................................... 8 BAB III...........................................................11 A. KESIMPULAN...................................................11 B. HASIL ( PRINT SCREEN)........................................11 1

Upload: dayanti-astuti

Post on 05-Dec-2014

741 views

Category:

Education


4 download

DESCRIPTION

Laporan pascal tiket kereta

TRANSCRIPT

Page 1: program pascal kereta

DAFTAR PUSTAKA

DAFTAR PUSTAKA..................................................................................................................................2

BAB I......................................................................................................................................................3

A. DASAR TEORI.............................................................................................................................3

B. TUJUAN......................................................................................................................................7

BAB II.....................................................................................................................................................8

PEMBAHASAN....................................................................................................................................8

BAB III..................................................................................................................................................11

A. KESIMPULAN............................................................................................................................11

B. HASIL ( PRINT SCREEN).............................................................................................................11

1

Page 2: program pascal kereta

BAB I

A. DASAR TEORI

Saat program kita buat sudah menjadi besar kita akan mengalami kesulitan dalam

mengatur kode program, jika semua kode tersebut disatukan. Untuk mengatasi

permasalahan tersebut, kita bisa menggunakan subprogram utnuk membuat program kita

terbagi menjadi beberapa bagian yang masing-masing lebih kecil dan lebih mudah

dikelola.

Pemecahan program menjadi subprogram yang lebih kecil juga akan

mempermudah kita jika ingin membuat program yang serupa, kita hanya perlu menyalin

atau memakai subprogram yang sudah ada di dalam program kita yang baru.

Dalam setiap bahasa pemrograman prosedural (contohnya Pascal) umumnya

dikenal Procedure (Prosedur) dan Function (Fungsi), dua buah bentuk subprogram yang

umum. Fungsi adalah subprogram yang memetakan suatu nilai dari suatu domain ke

domain lain, sedangkan prosedur adalah suatu subprogram yang melakukan aksi tertentu.

a. Prosedur

Prosedur memungkinkan kita membagi program dengan mengelompokkan aksi

menjadi bagianbagianyang jelas terpisah, prosedur juga memungkinkan kita

memisahkan bagian program yang sering diulang sehingga tidak perlu ditulis ulang

di setiap waktu.

Prosedur banyak digunakan pada program terstruktur karena:

Merupakan penerapan konsep program modular, yaitu memecah-mecah

program yang rumit menjadi program-program bagian yang lebih sederhana

dalam bentuk-bentuk prosedur.

Untuk hal-hal yang sering dilakukan berulang-ulang, cukup dituliskan sekali

saja dalam prosedur dan dapat dipanggil atau dipergunakan sewaktu-waktu

bila diperlukan.

b. Fungsi

Sama seperti definisi dalam matematika, fungsi dalam pemrograman juga berarti

pemetaan suatu nilai dari suatu domain ke domain yang lain. Pascal sudah

menyediakan aneka fungsi standar, seperti fungsi trigonometri, fungsi kuadrat, dan

lain-lain.

2

Page 3: program pascal kereta

Dalam implementasinya fungsi hampir sama persis dengan prosedur (boleh memiliki

variabel, parameter, dan lain-lain) dengan satu perbedaan yaitu fungsi dapat dan

harus mengembalikan nilai.

Rekursif adalah salah satu metode dalam dunia matematika dimana definisi sebuah

fungsi mengandung fungsi itu sendiri. Dalam dunia pemrograman, rekursi diimplementasikan

dalam sebuah fungsi yang memanggil dirinya sendiri.Contoh fungsi rekursif misalnya adalah

fungsi pangkat, faktorial, dan barisan fibonacci.

Rekursif mempunyai kelebihan pada kode program yang lebih ringkas dan mudah

dipahami. Sedangkan kesulitannya yaitu membutuhkan alokasi memori yang besar dan tidak

cocok ketika kinerja tinggi diperlukan, karena terjadi overhead pemanggilan fungsi dalam

jumlah yang relatif besar.

Kenapa membuat program Rekursif? Persoalan yang ingin diselesaikan

memangmengandung definisi “rekursif”. Program yang dibuat mengolah data

bertyperekursif. Karena programmernya ingin menulis solusirekursif, persoalan yang tidak

rekursif tidak perludiselesaikan secara rekursif, tapi bisa diselesaikansecara rekursif. Untuk

mencari solusi dari program rekursif adalah solusi rekursif yang berangkat dari

definisirekursif :Baca baik-baik persoalan, dan buatdefinisi rekursif sesuai definisi persoalan,

solusi rekursif karena persoalan diwakilioleh struktur data rekursif, buat prosedur/fungsi

rekursif (anda harusmembuat prosedur/fungsi denganparameter). Lalu apa persoalan dari

program rekursif? Yaitu program harus dijamin berhenti.Sulit dibayangkan eksekusinya tanpa

terikatdefinisinya. Dalam pemrogramanfungsional, tidak masalah sebab konstruksibukan dari

eksekusi melainkan dari definisi. Performansi, keterbatasan implementasimesin

pengeksekusi. Dalam paradigmafungsional, hal ini tidak menjadi masalah.

Dengan melihat sifat sub program rekursif di atas maka sub program rekursif harus

memiliki :

kondisi yang menyebabkan pemanggilan dirinya berhenti (disebut kondisi khusus atau

special condition)

pemanggilan diri sub program (yaitu bila kondisi khusus tidak dipenuhi)

Secara umum bentuk dari sub program rekursif memiliki statemen kondisional: if kondisi

khusus tak dipenuhi then panggil diri-sendiri dengan parameter yang sesuai else lakukan

instruksi yang akan dieksekusi bila kondisi khusus dipenuhi.

Sub program rekursif umumnya dipakai untuk permasalahan yang memiliki langkah

penyelesaian yang terpola atau langkah-langkah yang teratur. Bila kita memiliki suatu

3

Page 4: program pascal kereta

permasalahan dan kita mengetahui algoritma penyelesaiannya, kadang-kadang sub program

rekursif menjadi pilihan kita bila memang memungkinkan untuk dipergunakan. Secara

algoritmis (dari segi algoritma, yaitu bila kita mempertimbangkan penggunaan memori,

waktu eksekusi sub program) sub program rekursif sering bersifat tidak efisien. Dengan

demikian sub program rekursif umumnya memiliki efisiensi dalam penulisan perintah, tetapi

kadang tidak efisien secara algoritmis. Meskipun demikian banyak pula permasalahan-

permasalahan yang lebih sesuai diselesaikan dengan cara rekursif (misalnya dalam

pencarian / searching, yang akan dibahas pada pertemuan-pertemuan yang akan datang)

Salah satu tipe data terstruktur yang dipelajari dalam pemrogaman adalah array atau

dengan istilah lainnya adalah larik.Terminologi dari larik itu sendiri, yaitu:

Larik adalah deretan rinci data yang mempunyaitipe data sejenis. Untaikarakter

(string) merupakancontoh array.

Setiaprinci data disebutdengankomponenatauelemen array.

Setiaplarik (array) bias dioperasikan menggunakan pemilih elemen array yang

disebut index atau subskrip.

Dalam program, index atau subskrip tersebut diletakkan dalam tanda kurung kotak

[ ], setelahnama array yang akan dioperasikan.

Untuk mendeklarasikan variable array ditentukan dengan:

Varnama : array [index] of tipe;

Dengan

Var, array, of : kata kunci yang harus ada.

Nama : nama array yang akan di deklarasikan.

Index : batasan index yang akanadapada array yang akan di

deklarasikan.

Tipe : tipe array.

a. Array Satu Dimensi

Pendefinisian array secara umum adalah sebagai berikut : jika kita ingin membuat

beberapa array dengan tipe/jenis yang sama, kita lebih baik jika mendeklarasikan

dengan type selanjutnya dengan deklarasi var.

Type

nama_array=array[bawah..atas] of tipe_data;

var

variabel_array:nama_array;

4

Page 5: program pascal kereta

atau dengan menggunakan statement var:

var

variabel_array:array[bawah..atas] of tipe_data;

Penjelasan: bawah dan atas menyatakan batas untuk array, tipe_data adalah

merupakan tipe variabel yang dipunyai array 9mis. Integer, char, real, dsb).

b. Array Multidimensi

Dalam array multidimensi terdiri atas baris (row) dan kolom (column). Index

pertama adalah baris dan yang kedua adalah kolom.

Type nama_array=array[bawah..atas, bawah..atas] of tipe_data;

Var variabel_array:nama_array;

Atau dengan menggunakan statement var:

Var variabel_array:array[bawah..atas, bawah..atas] of tipe_data;

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

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[30];

ALAMAT : STRING[50];

PIUTANG : REAL;

END;

VAR

PELANGGAN : Rec_Langganan;

Atau mendeklarasikan langsung di bagian deklarasi variabel

VAR

PELANGGAN : RECORD

KODE : STRING[10];

NAMA : STRING[10];

ALAMAT : STRING[10];

PIUTANG : REAL;

5

Page 6: program pascal kereta

END;

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

Berbeda dengan array dalam suatu record masing-masing data bisa berlainan tipe

datanya. Tipe data elemen record dapat berupa tipe data apa saja termasuk array.

B. TUJUAN

1. Laporan ini di buat untuk memenuhi Tugas Besar Pemrograman Dasar.

2. Program ini di buat untuk penjualan tiket kereta api.

3. Program ini di buat supaya mahasiswa lebih paham tentang penggunaan array,

perulangan, kondisional, procedure atau function.

BAB II

PEMBAHASAN

6

Page 7: program pascal kereta

Program ini adalah program yang di jalankan untuk penjualan tiket kereta api. Didalam

program ini terdapat 4 point pembahasan yaitu perulangan, kondisional, procedure, dan array.

Perulangan dengan statement for digunakan untuk mengulang statemen atau suatu blok

statement berulang kali. Perulangan dengan statement for dapat berupa perulangan positif dan

perulangan negaif. Dalam program ini perulangannya :

Script ini jika di jalan kan akan menghasilkan garis yang panjang dan warnanya telah

ditentukan dan panjang dari cursor x ke-15 sampai kursor x ke-78.

Kondisi adalah suatu proses pemilihan aksi diantara beberapa alternative yang diberikan.

Dalam program ini terdapat kondisi yaitu menggunakan if then else :

Script ini jika di run akan menghasilkan pilihan yang akan di tentukan pemakai program jika

memilih angka 1 maka akan terlihat output ‘Bandung’, jika 2 akan keluar output ‘Surabaya’,

dan jika 3 maka akan keluar output ‘Jakarta’.

7

for i:=15 to 78 do

begin

gotoxy(i,22);write(chr(177));

delay(200);

end;

textcolor(15);

end;

if a=1 then data[i].tujuan:='Bandung'

else

if a=2 then data[i].tujuan:='Surabaya'

else

if a=3 then data[i].tujuan:='Jakarta';

if a=1 then begin

data[i].harga:=200000;

data[i].kelas:='Bisnis';

end

else

if a=2 then begin

data[i].harga:=330000;

Page 8: program pascal kereta

Script kondisional ini akan mencetak data dari inputan pengguna program ini sesuai

dengan pilihan yang telah di tentukan pengguna.

Procedure di gunakan untuk membagi program dengan mengelompokkan aksi menjadi

bagianbagianyang jelas terpisah, prosedur juga memungkinkan kita memisahkan bagian

program yang sering diulang sehingga tidak perlu ditulis ulang di setiap waktu. Procedure

yang di gunakan untuk program ini adalah :

Procedure ini jika di jalankan akan memberikan output ‘jadwal’ kepada pengguna yaitu

memberikan pemilihan data yang harus di inputkan oleh pengguna program. Adapun

procedure yang lainnya seperti:

8

if a=1 then begin

data[i].harga:=200000;

data[i].kelas:='Bisnis';

end

else

if a=2 then begin

data[i].harga:=330000;

procedure jadwal(var d:byte);

begin

if d=1 then begin gotoxy(3,15);writeln('Bandung = 07.00 , 12.00 , 20.00');end

else

if d=2 then begin gotoxy(3,15);writeln('Surabaya = 08.00 , 13.00 , 21.00');end

else

if d=3 then begin gotoxy(3,15);writeln('Jakarta = 06.00 , 11.00 , 19.00');end;

end;

procedure hasil;

begin

clrscr;

gotoxy(3,3);writeln('Nama = ',data[i].nama);

gotoxy(3,4);writeln('Tujuan = ',data[i].tujuan);

Page 9: program pascal kereta

Procedure hasil ini jika di jalankan akan mencetak dari semua pemilihan yang telah di

tentukan oleh pengguna, dari mulai input nama, tujuan, keberangkatan dan seterusnya akan

terlihat semua pada procedure ini.

Tipe data array digunakan untuk menampung sederetan data dengan nilai yang sama.

Pada program ini di gunakan tipe data array 1 dimensi. Script programnya dalah :

Array di tuliskan pada variable. Untuk pembacaan datanya dapat di tulis seperti script

berikut :

BAB III

A. KESIMPULAN

9

procedure hasil;

begin

clrscr;

gotoxy(3,3);writeln('Nama = ',data[i].nama);

gotoxy(3,4);writeln('Tujuan = ',data[i].tujuan);

type pesan = record

nama,tujuan,kelas,brangkat:string[50];

harga,toth:real;

tiket:byte;

end;

var data:array[1..100] of pesan;

if a=1 then begin

data[i].harga:=310000;

data[i].kelas:='Ekonomi';

end

Page 10: program pascal kereta

Pascal dapat di gunakan untuk membuat program semua macam aspek, semua fungsi

dari type, kndisinya juga dapat disesuaikan dan dapat di pahami. Pembuatan program

akan lebih mudah jika pembuat program mengetahui dasar-dasar dari turbo pascal.

B. HASIL ( PRINT SCREEN)

uses crt;

type pesan = record

nama,tujuan,kelas,brangkat:string[50];

harga,toth:real;

tiket:byte;

end;

var data:array[1..100] of pesan;

i:byte;

procedure selamat;

var i,j:byte;

begin

clrscr;

gotoxy(35,9);textcolor(11);writeln('S');

delay(400);

gotoxy(35,9);writeln('SE');

delay(400);

gotoxy(35,9);writeln('SEL');

delay(400);

gotoxy(35,9);writeln('SELA');

delay(400);

gotoxy(35,9);writeln('SELAM');

delay(400);

gotoxy(35,9);writeln('SELAMA');

delay(400);

gotoxy(35,9);writeln('SELAMAT');

delay(400);

gotoxy(35,9);writeln('SELAMAT ');

delay(400);

gotoxy(35,9);writeln('SELAMAT D');

delay(400);

gotoxy(35,9);writeln('SELAMAT DA');

delay(400);

gotoxy(35,9);writeln('SELAMAT DAT');

delay(400);

10

Page 11: program pascal kereta

gotoxy(35,9);writeln('SELAMAT DATA');

delay(400);

gotoxy(35,9);writeln('SELAMAT DATAN');

delay(400);

gotoxy(35,9);writeln('SELAMAT DATANG');

delay(400);

gotoxy(41,11);writeln('D');

delay(400);

gotoxy(41,11);writeln('DI');

delay(400);

gotoxy(34,13);writeln('P');

delay(400);

gotoxy(34,13);writeln('PT');

delay(400);

gotoxy(34,13);writeln('PT.');

delay(400);

gotoxy(34,13);writeln('PT.D');

delay(400);

gotoxy(34,13);writeln('PT.DA');

delay(400);

gotoxy(34,13);writeln('PT.DAS');

delay(400);

gotoxy(34,13);writeln('PT.DASS');

delay(400);

gotoxy(34,13);writeln('PT.DASSA');

delay(400);

gotoxy(34,13);writeln('PT.DASSA ');

delay(400);

gotoxy(34,13);writeln('PT.DASSA E');

delay(400);

gotoxy(34,13);writeln('PT.DASSA EX');

delay(400);

gotoxy(34,13);writeln('PT.DASSA EXP');

delay(400);

gotoxy(34,13);writeln('PT.DASSA EXPR');

delay(400);

gotoxy(34,13);writeln('PT.DASSA EXPRE');

delay(400);

gotoxy(34,13);writeln('PT.DASSA EXPRES');

delay(400);

11

Page 12: program pascal kereta

gotoxy(34,13);writeln('PT.DASSA EXPRESS');

delay(400);

gotoxy(3,22);WRITE('LOADING : ');

delay(400);

for i:=15 to 78 do

begin

gotoxy(i,22);write(chr(177));

delay(200);

end;

textcolor(15);

end;

procedure jadwal(var d:byte);

begin

if d=1 then begin gotoxy(3,15);writeln('Bandung = 07.00 , 12.00 , 20.00');end

else

if d=2 then begin gotoxy(3,15);writeln('Surabaya = 08.00 , 13.00 , 21.00');end

else

if d=3 then begin gotoxy(3,15);writeln('Jakarta = 06.00 , 11.00 , 19.00');end;

end;

procedure daftar;

var a:byte;

b,c:char;

begin

clrscr;

gotoxy(3,3);write('Nama Anda : ');readln(data[i].nama);

writeln;

gotoxy(11,4);writeln('Tujuan');

gotoxy(3,5);writeln('pilih 1 untuk Bandung');

gotoxy(3,6);writeln('pilih 2 untuk Surabaya');

gotoxy(3,7);writeln('pilih 3 untuk Jakarta');

gotoxy(3,8);Write('Pilihan : ');readln(a);

if a=1 then data[i].tujuan:='Bandung'

else

if a=2 then data[i].tujuan:='Surabaya'

else

if a=3 then data[i].tujuan:='Jakarta';

writeln;

writeln;

12

Page 13: program pascal kereta

gotoxy(11,9);writeln('Kelas');

gotoxy(3,10);Writeln('pilih A untuk Bisnis');

gotoxy(3,11);writeln('pilih B untuk VIP');

gotoxy(3,12);writeln('pilih C untuk Ekonomi');

gotoxy(3,13);write('pilihan : ');readln(b);

case b of

'a','A':begin

if a=1 then begin

data[i].harga:=200000;

data[i].kelas:='Bisnis';

end

else

if a=2 then begin

data[i].harga:=330000;

data[i].kelas:='Bisnis';

end

else

if a=3 then begin

data[i].harga:=300000;

data[i].kelas:='Bisnis';

end;

end;

'b','B':begin

if a=1 then begin

data[i].harga:=300000;

data[i].kelas:='VIP';

end

else

if a=2 then begin

data[i].harga:=320000;

data[i].kelas:='VIP';

end

else

if a=3 then begin

data[i].harga:=400000;

data[i].kelas:='VIP';

end;

end;

'c','C':begin

if a=1 then begin

13

Page 14: program pascal kereta

data[i].harga:=310000;

data[i].kelas:='Ekonomi';

end

else

if a=2 then begin

data[i].harga:=320000;

data[i].kelas:='Ekonomi';

end

else

if a=3 then begin

data[i].harga:=200000;

data[i].kelas:='Ekonomi';

end;

end;

end;

gotoxy(3,14);Write('Apakah anda ingin melihat jadwal? (y/n): ');readln(c);

if (c='y') or (c='Y') then

begin

jadwal(a);

gotoxy(3,16);write('jadwal keberangkatan = ');readln(data[i].brangkat);

end

else

gotoxy(3,17);write('Berapa tiket yang anda beli? ');readln(data[i].tiket);

data[i].toth:=(data[i].tiket)*(data[i].harga);

gotoxy(20,18);writeln('Terimakasih');

end;

procedure hasil;

begin

clrscr;

gotoxy(3,3);writeln('Nama = ',data[i].nama);

gotoxy(3,4);writeln('Tujuan = ',data[i].tujuan);

gotoxy(3,5);Writeln('Kebrangkatan = ',data[i].brangkat);

gotoxy(3,6);writeln('Kelas = ',data[i].kelas,' ',data[i].harga:0:2);

gotoxy(3,7);writeln('Jumlah tiket = ',data[i].tiket);

gotoxy(3,8);writeln('Total = ',data[i].toth:0:2);

end;

label a,b;

var t:char;

14

Page 15: program pascal kereta

j:byte;

begin

clrscr;

selamat;

i:=1;

a: begin

clrscr;

daftar;

hasil;

gotoxy(3,9);write('Ingin melakukan transaksi kembali (y/n) : ');readln(t);

if (t='y') or (t='Y') then

begin

i:=i+1;

goto a;

end

else

if (t='n') or (t='N') then

goto b;

end;

b: begin

clrscr;

gotoxy(26,9);writeln('TERIMAKASIH KEPERCAYAAN ANDA MENGGUNAKAN JASA

KAMI UNTUK PERJALANAN ANDA');

gotoxy(32,11);writeln('ANDA TIDAK PUAS DENGAN PELAYANAN KAMI?');

gotoxy(37,13);writeln('SILAHKAN HUBUNGI (0271) 666999');

readln;

end;

end.

Hasil Output :

15

Page 16: program pascal kereta

16