Mvapdg – assalamualaikum wr. wb.
Jumpa lagi ini teman – teman.. pada kesempatan kali ini saya akan mencoba untuk menjelaskan mengenai deque. Nah sudah taukah Anda apakah itu deque? nah bagi kalian yang belum mengetahuinya, maka pilihan sangat tepat untuk membaca postingan saya kali ini.. karena saya akan membahas tentang kedua hal tersebut.. yaitu deque .. sebelum saya menulis postingan ini, saya sudah memposting tentang Stack dan queue. Jika kalian ingin membacanya, kalian bisa KLIK DISINI yaa... nah kembali lagi ke pokok pembahasan kita... lalu apa sih deque dan itu ? bagaimana cara menggunakan serta mendeklarasikan serta mengimplementasikan deque ini ? nah untuk menjawab semua pertanyaan tadi, yuk kita simak sama – sama pembahasan mengenai dan dequi ini..
Pengertian dan gambaran mengenai deque.
Nah, deque dan ini sebenarnya merupakan bagian dari materi kuliah struktur data yang merupakan mata kuliah dari jurusan saya. Yaitu teknik informatika. Jadi, deque dan ini bisa saya katakan sebagai salah satu class yang digunakan untuk mengolah data. Nah untuk penjelasan mengenai deque sendiri, dapat Anda baca di bawah ini.Deque juga di kenal sebagai antrian yang memiliki dua ujung sekaligus. Mengapa demikian ? karena dalam class ini memungkin kita untuk menambah dan mengurangi jumlah data dari dua sisi tersebut. Dan sebenarnya, Deque ini juga memiliki kesamaan yaitu dapat diartikan sebagai sebuah antrian. Namun, seperti yang sudah saya katakan diatas, dalam konsep deque ini memungkin kan kita untuk menambah dan menghapus item atau data dari kedua sisi. Yaitu depan dan belakang. Hal ini berbeda dengan queue yang hanya dapa di tambah dan di hapus dari satu sisi saja. Jika kalian ingin membaca lebih lanjut mengenai Queue ini kalian bisa BACA DISINI. Nah untuk contoh dari simulasi dari deque ini, kalian bisa melihat pada gambar di bawah ini ya teman – teman...
Nah... untuk mewujudkan kemampuan untuk menambah dan menghapus item dari depan maupun belakang, Deque ini memiliki beberapa fungsi.. dan yang saya ketahui, fungsi deque ini terdapat 7 macam. Namun, kalian juga bisa memodifikasi fungsi – fungsi tersebut, baik menambah nya maupun menguranginya sesuai dengan kebutuhan kalian dalam membuat program. Oya.. 7 macam fungsi tersebut, masing – masing adalah deque, addfroont, addRear, removeFront, removeRear, isEmpty, dan size. Nah itu dia macam – macamnya.. dan untuk penjelasannya, kalian bisa langsung melihatnya di bawah ini ya teman – teman...
- deque() membuat suatu deque baru yang kosong. Tidak perlu parameter dan mengembalikan suatu deque kosong.
- addFront(item) menambahkan suatu item baru ke depan dari deque. Perlu item dan tidak mengembalikan apapun.
- addRear(item) menambahkan suatu item baru ke ekor dari deque. Perlu item dam tidak mengembalikan sesuatu.
- removeFront() menghapus item depan dari deque. Tidak perlu parameter dan mengembalikan item. Deque termodifikasi.
- removeRear() menghapus item ujung (ekor) dari deque. Tidak perlu parameter dan mengembalikan item. Deque berubah.
- isEmpty() menguji apakah deque dalam kondisi kosong. Tidak perlu parameter dan mengembalikan suatu nilai boolean.
- size() mengembalikan jumlah item dalam deque. Tidak perlu parameter dan mengembalikan suatu integer.
nah itu dia penjelasan mengenai deque yang merupakan class yang mirip dengan queue namun tentu memiliki perbedaan..
Simulasi dan pembuatan class deque.
Setelah kita mengetahui apa arti dari deque dan apa saja fungsinya, saya akan menjelaskan mengenai bagaimana simulasi dari class tersebut saat kita gunakan nantinya.. simulasi ini saya lakukan agar kalian lebih memahami mengenai deque ini...yuk tanpa lama – lama lagi, langsung saja yuk kita simak sama – sama simulasinya..Nah dalam simulasi ini saya menggunakan huruf ‘d’ sebagai variabel yang merupakan sebuah class deque. Nah simulasinya akan saya buat dalam bentuk tabel.. dan dapat kalian lihati dibawah ini ya teman – teman ...
Operasi
Deque
|
Isi
Deque
|
Nilai
kembalian
|
d.isEmpty(2)
|
[]
|
True
|
d.addRear()
|
[2]
|
|
d.addRear(‘saya’)
|
[‘saya’,2]
|
|
d.addFront(‘kamu’)
|
[‘saya’,2,’kamu]
|
|
d.addFront(True)
|
[‘saya’,2,’kamu,True]
|
|
d.size()
|
[‘saya’,2,’kamu,True]
|
4
|
d.isEmpty()
|
[‘saya’,2,’kamu,True]
|
False
|
d.addRear(12.5)
|
[12.5,‘saya’,2,’kamu,True]
|
|
d.removeRear()
|
[‘saya’,2,’kamu,True]
|
8.4
|
d.removeFront()
|
[‘saya’,2,’kamu]
|
True
|
Nah itu dia teman – teman salah satu simulasi dari deque ini... bagaimana ? tentu sudah paham kan bagaimana cara kerjanya ? ya semoga saja kalian bisa memahaminya ya... jika belum paham, kalian bisa membaca dan memahami tabel tersebut secara perlahan – lahan dan berulang - ulang sampai kalian paham bagaimana cara kerjanya.. nah setelah paham, lalu seperti apakah code program nya ?
nah untuk menjawab pertanyaan tersebut, kalian bisa lihat di bawah ini yaa...
class Deque : def __init__(self): self.items = [] def isEmpty(self): return self.items == [] def addFront(self, item): self.items.append(item) def addRear(self, item): self.items.insert(0,item) def removeFront(self): return self.items.pop() def removeRear(self): return self.items.pop(0) def size(self): return len(self.items)
nah itu dia class dari deque ini...
Penjelasan code program deque.
untuk lebih meningkatkan pemahaman kalian mengenai program di atas, saya akan mencoba untuk menjelaskan tiap – tiap fungsi diatas.. langsung saja ya.. kalian bisa baca di bawah ini...
class Deque : //digunakan untuk
mendeklarasikan kelas yang bernama “deque”
def
__init__(self): //ini merupakan fungsi atau metode yang
akan
self.items = []
//ini digunakan untuk mendeklarasikan variabel ‘items’ yang saya isi
dengan list kosong. Jika kalia perhatikan, sebelum variabel terdapa kata ‘self’
yang berfungsi agar variabel ‘items’ dapat di akses oleh metode atau fungsi
yang lainnya.
def
isEmpty(self): //metode ini digunakan untuk memastikan.
Apakah variabel ‘items’ berada dalam kondisi kosong atau tidak.
return self.items == []
//nah ini digunakan untuk mengembalikan nilai True atau False. Dengan cara
membandingkan variabel ‘items’ dengan sebuah list kosong. Untuk memastikan
apakah variabel list berada dalam keadaan kosong atau tidak. Jadi akan
mengembalikan nilai True jika kosong dan False jika tidak kosong.
def
addFront(self, item): //ini merupakan fungsi atau metode untuk
menambah data dari depan.
self.items.append(item) //ini
merupakan isi dari fungsi addFront yang berfungsi menambah item yang dimasukkan
kedalam list yang sudah saya deklarasikan dengan nama ‘items’
def
addRear(self, item): //metode ini digunakan untuk menambahkan
data dari belakang.
self.items.insert(0,item)
//nah yang ini merupakan isi dari metode addRear diatas. Yang memiliki fungsi
untuk memasukkan item kedalam list yang sudah saya deklarasikan sebelumnya
dengan nama ‘items’
def
removeFront(self): //nah ini merupakan metode untuk menghapus
data dari depan.
return self.items.pop()
//ini merupakan code perintah yang merupakan isi dari metode removeFront. Yang
berfungsi untuk mengeluarkan data atau menghapus data dari depan yang ada pada
variabel ‘items’. Lalu mengembalikan data tersebut dengan menggunakan fungsi
‘return’.
def
removeRear(self): //metode yang ini digunakan untuk
menghapus data dari belakang.
return self.items.pop(0)
//ini merupakan code yang menjadi isi dari metode removeRear yang berfungsi
untuk menghapus elemen dari belakang pada list yang ditampung oleh variabel
items. Lalu mengembalikan elemen atau item tersebut.
def
size(self): //nah metode ini digunakan untuk mengetahui
banyak elemen atau data yang ada di dalam list.
return
len(self.items) //ini digunakan untuk
menghitung elemen list yang berada didalam variabel ‘list’Nah itu dia teman – teman penjelasan dari class deque ini..
Contoh program yang memanfaatkan class deque.
nah setelah kita belajar mengenai pengertian, simulasi dan sudah mengetahui juga code dari Deque ini, maka selanjutnya saya akan memberikan contoh pemanfaatan deque ini.. yuk langsung saja kita lihat di bawah ini...class Deque : def __init__(self): self.items = [] def isEmpty(self): return self.items == [] def addFront(self, item): self.items.append(item) def addRear(self, item): self.items.insert(0,item) def removeFront(self): return self.items.pop() def removeRear(self): return self.items.pop(0) def size(self): return len(self.items) def palchecker(aString): chardeque = Deque() for ch in aString: chardeque.addRear(ch) stillEqual = True while chardeque.size() > 1 and stillEqual: first = chardeque.removeFront() last = chardeque.removeRear() if first != last: stillEqual = False return stillEqual masukan = raw_input("masukkan kata untuk dicek : ") if palchecker(masukan) : print("kata '" + masukan + "' adalah kata palindrom") else : print("kata '" + masukan + "' bukan kata palindrom")
nah itu dia contoh program yang memanfaatkan Deque yang menjadi bahasan kita kali ini... pogram diatas digunakan untuk mengecek sebuah kata... kata tersebut akan di cek apakah bernilai palindrom atau tidak.. untuk screenshoot hasil eksekusi dari program diatas, kalian bisa lihat di pada gambar di bawah ini ya...
penjelasan mengenai code program pengecek kata palindrom.
nah untuk lebih memahaminya, saya akan mencoba untuk menjelaskan program yang ada di atas tersebut.. namun sebelumnya, saya tidak akan menjelakan class deque lagi ya karena saya sudah menjelaskannya diatas... jadi saya akan langsung menjelaskan metode dari pengecekan kata palindrom tersebut.. langsung saja ini dia...
def palchecker(aString):
//ini merupakan awal pembuatan metode yang saya kasi nama palchecker. Yang
membutuhkan sebuah parameter dan yang akan saya tampung dalam variabel
‘aString’
chardeque
= Deque() //nah ini digunakan untuk mendeklarasikan
variabel ‘chardeque’ yang saya isi nilainya dengan class Deque.
for ch
in aString: //ini digunakan untuk mengambil setiap huruf yang
di dapat dari variabel ‘aString’ dan di peroleh dari parameter yang sudah
masukkan oleh user.
chardeque.addRear(ch) //ini digunakan untuk memasukkan setiap
huruf yang disalin oleh variabel ‘ch’.
stillEqual = True //ini digunakan untuk mendeklarasikan
variabel boolean dengan nama ‘stillEqual’ dan sudah saya kasi nilai True.
while
chardeque.size() > 1 and stillEqual: //nah ini merupakan sebuah
perulangan yang dengan kondisi “apakah ukuran dari ‘chardeque’ bernilai lebih
dari satu atau tidak dan apakah ‘stillEqual’ bernilai True atau False”.
Perulangan ini akan terus berjalan, selama kedua kondisi tersebut bernilai
benar atau True.
first = chardeque.removeFront() //ini
digunakan untuk mengambil elemen atau huruf yang ada di ‘chardeque’ yang
merupakan variabel yang berisi list. Pengambilan ini dilakukan dari depan. Dan
ditampung dalam variabel ‘first’.
last
= chardeque.removeRear() //ini digunakan untuk mengambil elemen
atau huruf yang ada di ‘chardeque’ yang merupakan variabel yang berisi list.
Pengambilan ini dilakukan dari belakang. Lalu ditampung dalam variabel ‘last’.
if
first != last: //lalu setelah kita mengambil huruf atau
elemen dari kedua sisi deque, maka selanjutnya akan kita bandingkan dari kedua
huruf tersebut yang sudah kita tampung sebelumnta di dalam variabel ‘first’ dan
‘last’.
stillEqual = False //
jika pembandingan huruf yang ditampung di dala variabel ‘first’ dan ‘last’ tadi
tidak sama, maka ‘stillEqual akan di rubah nilainya menjadi ‘False’.
return
stillEqual //nah
setelah semuanya sudah dicek, maka kita akan mengembalikan nilai yang ada di dalam
variabel ‘stillEqual’. Yang menjadi penanda apakah kata yang kita masukan
bersifat palindrom atau tidak. Dengan rincian jika mengembalikan nilai ‘True’
jika bersifat palindrom dan mengembalikan nilai ‘False’ jika tidak bersifat
palindrom
masukan =
raw_input("masukkan kata untuk dicek : ") //digunakan agar saat
program dijalankan, maka program akan meminta kalian memasukkan sebuah teks
untuk di cek.
if
palchecker(masukan) : //digunakan untuk mengecek apakah kata
yang di masukkan tadi bersifat palindrom atau tidak. Dengan cara memanggil
class “palchekker”.
print("kata '" + masukan +
"' adalah kata palindrom")//digunakan untuk mencetak kata yang menuliskan jika kata yang di masukkan
bernilai palindrom.
else :
//code yang akan aktif jika kata tidak bernilai palindrom atau kondisi “if”
diatas bernilai “false”
print("kata '" + masukan +
"' bukan kata palindrom")//digunakan untuk mencetak kata yang menuliskan jika kata yang di masukkan bukan
kata palindrom.
Nah itu dia teman bahasan yang saya rasa cukup lengkap mengenai Deque dalam bahasa python. Semoga apa yang sudah saya jelaskan tadi dapat kalian pahami dengan baik dan tentunya dapat kalian manfaatkan dan praktekkan dalam pembuatan program kalian..
Sekian dulu ya teman – teman... jangan lupa berkomentar di bawah postingan ini ya... jika kalian memiliki pertanyaa, atau ada penjelasan yang kurang jelas, kalian bisa menanyakannya di kolom komentar juga... atau bisa menghubungi saya di laman kontak saya. Oya.. jangan lupa di share ke teman sosial media kalian ya teman – teman... terimakasih sudah berkunjung.. dan terimakasih sudah membaca postingan saya kali ini.. mohon maaf dan mohon dimaklumi ya.. apabila ada kukurangan dan ada kata yang tidak berkenan,, sekali lagi terimakasi..
Wassalamualaikum wr. wb.
ConversionConversion EmoticonEmoticon