Penjelasan lengkap Deque dalam python


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.
Previous
Next Post »
Thanks for your comment