STRUKTUR DATA (PYTHON)
“PENDAHULUAN”
[@SUARGA| [Pertemuan 01]
OutLine
SILABUS DAN PENILAIAN
KONSEP STRUKTUR DATA
ABSTRACT DATA TYPE (ADT)
MENGENAL PYTHON
DASAR-DASAR PYTHON
10-9-2022 Struktur Data @SUARGA 2
SILABUS
1. Pendahuluan & Mengenal Python
2. Elemen Dasar Bahasa Python
11. Struktur Untaian Ganda
3. Instruksi Utama Bahasa Python
(Doubly Linked List)
4. Struktur Larik (Array)
12. Struktur Antrian Prioritas
5. Struktur data internal Python
13. Struktur Pohon Biner (Binary
6. Struktur Tumpukan (Stack)
Tree)
7. Struktur Antrian (Queue)
14. Struktur Pohon Seimbang
8. UTS
(Balanced Tree)
9. Struktur Untaian Tunggal (SIngly
15. Struktur Tabel Hash (Hashed
Linked List)
Table)
10. Struktur Untaian Melingkar
16. UAS
(Circular Linked List)
10-9-2022 Struktur Data @SUARGA 3
Penilaian
1. Kehadiran: harus hadir minimal 12 kali ==> 10%
2. Memasukkan Tugas-tugas : 20%
3. Ikut MID TEST (UTS): Maksimum 35%
4. Ikut FINAL TEST (UAS) : Maksimum 35%
10-9-2022 Struktur Data @SUARGA 4
NILAI AKHIR
A : 86 - 100
A- : 81 - 85
B+ : 76 - 80
B : 71 - 75
B- : 66 - 70
C+ : 61 - 65
C : 51 - 60
D : 41 - 50
E : 0 - 40
10-9-2022 Struktur Data @SUARGA 5
Konsep Struktur Data
• Struktur data dapat didefinisikan sebagai kelas/objek, atau
abstraksi tipe data (ADT) yang memiliki tiga unsur dasar,
yaitu:
• Seperangkat fungsi/method: dimana setiap fungsi
melakukan suatu jenis operasi terhadap nilai yang tersimpan
didalam struktur data.
• Struktur Penyimpanan (Storage) : representasi suatu
struktur abstrak memory yang dipakai menyimpan data /
nilai yang dimasukkan, sehingga membentuk suatu
organisasi data.
• Algoritma : dalam setiap fungsi terdapat algoritma yang
menjelaskan langkah yang harus dilakukan terhadap nilai
data dalam struktur penyimpanan-nya sehingga diperoleh
hasil sesuai dengan tujuan dari fungsi tersebut.
10-9-2022 Struktur Data, @SUARGA 6
Jenis Struktur Data
1. Built-in Python
Data Structure:
List
Tuple
Dictionary
Set
10-9-2022 Struktur Data @SUARGA 7
[Link]-defined Data Structures
• Larik (Array)
• Tumpukan (Stack)
• Antrian (Queue)
• Untaian (Linked List)
• Pohon (Tree)
• Tabel Hash
• Heap
• Graph
10-9-2022 Struktur Data, @SUARGA 8
Strong & Weakness
Struktur Data Kekuatan Kelemahan
Larik / Array Mudah menyisip data, Bila indeks tidak
akses data cepat bila diketahui maka
indeks diketahui. mencari,
Menyimpan data menghapus data
sesuai indeks menjadi lambat.
Ukuran (size) tetap
Stack (Tumpukan) Akses LIFO, cepat Akses LIFO cepat,
bila data berada yang berada diposisi
diposisi top
top
10-9-2022 Struktur Data @SUARGA 9
Antrian (Queue) Akses FIFO cepat, yang Akses item yang lain
berada di posisi depan lambat
Untaian (Linked List) Insert cepat, delete Lambat dalam pencarian
cepat, di posisi head item yang berada di-
atau tail posisi lain
Pohon Biner (Binary Mencari data cepat, Algoritma delete rumit,
insert cepat, delete bergantung pada posisi
Tree) cepat item
Pohon Seimbang Search, Insert, Delete Delete item rumit,
cepat struktur AVL harus
(AVL Tree) dipertahankan.
Hash Table Sangat cepat akses bila Lambat dalam delete,
kunci diketahui, insert akses lambat bila kunci
cepat tidak diketahui,
pemakaian memory
kurang efisien
Heap Insert, delete bisa cepat Akses lambat pada item
lain
Graph Model dari situasi nyata Algoritma bisa lambat
dan rumit
10-9-2022 Struktur Data @SUARGA 10
Jenis Algoritma
• Struktur data pada umumnya memerlukan
algoritma/program untuk:
1. menciptakan (init) struktur data
2. menyisipkan (insert/add/append) data baru
3. mencari (search) data yang ada
4. menghitung elemen-nya (len atau size)
5. menghapus (delete/remove) data
6. mengurutkan (sort) data, atau order data
10-9-2022 Struktur Data, @SUARGA 11
ADT (Abstract Data Type)
• Pada ilmu struktur data juga telah ditemukan cara
untuk memecahkan hal struktur data yang sulit,
yaitu dengan abstraksi, sehingga dikenal istilah
Abstract Data Type (ADT), dimana dilakukan
pemisahan antara properti data dan implemetasi
data.
• Pengguna (users) struktur data hanya memerlukan
properti data tanpa harus mengetahui bagaimana
di-implementasi-kan.
• Programmer yang menyusun ADT ini yang akan
pusing memikirkan bagaimana implementasi-nya.
10-9-2022 Struktur Data, @SUARGA 12
ADT memisahkan sifat objek dengan implementasi-nya
10-9-2022 Struktur Data, @SUARGA 13
ADT
• Kategori dari sifat/properti atau fungsi dalam ADT
dapat di-kategorikan menjadi empat bagian/macam
yaitu:
• constructor : menciptakan dan inisialisasi objek
baru
• accessor : melihat isi atau akses data/objek tanpa
mengubahnya
• mutator : mengubah isi atau nilai data field dari
objek ADT
• iterator : mengolah elemen data secara ber-urutan
secara individu
10-9-2022 Struktur Data, @SUARGA 14
Contoh ADT
• Date adalah kelas/objek yang mewakili suatu hari
dalam kalendar Gregorian, dimana hari pertama
dianggap terjadi pada 24-Nopember-4713 SM
(sebelum masehi). Properti dari Date (ADT) adalah
sebagai berikut:
• Date (month, day, year) : menciptakan satu objek date
yang sah menurut penanggalan Gregorian, dimana
tanggal sebelum masehi dinyatakan dengan memiliki
komponen year negatif
• day() : fungsi untuk menyatakan angka Gregorian
untuk hari tersebut
• month() : fungsi untuk menyatakan angka Gregorian
untuk bulan
10-9-2022 Struktur Data, @SUARGA 15
• year() : fungsi untuk menyatakan angka Gregorian untuk
tahun
• monthName() : menyatakan nama dari bulan kalendar
Gregorian
• dayOfWeek() : menyatakan kode nama hari, 0 = senin – 6 =
minggu
• numDays(otherDate) : menyatakan jumlah hari antara hari
ini dengan tangga otherDate
• isLeafYear() : memeriksa apakah tahun ini kabisat atau
bukan, True bila kabisat, False bila bukan kabisat.
• advanceBy(days) : memajukan tanggal sejumlah hari days
yang diberikan
• comparable(otherDate) : membandingkan hari ini dengan
otherDate
• toString() : mengubah tanggal menjadi format string
bulan/hari/tahun
10-9-2022 Struktur Data, @SUARGA 16
• Ketika user/pengguna ADT mau menggunakan
method atau fungsi, maka yang pertama adalah
melakukan inisialisasi (constructor), misalnya:
• tanggal = Date(1, 31, 2014)
• kemudian fungsi/method dari ADT (accessor) dapat
digunakan sebagai berikut:
• [Link]() # memberikan nama bulan, misal Januari
• [Link]() # memberikan kode hari, misal Jum’at
• [Link]() # memberikan tahun, misal 2014
• dan sebagai-nya. Perhatikan bagimana fungsi dari
suatu objek digunakan, yaitu fungsi dinyatakan
setelah objek tanggal yang di-ikuti titik.
10-9-2022 Struktur Data, @SUARGA 17
Mengenal Python
• Python adalah bahasa program yang di-klaim oleh
penciptanya sebagai bahasa yang “simple” dan
“powerful”, mudah dipelajari, memiliki struktur data
yang efisien, serta berorientasi objek.
• Pencipta Python adalah Guido van Rossum yang
menamakan bahasa ini berdasarkan nama suatu film
serial TV berjudul “Monty Python’s Flying Circus”,
• jadi nama ini bukan dari “Ular Python”, bahkan Guido
kabarnya tidak menyukai ular python. Namun simbol
yang digunakan oleh para pengguna python adalah
simbol “ular”.
10-9-2022 Struktur Data, @SUARGA 18
Guido van Rossum (born 31 January 1956) is a Dutch computer
programmer who is best known as the author of the Python
programming language. In the Python community, Van Rossum is
known as a "Benevolent Dictator For Life" (BDFL), meaning that he
continues to oversee the Python development process, making
decisions where necessary. He was employed by Google from 2005
until December 7th 2012, where he spent half his time developing the
Python language. In January 2013, Van Rossum started working for
Dropbox. [Wikipedia]
Simbol Python ([Link])
10-9-2022 Struktur Data, @SUARGA 19
Menurut Guido, program yang ditulis dalam Python
lebih singkat dari program C/C++ maupun Java
antara lain karena:
• Python memiliki tipe data tingkat tinggi sehingga
suatu operasi yang rumit dapat dilaksanakan
dalam satu statement saja;
• Tanda indicator group seperti begin/end pada
Pascal, atau { } pada C++ dan Java, tidak perlu
pada Python, digantikan hanya oleh “indentation”;
• Variable atau argument tidak perlu di-definisikan
terlebih dahulu sebelum digunakan dengan kata
lain tidak perlu ada deklarasi variabel;
10-9-2022 Struktur Data, @SUARGA 20
• Secara singkat Python memiliki kelebihan berikut
ini:
– Simple, tidak rumit, cukup sederhana
– Easy to learn, mudah dipelajari
– Free and Open Source, gratis bersifat open source
– High-level language, bahasa tingkat tinggi
– Portable / multi-platform, mudah di-install di berbagai
platform
– Interpreted, dapat di-kompilasi dan juga di-interpret
– Object-oriented, berorientasi objek
– Extensible (bisa memanggil prosedur yang ditulis
dalam C/C++
– Embeddable,dapat di-tambahkan ke perangkat lain
– Extensive Libraries, pustaka fungsi-nya sangat besar
10-9-2022 Struktur Data, @SUARGA 21
Instalasi Python
• Instalasi Python dapat di-download dari situs:
[Link] yang penting diperhatikan
adalah sistem operasi dari komputer dimana Python
akan di-install. Karena file installer berbeda untuk
sistem operasi Windows, OS X, atau versi Linux yang
digunakan.
• Hal selanjutnya adalah versi dari Python, karena versi 2
tidak sesuai dengan versi 3 maka anda harus memilih
dengan tepat versi yang akan digunakan, tentu saja
versi terbaru biasanya lebih lengkap dari versi lama.
File installer untuk komputer dengan sistem operasi
Windows, yang digunakan dalam kuliah ini, nama file-
nya adalah: [Link].
10-9-2022 Struktur Data, @SUARGA 22
10-9-2022 Struktur Data, @SUARGA 23
• Setelah proses download dari file installer selesai,
maka file tersebut bisa langsung di-click, anda
hanya perlu meng-klik tombol [Next], hingga
muncul-nya tombol [Finish], ketika tombol Finish
di-click berarti instalasi Python telah selesai.
Setelah selesai maka sistem Python bisa dicoba
digunakan.
• Pada OS Windows, klik tombol Start, kemudian klik
“All Programs” dan cari folder “Python3.10”, ketika
diklik, muncul pilihan, pilihlah IDLE(Python GUI),
klik, dan muncul window yang disebut “Python
Shell”, tempat dimana instruksi bisa dimasukkan.
Python Shell adalah “interpreter” dari Pyhon,
instruksi akan langsung di-laksanakan ketika
tombol [Enter] ditekan setelah instruksi.
10-9-2022 Struktur Data, @SUARGA 24
10-9-2022 Struktur Data, @SUARGA 25
Python Shell, ketik instruksi setelah >>> …
10-9-2022 Struktur Data, @SUARGA 26
Editor program di-depan Python Shell, masih kosong
editor program python, didepan shell
10-9-2022 Struktur Data, @SUARGA 27
Editor berisi program “[Link]”
10-9-2022 Struktur Data, @SUARGA 28
RUN ada Error
RUN program
berhasil
10-9-2022 Struktur Data, @SUARGA 29
Beberapa IDE/Editor Python
• Selain Python IDLE, tersedia beberapa editor
program Python yang lain, misalnya:
[Link]
[Link]
[Link] Text 3
[Link]
[Link]
[Link] Studio Code
[Link]
[Link] Editor: Programiz
10-9-2022 Struktur Data @SUARGA 30
Thonny
10-9-2022 Struktur Data @SUARGA 31
PyScripter
10-9-2022 Struktur Data @SUARGA 32
Sublime Text 3
10-9-2022 Struktur Data @SUARGA 33
Atom
10-9-2022 Struktur Data @SUARGA 34
PyCharm
10-9-2022 Struktur Data @SUARGA 35
Visual Studio Code
10-9-2022 Struktur Data @SUARGA 36
Spyder
10-9-2022 Struktur Data-1 @SUARGA 37
Online Editor : [Link]
10-9-2022 Struktur Data @SUARGA 38
Online Editor: [Link]
10-9-2022 Struktur Data @SUARGA 39
Struktur Umum Program Python
#komentar tentang program #program utama
import pustaka fungsi def main()
... instruksi utama ...
#pemberian nilai awal
.. .. .. #menjalankan program
# definisi fungsi main()
def fungsi-1:
.. .. instruksi .. ..
def fungsi-2:
.. .. instruksi .. ..
...
10-9-2022 Struktur Data @SUARGA 40
Contoh program python
10-9-2022 Struktur Data-1 @SUARGA 41
Beberapa Pustaka Python
string pustaka untuk proses text os sistem operasi / path
textwrap format text paragraph glob filename pattern matching
re regular expression shutil high level file operation
collections container data types mmap memory map files
array pustaka untuk larik codecs string encoding and decoding
heapq heap sort StringIO text buffers with a file API
struct binary data structures filecmp compare files
time jam, waktu pickle object serialization
datetime penanggalan shelve persistent storage of objects
decimal fixed and floating point anydbm database
fractions rational numbers sqlite3 relational database
random bilangan acak csv comma separated value files
math fungsi matematika gzip GNU zip files
tarfile Tar archive files
zipfile ZIP archive access
hashlib kriptografi
10-9-2022 Struktur Data @SUARGA 42
Basic Python, @Suarga
06/03/2024
43
Cara meng-edit program
1)Aktifkan IDLE
2)click menu : File / New File
3)Window “editor” akan terbuka
4)Ketik program pada editor tersebut
5)Setelah selesai, click menu editor; File / Save,
atau File / SaveAs
6)Ketik nama file program-nya pada jendela
folder (boleh juga cari folder dulu dimana file
akan direkam, kemudian beri nama)
7)click tombol [ Save ]
Basic Python, @Suarga
06/03/2024
44
IDLE aktif
File / New File
Basic Python, @Suarga
06/03/2024
45
Editor Program
File / Save As
Basic Python, @Suarga
06/03/2024
46
Folder untuk merekam file program
Basic Python, @Suarga
06/03/2024
47
Me- RUN program
⚫ Untuk program yang baru saja di-save, langsung
click menu: RUN pada jendela editor
⚫ Untuk program yang sudah direkam pada waktu
sebelumnnya, maka baca (Open) File program
dari folder dimana program di save.
− File / Open
− pilih / click nama program pada folder yang terbuka
− click tombol [Open]
− Program akan di-muat ke window editor
− click menu RUN pada window editor