riyanris

Untitled

Oct 9th, 2020 (edited)
576
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. uses crt;
  2.  type TStack = record
  3.     Stacks: array[0..10] of string;
  4.     top: integer;
  5.  end;
  6.  var tumpukan : TStack;
  7.  
  8.  function initStack(var stack:TStack): boolean;
  9.  begin
  10.      stack.top:= -1;
  11.      initStack:= true;
  12.  end;
  13.  
  14.  function push(var stack:TStack; data: string): boolean;
  15.  begin
  16.  if high(stack.stacks) = stack.top then begin
  17.          writeln('Gagal, tumpukan penuh');
  18.          push:= false;
  19.          exit;
  20.  end
  21.  else begin
  22.          inc(stack.top);
  23.          stack.stacks[stack.top]:= data;
  24.          push := true;
  25.  end;
  26.  end;
  27.  
  28.  function pop(var stack: TStack; var a: string): boolean;
  29.  begin
  30.     if stack.top = -1 then begin
  31.          writeln('Gagal, tumpukan telah kosong');
  32.          pop := false
  33.     end else begin
  34.          a := stack.stacks[stack.top];
  35.          stack.stacks[stack.top]:='';
  36.          dec(stack.top);
  37.     end;
  38.  end;
  39.  
  40.  var jawab : integer; var data: string;
  41.  begin
  42.  clrscr;
  43.  initStack(tumpukan);
  44.  repeat
  45.          writeln('1. Push ');
  46.          writeln('2. Pop ');
  47.          writeln('0. Keluar ');
  48.          write('Masukan pilihan anda :'); readln(jawab);
  49.          case jawab of
  50.               1: begin
  51.                  write('Masukan datanya :'); readln(data);
  52.                  push(tumpukan, data);
  53.               end;
  54.               2: begin
  55.                 data := 'normal';
  56.                 writeln('Data Tumpukan teratas = ', pop(tumpukan, data));
  57.               end;
  58.               0:;
  59.               else writeln('Input salah');
  60.          end;
  61.  readln;
  62.  until jawab =0;
  63.  end.
RAW Paste Data