Author Topic: Bantu Dunk : struktur data - pra_uts  (Read 636 times)

0 Members and 2 Guests are viewing this topic.

Offline KiuKiu

  • Chief Of SEMA
  • Advanced
  • ***
  • Posts: 637
  • Reputasi Poin: 22
  • Gender: Male
  • ZetMan
    • View Profile
Bantu Dunk : struktur data - pra_uts
« on: October 18, 2008, 08:26:26 AM »
Ada yg bisa bantu ga ? lagi nyari penyelesaiannya neh..

Deskripsi :
Disebuah wahana permainan di Dunia Fantasi, pengunjung harus mengantri dalam antrian yang memiliki bentuk sebagai huruf S, antrian dimulai dari S paling ujung paling bawah dan berakhir di ujung S paling atas.

Buatlah sebuah program antrian dengan asumsi sebagai berikut :
1. Menggunakan 2 buah array.
    Saat terisi penuh array tersebut menjadi seperti berikut :
Array I  : 5 | 4 | 3 | 2 | 1 |
Array II : 6 | 7 | 8 | 9 | 10 |
2. Jumlah pengunjung yang dapat masuk ke wahana tersebut dalam satu kali permainan adalah sebanyak 4 orang. Sehingga ketika pengunjung ada yang naik wahana permainan tersebut, array menjadi seperti berikut :
Array I  : 5 | x | x | x | x |
Array II : 6 | 7 | 8 | 9 | 10 |
3. Setelah 4 orang naik ke atas wahana permainan, sisa pengunjung yang mengantri akan maju dan mengisi tempat antrian yang kosong. Sehingga menjadi seperti berikut :
Array I  : 9 | 8 | 7 | 6 | 5 |
Array II :10 | x | x | x | x |

Somebody please Help..
Ada yg bisa bikin resolve casenya ga ?

Offline Dhanny

  • Administrator
  • Expert
  • *
  • Posts: 1,080
  • Reputasi Poin: 41
  • Gender: Male
    • View Profile
Re: Bantu Dunk : struktur data - pra_uts
« Reply #1 on: October 18, 2008, 11:39:23 AM »
Bukannya itu teh tugas, yah?
Lagian itu ct soal UTS
Hehehe

Resolve case nya, gampang koq
Kuncinya :
jgn dipikirkan terlalu rumit.
Karena sebenernya jawabannya simple aja koq
mirip ama yg lat koq
Prosedur tetapnya : PUSH, POP, CetakData
Memang harus dimodif dikit
Hehehe

Sori, sy ga posting jawabannya
karena nanti semua nyalin.
Hehe

Sori, yah

Offline KiuKiu

  • Chief Of SEMA
  • Advanced
  • ***
  • Posts: 637
  • Reputasi Poin: 22
  • Gender: Male
  • ZetMan
    • View Profile
Re: Bantu Dunk : struktur data - pra_uts
« Reply #2 on: October 31, 2008, 03:03:00 PM »
Kuncinya :
jgn dipikirkan terlalu rumit.
Karena sebenernya jawabannya simple aja koq
mirip ama yg lat koq
Prosedur tetapnya : PUSH, POP, CetakData
Memang harus dimodif dikit
Hehehe

PUSH sudah berhasil neh...

Pa, prosedur POP gimana bikinnya ?
hapusnya sih udah berhasil, tinggal geser setelah mengahapus,
array ke 2nya jadi masalah..
:on12
arghhh...
buntu, ga ada ide..

neh saya kasih coding gagalnya :
[spoiler]
Code: [Select]
procedure hapus (var queue : Q; var front,rear : integer);
var i : integer;
begin
 if front = 0 then writeln('Antrian kosong')
 else
  begin
   writeln('Yang akan masuk wahana : ');
   for i := 1 to 4 do
   begin
     writeln(queue[front]);
     front := front + 1;
     if front > rear then
        begin
        front := 0;
        rear := 0;
        end;
   end;
   rear := 0;
  end;
 writeln;
end;

Procedure HapusNama(var QA,QB : Q; var FrontA,RearA,FrontB,RearB: integer);
var nama : string ;
Begin
    //cek posisi trigger
    if (isempty(FrontA,RearA)) then
        begin
          if (isempty(FrontB,RearB)) then writeln ('Antrian Kosong')
          else hapus(QB,FrontB,RearB)
        end
        else
          hapus(QA,FrontA,RearA);
End ;
[/spoiler]

berikan pencerahan dunk pa..

Offline Dhanny

  • Administrator
  • Expert
  • *
  • Posts: 1,080
  • Reputasi Poin: 41
  • Gender: Male
    • View Profile
Re: Bantu Dunk : struktur data - pra_uts
« Reply #3 on: October 31, 2008, 04:54:28 PM »
PUSH sudah berhasil neh...
Pa, prosedur POP gimana bikinnya ?
hapusnya sih udah berhasil, tinggal geser setelah mengahapus,
array ke 2nya jadi masalah..
berikan pencerahan dunk pa..

sebenernya itu kan wahana permainan?
nah, dibayangin aja
yg namanya wahana permainan kan
kl org paling depan dah masuk maen,
pasti lgs geser kan sebenernya mah?
tul ga?

Offline KiuKiu

  • Chief Of SEMA
  • Advanced
  • ***
  • Posts: 637
  • Reputasi Poin: 22
  • Gender: Male
  • ZetMan
    • View Profile
Re: Bantu Dunk : struktur data - pra_uts
« Reply #4 on: November 01, 2008, 02:08:29 PM »
sebenernya itu kan wahana permainan?
nah, dibayangin aja
yg namanya wahana permainan kan
kl org paling depan dah masuk maen,
pasti lgs geser kan sebenernya mah?
tul ga?


Codingnya pa..
kalo ga bantu algoritmanya (pseudo code) aja d..

Buntubuntubuntu...

Offline Dhanny

  • Administrator
  • Expert
  • *
  • Posts: 1,080
  • Reputasi Poin: 41
  • Gender: Male
    • View Profile
Re: Bantu Dunk : struktur data - pra_uts
« Reply #5 on: November 04, 2008, 09:08:08 PM »
Codingnya pa..
kalo ga bantu algoritmanya (pseudo code) aja d..

Buntubuntubuntu...

dah taw kan skr napa ga g post jawabannya?
itu jadi take home test sih
sori, yah,
beneran ga bisa g post jawabannya

Offline Anta

  • Developer
  • Advanced
  • *
  • Posts: 710
  • Reputasi Poin: 39
  • Gender: Male
    • View Profile
Re: Bantu Dunk : struktur data - pra_uts
« Reply #6 on: November 04, 2008, 10:47:46 PM »
nih codingnya:
Code: [Select]
   program pra_uts;
   uses math;
   const MAX_ARRAY = 10;
   Type Q = Array[1..MAX_ARRAY] of Integer;
   var Q1, Q2 : Q;
   
   // silahkan lanjukan sendiri.
  end.

Offline Dhanny

  • Administrator
  • Expert
  • *
  • Posts: 1,080
  • Reputasi Poin: 41
  • Gender: Male
    • View Profile
Re: Bantu Dunk : struktur data - pra_uts
« Reply #7 on: November 05, 2008, 02:01:58 PM »
nih codingnya:
Code: [Select]
   program pra_uts;
   uses math;
   const MAX_ARRAY = 10;
   Type Q = Array[1..MAX_ARRAY] of Integer;
   var Q1, Q2 : Q;
   
   // silahkan lanjukan sendiri.
  end.

Sedikit tamb buat coding diatas

Uses Math ga terlalu diperlukan untuk kasus ini

var harus bersifat lokal
jadi jgn salah dalam menempatkan Deklarasi
Jumlah Q yang dideklarasikan disesuaikan dengan soal tugas
« Last Edit: November 06, 2008, 11:24:00 AM by Dhanny »

Offline fdixxx

  • [move]Hello[/move]
  • Global Moderator
  • Newbie
  • *
  • Posts: 56
  • Reputasi Poin: 5
  • Gender: Male
    • View Profile
Re: Bantu Dunk : struktur data - pra_uts
« Reply #8 on: October 21, 2010, 10:36:15 PM »
iseng buat

Code: [Select]
program antrian_dufan;

{$APPTYPE CONSOLE}

uses
  SysUtils;
const max = 10;

type A = array[1..max] of string;
     B = array[1..max] of string;

function ispenuh(r : integer) : boolean;
begin
  if (r = max) then
    ispenuh := true
  else ispenuh := false;
end;

function iskosong(f, r : integer) : boolean;
begin
  if (f=0) and (r=0) then
      iskosong := true
  else iskosong := false;
end;

procedure masukantrian1(var Qa : A; var fa, ra : integer; nama : string);
begin
  inc(ra);
  Qa[ra] := nama;
  if (fa = 0) then fa := 1;
end;

procedure masukantrian2(var Qa : B; var fb, rb : integer; nama : string);
begin
  inc(rb);
  Qa[rb] := nama;
  if (fb = 0) then fb := 1;
end;

procedure masukpengunjung(var Qa : A; var Qb : B; var fa, ra, fb, rb : integer);
var nama : string;
begin
  if ispenuh(ra) and ispenuh(rb) then
     writeln('Antrian Penuh..!!!')
  else begin
         write('Masukan Nama Pengunjung :'); readln(nama);
         while (nama <> '') do
         begin
           if ispenuh(ra) and ispenuh(rb) then
              writeln('Antrian Penuh..!!!')
           else  if (ra <> max) then
                   Masukantrian1(Qa, fa, ra, nama)
                  else masukantrian2(Qb, fb, rb, nama);
           write('Masukan Nama Pengunjung :'); readln(nama);
         end;
       end;
end;


procedure POP(var Qa : A; var f, r : integer; i : integer);
begin
  if (i=1) then
    begin
     writeln;
     writeln('Yang masuk wahana :');
     writeln('[',i,'] ',Qa[f]);
    end
  else writeln('[',i,'] ',Qa[f]);
  inc(f);
end;


procedure TampilAntrian(var Qa : A; var Qb : B; var fa, ra, fb, rb : integer);
var i : integer;
begin
if not iskosong(fa, ra) then
begin
for i := ra downto fa do
 begin
  if (i = fa) then
   write(' | ',Qa[i],' |')
  else write(' | ',Qa[i])
 end;
end;
writeln;
if not iskosong(fb, rb) then
begin
for i := fb to rb do
 begin
   if (i = rb) then
    write(' | ',Qb[i],' |')
  else write(' | ',Qb[i])
 end;
end;
end;

procedure geser1(var Qa : A; var fa, ra : integer);
var i : integer;
begin
 for i := fa to ra do
  begin
   Qa[i-4] := Qa[i];
  end;
 dec(fa,4);
 dec(ra,4);
end;

procedure geser2(var Qa : A; var Qb : B; var fa, ra, fb, rb : integer);
var i : integer;
    j : integer;
begin
j := ra;
  for i:= j+1 to max do
   begin
    if not iskosong(fb, rb) then
    begin
     Qa[i] := Qb[fb];
     inc(fb);
     if (fb > rb) then
       begin
        fb := 0; rb := 0;
       end;
     inc(ra);
    end;
   end;


  if not iskosong(fb, rb) then
  begin
   for i:= fb to rb do
    begin
      Qb[i-4] := Qb[i];
    end;
   dec(fb,4);
   dec(rb,4);
  end;
end;

procedure geser(var Qa : A; var Qb : B; var fa, ra, fb, rb : integer);
begin
  geser1(Qa, fa, ra);
  if not iskosong(fb, rb) then
    geser2(Qa, Qb, fa, ra, fb, rb);
end;



Procedure MasukKeWahana(var Qa : A; var Qb : B; var fa, ra, fb, rb : integer);
var i : integer;
begin
  if iskosong(fa, ra) then
    writeln('Antrian Kosong..!!!')
  else begin
         for i := 1 to 4 do
         begin
           if (ra >= i) then
             POP(Qa, fa, ra, i);
         end;
         writeln;
         TampilAntrian(Qa, Qb, fa, ra, fb, rb);
         writeln;
         if iskosong(fa, ra) then
           writeln('Antrian kosong')
         else begin
               writeln('Antrian Bergeser');
               geser(Qa, Qb, fa, ra, fb, rb);
              end;
       end;
end;





var Qa : A;
    Qb : B;
    fa, ra, fb, rb, pil : integer;
begin
fa := 0; ra := 0; fb := 0; rb := 0;
repeat
  writeln;
  writeln;
  writeln('Tampilan Menu :');
  writeln('[1] Masuk Pengunjung ke antrian');
  writeln('[2] Pengunjung keluar ke wahana permainan');
  writeln('[3] Tampilkan antrian pengunjung');
  writeln('[4] Exit program');
  write('Masukan pilihan anda :'); readln(pil);
  case pil of
   1 : MasukPengunjung(Qa, Qb, fa, ra, fb, rb);
   2 : MasukKeWahana(Qa, Qb, fa, ra, fb, rb);
   3 : TampilAntrian(Qa, Qb, fa, ra, fb, rb);
  end;
until pil = 4;
end.
Hello

Offline LyCloudsky

  • Newbie
  • *
  • Posts: 1
  • Reputasi Poin: 0
    • View Profile
Re: Bantu Dunk : struktur data - pra_uts
« Reply #9 on: October 21, 2010, 10:52:06 PM »
bisa gila...

Offline khocho

  • Advanced
  • ***
  • Posts: 203
  • Reputasi Poin: 12
  • Gender: Male
  • Please dont stop the music!!!
    • View Profile
Re: Bantu Dunk : struktur data - pra_uts
« Reply #10 on: October 25, 2010, 07:23:48 PM »
wakaka isKoong... i like it... isempty atuh kalo ga cekKosong
Aloha.....Mulai posting2 lage ahhh
Tetep Asyik