Dosen Pengampu:
I. TUJUAN
1. Memahami teori tentang iterasi dan rekursi pada bahasa pemrograman python.
2. Mengetahui penggunaan iterasi dan rekursi pada bahasa pemrograman python.
3. Membuat iterasi dan rekursi sederhana menggunakan bahasa pemrograman python.
4. Menggunakan iterasi dan/atau rekursi untuk menyelesaikan suatu masalah.
Sedangkan pernyataan continue berfungsi menghentikan iterasi saat ini dan melanjutkan
iterasi yang berikutnya. Gambar 4 mencontohkan penggunaan pernyataan continue yang
akan melanjutkan ke iterasi berikutnya jika i adalah 3.
Jenis iterasi yang kedua adalah for loop. Iterasi (perulangan) for digunakan untuk
mengulangi deret (list, tupel, dictionary, atau string). Dengan for loop kita dapat
mengeksekusi satu set pernyataan item dalam list, tuple, string dll. For loop dasar
ditunjukan pada diagram alir Gambar 6. For loop ditentukan oleh sebuah item, apabila
belum mencapai batas item maka jalankan program pada body of for. Apabila batas item
sudah terpenuhi maka keluar dari for loop. Gambar 7 merupakan contoh for loop untuk
mencetak setiap nama buah dalam list:
Gambar 7. Contoh For Loop untuk Mencetak Nama Buah pada List
For loop dapat pula tidak memerlukan variabel indeks yang diatur sebelumnya.
Bahkan string adalah objek yang dapat diubah dikarenakan string berisi deret karakter.
Contoh for loop untuk mencetak huruf-huruf dalam kata "apel" ditunjukan pada Gambar
8.
Dengan pernyataan break kita dapat menghentikan loop sebelum melewati batas item.
Gambar 9 merupakan contoh penggunaan break untuk keluar dari loop ketika x adalah
"pisang":
Pernyatan selanjutnya pada for loop adalah continue. Pernyataan ini digunakan untuk
menghentikan iterasi loop saat ini, dan melanjutkan dengan yang berikutnya. Contoh
penggunaan continue ditunjukan pada Gambar 10 menjadikan string pisang tidak
tercetak.
Pada for loop terdapat pula fungsi range () yang digunakan untuk mengulang baris
program beberapa kali. Fungsi range() mengembalikan urutan angka, mulai dari 0 secara
default, dan bertambah 1 (secara default), dan berakhir pada angka yang ditentukan.
Contoh penggunakan fungsi range() ditampilkan pada Gambar 11.
Perhatikan bahwa range(5) bukanlah nilai 0 hingga 5, tetapi nilai 0 hingga 4. Fungsi
range() default ke 0 sebagai nilai awal, namun dimungkinkan untuk menentukan nilai
awal dengan menambahkan parameter: range(2, 5), yang berarti nilai dari 2 hingga 5
(tetapi tidak termasuk 5). Contoh penggunakan parameter ini dapat dilihat pada Gambar
12.
Gambar 12. Fungsi Range () dengan Peningkatan Sebesar 3 Pada For Loop
Pada for loop juga terdapat perintah Else yang digunakan untuk menentukan blok kode
yang akan dieksekusi ketika loop selesai. Contoh penggunaan perintah else ditunjukan
pada Gambar 13. Perogram akan mencetak semua angka dari 0 hingga 5 kemudian cetak
pesan saat loop telah berakhir.
Selanjutnya adalah Nested loop. Istilah nested digunakan karena terdapat loop yang
“bersarang” pada loop atau adanya loop di dalam loop. "Inner Loop" akan dieksekusi satu
kali untuk setiap iterasi dari "outer loop". Contoh nested loop digunakan cetak setiap
buah untuk setiap sifatnya seperti Gambar 14.
Gambar 14. Nested Loop pada For Loop
2.2. Rekursi
Rekursi adalah teknik pemecahan masalah dengan cara sebuah masalah dipecah
menjadi versi identik yang paling kecil dirinya sendiri sehingga memiliki solusi yang
jelas. Gambar 15 merupakan ilustrasi dari rekursi. Versi identik yang paling kecil pada
rekursi dinamakan Base case. Base case adalah kasus khusus yang penyelesaiannya
diketahui.
Berikut adalah contoh sederhana dari rekursi yaitu penjumlahan list angka [2, 3, 6, 7, 9].
Pada bidang matematika, penjumlahan adalah fungsi yang didefinisikan untuk dua
parameter, sepasang angka. Sehingga list tersebut dapat diselesaikan dengan ekspresi
tanda kurung penuh:
((((2 + 3) + 6) + 7) + 9)
(2 + (3 + (6 + (7 + 9))))
Perhatikan bahwa himpunan kurung terdalam, (7 + 9) dapat diselesaikan secara langsung.
Urutan penyederhanaan berikut dapat digunakan untuk menghitung jumlah keseluruhan:
Total = (2 + (3 + (6 + 16)))
Total = (2 + (3 + 22))
Total = (2 + 25)
Total = 27
Proses perhitungan tersebut selanjutnya diubah menjadi baris program seperti Gambar 16.
Terdapat dua hal utama pada program tersebut untuk memahami rekursi. Pertama,
program pada baris 2 digunakan untuk untuk melihat apakah list panjangnya satu elemen.
Pemeriksaan ini sangat penting dan merupakan baris program yang digunakan untuk
keluar dari fungsi tersebut. Kedua, pada baris 5 fungsi memanggil dirinya sendiri. Hal
inilah yang menjadikan fungsi tersebut merupakan algoritma list_sum rekursif. Fungsi
rekursif adalah fungsi yang memanggil dirinya sendiri.
Sum(3, 6, 7, 9) 3+
Sum(6, 7, 9) 6+
Sum(7, 9) 7+
Sum(9) 9
III. PERCOBAAN
Pada percobaan ini anda akan diberikan beberapa program yang harus anda ketik kembali.
Anda diharuskan memodifikasi program berdasarkan perintah pada soal.
Langkah-langkah percobaan
a. Setiap soal latihan terdiri dari listing program dan output dari program tersebut.
b. Ketik kembali listing program yang terdapat dalam modul ke dalam google collabs.
c. Klik save and run untuk menjalankan program tersebut
d. Jika menemui error pada program anda, perbaiki listing program hingga dihasilkan
output yang sesuai dengan yang diinginkan soal.
e. Jawab pertanyaan berdasarkan program yang sudah anda buat.
Percobaan_1
Percobaan_2
Percobaan_3
Modul 4: Searching
Dosen Pengampu:
IV. TUJUAN
5. Memahami penggunaan pemrograman python dalam algoritma searching.
6. Mengetahui keunggulan pemrograman python pada algoritma searching.
7. Membuat algoritma searching menggunakan bahasa pemrograman python.
8. Menggunakan algoritma searching untuk menyelesaikan suatu masalah.
V. DASAR TEORI
2.3. Searching Algorithm
2.2.1. Sequential Search
Pada bahasa pemrograman python, item (elemen) dari list memiliki posisi relatif
yang disebut sebagai indeks. Karena nilai indeks ini urut dimulai dari 0, kita dapat
melihatnya secara berurutan. Proses ini memunculkan teknik pencarian yang
sederhana yaitu Sequential Search (pencarian sekuensial). Gambar 1 menunjukkan
cara kerja sequential search. Algortirma pencarian ini dimulai dari item pertama dalam
list kemudian berpindah item berikutnya sampai menemukan item yang dicari.
Sequential search berakhir apabila item pada list telah habis dan artinya item yang
dicari tidak ditemukan. Penerapan sequential search menggunakan bahasa
pemrograman python ditunjukan pada Gambar 2. Sedangkan Gambar 3 adalah
sequential search pada list yang telah urut, pencarian akan berhenti apabila item telah
ditemukan.
VI. PERCOBAAN
Pada percobaan ini anda akan diberikan beberapa program yang harus anda ketik
kembali. Kemudian jawab pertanyaan pada yang terdapat pada setiap percobaan.
Langkah-langkah percobaan:
f. Setiap soal latihan terdiri dari listing program dan output dari program tersebut.
g. Ketik kembali listing program yang terdapat dalam modul ke dalam google
collabs.
h. Klik save and run untuk menjalankan program tersebut
i. Jika menemui error pada program anda, perbaiki listing program hingga
dihasilkan output yang sesuai dengan yang diinginkan soal
j. Jawab pertanyaan berdaasarkan program yang sudah anda buat.
Percobaan_1
Percobaan_2
PENGANTAR TEKNIK
TELEKOMUNIKASI 3
Dosen Pengampu:
STURKTUR DATA
I. TUJUAN
1. Memahami penggunaan pemrograman python dalam struktur data.
2. Mengetahui keunggulan pemrograman python pada pengelolaan struktur data.
3. Membuat struktur data sederhana menggunakan bahasa pemrograman python.
4. Menggunakan struktur data untuk menyelesaikan suatu masalah.
2.2. Stack
Stack (dalam bahasa Indonesia: Tumpukan) adalah struktur data linier dengan
penambahan item baru dan penghapusan item yang ada selalu terjadi di ujung yang sama,
disebut sebagai bagian atas stack. Penambahan dan penghapusan item dilakukan pada
bagian atas stack. Sifat ini biasa disebut Last-in, first-out (LIFO). Item terakhir yang
ditempatkan pada stack akan menjadi item pertama yang dibuang. Gambar 1. Merupakan
contoh analogi dalam keseharian adalah tumpukan piring. Pada tumpukan piring,
penambahan piring dan pengambilan piring selalu dilakukan dibagian atas tumpukan.
Gambar 2 adalah proses menambahkan item pada struktur data stack dengan
menambahkan hanya ke atas Stack dan menghapus hanya dari atas Stack. Item terakhir
yang ditempatkan pada stack akan menjadi item pertama yang dihapus.
1. Stack () : membuat stack baru yang kosong. Operasi ini tidak membutuhkan
parameter dan akan mengembalikan sebuah stack kosong.
2. push (item) : menambahkan item baru ke atas stack. Operasi ini membutuhkan
masukan berupa item dan tidak mengembalikan apa-apa. Selain itu
stack akan berubah dengan bertambahnya sebuah item baru pada
posisi paling atas.
3. pop () : menghapus item teratas dari stack. Operasi ini tidak membutuhkan
parameter dan stack akan berubah dengan berkurangyanya sebuah
item baru pada posisi paling atas.
4. peek () : mengembalikan item teratas dari stack tetapi tidak menghapusnya.
Operasi ini tidak membutuhkan parameter dan stack tidak diubah.
5. is_empty () : menguji untuk melihat apakah stack kosong. Operasi ini tidak
membutuhkan parameter dan stack tidak diubah. Operasi is_empty ()
mengembalikan nilai Boolean. Apabila stack kosong akan
mengembalikan nilai true dan mengembalikan nilai false apabila
stack berisi item.
6. size () : mengembalikan jumlah item yang terdapat pada stack. Operasi ini
tidak membutuhkan parameter dan stack tidak diubah.
2.3. Queue
Queue (dalam bahasa Indonesia: Antrian) adalah struktur data dengan penambahan
item baru terjadi di satu ujung (belakang/akhir queue) dan penghapusan item selalu
terjadi di ujung lain (depan/awal queue). Sifat queue ini disebut First-in, First-Out
(FIFO): Item pertama yang dimasukkan ke dalam queue adalah item pertama yang keluar.
Operasi yang dapat dilakukan pada struktur data queue adalah:
1. Queue () : membuat antrian baru yang kosong. Operasi ini tidak membutuhkan
parameter dan akan mengembalikan struktur data queue kosong.
2. enqueue (item) : menambahkan item baru ke belakang queue. Operasi enqueue
() membutuhkan masukan berupa item dan tidak mengembalikan
apa- apa. Selain itu queue akan berubah dengan bertambahnya
sebuah item baru pada posisi paling belakang/akhir.
3. dequeue () : menghapus item depan dari queue. Operasi ini tidak membutuhkan
parameter. Queue akan berubah dengan berkurangnya sebuah item
baru pada posisi paling depan/awal.
4. peek () : mengembalikan item paling awal dari queue tetapi tidak
menghapusnya. Operasi ini tidak membutuhkan parameter dan queue
tidak diubah.
5. is_empty () : menguji untuk melihat apakah queue kosong. Operasi ini tidak
membutuhkan parameter dan queue tidak diubah. Operasi is_empty
() mengembalikan nilai Boolean. Apabila queue kosong akan
mengembalikan nilai true dan mengembalikan nilai false apabila
queue berisi item.
6. size () : mengembalikan jumlah item yang terdapat pada queue. Operasi ini
tidak membutuhkan parameter dan queue tidak diubah.
2.5. List
List adalah kumpulan item di mana setiap item memiliki posisi relatif terhadap
item
yang lain. Kita dapat menganggap list tersebut memiliki item pertama, item kedua,
item ketiga, dan seterusnya. Kita juga bisa merujuk ke awal sebuah list (item pertama)
dan akhir list (item terakhir). Berdasarkan urut tidaknya item, list dibagi menjadi dua
yaitu ordered (berurutan) dan unordered (tidak berurutan). Ordered artinya item
disimpan dengan cara yang diurutkan sedangkan unordered item disimpan dengan cara
yang tidak diurutkan. Gambar 4 merupakan contoh ordered dan unordered list.
(a)
(b)
(a)
(b)
Item dapat disisipkan dan dihapus dari linked list tanpa mengubah data. Gambar 6
menunjukan proses penyisipan dan penghapusan sebuah item pada linked list.
1. List () : Membuat list baru yang kosong. Operasi ini tidak membutuhkan
parameter dan akan mengembalikan struktur data List kosong.
2. add(item) : Menambahkan item baru ke list. Operasi add(item)
membutuhkan masukan berupa item dan tidak mengembalikan
apa-apa. Selain itu list akan berubah dengan bertambahnya
sebuah item baru.
3. remove(item) : Menghapus item dari list. Operasi remove(item) membutuhkan
item dan mengubah list dengan menghapus sebuah item.
4. search(item) : Mencari sebuah item pada list. Operasi search(item)
membutuhkan item. Operasi ini akan mengembalikan nilai
boolean dengan nilai true apabila item terdapat dalam list dan
false apabila item tidak terdapat pada list.
5. is_empty () : menguji untuk melihat apakah list kosong. Operasi ini tidak
membutuhkan parameter dan list tidak diubah. Operasi is_empty
() mengembalikan nilai Boolean. Apabila list kosong akan
mengembalikan nilai true dan mengembalikan nilai false apabila
list berisi item.
6. size () : mengembalikan jumlah item yang terdapat pada list. Operasi ini
tidak membutuhkan parameter dan list tidak diubah. Operasi ini
mengembalikan nilai integer jumlah data pada list.
III. PERCOBAAN
Pada percobaan ini anda akan diberikan beberapa program yang harus anda ketik kembali.
Anda diharuskan memodifikasi program berdasarkan perintah pada soal.
Langkah-langkah percobaan
a. Setiap soal percobaa terdiri dari listing program dan output dari program tersebut.
b. Ketik kembali listing program yang terdapat dalam modul ke dalam google
collabs.
c. Klik save and run untuk menjalankan program tersebut
d. Jika menemui error pada program anda, perbaiki listing program hingga dihasilkan
output yang sesuai dengan yang diinginkan soal.
e. Jawab pertanyaan berdasarkan program yang sudah anda buat.
Percobaan_1
Percobaan_2
Percobaan_3
Percobaan_4
Percobaan_5
class Node:
def init (self, init_data):
self.data = init_data
self.next = None
def get_data(self):
return self.data
def get_next(self):
return self.next
def set_data(self, new_data):
self.data = new_data
def set_next(self, new_next):
self.next = new_next
class UnorderedList:
def init (self):
self.head = None
def is_empty(self):
return self.head == None
def add(self, item): temp =
Node(item)
temp.set_next(self.head)
self.head = temp
def size(self):
current = self.head
count = 0
while current != None:
count = count + 1
current = current.get_next()
return count
def search(self,item):
current = self.head
found = False
while current != None and not found:
if current.get_data() == item:
found = True
else:
current = current.get_next()
return found
def remove(self, item):
current = self.head
previous = None
found = False
while not found:
if current.get_data() == item:
found = True
else:
previous = current
current = current.get_next()
if previous == None:
self.head = current.get_next()
else:
previous.set_next(current.get_next())
mylist = (. . .) ()
mylist.add(42)
mylist.(. . .)(74)
mylist.add(17)
mylist.add(33)
mylist.(. . .) (92)
mylist.add(54)
print(mylist.(. . .) (33))
print(mylist.(. . .) ())
mylist.(. . .) (17)
mylist.remove(74)
print(mylist.search(74))
PENGANTAR TEKNIK
TELEKOMUNIKASI 3
Dosen Pengampu:
I. TUJUAN
1. Mengetahui peralatan yang dibutuhkan dalam pemrograman python
2. Memahami penggunaan pemrograman python dalam listing program
3. Mengetahui keunggulan pemrograman python pada suatu program
4. Membuat program sederhana menggunakan bahasa pemrograman python
Save
dalam bahasa pemrograman python. Berikut adalah tipe data dari bahasa
pemrograman Python :
Untuk mulai membuat variabel di Python caranya sangat mudah, Anda cukup
menuliskan variabel lalu mengisinya dengan suatu nilai dengan cara
menambahkan tanda sama dengan = diikuti dengan nilai yang ingin dimasukan.
a. Fungsi blok dimulai dengan def kata kunci diikuti oleh nama fungsi dan tanda
kurung (()).
b. Setiap parameter masukan atau argumen harus ditempatkan di dalam tanda
kurung ini. Anda juga dapat menentukan parameter di dalam tanda kurung ini.
c. Pernyataan pertama dari sebuah fungsi dapat berupa pernyataan opsional -
string dokumentasi fungsi atau docstring.
d. Blok kode dalam setiap fungsi dimulai dengan titik dua (:) dan indentasi.
e. Pernyataan kembali [ekspresi] keluar dari sebuah fungsi, secara opsional
menyampaikan kembali ekspresi ke pemanggil. Pernyataan pengembalian
tanpa argumen sama dengan return None.
Untuk memanggil suatu fungsi, gunakan nama fungsi diikuti dengan tanda kurung:
Sekarang kita dapat menggunakan modul yang baru saja kita buat, dengan
menggunakan pernyataan import. Saat menggunakan fungsi dari modul, gunakan
sintaks: nama_modul.nama_fungsi.
Modul juga dapat hanya diimport sebagian, dengan menggunakan sintak from.
Impor hanya data dictionary person1 dari modul:
Modul juga dapat membuat nama aliasnya dengan sintak “as”. Berikut adalah
contohnya.
Semua kelas memiliki fungsi yang disebut init (), yang selalu
dijalankan ketika kelas dipanggil. Parameter self adalah referensi ke kelas saat ini,
dan digunakan untuk mengakses variabel milik kelas. Objek juga dapat berisi
metode. Metode dalam objek adalah fungsi yang dimiliki objek. Berikut ini contoh
penggunaan kelas dan objek.
komputer dalam urutan dari kiri ke kanan. Program-program yang akan dibahas juga
dijalankan
secara berurutan. Dimulai dari baris pertama dan kemudian dilanjutkan ke baris
berikutnya. Struktur berurutan ini dapat direpresentasikan dengan pseudocode,
flowchart, dan program Python.
1. Pseudocode
Pseudocode adalah bahasa yang sangat mirip dengan bahasa Inggris yang
memungkinkan kita untuk merepresentasikan program secara ringkas. Satu-
satunya hal yang dibutuhkan adalah pernyataan untuk menunjukkan letak
dimulainya program dan akhir dari program. Titik awal dari Pseudocode
menggunakan kata Start dan Stop untuk menunjukkan titik akhir. Setiap program
akan berisi pernyataan untuk mencapai tujuan.
2. Flowchart
Diagram Alir (Flowchart) digunakan untuk memvisualisasikan perilaku
program. Flowchart menggunakan simbol dan bentuk untuk merepresentasikan
algoritma. Pseudocode dapat diterjemahkan menjadi flowchart dan sebaliknya.
Gambar 23 menunjukkan beberapa simbol yang digunakan dalam flowchart di
mana teks ditempatkan di dalam simbol. Simbol flowchart yang akan banyak kita
gunakan diantaranya anak panah (flow direction symbol), Terminator, Input-
output, dan simbol pemrosesan (Processing Symbol).
Gambar 18. Pseudocode untuk menghitung dan Cetak Rata-Rata dari Tiga Angka
Gambar 19. Flowchart untuk menghitung dan Cetak Rata-Rata dari Tiga Angka
Gambar 20. Program Python untuk menghitung dan Cetak Rata-Rata dari Tiga
Angka
Institut Teknologi Telkom Purwokerto
SEARCHING
III. PERCOBAAN
Pada percobaan ini anda akan diberikan beberapa program yang harus anda ketik kembali.
Anda akan menemui error pada program yang ada kerjakan. Berdasarkan dasar teori yang
sudah anda pelajari selesaikan error yang ada untuk mendapatkan output yang sesuai.
Langkah-langkah percobaan.
a. Setiap soal latihan terdiri dari listing program dan output dari program tersebut.
b. Ketik kembali listing program yang terdapat dalam modul ke dalam google
collabs.
c. Klik save and run untuk menjalankan program tersebut
d. Jika menemui error pada program anda, perbaiki listing program hingga dihasilkan
output yang sesuai dengan yang diinginkan soal
e. Jawab pertanyaan berdaasarkan program yang sudah anda buat.
Percobaan_1
Percobaan_2
Percobaan_3