Anda di halaman 1dari 38

CRITICAL BOOK REVIEW

(CBR)
KELOMPOK 3

TARISA RIANI RIZKI (5211151006)


NAZWA ZULFA (5212451004)
TIO AINAWANI (5212451005)
ANNISA RIZKI AGUSTI (5213151002)
FRILIA ARIANI (5213151005)
Daftar Isi
● Identitas Buku
● Isi Buku
● Pembahasan
● Kesimpulan
Identitas Buku
Buku 1 Buku 2
Judul Buku : Data Structures and Algorithms Using Python Judul Buku : Data Structures and Algorithms with Python
Penulis : Rance D. Necaise Penulis : Kent D. Lee Steve Hubbard
Penerbit : JOHN WILEY & SONS, INC. Penerbit : Springer
ISBN : 978-0-470-61829-5 ISBN : 978-3-319-13071-2
Tahun Terbit : 2011 Tahun Terbit : 2015
Jumlah Halaman : 507 Jumlah Halaman : 361
Isi Buku
BUKU 1

SET DAN PETA


SET
Set ADT adalah wadah yang biasa digunakan dalam
ilmu komputer.
Kumpulan Tipe Data Abstrak
Mendefiniskan Setel ADT
● Set () : Membuat set baru yang diinisialisasi dengan set kosong.
● Panjang () : Mengembalikan jumlah elemen dalam himpunan.
● Akses melalui fungsi len() :Menunjukkan apakah nilai yang ditentukan
● Add (elemen) : Ubah himpunan dengan menambahkan nilai yang ditetapkan ke himpunan 
● Hapus (elemen) : Jika nilainya ada di himpunan, hapus nilai yang ditentukan dari himpunan. Jika tidak, itu
melempar pengecualian.
● Equals (setB) : Menentukan apakah suatu himpunan sama dengan himpunan lain
● isSubsetOf (setB) : Menunjukkan apakah suatu himpunan 
● Union (setB) : Membuat dan mengembalikan set baru 
● Persimpangan (setB) : Membuat dan mengembalikan set baru dari persimpangan dari set ini dan set B.
● Selisih (setB) : Membuat dan mengembalikan set baru
Memilih Struktur Data
Ingatlah bahwa kamus berisi pasangan kunci / nilai, ini membutuhkan dua bidang data untuk setiap
entri. Untuk menggunakan struktur array. Simpan elemen set dan sediakan, seperti dalam kasus tas
Fungsionalitas ADT penuh. Daftar memungkinkan nilai duplikat, jadi Namun, sebagai bagian dari
implementasi
Implementasi Berbasis Daftar
Menambahkan Elemen
Seperti yang disebutkan sebelumnya, struktur daftar tidak menambahkan nilai duplikat, jadi Anda perlu memastikan bahwa tidak ada
nilai duplikat yang ditambahkan ke kumpulan. Saat menerapkan metode tambah yang ditunjukkan pada baris 16-18. Apakah item
tersebut sudah ada dalam daftar. Jika itemnya unik, tambahkan saja nilainya di akhir daftar.

Membandingkan Dua Set


Pastikan kedua himpunan berisi jumlah elemen yang sama. Kalau tidak, mereka tidak bisa sama. Membandingkan elemen individu tidak
efisien karena kita telah mengetahui bahwa kedua himpunan tidak mungkin sama.
PETA
Peta adalah wadah untuk menyimpan kumpulan catatan,
dan setiap catatan dikaitkan dengan kunci unik.
Kumpulan Tipe Data Abstrak Peta
Mendefinisikan Peta ADT
● Peta () : Buat peta kosong baru.
● Panjang () : Mengembalikan jumlah pasangan kunci/nilai dalam peta.
● Berisi (kunci) : Menunjukkan apakah kunci yang ditentukan ada pada kartu, mengembalikan True jika kunci
ditemukan, Salah jika tidak ditemukan.
● Add (key, value) : Menambahkan pasangan kunci/nilai baru ke peta jika kunci belum ada di peta.
● Hapus (kunci) : Menghapus pasangan kunci / nilai untuk kunci yang ditentukan jika ada di peta
● Valueof (key) : Mengembalikan record yang terkait dengan kunci yang ditentukan.
● Iterator () : Membuat dan mengembalikan iterator yang dapat digunakan untuk mengulang kunci pada peta
Implementasi Berbasis Daftar
Implementasi bag dan set ADT menggunakan satu daftar untuk menyimpan barang individu. Namun, untuk ADT Peta,
Anda perlu menyimpan komponen kunci dan komponen nilai yang sesuai untuk setiap entri di peta.
Untuk beberapa alasan, tidak mungkin untuk menambahkan pasangan komponen ke daftar tanpa mempertahankan
asosiasi . Satu untuk kunci dan satu untuk nilai yang sesuai. Untuk mencapai ini, setiap kunci / nilai harus disimpan
dalam elemen yang sesuai dari daftar paralel, dan pemetaan ini harus dipertahankan.
Array Multi-Dimensi
Array 3D dapat divisualisasikan sebagai kisi tabel di mana setiap tabel dibagi menjadi baris dan kolom.

Sebagian besar bahasa pemrograman tingkat tinggi menyediakan cara yang nyaman untuk membuat dan mengelola array multidimensi,
sementara bahasa lain memerlukan pendekatan yang lebih pragmatis. C++ dan Java adalah dua contoh bahasa yang menyediakan array
multidimensi sebagai bagian dari bahasa.
Tipe Data Abstrak MultiArray
Mendefinisikan MultiArray ADT
● MultiArray (d1, d2, .. dn) : Membuat array elemen multidimensi n-dimensi, setiap elemen awalnya diatur ke
None.
● Panjang (redup) : Mengembalikan panjang dimensi larik yang ditentukan.
● clear (nilai) : Menghapus array dengan mengatur setiap elemen ke nilai yang ditentukan.
● Getitem (i1, i2, ... in) : Mengembalikan nilai elemen posisi yang ditentukan oleh ntuple (i1, i2, ... in) yang
disimpan dalam array.
● Setitem (i1, i2, ... in, value) : Memodifikasi konten array dalam definisi item untuk memasukkan nilai yang
ditentukan.
Organisasi Data
Array multi-dimensi tidak ditangani di tingkat perangkat keras. Array satu dimensi terdiri dari sekelompok elemen berurutan yang
disimpan di lokasi memori yang berurutan.Dalam kebanyakan bahasa pemrograman, array multi dimensi sebenarnya dibuat dan disimpan
dalam memori sebagai array satu dimensi. Dengan organisasi ini, array multidimensi hanyalah tampilan abstrak dari struktur data fisik
satu dimensi.

Penyimpanan Array
Array satu dimensi biasanya digunakan untuk menyimpan array dimensi yang lebih tinggi secara fisik. Elemen dapat disimpan dalam
urutan baris-utama atau urutan kolom-utama. Sebagian besar bahasa pemrograman tingkat tinggi menggunakan urutan baris-utama,
dengan FORTRAN menjadi salah satu dari sedikit bahasa yang menggunakan urutan kolom-utama untuk menyimpan dan mengelola
array 2-D.
Argumen Panjang Variabel
Definisi ADT MultiArray memerlukan argumen panjang variabel untuk konstruktor dan dua metode
akses elemen. Jumlah argumen yang diteruskan ke setiap metode seharusnya sama dengan jumlah
dimensi dalam array. Fungsi dan metode Python dapat didefinisikan untuk menerima sejumlah
variabel argumen, yang persis seperti yang kita perlukan untuk mengimplementasikan MultiArray
ADT.
Menerapkan MultiArray

Konduktor Akses Elemen

Dimensi dan Panjang Menghitung Offset


Aplikasi: Laporan Penjualan

Organisasi Data
Total Penjualan berdasarkan
Toko

Total Penjualan per Bulan

Total Penjualan berdasarkan


Item

Penjualan Bulanan
berdasarkan Toko
BUKU 2

SET DAN PETA


Memainkan Sudoku
Berikut ini ada dua aturan dalam menyelesaikan sudoku
• ATURAN 1 . Aturan pertama adalah generalisasi dari proses yang digunakan di atas untuk menghapus
beberapa nilai dari sel . Di dalam grup, cari sel yang berisi kumpulan nilai yang mungkin sama. Jika
kardinalitas himpunan (yaitu jumlah item dalam himpunan) cocok dengan jumlah duplikat set yang
ditemukan, maka item dari set duplikat dapat dengan aman dihapus dari semua set non-duplikat dalam grup.
• Aturan kedua melihat setiap sel dalam grup dan membuang semua item yang muncul di sel lain dalam grup.
Jika kita dibiarkan dengan hanya satu nilai di sel yang dipilih, maka itu harus muncul di sel ini dan sel dapat
diperbarui dengan membuang membuang semua nilai lain yang muncul di sel yang dipilih.
SET
Set dapat terdiri dari nilai apa pun seperti bilangan bulat, objek karyawan, karakter, string, secara
harfiah objek apa pun dengan Python dapat menjadi elemen dari beberapa set. Suatu himpunan
memiliki kardinalitas . Kardinalitas suatu himpunan adalah jumlah item di dalamnya.
Hashing
Pengujian keanggotaan set dalam waktu O(1) dilakukan dengan menggunakan hashing. Hashing
adalah konsep yang sangat penting dalam Ilmu Komputer dan terkait dengan akses acak di komputer.
Jika kita ingin mengimplementasikan suatu himpunan di mana kita dapat menguji keanggotaan dalam
waktu O(1), kita mungkin berpikir untuk menyimpan item-item himpunan tersebut dalam sebuah
daftar. Python (dan banyak bahasa modern lainnya) telah disertakan fungsi yang disebut hash yang
dapat dipanggil pada objek apa pun untuk mengembalikan nilai integer untuk Sebuah Objek. Kami
akan menyebut nilai ini sebagai kode hash objek atau nilai hash .
Kelas Hashset
1. Konstrusi hansshet
2. Penyimpanan item
3. Resolusi yang bertabrakan
4. Menambahkan fungsi pembantu pada hashset
5. Faktor beban
6. Menambahkan hashset
7. Menghapus sebuah item
8. Pembantu fungsi remove pada hashset
9. Menghapus hashset
10. Menemukan sebuah item
11. Keanggotaan hashset
12. Iterasi pada set
13. Operasi set lainnya
14. Pembaruan perbedaan hashset
15. Perbedaan hashset
Memecahkan sudoku

Untuk menggunakan suatu aturan atau hashset


tipe data, kita bisa memiliki alat untuk
memecahkan sebagian besar teka-teki yang
terdapat pada sudoku. Teka-teki dapat dibaca
dari file dimana nilai yang diketahui diwakili
oleh nilai dan digitnya tidak diketahui, seperti
pada teka-teki dibawa ini.
MAPS
Peta dalam ilmu komputer, berbeda dengan peta yang sering digunakan untuk menunjukan arah. Peta
merupakan istilah matematis yang mengacu pada fungsi yang memetakan domain ke rentang. Peta
memiliki banyak nama, termasuk kamus, tabel hash, dan peta hash. Ketiganya merupakan struktur
data yang sama.
Peta atau kamus memetakan sekumpulan kunci unik ke nilai terkaitnya, sama seperti fungsi
memetakan nilai dalam domain ke rentang. Saat kita ingin mencari pasangan kunci/nilai, kuncinya
adalah apa yang kita berikan ke peta. Kunci peta itu unik. Hanya ada satu salinan dari nilai kunci yang
diberikan dalam kamus pada satu waktu.
Kelas Hashset untuk Kelas
Hashmap mendapatkan item Hashmap
Memoisasi
Memoisasi adalah teknik pemrograman yang menarik yang dapat digunakan saat menulis fungsi yang
dapat dipanggil beberapa kali dengan argumen yang sama. Gagasan di balik memoisasi adalah
melakukan pekerjaan menghitung nilai sekali dalam suatu fungsi. Kemudian, yang perlu diingat ketika
fungsi dipanggil kembali dengan argumen yang sama, kita akan kembali mengembalikan nilai yang
baru saja kita hitung. Ini menghindari lebih banyak pekerjaan untuk menghitung nilai.
Fungsi Fibonacci Yang Dimemmoisasi
Fungsi memoisasi fib dalam denominasi.
Mendokumentasikan nilai apa pun yang dikembalikan oleh fungsi
dalam memonya. Variabel memo diakses dari ruang lingkup
tambahan. Memo tidak dibuat secara lokal karena memo itu
bertahan dari satu panggilan fib ke panggilan berikutnya. Setiap kali
fib dipanggil dengan nilai n baru, jawabannya dicatat dalam memo.
Kali berikutnya fib(n) dipanggil, hasil memoisasi dicari dan
dikembalikan. Hasil: fungsi fib yang diingat sekarang memiliki
kompleksitas O(n) dan menghitung fib(100) hampir seketika.
Menghubungkan Dua Sumber Informasi

Penggunaan lain dari peta atau kamus adalah untuk menghubungkan data dari sumber yang berbeda.
Misalkan Anda mendapatkan daftar kota dan kode pos atau kode di kota-kota tersebut. Anda dapat
mencari daftar kota untuk menemukan daftar kode pos yang sesuai. Atau, Anda dapat membuat
kamus dari nama kota ke daftar kode pos. Kemudian, ketika diberi nama kota, Anda memeriksa
apakah itu ada dalam kamus, dan jika ya, Anda dapat mencari daftar kode pos yang sesuai dalam
waktu O(1).
Pembahasan
Analisis Hasil Studi Kasus
Soal studi kasus:
SMK Nusa Bangsa akan melakukan study tour ke Perusahaan Batu Bara. Perjalanan ke perusahaan
Batu Bara dilakukan dengan bis pariwisata. Satu persatu siswa masuk ke dalam bis sesuai dengan
nomor urut dari 1-10. Urutan tempat duduk yaitu 3,7,1,8,2,10,4,9,5,6.
Pencarian Data
#include <stdio.h>
/*******************************************
Fungsi Rekursif untuk f(n) = f(n-1) + 1
********************************************/
unsigned int deret1(int n)
{
if (n == 1)
return 1;
else
return (deret1(n-1) + 1);
}
int main()
{
int x;
for (x=1; x<=10; x++)
printf("%4d", deret1(x));
return 0;
}
Hasil Kerja
Hasil Kerja
kesimpulan

Set ADT adalah wadah yang biasa digunakan dalam ilmu komputer. Namun, tidak seperti bagian ADT yang diperkenalkan di
Bab 1, himpunan berisi nilai unik dan mewakili struktur yang sama dengan matematika. Ini biasanya digunakan saat anda
perlu menyimpan koleksi nilai unik terlepas dari cara penyimpanannya, atau saat anda perlu melakukan operasi himpunan
matematika yang berbeda pada koleksi. Algoritme reduksi untuk teka-teki Sudoku memanipulasi set angka dan
menghilangkan nilai yang mungkin dari set tersebut saat pengurangan berlangsung. Himpunan adalah kumpulan yang tidak
mengizinkan nilai duplikat. Set dapat terdiri dari nilai apa pun. Bilangan bulat, objek karyawan, karakter, string, secara harfiah
objek apa pun dalam Python bisa menjadi elemen dari beberapa set. Suatu himpunan memiliki kardinalitas. Kardinalitas suatu
himpunan adalah jumlah item di dalamnya.
Mencari item data berdasarkan nilai kunci unik adalah aplikasi yang sangat umum dalam ilmu komputer. Tipe data abstrak
yang menyediakan tipe pencarian ini sering disebut sebagai peta atau kamus karena mereka memetakan kunci ke nilai yang
sesuai. Pikirkan tentang masalah lulusan perguruan tinggi yang perlu mengelola dan memproses sejumlah besar data terkait
siswa. Peta dalam ilmu komputer tidak seperti peta yang biasa Anda baca saat pergi ke suatu tempat di mobil Anda . Istilah
peta adalah istilah yang lebih matematis yang mengacu pada fungsi yang memetakan domain ke rentang. Anda mungkin sudah
menggunakan peta dengan Python. Peta disebut dengan banyak nama termasuk kamus, tabel hash, dan peta hash. Mereka
semua adalah struktur data yang sama.

Anda mungkin juga menyukai