0% menganggap dokumen ini bermanfaat (0 suara)
12 tayangan6 halaman

Belajar Tipe Data Stack di Python

Dokumen ini membahas tentang program studi tipe data stack menggunakan bahasa pemrograman Python. Terdapat penjelasan tentang konsep First in Last out pada stack dan source code implementasi operasi dasar stack seperti push, pop, insert, dan remove. Source code diuji menggunakan class StackDriver untuk menampilkan hasil operasi terhadap objek Stack.

Diunggah oleh

ayam sabung
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
12 tayangan6 halaman

Belajar Tipe Data Stack di Python

Dokumen ini membahas tentang program studi tipe data stack menggunakan bahasa pemrograman Python. Terdapat penjelasan tentang konsep First in Last out pada stack dan source code implementasi operasi dasar stack seperti push, pop, insert, dan remove. Source code diuji menggunakan class StackDriver untuk menampilkan hasil operasi terhadap objek Stack.

Diunggah oleh

ayam sabung
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd

Tugas Stack

Subject Programmer
IF-381 NATAN WILLY SUHERMAN
Topik Program Studi
PYTHON PROGRAMMING PART 1 SISTEM INFORMASI
Bidang NIM
- - 1219024

Case Study 1: Judulnya


Bertujuan mempelajari tipe data stack yang dapat diibaratkan tumpukan data yang memiliki ciri khas.
Beberapa diantaranya First in, Last out.

Source Code
1 import [Link].*;
2 import [Link];
3
4 class Stack {
5
6 private final int nMin = 0; //String Indeks
7 private final int nMax = 9; // End Indeks
8 private final int ValEmpty = -9999; //Indicate Empty
9 ValueBase
10
11 private int[] Ti = new int[10]; //array contains
12 number
13 private int Top; //Top-Most indeks
14
15
16 //konstruktor tanpa primeter
17 Stack() {
18 //mengisi array dengan value -9999
19 //tidak ada array yg kosong
20 //yang ada adalah array dengan value -9999
21 diasumsikan kosong
22 for (int i=1; i<=[Link]; i++){
23 [Link][i] = [Link];
24 }
25
26 //Stack kosong artinya Top = -1
27 [Link] = -1;
28
29 void setTop (int newTop){
30 [Link] = newTop;
31 }
32
33 //Getter (mengambil[] indeks Top
34 int getTop(){
35 return([Link]);
36 }
37
38 void setInfoTop(int v){
39 [Link][[Link]()] = v;
40 //[Link][s] = 300;
41 }
42
43 //Getter (Mengambil value pada indeks Top
44 int getInfoTop(){
45 return([Link][Top]);
46 }
47
48 //Mengambil data tampung stack
49 //Diperlukan karena, nMin=0 dan java nMax=9
50 //Sebab array pada java dimulai dari indeks 0
51 // maka diakhiri dengan indeks 9 agar mampu menampung
52 10 element
53 //Sehingga perlu membuat method utk meReturn
54 kapasitas. Kapasitaas = nMax + 1
55
56 int getMaxCap(){
57 return([Link] + 1);
58 }
59 //Operator boolean
60 //mengembalikan TRUE jika stack penuh
61 boolean isFull(){
62 return([Link]() == [Link]);
63 }
64
65 //operator boolean
66 //mengembalikan TRUE jika stack kosong
67 boolean isEmpty(){
68 return([Link]() == -1); //kalo 0, masih
69 dianggap berisi
70 }
71 //operator PUSH: menambah element
72 void push(int v){
73 //pastikan bahwa stack tidak penuh
74 if(![Link]()){
75 [Link]([Link]() + 1);
76 //Mengubah posisi top
77 [Link](v); //Mengisi nilai
78 pada Top
79 }
80 }
81
82 //Operator POP: Mengambil element
83 //Diambil element pada posisi TOP
84 void Pop(){
85 //Pastikan bahwa stack kosong
86 if(![Link]()){
87 [Link](ValEmpty);
88 [Link]([Link]() - 1);
89 //Mengubah Posisi
90 }
91 }
92
93 //menampilkan isi stack
94 void info(String name){
95 //pastikan bahwa stack tidak kosong
96 if (![Link]()){
97 [Link]("");
98 [Link](name);
99 for (int i = [Link]; i<=[Link]();
100 i++) {
101 [Link]("Ti["+i+"] = " +
102 [Link][i]);
103 }
104 } else {
[Link]("Stack Kosong");
}
}

//operator boolean

void insert (int idx, int v){

//pop semua elemen pada stack S mulai dari TOP


s/d idx
//simpan hasil POP ke arrTemp biar bisa diambil
kembali berurutan
//push elemen yang baru ke stack S
// POP semua elemen pada arrTemp, lalu push ke
stack S

int i;
int j;

int[] arrTemp = new int[[Link]() - idx +


1]; //array penampung sementara
//Looping POP dari stack S lalu push ke arrTemp
j = 0;
for (i= [Link](); i>=idx; i--){
arrTemp[j] = [Link]();
[Link]();
j++
}

//Push elemen V
[Link](v);

//Kembalikan semua elemen dari arrTemp ke stack


S
for (i=j-1; i>=0; i--){
[Link](arrTemp[i]);
}
}

void remove(int idx){

//POP smw elemen pada stack S mulai dari TOP s/d


idx+1
//simpan hasil POP ke arrTemp, agar bisa diambil
kembali berurutann
//POP stack S untuk membuang index yang ke idx
//POP semua elemen pada arrTemp, lalu push ke
stack S

int i; //menentukan batasan arrTemp


int j; //membantu mengisi arrTemp
int temp;

//membuat if apabila idx yang dimasukan (ingin


diremove) lebih besar dari TOP
if ([Link]() >= idx){
int[] arrTemp = new int [[Link]() - idx +
1];

//Looping Pop
for (i= [Link](); i >= idx + 1; i--){
arrTemp[j] = [Link]();
[Link]();
j++;
}

//Pop inddex(idx) yang ditentukan


[Link]();
//Mengembalikan elemen yang disimpan di arrTemp
ke stack
for (i = j-1 ;i >= nMin ;i--){
[Link](arrTemp[i]);
}
} else {
[Link]("idx Exceed, Maximum = " +
[Link]() + ", Given = " + idx);
}
}

//============== FILE YANG BERBEDA LAGI =================

/*
Bertujuan mempelajari tipe data stack yang dapat diibaratkan tumpukan data yang memiliki
ciri khas. Beberapa diantaranya First in, Last out. Berikut diatas prosedur dan fungsi yang
dibuat pada file sebelumnya.

*/

class StackDriver{
public static void main(String []args) {
Stack s1 = new Stack();
[Link](200);
[Link]("s1");

[Link](300);
[Link]("s1");

[Link](400);
[Link]("s1");

[Link]();
[Link]("s1");

//Mengambil index Top


[Link]("TOP = " + [Link]());

//Mengambil value Top


[Link]("TOP = " + [Link]());

//Insert Elemen
[Link]("=======");
[Link]("Insert");
[Link](2,888);
[Link]("s1");

//Remove Elemen
[Link]("");
[Link]("Remove 2");
[Link](2);
[Link]("s1");

//Remove Elemen Top ==Pop()


[Link]("");
[Link]("Remove Top");
[Link]([Link]());
[Link]("s1");

//Remove Elemen
[Link]("");
[Link]("Remove 10");
[Link](10);
[Link]("s1");
}
}

Uji coba program:

Anda mungkin juga menyukai