SlideShare a Scribd company logo
STACK

Kuliah Struktur Data Pascal
Definisi
• Adalah tumpulan data yang seolah-olah ada data di
  atas data lain.
• Suatu metode untuk Input dan hapus di dalam
  memori komputer.
• Konsep utama dalam STACK adalah LIFO ( Last In First
  Out ).
• Contoh:
  5.Guntur,4.Aditya,3.Tyas,2.Hendra,1.Dyah
• Data nomor 1 datang/masuk duluan, data nomor 5
  yang paling atas yang keluar terlebih dahulu.
Arus Data
        5    Guntur
             12
        4    Aditya
             24
        3    Tyas
MASUK                   KELUAR
             14
        2    Hendra
             15
        1    Dyah
             25
Algoritma
   Input/tambah data
       Jika ada input maka no stack/no tumpukan yang
       semula 0 akan tambah 1 demi 1 sampai
       maksimal tumpukan.
   Pengambilan data
    Jika ada pengambilan data maka data dipindahkan
    di variabel lain contohnya temp. Dan posisi
    tumpukannya yang semula maksimal akan
    berkurang 1 demi 1 sampai posisi 0 kembali.
CONTOH PROGRAM
Begin
top:=0;
For i:=1 to maks do
Begin
          Writeln('masukkan nama ke', ' ',i,' ','='); readln(stack[i]);
      top:=top+1;
End;
writeln('posisi tumpukan=',top);
Writeln('pengambilan data');
writeln('berapa data yang akan diambil?');readln(n);
if n<4 then
begin
For i:=1 to maks do
Begin
Elemen:=stack[top];
          top:=top - 1;
End;
end;
Writeln('data elemen sekarang=',elemen);
writeln('posisi tumpukan=',top); Readln;
End.
Deklarasi
Const max=4;
Type
  Coba = record
  data :string;
  End;
  Barang = ARRAY [1..max] of coba;
Var
  Stack:barang;
  full,empty:boolean;
  pilih:integer;
  top:byte;
  ambil,taruh,input:string;
Awal Program
• Memastikan posisi tumpukan kosong
• Element yang terambil belum ada
Mengawali stack
Procedure create;
Begin
  top:=0;
 ambil:=‘belum ada';
  taruh:=‘belum ada';
End;
Inputan
• Dipastikan tumpukan belum penuh
• Menginput satu persatu
Pengecekan Kepenuhan
procedure cekpenuh;
Begin
  if top=max then
full:=true else full:=false;
End;
Menambah Data
Procedure push;
   Begin
        cekpenuh;
        If full=false then
                   Begin
                   top:=top+1;
                   writeln('masukkan data');readln(input);
                   Stack[top].data:=input;
                   taruh:=‘input';
                   end
        else
       writeln('maaf tumpukan sudah penuh tidak bisa menambah   lagi');
   End;
Pengambilan
• Dipastikan tumpukan tidak kosong
• Pengambilan satu persatu
Pengecekan Kekosongan
procedure cekkosong;
Begin
  If top=0 then
  empty:=true else empty:=false;
End;
Pengambilan Data
Procedure Pop;
   Begin
    cekkosong;
     If empty=false then
        Begin
        ambil:=stack[top].data;
        top:=top - 1;
        end
    else
    writeln('maaf tumpukan kosong sudah tidak bisa
        mengambil lagi');
   End;
Menampilkan Semua data
•   Procedure tampildata;
•   Bagin
•   For i:=1 to top do
•   Begin
•   Writeln(‘Data Ke-’,i,’:’,Stack*i+.data);
•   End;
•   End;
Queue (Antrian)

Kuliah Struktur Data Pascal
Definisi
• Adalah antrian data yang seolah-olah ada data yang
  mengantri dari yang terawal sampai yang terakhir.
• Suatu metode untuk Input dan hapus di dalam
  memori komputer.
• Konsep utama dalam Queue adalah FIFO ( First In
  First Out ).
• Contoh:
  1.Guntur,2.Aditya,3.Tyas,4.Hendra,5.Dyah
• Data nomor 1 datang/masuk duluan, data nomor 1
  juga yang keluar terlebih dahulu.
Arus Data
         1      2        3      4      5

         guntur aditya   tyas   hendra dini



KELUAR
                                              MASUK
Algoritma
•   Input/tambah data
       Jika ada input maka no queue/no antrian yang
       semula 0 akan tambah 1 demi 1 sampai
       maksimal antrian.
•   Pengambilan data
    Jika ada pengambilan data maka data dipindahkan
    di variabel lain contohnya temp. Dan posisi
    antriannya yang semula maksimal akan berkurang
    1 demi 1 sampai posisi 0 kembali.
CONTOH PROGRAM QUEUE
Begin
Antri:=0;
{untuk input}
For I:=1 to 3 do
Begin
Writeln(’masukkan nama ke’,’ ’,i);
Readln(d[i]);
Antri:=antri+1;
End;
{untuk Output}
For I:=1 to 3 do
Begin
Temp:=d[i];
Antri:=antri-1;
End;
{lihat output di var temp setelah pengambilan }
Writeln(’hasil var temp=’,temp);
Readln;
End.
Deklarasi
program membuatqueue;
uses crt;
Type
   Coba = record
   nama :string;
   umur :integer;
   End;
Barang = ARRAY [1..4] of coba;
Var
    elemen:coba;
    queue:barang;
    full,empty:boolean;
    pilih,i:integer;
    antri:byte;
const max=4;
label 1,2,3;
Awal Program
• Memastikan posisi antrian kosong
• Element yang diproses belum ada
Mengawali Queue
Procedure create;
Begin
antri:=0;
elemen.nama:='kosong';
Inputan
• Dipastikan antrian belum penuh (memerlukan
  pengecekan kepenuhan)
• Menginput satu persatu
Pengecekan Kepenuhan
procedure cekpenuh;
Begin
  if antri=max then full:=true else full:=false;
End;
Menambah Data
Procedure push;
Begin
     cekpenuh;
   If full=false then
   Begin
           antri:=antri+1;
           write(‘nama: ');
   readln(queue[antri].nama);
   writeln;
   End
     else
  writeln('maaf antrian sudah penuh tidak bisa menambah lagi');
End;
Pengambilan
• Dipastikan antrian tidak kosong
• Pengambilan satu persatu atau lebih dari satu
  (optional)
Pengecekan Kekosongan
procedure cekkosong;
Begin
   If antri=0 then empty:=true else
   empty:=false;
End;
Pengambilan Data
Procedure Pop;
   Begin
     cekkosong;
      If empty=false then
   Begin
   Elemen.nama:=queue[1].nama;
   antri:=antri - 1;
     end
     else
     writeln('maaf antrian kosong sudah tidak bisa mengambil
   lagi');
     for i:=1 to antri do
     queue[i]:=queue[i+1];
   End;

More Related Content

What's hot

5. Doubly Linked List (Struktur Data)
5. Doubly Linked List (Struktur Data)5. Doubly Linked List (Struktur Data)
5. Doubly Linked List (Struktur Data)
Kelinci Coklat
 
Pertemuan 5 Stack atau Tumpukan
Pertemuan 5 Stack atau TumpukanPertemuan 5 Stack atau Tumpukan
Pertemuan 5 Stack atau Tumpukan
Endang Retnoningsih
 
Algoritma dan Struktur Data - antrian
Algoritma dan Struktur Data - antrianAlgoritma dan Struktur Data - antrian
Algoritma dan Struktur Data - antrian
Georgius Rinaldo
 
Resume praktikum 6 stack
Resume praktikum 6 stackResume praktikum 6 stack
Resume praktikum 6 stack
Deprilana Ego Prakasa
 
Algoritma dan Struktur Data - Selection Sort
Algoritma dan Struktur Data - Selection SortAlgoritma dan Struktur Data - Selection Sort
Algoritma dan Struktur Data - Selection Sort
KuliahKita
 
Pengenalan c++ bagian 3
Pengenalan c++ bagian 3Pengenalan c++ bagian 3
Pengenalan c++ bagian 3
Fazar Ikhwan Guntara
 
6. Stack (Struktur Data)
6. Stack (Struktur Data)6. Stack (Struktur Data)
6. Stack (Struktur Data)
Kelinci Coklat
 
Materi sorting(pengurutan)-Dasar-Dasar Pemprograman
Materi sorting(pengurutan)-Dasar-Dasar PemprogramanMateri sorting(pengurutan)-Dasar-Dasar Pemprograman
Materi sorting(pengurutan)-Dasar-Dasar Pemprograman
Reskidtc
 
Pengertian dan Representasi Graph
Pengertian dan Representasi GraphPengertian dan Representasi Graph
Pengertian dan Representasi Graph
Zaldy Eka Putra
 
Algoritma dan Struktur Data (Python) - Struktur Data
Algoritma dan Struktur Data (Python) - Struktur DataAlgoritma dan Struktur Data (Python) - Struktur Data
Algoritma dan Struktur Data (Python) - Struktur Data
AndiNurkholis1
 
aritmatika komputer
aritmatika komputeraritmatika komputer
aritmatika komputer
dewi2093
 
Tugas 2 individu tentang dbms
Tugas 2 individu tentang dbmsTugas 2 individu tentang dbms
Tugas 2 individu tentang dbms
Elma Fiana
 
Materi Basis Data - Anomali dan Normalisasi
Materi Basis Data - Anomali dan NormalisasiMateri Basis Data - Anomali dan Normalisasi
Materi Basis Data - Anomali dan NormalisasiDerina Ellya R
 
Materi Struktur Data Stack
Materi Struktur Data StackMateri Struktur Data Stack
Materi Struktur Data Stack
Meta N
 
Jawaban Struktur data soal-latihan
Jawaban Struktur data soal-latihanJawaban Struktur data soal-latihan
Jawaban Struktur data soal-latihan
Bina Sarana Informatika
 
Pertemuan 10
Pertemuan 10Pertemuan 10
Pertemuan 10
Muhamad Edi.S
 
Insertion sort
Insertion sortInsertion sort
Insertion sort
Irwan Anwar
 
Materi Data Mining - C4.5
Materi Data Mining - C4.5Materi Data Mining - C4.5
Materi Data Mining - C4.5
dedidarwis
 
8 Data Record
8 Data Record8 Data Record
8 Data Record
Simon Patabang
 

What's hot (20)

5. Doubly Linked List (Struktur Data)
5. Doubly Linked List (Struktur Data)5. Doubly Linked List (Struktur Data)
5. Doubly Linked List (Struktur Data)
 
Pertemuan 5 Stack atau Tumpukan
Pertemuan 5 Stack atau TumpukanPertemuan 5 Stack atau Tumpukan
Pertemuan 5 Stack atau Tumpukan
 
Algoritma dan Struktur Data - antrian
Algoritma dan Struktur Data - antrianAlgoritma dan Struktur Data - antrian
Algoritma dan Struktur Data - antrian
 
Resume praktikum 6 stack
Resume praktikum 6 stackResume praktikum 6 stack
Resume praktikum 6 stack
 
Algoritma dan Struktur Data - Selection Sort
Algoritma dan Struktur Data - Selection SortAlgoritma dan Struktur Data - Selection Sort
Algoritma dan Struktur Data - Selection Sort
 
Pengenalan c++ bagian 3
Pengenalan c++ bagian 3Pengenalan c++ bagian 3
Pengenalan c++ bagian 3
 
6. Stack (Struktur Data)
6. Stack (Struktur Data)6. Stack (Struktur Data)
6. Stack (Struktur Data)
 
Materi sorting(pengurutan)-Dasar-Dasar Pemprograman
Materi sorting(pengurutan)-Dasar-Dasar PemprogramanMateri sorting(pengurutan)-Dasar-Dasar Pemprograman
Materi sorting(pengurutan)-Dasar-Dasar Pemprograman
 
Pengertian dan Representasi Graph
Pengertian dan Representasi GraphPengertian dan Representasi Graph
Pengertian dan Representasi Graph
 
Algoritma dan Struktur Data (Python) - Struktur Data
Algoritma dan Struktur Data (Python) - Struktur DataAlgoritma dan Struktur Data (Python) - Struktur Data
Algoritma dan Struktur Data (Python) - Struktur Data
 
aritmatika komputer
aritmatika komputeraritmatika komputer
aritmatika komputer
 
Tugas 2 individu tentang dbms
Tugas 2 individu tentang dbmsTugas 2 individu tentang dbms
Tugas 2 individu tentang dbms
 
Materi Basis Data - Anomali dan Normalisasi
Materi Basis Data - Anomali dan NormalisasiMateri Basis Data - Anomali dan Normalisasi
Materi Basis Data - Anomali dan Normalisasi
 
Materi Struktur Data Stack
Materi Struktur Data StackMateri Struktur Data Stack
Materi Struktur Data Stack
 
circular linked list
circular linked listcircular linked list
circular linked list
 
Jawaban Struktur data soal-latihan
Jawaban Struktur data soal-latihanJawaban Struktur data soal-latihan
Jawaban Struktur data soal-latihan
 
Pertemuan 10
Pertemuan 10Pertemuan 10
Pertemuan 10
 
Insertion sort
Insertion sortInsertion sort
Insertion sort
 
Materi Data Mining - C4.5
Materi Data Mining - C4.5Materi Data Mining - C4.5
Materi Data Mining - C4.5
 
8 Data Record
8 Data Record8 Data Record
8 Data Record
 

Similar to Bab 8-stack-dan-queue

Resume praktikum 7__queue
Resume praktikum 7__queueResume praktikum 7__queue
Resume praktikum 7__queue
Deprilana Ego Prakasa
 
Chapter 4 stack and queue
Chapter 4   stack and queueChapter 4   stack and queue
Chapter 4 stack and queue
Muhammad Najib
 
Chapter 4b queue
Chapter 4b   queueChapter 4b   queue
Chapter 4b queue
Muhammad Najib
 
Program fifo-dengan-pascal
Program fifo-dengan-pascalProgram fifo-dengan-pascal
Program fifo-dengan-pascal
Rhe Dwi Yuni
 
Fungsi rekursif, queue, stack
Fungsi rekursif, queue, stackFungsi rekursif, queue, stack
Fungsi rekursif, queue, stack
Icha Dicaprio
 
TI-struktur_data-stack_n_queue
TI-struktur_data-stack_n_queueTI-struktur_data-stack_n_queue
TI-struktur_data-stack_n_queue
Monica Indah Habsari
 
4 queue2
4 queue24 queue2
4 queue2
Wandi Parlente
 
Struktur data chapter_14
Struktur data chapter_14Struktur data chapter_14
Struktur data chapter_14
Sejahtera Affif
 
Struktur data pertemuan 11
Struktur data pertemuan 11Struktur data pertemuan 11
Struktur data pertemuan 11
ajonona
 
Algoritma dan Struktur Data - tumpukan
Algoritma dan Struktur Data - tumpukanAlgoritma dan Struktur Data - tumpukan
Algoritma dan Struktur Data - tumpukan
Georgius Rinaldo
 
Algoritma dan Struktur Data - Antrian
Algoritma dan Struktur Data - AntrianAlgoritma dan Struktur Data - Antrian
Algoritma dan Struktur Data - Antrian
KuliahKita
 
Algoritma dan Struktur Data - Queue
Algoritma dan Struktur Data - QueueAlgoritma dan Struktur Data - Queue
Algoritma dan Struktur Data - Queue
KuliahKita
 
Algoritma dan Struktur Data - Stack
Algoritma dan Struktur Data - StackAlgoritma dan Struktur Data - Stack
Algoritma dan Struktur Data - Stack
KuliahKita
 
Chapter 4a stack
Chapter 4a   stackChapter 4a   stack
Chapter 4a stack
Muhammad Najib
 
11 12 -pengurutan dan-pencarian
11 12 -pengurutan dan-pencarian11 12 -pengurutan dan-pencarian
11 12 -pengurutan dan-pencarian
Wandi Parlente
 
Stack & queue by stanly maarende
Stack & queue by stanly maarendeStack & queue by stanly maarende
Stack & queue by stanly maarende
Sten Maarende
 
Stack_Queue.pdf
Stack_Queue.pdfStack_Queue.pdf
Stack_Queue.pdf
DikkySuryadiSKomMKom
 
tugas algoritma
tugas algoritmatugas algoritma
tugas algoritma
SITI MUTIAH NURMALA DEWI
 

Similar to Bab 8-stack-dan-queue (20)

Resume praktikum 7__queue
Resume praktikum 7__queueResume praktikum 7__queue
Resume praktikum 7__queue
 
Chapter 4 stack and queue
Chapter 4   stack and queueChapter 4   stack and queue
Chapter 4 stack and queue
 
Chapter 4b queue
Chapter 4b   queueChapter 4b   queue
Chapter 4b queue
 
Program fifo-dengan-pascal
Program fifo-dengan-pascalProgram fifo-dengan-pascal
Program fifo-dengan-pascal
 
Fungsi rekursif, queue, stack
Fungsi rekursif, queue, stackFungsi rekursif, queue, stack
Fungsi rekursif, queue, stack
 
TI-struktur_data-stack_n_queue
TI-struktur_data-stack_n_queueTI-struktur_data-stack_n_queue
TI-struktur_data-stack_n_queue
 
4 queue2
4 queue24 queue2
4 queue2
 
Struktur data chapter_14
Struktur data chapter_14Struktur data chapter_14
Struktur data chapter_14
 
Tistrukdat4
Tistrukdat4Tistrukdat4
Tistrukdat4
 
Pengurutan (sorting )
Pengurutan (sorting )Pengurutan (sorting )
Pengurutan (sorting )
 
Struktur data pertemuan 11
Struktur data pertemuan 11Struktur data pertemuan 11
Struktur data pertemuan 11
 
Algoritma dan Struktur Data - tumpukan
Algoritma dan Struktur Data - tumpukanAlgoritma dan Struktur Data - tumpukan
Algoritma dan Struktur Data - tumpukan
 
Algoritma dan Struktur Data - Antrian
Algoritma dan Struktur Data - AntrianAlgoritma dan Struktur Data - Antrian
Algoritma dan Struktur Data - Antrian
 
Algoritma dan Struktur Data - Queue
Algoritma dan Struktur Data - QueueAlgoritma dan Struktur Data - Queue
Algoritma dan Struktur Data - Queue
 
Algoritma dan Struktur Data - Stack
Algoritma dan Struktur Data - StackAlgoritma dan Struktur Data - Stack
Algoritma dan Struktur Data - Stack
 
Chapter 4a stack
Chapter 4a   stackChapter 4a   stack
Chapter 4a stack
 
11 12 -pengurutan dan-pencarian
11 12 -pengurutan dan-pencarian11 12 -pengurutan dan-pencarian
11 12 -pengurutan dan-pencarian
 
Stack & queue by stanly maarende
Stack & queue by stanly maarendeStack & queue by stanly maarende
Stack & queue by stanly maarende
 
Stack_Queue.pdf
Stack_Queue.pdfStack_Queue.pdf
Stack_Queue.pdf
 
tugas algoritma
tugas algoritmatugas algoritma
tugas algoritma
 

Bab 8-stack-dan-queue

  • 2. Definisi • Adalah tumpulan data yang seolah-olah ada data di atas data lain. • Suatu metode untuk Input dan hapus di dalam memori komputer. • Konsep utama dalam STACK adalah LIFO ( Last In First Out ). • Contoh: 5.Guntur,4.Aditya,3.Tyas,2.Hendra,1.Dyah • Data nomor 1 datang/masuk duluan, data nomor 5 yang paling atas yang keluar terlebih dahulu.
  • 3. Arus Data 5 Guntur 12 4 Aditya 24 3 Tyas MASUK KELUAR 14 2 Hendra 15 1 Dyah 25
  • 4. Algoritma  Input/tambah data Jika ada input maka no stack/no tumpukan yang semula 0 akan tambah 1 demi 1 sampai maksimal tumpukan.  Pengambilan data Jika ada pengambilan data maka data dipindahkan di variabel lain contohnya temp. Dan posisi tumpukannya yang semula maksimal akan berkurang 1 demi 1 sampai posisi 0 kembali.
  • 5. CONTOH PROGRAM Begin top:=0; For i:=1 to maks do Begin Writeln('masukkan nama ke', ' ',i,' ','='); readln(stack[i]); top:=top+1; End; writeln('posisi tumpukan=',top); Writeln('pengambilan data'); writeln('berapa data yang akan diambil?');readln(n); if n<4 then begin For i:=1 to maks do Begin Elemen:=stack[top]; top:=top - 1; End; end; Writeln('data elemen sekarang=',elemen); writeln('posisi tumpukan=',top); Readln; End.
  • 6. Deklarasi Const max=4; Type Coba = record data :string; End; Barang = ARRAY [1..max] of coba; Var Stack:barang; full,empty:boolean; pilih:integer; top:byte; ambil,taruh,input:string;
  • 7. Awal Program • Memastikan posisi tumpukan kosong • Element yang terambil belum ada
  • 8. Mengawali stack Procedure create; Begin top:=0; ambil:=‘belum ada'; taruh:=‘belum ada'; End;
  • 9. Inputan • Dipastikan tumpukan belum penuh • Menginput satu persatu
  • 10. Pengecekan Kepenuhan procedure cekpenuh; Begin if top=max then full:=true else full:=false; End;
  • 11. Menambah Data Procedure push; Begin cekpenuh; If full=false then Begin top:=top+1; writeln('masukkan data');readln(input); Stack[top].data:=input; taruh:=‘input'; end else writeln('maaf tumpukan sudah penuh tidak bisa menambah lagi'); End;
  • 12. Pengambilan • Dipastikan tumpukan tidak kosong • Pengambilan satu persatu
  • 13. Pengecekan Kekosongan procedure cekkosong; Begin If top=0 then empty:=true else empty:=false; End;
  • 14. Pengambilan Data Procedure Pop; Begin cekkosong; If empty=false then Begin ambil:=stack[top].data; top:=top - 1; end else writeln('maaf tumpukan kosong sudah tidak bisa mengambil lagi'); End;
  • 15. Menampilkan Semua data • Procedure tampildata; • Bagin • For i:=1 to top do • Begin • Writeln(‘Data Ke-’,i,’:’,Stack*i+.data); • End; • End;
  • 17. Definisi • Adalah antrian data yang seolah-olah ada data yang mengantri dari yang terawal sampai yang terakhir. • Suatu metode untuk Input dan hapus di dalam memori komputer. • Konsep utama dalam Queue adalah FIFO ( First In First Out ). • Contoh: 1.Guntur,2.Aditya,3.Tyas,4.Hendra,5.Dyah • Data nomor 1 datang/masuk duluan, data nomor 1 juga yang keluar terlebih dahulu.
  • 18. Arus Data 1 2 3 4 5 guntur aditya tyas hendra dini KELUAR MASUK
  • 19. Algoritma • Input/tambah data Jika ada input maka no queue/no antrian yang semula 0 akan tambah 1 demi 1 sampai maksimal antrian. • Pengambilan data Jika ada pengambilan data maka data dipindahkan di variabel lain contohnya temp. Dan posisi antriannya yang semula maksimal akan berkurang 1 demi 1 sampai posisi 0 kembali.
  • 20. CONTOH PROGRAM QUEUE Begin Antri:=0; {untuk input} For I:=1 to 3 do Begin Writeln(’masukkan nama ke’,’ ’,i); Readln(d[i]); Antri:=antri+1; End; {untuk Output} For I:=1 to 3 do Begin Temp:=d[i]; Antri:=antri-1; End; {lihat output di var temp setelah pengambilan } Writeln(’hasil var temp=’,temp); Readln; End.
  • 21. Deklarasi program membuatqueue; uses crt; Type Coba = record nama :string; umur :integer; End; Barang = ARRAY [1..4] of coba; Var elemen:coba; queue:barang; full,empty:boolean; pilih,i:integer; antri:byte; const max=4; label 1,2,3;
  • 22. Awal Program • Memastikan posisi antrian kosong • Element yang diproses belum ada
  • 24. Inputan • Dipastikan antrian belum penuh (memerlukan pengecekan kepenuhan) • Menginput satu persatu
  • 25. Pengecekan Kepenuhan procedure cekpenuh; Begin if antri=max then full:=true else full:=false; End;
  • 26. Menambah Data Procedure push; Begin cekpenuh; If full=false then Begin antri:=antri+1; write(‘nama: '); readln(queue[antri].nama); writeln; End else writeln('maaf antrian sudah penuh tidak bisa menambah lagi'); End;
  • 27. Pengambilan • Dipastikan antrian tidak kosong • Pengambilan satu persatu atau lebih dari satu (optional)
  • 28. Pengecekan Kekosongan procedure cekkosong; Begin If antri=0 then empty:=true else empty:=false; End;
  • 29. Pengambilan Data Procedure Pop; Begin cekkosong; If empty=false then Begin Elemen.nama:=queue[1].nama; antri:=antri - 1; end else writeln('maaf antrian kosong sudah tidak bisa mengambil lagi'); for i:=1 to antri do queue[i]:=queue[i+1]; End;