Program Antrian Pascal UPDATED
Free Pascal is a mature, versatile, open source Pascal compiler. It can target many processor architectures: Intel x86 (16 and 32 bit), AMD64/x86-64, PowerPC, PowerPC64, SPARC, SPARC64, ARM, AArch64, MIPS, Motorola 68k, AVR, and the JVM. Supported operating systems include Windows (16/32/64 bit, CE, and native NT), Linux, Mac OS X/iOS/iPhoneSimulator/Darwin, FreeBSD and other BSD flavors, DOS (16 bit, or 32 bit DPMI), OS/2, AIX, Android, Haiku, Nintendo GBA/DS/Wii, AmigaOS, MorphOS, AROS, Atari TOS, and various embedded platforms. Additionally, support for RISC-V (32/64), Xtensa, and Z80 architectures, and for the LLVM compiler infrastructure is available in the development version. Additionally, the Free Pascal team maintains a transpiler for pascal to Javascript called pas2js.
Program Antrian Pascal
Selain prosedur untuk POP dan PUSH, kita dapat pula menambahkan sejumlah fungsi untuk membantu penanganan kesalahan diantaranya adalah fungsi PENUHS (untuk mengecek apakah stack penuh) fungsi KOSONGS (untuk mengecek apakah stack kosong) dan fungsi SIZES (untuk mengetahui banyaknya elemen di dalam stack). Masing-masing sub program di atas dapat disajikan pseudocode-nya sebagai berikut:
Queue atau antrian sebenarnya juga merupakan suatu list. Salah satu sifat yang membedakan queue dengan stack adalah bahwa pada queue penambahan elemen dilakukan pada salah satu ujung (ujung depan) dan pengambilan dilakukan pada ujung yang lain (ujung belakang) . Dengan demikian queue menggunakan prinsip FIFO (First In First Out), yaitu elemen yang pertama masuk akan pertama kali pula dikeluarkan.
Selain prosedur untuk ADDQ dan DELQ, kita dapat pula menambahkan sejumlah fungsi untuk membantu penanganan kesalahan diantaranya adalah fungsi PENUHQ (untuk mengecek apakah antrian penuh) fungsi KOSONGQ (untuk mengecek apakah antrian kosong) dan fungsi SIZEQ (untuk mengetahui banyaknya elemen di dalam queue). Masing-masing sub program di atas dapat disajikan pseudocode-nya sebagai berikut:
Pada artike kali ini kita akan bahsa bagaimana cara membuatprogram antrian (quene) dengan bahasa pascal.Anda banyak contohantrian yang bisa kita implementasikan pada program ini akan tetapisebagai contoh kita akan gunakan contoh pada sistem antrianpendaftaran SPMB. Ada beberapa hal yang akan kita basas padaprogram ini yaitu : 1. 2. 3. 4. 5. 6. 7. Cetak Antrian TambahAntrian Pendaftar Ambil Orang yang selesai daftar' Cari Seseorangdalam Antrian Seseorang meninggalkan antrian Seseorang menyerobotantrian Loket Pendaftaran ditutup
Pada tiap pembahasan tersebut kita akan gunakan procedurtertentu.Langsung saja untuk mebuat program antrian kita gunakan :Inilisasi awal listProcedure baru(x: string; var tunjuk: antrian) ;begin new(tunjuk); tunjuk^.isi := x; tunjuk^.next := nil; end;
program antrian_SPMB; uses wincrt; type antrian = ^node; node =record isi :string[10]; next : antrian; end; var dpn, blk :antrian; pointer :string; x : string; cr : string; pil :char;============================================================Procedure identitas: untuk menampilkan identitas kita procedureidentitas; begin
writeln('+-----------------------------------+'); writeln('+Nama : Riky Bagus Muhajir +'); writeln('+ NIM : M0508117 +');writeln('+ Program Antrian Pendaftaran SPMB +');writeln('+-----------------------------------+'); end;============================================================procedure baru digunakan untuk inisialisasi awal list Procedurebaru(x: string; var tunjuk: antrian) ; begin new(tunjuk);tunjuk^.isi := x; tunjuk^.next := nil; end;============================================================function isempty digunakan untu mengecek apakah suatu list kosongatau tidak function isempty(depan,belakang:antrian):boolean; beginisempty:= (depan=nil) and (belakang=nil)=true end;============================================================Fucntion cari digunakan untuk mencari mengecek apakah seseorangada pada antrian atau tidak Function cari(x: string;depan:antrian) : boolean; var tunjuk : antrian; ada,kosong:boolean; begin ada := false; tunjuk := depan; kosong:=isempty(dpn,blk); if kosong=false thenbegin while (tunjuk nil) and(ada=false) do if tunjuk^.isi = x then ada := true else tunjuk :=tunjuk^.next; end; cari:=ada; end;============================================================procedure tambahantri digunakan untuk menambakan jumlah orangdalam antrian procedure tambahantri(var belakang:antrian); varx:string; tunjuk:antrian; begin write('Masukan nama orang yang maumasuk antrian : '); readln(x); baru(x,tunjuk);belakang^.next:=tunjuk; belakang:=tunjuk; end;============================================================prosedure hapusdpn diguakan untuk menghapus list dalam antrianprocedure hapusdpn(var depan,belakang:antrian); var bantu:antrian;begin if isempty(depan,belakang) then writeln('Antrian Kosong')elseif depan=belakang then begin depan:=nil;belakang:=nil end elsebegin bantu:=depan^.next; depan:=bantu; end; end;============================================================prosedure slesaiantri digunakan untuk mengambil orang yang telahselesai antri procedure slesaiantri(var depan,belakang:antrian;varx:string); begin if dpn=nilthen x:='Antrian Kosong' else begin
end;============================================================procedure hapusx digunakan utk mengambil seseorang dari antriansebagai contoh ketika seseorang ingin ketoilet atau capek setelahlama mengantri maka iya meninggalkan antrian procedure hapusx(vardepan,belakang:antrian); var bantu,hapus:antrian; ada:boolean;y:string; begin write('Masukan nama orang yang mau meninggalkanantrian : '); readln(y); if isempty(depan,belakang) thenwriteln('Antrian Kosong') elseif depan=belakang then begindepan:=nil;belakang:=nil end else begin bantu:=depan; hapus:=depan;ada:=false; while (bantunil) dobegin if bantu^.isi=y then ifbantu=depan then depan:=bantu^.next else hapus^.next:=bantu^.next;hapus:=bantu; bantu:=bantu^.next; end; end; end;============================================================ Procedure BuatAntrian untuk membangun antrian dengan input datasecara interaktif procedure buatantrian (var depan,belakang:antrian); Var c : char; tunjuk : antrian;i:integer; begin i:=0;depan := nil; belakang := nil; repeati:=i+1; write('masukan namake-',i,' =');readln(x); baru(x,tunjuk); if isempty(depan,belakang)then begin depan := tunjuk ; belakang := tunjuk; end elsebeginbelakang^.next := tunjuk; belakang :=tunjuk; end; repeatwrite('tambah data yang antri [Y/T] = '); readln(c); until c in['T','t','y','Y']; until c in ['T','t']; end;============================================================procedure sisiptengah digunakan untuk memasukkan seseorang yangmenyerobot antrian procedure sisiptengah(var depan,belakang:antrian); var baru,bantu : antrian; x,y : string; beginwrite('Masukan nama orang yang menyerobot : ');readln(y);write('menyerobot dibelakang ( masukan salah satu nama yang telahantri) : ');readln(x); bantu:=depan;
if bantu^.isi= x then begin new(baru); baru^.isi := y;baru^.next:=bantu^.next; bantu^.next:=baru; end;bantu:=bantu^.next; end; end;============================================================Procedure Cetak untuk mencetak isi Antrian,pintu keluar antriandisebelah kanan dan pintu masu antrian disebelah kiri procedurecetak(depan:antrian;var output:string); var bantu:antrian;y:string;begin bantu:=depan; output:=' Loket Pendaftaran'; ifisempty(dpn,blk) then output:='Antrian Kosong' elsebegin whilebantunildo begin y:=bantu^.isi; output:=y+'->>'+output;bantu:=bantu^.next; end; output:='pintu masuk antrian->>'+output; end; end;============================================================beginscreensize.y:=300; identitas; writeln;writeln('====================================='); writeln(' AntrianAwal Pendaftar SPMB '); writeln('Masukan data orang yang telahantri: '); writeln('=====================================');writeln; buatantrian(dpn,blk); repeat repeat menu utama writeln;writeln; writeln(' Simulasi: '); writeln(' ANTRIAN PENDAFTARAN SPMB'); writeln('-----------------------------------'); writeln('[1]Buat Antrian Baru '); writeln('[2] Cetak Antrian '); writeln('[3]Tambah Antrian Pendaftar '); writeln('[4] Ambil Orang yang selesaidaftar'); writeln('[5] Cari Seseorang dalam Antrian ');writeln('[6] Seseorang meninggalkan antrian '); writeln('[7]Seseorang menyerobot antrian '); writeln('[8] Loket Pendaftaranditutup '); writeln('-----------------------------------');write('Pilihan anda : ');pil:=readkey;writeln(pil); writeln; until(pil>='1') and (pil
Queue / Antrian dalam bahasa pemrograman Pascal.Judul Programprogram Antrian;uses wincrt;Deklarasiconst max=5; konstantatype queue=record elemen:array[1..max]of string; head,tail,count:integer; end; var Q:queue; i:integer; data:string; temp:string; jawab:char;Prosedur dan Fungsiprocedure Inisialisasi(var A:queue);begin A.head:=0; A.tail:=0;end;function Empty:boolean;begin if Q.tail=0 then Empty:=true else Empty:=false;end;function Full:boolean;begin if Q.tail=max then Full:=true else Full:=false;end;procedure Enqueue(var A:queue; x:string);prosedur untuk penambahan databegin if Empty then begin A.head:=1; A.tail:=1; A.elemen[A.tail]:=x; end else if not Full then begin A.tail:=A.tail+1; A.elemen[A.tail]:=x; end else writeln('ANTRIAN SUDAH PENUH');end;function Dequeue(var A:queue):string; prosedur untuk mengambil/menghapus datavar j:integer;begin if not Empty then begin Dequeue:=A.elemen[A.head]; for j:=A.head to (A.tail-1) do begin A.elemen[j]:=A.elemen[j+1]; end; A.tail:=A.tail-1; end;end;procedure Tampil(A:queue);var k:integer;begin if A.tail0 then for k:=1 to A.tail do writeln('Pasien ke-',k,' : ',A.elemen[k]) else writeln('ANTRIAN KOSONG');end; Program Utamabegin clrscr; writeln('PROGRAM ANTRIAN PASIEN'); writeln('----------------------'); writeln; ... ... ...Download file lengkap antrian.zip atau antrian.txt Tampilan output: