• Tidak ada hasil yang ditemukan

Modul Praktikum Algoritma dan Pemrograman II

N/A
N/A
Protected

Academic year: 2021

Membagikan "Modul Praktikum Algoritma dan Pemrograman II"

Copied!
15
0
0

Teks penuh

(1)

Modul Praktikum

Algoritma dan Pemrograman II

Oleh:

Bambang Purnomosidi D. P., S.E., Ak., S.Kom., MMSI

(2)

MODUL I

List

I.1 Maksud dan Tujuan I.1.1 Maksud

Modul ini membahas tentang implementasi list menggunakan Python

I.1.2 Tujuan

1. Mahasiswa memahami pengertian list

2. Mahasiswa memahami dan mampu mendefinisikan list 3. Mahasiswa memahami cara mengakses list

4. Mahasiswa memahami dan mampu melakukan berbagai operasi untuk manipulasi list

I.2 Dasar Teori

Pengertian List

List adalah sekumpulan nilai yang tersimpan dalam suatu variabel dan masing-masing nilai tersebut diidentifikasikan oleh suatu indeks. Contoh:

[1, 20, “spongebob”, 4, 21] Definisi List

Untuk membuat list menggunakan Python, pemrogram bisa langsung menuliskan kumpulan nilai tersebut dalam suatu kurung siku atau bisa menggunakan range jika akan mendefinisikan nilai berupa angka yang berurutan. Contoh:

>>> myList = [2, 'nickelodeon','spongebob','56] >>> angka = range(10,25)

Mengakses List

Untuk mengakses list, pemrogram bisa menyebutkan nama variabel serta indeks dari list yang akan diakses. Contoh:

>>> myList[1] 'spongebob'

Jika indeks bernilai negatif, maka pengaksesan akan dimulai dari komponen terakhir.

Pengaksesan juga bisa dilakukan dengan menggunakan mode slice. Perhatikan contoh pada praktik.

Mengetahui Jumlah Elemen List

Untuk mengetahui jumlah elemen, bisa digunakan fungsi len(namaList)

(3)

Keanggotaan List

Untuk mengetahui apakah suatu nilai ada pada suatu list, bisa digunakan perintah berikut:

>>> 'spongebob' in myList true

Mengakses dengan Loop for variabel in namaList:

operasi dalam looping

Operasi Aritmetika Terhadap List

Pemrogram juga bisa melakukan operasi aritmatis terhadap list dengan hasil berikut ini:

● Operasi penjumlahan akan menyebabkan elemen list bertambah

● Operasi perkalian akan menyebabkan elemen list ditambah dengan elemen yang sama sejumlah angka yang digunakan untuk mengalikan.

Mengganti Elemen List

Untuk mengganti elemen list, bisa langsung digunakan operator penugasan terhadap elemen yang dikehendaki untuk diganti. Contoh:

>>> myList[0] = 'patrick' Menghapus Elemen List

Untuk menghapus elemen list, bisa digunakan perintah del elemen

I.3 Praktik

1. Ketikkan perintah berikut pada prompt Python:

>>> filmFavoritKu = ['Spongebob Squarepants', 'Dora the Explorer'] >>> print filmFavoritKu[1]

>>> print filmFavoritku[4]

Catat hasilnya dan jelaskan kesimpulan anda terhadap perintah tersebut!

2. Ketikkan perintah berikut pada prompt Python: >>> print 'Hey Arnold' in filmFavoritKu

>>> print 'Dora the Explorer' not in filmFavoritKu

Catat hasilnya dan jelaskan kesimpulan anda terhadap perintah tersebut! 3. Ketikkan perintah berikut pada prompt Python:

(4)

>>> jumlahFilmFavoritku = len(filmFavoritKu) >>> print jumlahFilmFavoritKu

>>> jumlahFilmFavoritKu = len(filmFavoritKu[0]) >>> print jumlahFilmFavoritKu

Catat hasilnya dan jelaskan mengapa perintah ke dua dan ke empat menghasilkan hasil yang berlainan!

4. Ketikkan perintah berikut dan jelaskan arti dan hasil masing-masing baris perintah:

>>> filmFavoritKu = filmFavoritKu + 'Hey Arnold' >>> filmFavoritKu = filmFavoritKu + ['Hey Arnold'] >>> del filmFavoritKu[-1]

Tambahkan 4 elemen lagi ke dalam list filmFavoritKu dengan isi bebas!

5. Ketikkan perintah-perintah slice pada list filmFavoritKu berikut ini dan kemudian jelaskan masing-masing hasilnya:

>>> filmFavoritKu[1,3] >>> filmFavoritKu[:4] >>> filmFavoritKu[3:] >>> filmFavoritKu[:]

6. Buatlah perintah untuk menampilkan isi dari semua elemen filmFavoritKu dengan menggunakan loop!

(5)

MODUL II

Method pada List

II.1 Maksud dan Tujuan II.1.1 Maksud

Modul ini membahas tentang operasi lanjutan pada list dengan menggunakan berbagai method yang tersedia pada Python.

II.1.2 Tujuan

1. Mahasiswa memahami berbagai method yang bisa digunakan pada suatu list

II.2 Dasar Teori

Python menyediakan berbagai method yang bisa digunakan terhadap suatu list. Berikut ini adalah daftar dari method tersebut:

append(x)

Menambahkan x ke dalam list

extend(L)

Menambahkan list L ke dalam list

insert(i,x)

Meyisipkan x ke dalam list, i adalah indeks sebelumnya.

remove(x)

Menghapus elemen x

pop([/])

Mengeluarkan elemen dari list. Tanda [/] menunjukkan bahwa parameter tersebut bersifat opsional. Jika ada, maka parameter untuk method ini adalah indeks yang akan dikeluarkan. Jika tidak ada, maka elemen yang dikeluarkan adalah elemen terakhir.

index(x)

Menampilkan indeks dari elemen yang bernilai x

count(x)

Menampilkan jumlah pemunculan dari x dalam list tersebut.

sort()

Mengurutkan list.

reverse()

(6)

II.3 Praktik

Dengan menggunakan list yang telah anda buat pada modul I (filmFavoritKu yang telah ditambah 4 elemen), kerjakan method di atas terhadap list tersebut! Jelaskan juga hasil yang anda peroleh.

(7)

MODUL III

Tuple

III.1 Maksud dan Tujuan III.1.1 Maksud

Modul ini membahas tentang tuple yaitu suatu struktur data di Python yang digunakan untuk menampung daftar elemen yang tidak bisa diganti (immutable).

III.1.2 Tujuan

1. Mahasiswa memahami cara mendefinisikan dan menggunakan tuple. 2. Mahasiswa memahami perbedaan tuple dengan list.

III.2 Dasar Teori

Tuple adalah struktur data di Python yang berisi berbagai elemen dan masing-masing mempunyai indeks. Berbeda dengan list, tuple mempunyai sifat tidak bisa diubah. Meskipun demikian, pemrogram tetap bisa menghapus (seluruh elemen) tuple dengan menggunakan perintah del namaTuple. Selain itu, pemrogram juga bisa mendefinisikan ulang tuple yang telah ada (berarti mengganti seluruh elemen dengan elemen baru).

Mendefinisikan Tuple

Untuk mendefinisikan tuple, ada beberapa hal yang harus diperhatikan: 1. Untuk tuple dengan lebih dari satu elemen, didefinisikan dengan cara berikut

ini:

>>> penyanyiFavoritKu = 'Inul','Siti KDI', 'Josh Grobak', 'Britney Spongebob'

>>> daftar = (1, 7, 'Hi Roy!', 'http://www.roysuryowatch.org') 2. Untuk tuple dengan satu elemen, didefinisikan dengan menyertakan koma

pada akhir elemen:

>>> penyanyiFavoritKu = 'Alice Kuper', Menambahkan Elemen Tuple

Suatu tuple hanya bisa ditambah dengan menggunakan elemen tuple lain.

Mengakses Elemen Tuple

Suatu tuple bisa diakses dengan cara yang sama dengan cara mengakses list.

III.3 Praktik

1. Ketikkan perintah berikut ini pada prompt Python kemudian jelaskan arti dan masing-masing hasilnya:

(8)

>>> penyanyiFavoritKu = 'Inul','Siti KDI', 'Josh Grobak', 'Britney Spongebob'

>>> daftar = (1, 7, 'Hi Roy!', 'http://www.roysuryowatch.org') >>> type(daftar)

>>> type(penyanyiFavoritKu) 2. Ketikkan perintah berikut:

>>> pelawakFavoritKu = 'Charlie Caplin'

>>> kuliahFavoritKu = 'Algoritma Pemrograman',

Dari perintah yang anda ketikkan tersebut, carilah tipe dari variabel di atas dengan menggunakan perintah type. Sama atau berbedakah tipenya? Mengapa?

3. Hapuslah tuple kuliahFavoritKu!

4. Buatlah suatu perintah dengan loop foor (lihat modul I tentang list) untuk menampilkan elemen dari tuple penyanyiFavoritKu!

5. Tambahkan 2 elemen tuple lagi (dengan isi bebas) ke tuple penyanyiFavoritKu!

6. Ketikkan perintah-perintah berikut ini, amati hasilnya dan jelaskan!: >>> penyanyiFavoritKu[1,3]

>>> penyanyiFavoritKu[:4] >>> penyanyiFavoritKu[3:] >>> penyanyiFavoritKu[:]

(9)

MODUL IV

Dictionary

IV.1 Maksud dan Tujuan IV.1.1 Maksud

Modul ini membahas tentang dictionary, yaitu suatu struktur data yang mirip dengan kamus, dengan indeks berupa kata.

IV.1.2 Tujuan

1. Mahasiswa memahami struktur data dictionary di Python. 2. Mahasiswa memahami dan mampu mendefinisikan dictionary. 3. Mahasiswa memahami perbedaan dictionary dengan list dan tuple. 4. Mahasiswa memahami berbagai operasi yang bisa dilakukan pada

dictionary. IV.2 Dasar Teori

Dictionary merupakan suatu tipe struktur data yang mirip dengan kamus,

pada bahasa pemrograman lain sering disebut associative array. Jika pada tipe data yang telah dibahas sebelumnya (list dan tuple), setiap elemen mempunyai indeks berupa angka integer (bulat) yang urut, maka indeks pada dictionary ini bisa berupa angka integer dan string.

Mendefinisikan Dicitionary

Dictionary didefinisikan dengan menggunakan kurung kurawal ({}) berikut

ini:

>>> myDict = {}

>>> myDict['one'] = 'satu' Mencari Jumlah Elemen

>>> len(namaDictionary)

Mengganti Elemen

>>> myDict['one'] = 'siji' Menghapus Elemen

>>> del myDict[indeks] Method pada Dictionary

keys() = menampilkan kunci

values() = menampilkan nilai elemen

(10)

has_key(kunci) = mengetahui keberadaan kunci

copy() = menyalin ke dictionary baru lain.

IV.3 Praktik

1. Buatlah dictionary yang berisi lawan kata sebanyak 10 elemen (misalnya: salah->benar, kiri->kanan, dan seterusnya)

2. Praktikkan penggunaan method pada dictionary yang telah anda buat tersebut!

3. Buatlah program untuk meminta input suatu kata kemudian mencari kata tersebut pada dictionary yang telah anda buat tersebut. Jika ditemukan, tampilkan lawan kata dari kata yang telah diinput tersebut, jika tidak ditemukan, tampilkan pesan bahwa kata tersebut belum ada pada dictionary.

(11)

MODUL V

Rekursi

V.1 Maksud dan Tujuan V.1.1 Maksud

Modul ini membahas tentang rekursi yaitu suatu fungsi yang memanggil dirinya sendiri.

V.1.2 Tujuan

1. Mahasiswa memahami arti rekursi dan bisa menerapkannya dengan menggunakan Python.

V.2 Dasar Teori

Rekursi merupakan suatu fungsi yang memanggil fungsi itu sendiri. Tentu saja pembuatan fungsi yang bersifat rekursif ini harus berhati-hati karena kesalahan dalam definisi serta kondisi untuk mengakhir dapat mengakibatkan eksekusi yang tidak terhingga (artinya tidak berhenti-berhenti). Berikut ini adalah contoh rekursi: def hitungMundur(n): if n == 0: print 'Selesai!' else: print n hitungMundur(n-1) V.3 Praktik

1. Ketikkan definisi fungsi hitungMundur di atas kemudian buat dua contoh penggunaannya (dengan parameter 0 dan sembarang angka lain).

2. Apa yang terjadi jika hitungMundur(n-1) diganti dengan hitungMundur(n)? Mengapa?

3. Dengan menggunakan fungsi yang rekursif, buatlah fungsi untuk menampilkan n baris yang berisi tulisan “aku ada di putaran x” dengan x adalah baris yang sedang di akses. Contoh tampilan hasil:

>>> tampilkanBaris(5) aku ada di putaran 5 aku ada di putaran 4 aku ada di putaran 3 aku ada di putaran 2 aku ada di putaran 1

(12)

MODUL VI

Stack

VI.1 Maksud dan Tujuan VI.1.1 Maksud

Modul ini membahas tentang tipe data abstrak yang berupa stack. Stack merupakan sekumpulan koleksi data dan di Python biasanya diimplementasikan sebagai list. Operasi pada stack biasanya merupakan operasi khusus.

VI.1.2 Tujuan

1. Mahasiswa memahami tipe data abstrak berupa stack serta operasi yang biasanya terjadi pada stack.

VI.2 Dasar Teori

Stack adalah sekumpulan koleksi data dan biasanya berupa suatu list di Python. Oleh karena itu, cara mendefinisikan suatu stack di Python sama dengan cara mendefinisikan list (lihat kembali modul 1). Stack biasanya digunakan pada disiplin ilmu komputer terutama untuk pembuatan interpreter dan compiler.

Operasi yang biasanya dilakukan pada stack adalah penambahan dan penghapusan elemen. Stack menggunakan metode LIFO (Last In First Out), yaitu elemen yang terakhir dimasukkan akan dikeluarkan pertama kali. Untuk memasukkan elemen, pemrogram bisa menggunakan method append. Untuk mengambil dan mengeluarkan elemen, pemrogram bisa menggunakan method

pop.

VI.3 Praktik

1. Buatlah list yang berisi 10 elemen dengan isi bebas.

2. Dengan menggunakan method append dan pop, buktikan bahwa list yang anda buat tersebut merupakan suatu stack!.

(13)

MODUL VII

Antrian

VII.1 Maksud dan Tujuan VII.1.1 Maksud

Modul ini membahas tentang antrian yang merupakan kebalikan dari stack.

VII.1.2 Tujuan

1. Mahasiswa memahami arti dari antrian dan bisa mengimplementasikan antrian dengan menggunakan bahasa pemrograman Python.

VII.2 Dasar Teori

Antrian merupakan suatu struktur data yang juga banyak digunakan pada disiplin ilmu komputer. Seperti halnya dalam kehidupan normal, antrian berisi sekumpulan koleksi data yang diimplementasikan sebagai list dan mempunyai dua kategori operasi yaitu penambahan dan penghapusan elemen dari antrian.

Penambahan dan penghapusan elemen antrian menggunakan metode FIFO (First In First Out), yaitu data yang pertama kali masuk akan keluar pertama. Untuk memasukkan elemen data ke dalam antrian, digunakan method

append, dan untuk menghapus elemen dari antrian, digunakan pop dengan 0

sebagai indeksnya.

VII.3 Praktik

1. Buatlah suatu list antrian yang berisi 10 elemen data dengan isi bebas!

2. Dengan menggunakan method append dan pop, buktikan bahwa list yang anda buat tersebut merupakan suatu antrian!.

(14)

MODUL VIII

Pengurutan Data

VIII.1 Maksud dan Tujuan VIII.1.1 Maksud

Modul ini membahas tentang algoritma pengurutan data.

VIII.1.2 Tujuan

1. Mahasiswa memahami bahwa terdapat banyak algoritma pengurutan data dan dapat mengimplementasikan salah satu dari algoritma tersebut dengan menggunakan bahasa pemrograman Python.

VIII.2 Dasar Teori

Pengurutan data merupakan materi yang sangat penting karena berkaitan dengan kecepatan pengaksesan data. Suatu data yang diurutkan akan lebih cepat diakses daripada data yang belum diurutkan. Untuk data berjumlah banyak, hal ini akan sangat terasa.

Pada dasarnya ada banyak metode untuk pengurutan data, diantaranya adalah selection sort, insertion sort, shell sort, bubble sort, quick sort,

radix sort, heap sort, dan lain-lain. Modul ini hanya membahas pengurutan

data dengan metode insertion sort. Algoritma insertion sort bisa diuraikan sebagai berikut:

1. Mulai dari elemen pertama dari list sebagai hasil

2. Iterasi sepanjang elemen list, “memindah” elemen pertama

3. Membandingkan elemen yang dipindah dengan hasil saat ini, dimulai dari elemen paling kanan sampai ke elemen paling kiri.

4. Jika elemen yang dipindah lebih rendah nilainya daripada hasil saat ini, salin nilai tersebut ke elemen berikutnya untuk membuat ruangan bagi elemen baru, kemudian ulang lagi dengan elemen hasil terendah berikutnya.

5. Jika elemen yang dipindah tersebut tidak lebih rendah nilainya daripada hasil saat ini, berarti elemen baru tersebut sudah berada pada lokasi yang benar. Simpan ke elemen sebelah kiri dengan menyalin hasil terakhir yang diuji dan ulangi lagi langkah 2 dengan elemen input berikutnya.

VIII.3 Praktik

1. Ketikkan dan jalankan script Python berikut ini: #!/usr/bin/python

# Implementasi insertion sort

# Dimodifikasi dari http://en.wikipedia.org/wiki/insertion_sort #

def insertionSort(list):

for removed_index in range(1, len(list)):

(15)

removed_value = list[removed_index] insert_index = removed_index

while insert_index > 0 and list[insert_index - 1] > removed_value: list[insert_index] = list[insert_index - 1] insert_index = insert_index - 1 list[insert_index] = removed_value unsorted = [3, 32, 1, 15, 90, 75] insertionSort(unsorted)

2. Bagaimanakah hasil dari script tersebut jika dijalankan? Mengapa? 3. Ubahlah script tersebut sehingga mempunyai output sebagai berikut:

Data sebelum diurutkan = [3, 32, 1, 15, 90, 75] Data setelah diurutkan = [1, 3, 15, 32, 75, 90]

Referensi

Dokumen terkait

Lipid plasma yang utama adalah kolesterol, trigliserida, fosfolipid dan asam lemak bebas yang tidak dapat larut dalam cairan plasma.. Agar lipid plasma dapat diangkut dalam

Simpulan dari hasil penelitian dengan judul “Keragaan Kopi Pasar Domestik Indonesia” yakni Keragaan pasar kopi Indonesia Indonesia dalam model ekonometrika ditentukan

M empertimbangkan sisi barat tapak yang langsung bersebelahan dengan bangunan lainnya, sehingga pondasi yang digunakan adalah pondasi yang tidak akan membawa dampak buruk

SKPDKB, adalah Surat Ketetapan Pajak yang menentukan besarnya jumlah pokok pajak, jumlah kredit pajak, jumlah kekurangan pembayaran pokok pajak, besarnya

Semakin tinggi derajat PP maka semakin rendah pula baik skor per item maupun skor total PDSS pada penelitian ini, yang berarti semakin tinggi derajat penyakit maka

Karena pelaksanaan audit investigatif atas kecurangan berhubungan dengan hak-hak individual pihak-pihak lainnya, maka audit investigatif harus dilakukan setelah

Sasaran yang ingin dicapai adalah terbentuknya zonasi dalam kawasan Taman Nasional Gunung Merbabu yang dapat menjadi salah satu pedoman pengelolaan dan

Tingginya jumlah individu pada ketinggian 600-610 m dpl juga disebabkan oleh kemampuan masing- masing individu dalam melakukan pertahanan hidup pada kondisi yang