Prinsip Pigeonhole dan Aplikasinya Aldy Wirawan 13511035 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung 40132, Indonesia
[email protected]
Prinsip pigeonhole merupakan salah satu teknik pembuktian yang sederhana dan efektif. Prinsip ini merupakan salah satu alat kombinatorial yang berguna dalam menghitung objek dengan properti tertentu. Prinsip pigeonhole mempunyai banyak aplikasi, diantaranya dalam sains komputer, permasalahan relasi, permasalahan numerikal, permasalahan geometri, trik kartu kombinatorik, dan teori Ramsey. Istilah Kunci— kombinatorial , menghitung, pembuktian, pigeonhole
I. PENDAHULUAN Prinsip pigeonhole ditemukan oleh seorang matematikawan Jerman yang bernama G. Lejeune Dirichlet. Prinsip tersebut dinamakan prinsip pigeonhole karena berawal dari permasalahan perbedaan jumlah burung merpati dan sarangnya. Misalkan ada 20 burung merpati yang akan bertengger di 19 sarang burung merpati. Maka, salah satu dari sarang burung tersebut pasti berisi setidaknya dua burung merpati. Prinsip pigeonhole merupakan bagian dari struktur diskrit karena area objek yang dikajinya merupakan objek yang terbatas. Lebih spesifiknya, prinsip pigeonhole ini dapat digolongkan ke dalam ilmu kombinatorial. Kombinatorial adalah cabang matematika yang mempelajari pengaturan objek-objek. Dalam persoalan mencari jumlah cara yang dapat kita lakukan untuk mengatur suatu objek, kita dapat mencari semua cara yang ada satu-persatu kemudian menghitung jumlahnya. Misalnya, dalam mencari jumlah cara yang dapat dilakukan untuk mengatur urutan tiga buku A, B, dan C, kita dapat mencari semua kemungkinannya, yaitu ABC, ACB, BAC, BCA, CAB, dan CBA yang total berjumlah enam. Namun demikian, jika jumlah objek sangat banyak, tentu tidak mungkin kita hitung satu-persatu, karena selain menyita banyak waktu, jika ada kemungkinan yang terlewat akan sangat sulit untuk melacaknya. Dalam permasalahan seperti inilah kombinatorial berperan besar. Kombinatorial mampu menghitung jumlah cara yang ada tanpa mencari satu-persatu kemungkinannya. Hal ini dapat dilakukan karena kombinatorial sebagai metode menghitung mempunyai dua kaidah fundamental, yaitu kaidah perkalian (rule of product) dan kaidah penjumlahan (rule of sum). Kaidah perkalian berbunyi demikian: jika ada suatu
Makalah IF2091 Struktur Diskrit – Sem. I Tahun 2012/2013
prosedur yang dapat dibagi menjadi dua proses dengan proses pertama mempunyai n1 cara dan proses kedua mempunyai n2 cara, maka banyak cara untuk melakukan prosedur tersebut adalah n1 x n2 cara. Contohnya, dari kota A ke kota B ada lima jalan dan dari kota B ke kota C ada tiga jalan, maka banyak cara yang dapat ditempuh dari kota A ke kota C ada 5 x 3 = 15 cara. Di lain sisi, kaidah penjumlahan berbunyi demikian: jika ada suatu prosedur yang dapat dilakukan dengan hanya salah satu dari dua proses dengan proses pertama mempunyai n1 cara dan proses kedua mempunyai n2 cara serta tidak ada dari kedua proses tersebut yang mempunyai cara yang sama, maka banyak cara untuk melakukan prosedur tersebut adalah n1 + n2 cara. Contohnya, banyak cara memilih ketua kelas dalam suatu kelas yang terdiri dari 20 laki-laki dan 15 perempuan adalah 20 + 15 = 35 cara. Berikutnya, dalam kombinatorial juga dikenal istilah permutasi. Permutasi adalah jumlah pengaturan objek dengan memperhatikan urutan. Rumus permutasi adalah (
)
(
)(
)
(
) (1)
dengan n merupakan jumlah objek total dan r merupakan jumlah objek yang dipakai. Contohnya, banyak angka tiga digit dengan setiap digit berbeda yang dapat dibuat dari angka 0-9 adalah 10 x 9 x 8 = 720. Pada contoh tersebut, jumlah objek total yang ada adalah sepuluh, yaitu angka 09, sedangkan jumlah objek yang dipakai adalah tiga, karena angka yang mau dibentuk merupakan angka tiga digit. Permutasi mempunyai bentuk khusus yang tidak memperhitungkan urutan. Bentuk khusus ini dinamakan kombinasi. Misalnya, pada contoh permutasi, jika tujuannya diubah dari membentuk angka tiga digit menjadi mengambil tiga angka berbeda, maka urutan tidak lagi berpengaruh karena mengambil angka 0,1,2 sama saja dengan mengambil angka 1,2,0 dan 2,0,1. Oleh karena itu, kombinasi mempunyai banyak cara yang lebih sedikit dari permutasi. Rumusnya adalah (
)
(
) (2)
dengan n merupakan jumlah objek total dan r merupakan
jumlah objek yang diambil tanpa memperhatikan urutan. Sebagai catatan, n! adalah nilai faktorial dari n yaitu n x (n – 1) x (n – 2) x...x 1 dengan 0! = 1 dan hal ini juga berlaku pada r. Jadi, banyak cara mengambil tiga angka dengan tiap angka berbeda dari angka 0-9 adalah 9!/(3! x 6!) = 84 cara.
disederhanakan, maka hasilnya adalah n, yang berarti (⌈ ⌉
) (4)
Padahal, jumlah objek total adalah n. Maka dari itu, terdapat kontradiksi pada pernyataan kontraposisinya, sehingga prinsip pigeonhole yang digeneralisasikan bernilai benar.
II. PRINSIP PIGEONHOLE A. Prinsip Pigeonhole Spesifik Seperti telah dijelaskan secara sekilas pada pendahuluan, prinsip pigeonhole berawal dari permasalahan perbedaan jumlah burung merpati dan sarangnya. Jika ada 20 burung merpati yang akan bertengger pada 19 sarang burung merpati, maka salah satu dari sarang burung tersebut berisi setidaknya dua burung merpati. Maka, prinsip pigeonhole menyatakan bahwa jika k adalah bilangan bulat positif dan objek berjumlah k+1 ditempatkan dalam wadah berjumlah k, maka ada salah satu wadah yang berisi objek lebih dari satu. Kebenaran dari prinsip pigeonhole ini akan dibuktikan menggunakan kontraposisi. Dengan mengasumsikan tidak ada wadah yang berisi objek lebih dari satu, maka jumlah total objek yang terbanyak adalah k, sedangkan jumlah totak objeknya k+1. Maka itu, terdapat kontradiksi pada pernyataan kontraposisinya, yang mengakibatkan prinsip pigeonhole bernilai benar.
B. Prinsip Pigeonhole yang Digeneralisasikan Pada upabab sebelumnya, telah dijelaskan bahwa prinsip pigeonhole menyatakan setidaknya ada dua objek dalam suatu wadah jika jumlah objek lebih banyak dari wadah. Pernyataan tersebut dapat diubah menjadi lebih akurat. Sebagai contoh, jika jumlah burung merpati diubah menjadi 21 dan jumlah sarang burung merpati diubah menjadi sepuluh, maka kita dapat menyatakan bahwa ada satu sarang burung dengan jumlah burung merpati yang bertengger di dalamnya minimal tiga. Maka, prinsip pigeonhole yang digeneralisasikan menyatakan bahwa jika objek berjumlah n ditempatkan dalam wadah berjumlah k dengan n dan k bilangan bulat positif, maka setidaknya ada ⌉ . Sebagai catatan, ⌈ ⌉ satu wadah yang berisi ⌈ merupakan fungsi ceiling yang membulatkan pecahan ke bilangan bulat positif atas terdekat. Prinsip pigeonhole yang digeneralisasikan ini akan dibuktikan menggunakan kontraposisi. Dengan mengasumsikan bahwa tidak ada ⌉ – 1 objek, maka jumlah wadah yang berisi lebih dari ⌈ objek maksimalnya adalah jumlah wadah dikali isinya yang diperlihatkan dalam pertidaksamaan berikut (⌈ ⌉
)
((
)
) (3)
Pertidaksamaan (3) dapat ditulis demikian karena ⌈ ⌉ tidak mungkin sama atau melebihi
. Jika ruas kanan
Makalah IF2091 Struktur Diskrit – Sem. I Tahun 2012/2013
C. Perluasan Prinsip Pigeonhole Dengan dibuktikannya prinsip pigeonhole spesifik dan prinsip pigeonhole yang digeneralisasikan, maka prinsip pigeonhole dapat diperluas dengan membalik pernyataan prinsip pigeonhole itu sendiri. Pernyataan yang dapat ditarik dari prinsip pigeonhole spesifik adalah jika n-1 objek diletakkan pada wadah berjumlah n dengan n bilangan bulat positif, maka salah satu dari wadah tersebut pastilah kosong atau tidak berisi objek. Pada prinsip pigeonhole yang digeneralisasikan, pernyataan yang dapat ditarik adalah jika objek berjumlah n-1 ditempatkan pada wadah berjumlah k dengan n dan k bilangan bulat positif, maka satu dari wadah tersebut berisi paling banyak ⌊ ⌋. Sebagai catatan ⌊ ⌋ adalah fungsi floor yang membulatkan pecahan ke bilangan bulat positif bawah terdekat. Lebih jauh lagi, prinsip pigeonhole dapat diperluas menjadi pernyataan berikut: Jika objek berjumlah nk + s atau lebih ditempatkan dalam n buah wadah dengan n, k, dan s bilangan bulat positif, maka untuk setiap dengan m bilangan bulat positif ada wadah berjumlah m yang berisi objek paling sedikit mk + min (s, m). Sebagai catatan, min (s, m) menghasilkan s jika dan menghasilkan m jika . Selain itu, adapula perluasan prinsip pigeonhole yang dipakai dalam geometri. Perluasan tersebut membahas kasus jika jumlah burung merpati tak hingga. Jika terdapat tak hingga objek yang ditempatkan dalam n wadah dengan n bilangan bulat positif, maka setidaknya salah satu dari wadah tersebut menampung tak hingga burung merpati.
III. APLIKASI PRINSIP PIGEONHOLE Walaupun prinsip pigeonhole merupakan prinsip yang sangat sederhana, prinsip ini mempunyai banyak aplikasi.
A. Aplikasi Pada Sains Komputer Salah satu aplikasi prinsip pigeonhole pada sains komputer adalah pada hash collision. Sebagai informasi, algoritma hash mengubah suatu data apapun ke dalam bentuk data lain. Hal ini dilakukan dengan memproses data tersebut dalam suatu formula matematika kompleks untuk menghasilkan hash unik bagi setiap potongan data. Umumnya, hash yang dihasilkan memiliki bit yang sama untuk setiap algoritma hash yang sama. Jika data yang diproses lebih kecil dari bit minimal hash yang akan dihasilkan, maka algoritma hash yang bersangkutan akan
menambahkan junk data untuk mengisi bit yang tidak terpakai. Hash collision terjadi apabila dua data atau lebih menghasilkan hash yang sama. Menggunakan prinsip pigeonhole, hash collision merupakan hal yang tidak terhindarkan, terlebih jika data yang di hash berukuran besar. Hal ini dikarenakan hash yang tersedia lebih sedikit daripada potongan data yang diproses. Anggap hash sebagai sarang burung merpati dan potongan data yang diproses sebagai burung merpati. Maka, pasti ada hash yang merepresentasikan lebih dari satu potongan data. Aplikasi yang kedua adalah pada kompresi data. Kompresi data adalah proses memampatkan suatu data apapun ke dalam bentuk dengan ukuran yang lebih kecil. Dengan prinsip pigeonhole, dapat dibuktikan tidak mungkin ada algoritma kompresi yang dapat selalu berhasil memampatkan data menjadi lebih kecil. Hal ini dikarenakan ukuran yang lebih kecil berarti bit yang lebih sedikit, sehingga jika hasil kompresi dianalogikan dengan sarang burung merpati, jumlah sarang burung merpati selalu lebih sedikit daripada merpatinya (yaitu data yang akan diproses dengan algoritma kompresi).
B. Aplikasi Pada Permasalahan Relasi Prinsip pigeonhole dapat diaplikasikan dalam berbagai permasalahan relasi. Misalkan ada pertemuan yang dihadiri oleh 50 orang. Dari 50 orang tersebut, ada beberapa yang kenal satu sama lain. Kita dapat membuktikan bahwa dalam ruangan tersebut pasti ada dua orang dengan jumlah kenalan yang sama menggunakan prinsip pigeonhole. Dengan mengasumsikan satu orang tidak mempunyai kenalan sama sekali, jumlah maksimum kenalan satu orang adalah 48. Maka, anggap jumlah kenalan dari 0 sampai 48 sebagai sarang burung merpati, dan anggap 50 orang yang hadir pada pertemuan tersebut sebagai merpatinya. Berdasarkan prinsip pigeonhole, setidak-tidaknya akan ada dua orang yang mempunyai jumlah kenalan yang sama. Begitu pula jika kita asumsikan masing-masing orang yang hadir pada pertemuan tersebut mempunyai setidaknya satu kenalan, sehingga maksimum jumlah kenalan dari seseorang adalah 49. Jika dianggap jumlah kenalan dari 1 sampai 49 sebagai sarang burung merpati dan 50 orang yang hadir pada pertemuan tersebut sebagai merpatinya, tetap setidak-tidaknya ada dua orang yang mempunyai jumlah kenalan yang sama. Aplikasi prinsip pigeonhole dalam relasi cukup berguna dalam mengaproksimasi kebutuhan minimal yang harus disiapkan dalam hal tertentu. Misalkan suatu perusahaan kereta api mempunyai statistik jumlah pengguna 500 setiap harinya. Jika ada 20 lintasan kereta api yang berbeda, maka berdasarkan prinsip pigeonhole minimal ada 25 pengguna dengan lintasan kereta api yang sama. Maka dari itu, minimalnya perusahaan kereta api tersebut menyediakan kereta api yang mempunyai daya tampung 25 pengguna untuk setiap jurusan untuk memenuhi kebutuhan minimal tiap lintasan. Namun demikian, dalam prakteknya, prinsip pigeonhole memang tidak dapat diterapkan semudah itu.
Makalah IF2091 Struktur Diskrit – Sem. I Tahun 2012/2013
C. Aplikasi Pada Permasalahan Numerikal Prinsip pigeonhole mampu menyelesaikan beberapa permasalahan numerikal. Contoh pertama adalah permasalahan divisibilitas. Dengan prinsip pigeonhole, kita mampu membuktikan bahwa pasti ada dua angka dalam n angka yang selisihnya habis dibagi angka n-1 dengan n bilangan bulat positif ≥ 2. Kita ambil contoh n = sepuluh, sehingga dalam sepuluh angka yang diberikan ada minimal dua angka dengan selisih habis dibagi sembilan. Sisa dari pembagian suatu angka dengan sembilan juga berjumlah sembilan, yaitu 0, 1, 2, 3, 4, 5, 6, 7, dan 8. Jika sisa dari pembagian suatu angka dengan sembilan tersebut kita analogikan sebagai sarang burung merpati dan sepuluh angka yang diberikan kita analogikan sebagai merpati, maka dalam sepuluh angka tersebut minimal ada dua angka yang mempunyai sisa yang sama dari pembagian terhadap sembilan. Dua angka inilah yang bila diselisihkan selisihnya akan habis dibagi sembilan. Contoh kedua adalah aplikasi prinsip pigeonhole dalam pertidaksamaan. Diberikan permasalahan berikut: dapatkah dua angka dari tujuh angka real unik memenuhi persamaan ? Untuk menjawab pertanyaan √
tersebut, pertama-tama kita melakukan pendekatan dengan fungsi tan. Untuk setiap bilangan real x, kita selalu dapat menemukan α dengan dan tan α = x. Jika sampai
dibagi menjadi 6 interval sama besar, maka
hasilnya ( (
), (
), dan (
), (
), (
),
). Berdasarkan prinsip pigeonhole, dari
tujuh angka real yang diberikan, pasti ada dua α yang berada dalam interval yang sama. Jika kita amati interval soal yaitu 0 dan , kita dapat mengetahui interval α-nya, √
yaitu (
), karena tan (0) = 0 dan tan ( ) =
√
. Maka,
jika α dari bilangan real pertama ditulis menjadi α1 dan α kedua dari bilangan real kedua ditulis menjadi α2 didapat persamaan
(5) Jika setiap ruas diberikan fungsi tan, maka (
)
√ (6)
Menggunakan persamaan trigonometri (
) (7)
dengan = bilangan real pertama, dinotasikan n1 dan = bilangan real kedua, dinotasikan n2, maka, setelah persamaan trigonometri disubtitusikan, pertidaksamaan
yang terbentuk adalah
√ (8) Jika diperhatikan, pertidaksamaan (8) sama dengan pertidaksamaan pada permasalahan, hanya saja perbedaan nama variabel yaitu x dengan n1 dan y dengan n2. Oleh karena itu, terbukti bahwa dua dari tujuh bilangan real sembarang berbeda dapat memenuhi pertidaksamaan tersebut.
D. Aplikasi Pada Permasalahan Geometri Prinsip pigeonhole dapat digunakan dalam pembuktian masalah-masalah geometri. Contoh permasalahan yang diberikan adalah sebagai berikut: buktikan bahwa dua dari enam titik dalam persegi panjang 3x4 berjarak tidak lebih dari √ . Solusinya adalah dengan membuat pembagian dari persegi panjang 3x4 tersebut seperti gambar berikut
Gambar 1. Pembagian persegi panjang sebagai solusi dari permasalahan geometri yang diberikan
Kita dapat melihat bahwa pembagian persegi panjang 3x4 dengan garis merah membuat persegi panjang terbagi menjadi lima bagian. Berdasarkan prinsip pigeonhole, bila enam titik ditempatkan pada persegi panjang tersebut, maka ada satu bagian yang setidaknya memuat dua titik. Maka dari itu, terbukti bahwa dua dari enam titik dalam persegi panjang 3x4 berjarak tidak lebih dari √ , karena jarak maksimum dalam satu bagian pada persegi panjang tersebut adalah √ . Aplikasi prinsip pigeonhole pada permasalahan geometri sangat banyak, salah satunya dengan menggunakan perluasan prinsip pigeonhole dengan jumlah burung merpati tak hingga. Namun demikian, makalah ini tidak membahas lebih lanjut mengenai aplikasi dari perluasan prinsip pigeonhole tersebut.
D. Aplikasi Pada Trik Kartu Kombinatorik Prinsip pigeonhole dapat digunakan dalam trik kartu kombinatorik sebagai berikut: seorang asisten pesulap mengambil lima kartu secara acak dari sebuah set kartu bridge. Sebagai catatan, satu set kartu bridge terdiri dari Makalah IF2091 Struktur Diskrit – Sem. I Tahun 2012/2013
empat lambang dengan masing-masing lambang terdiri dari 13 kartu. Kemudian, asisten tersebut memilih salah satu kartu sebagai kartu yang disembunyikan dan memperlihatkan sisanya kepada pesulap. Maka, pesulap yang melihat keempat kartu tersebut dapat menentukan lambang dan nilai dari kartu yang disembunyikan. Pada kelima kartu yang diambil seorang asisten pesulap, berdasarkan prinsip pigeonhole, ada dua atau lebih kartu dengan lambang yang sama. Hal ini dimanfaatkan asisten pesulap untuk memberi tahu pesulap lambang kartu yang disembunyikan. Hal itu dilakukan dengan menaruh kartu berlambang sama tersebut pada urutan pertama dari kartu yang diperlihatkan. Pemilihan kartu yang disembunyikan dengan kartu yang diperlihatkan juga mengambil peran penting. Aspek yang diperhatikan dalam pemilihan kartu yang disembunyikan dan kartu yang diperlihatkan adalah ‘jarak’ kedua kartu tersebut satu sama lain. Jarak kedua kartu didefinisikan sebagai perbedaan nilai yang harus ditambahkan kartu pertama untuk mencapai kartu kedua. Dalam jarak kedua kartu ini, jarak kartu A ke kartu B tidak sama dengan jarak kartu B ke kartu A karena nilai jarak bersifat sirkuler. Untuk memudahkan perhitungan jarak, kartu Jack, Queen, dan King dilambangkan sebagai angka 11, 12, dan 13. Contoh memperoleh jarak dari dua buah kartu adalah sebagai berikut: pada kartu bernilai 1 dan 2, jarak kartu 1 ke 2 adalah 1 sedangkan jarak kartu 2 ke 1 adalah 12. Jumlah jarak suatu kartu ke kartu lain dengan jarak kebalikannya selalu 13. Maka, berdasarkan prinsip pigeonhole, jarak antar dua buah kartu selalu ada yang ≤ 6. Kartu pertama pada jarak antar dua kartu yang ≤ 6 merupakan kartu yang diperlihatkan pada pesulap, sedangkan kartu kedua disembunyikan. Berikutnya, tiga kartu yang diperlihatkan lainnya digunakan untuk memberi nilai jarak yang harus ditambahkan pada kartu pertama (kartu yang berlambang sama dengan yang disembunyikan) sehingga pesulap mengetahui persis kartu apa yang disembunyikan. Cara menyusun tiga kartu dihitung dengan permutasi berjumlah 3! = 6. Hal inilah yang mendasari pemilihan kartu yang diperlihatkan harus kartu yang jaraknya ≤ 6 dengan kartu yang disembunyikan. Melalui urutan tiga kartu yang disusun asisten pesulap, pesulap dapat mengetahui pertambahan yang harus dilakukan terhadap kartu pertama sehingga pesulap tersebut dapat menebak kartu yang disembunyikan. Urutan tiga kartu yang disusun merepresentasikan salah satu angka dari 1-6 tergantung kesepakatan asisten pesulap dengan pesulap. Misalkan, ABC bernilai 1, ACB bernilai 2, BAC bernilai 3, BCA bernilai 4, CAB bernilai 5, dan CBA bernilai 6 dengan A kartu bernilai terbesar dan C kartu bernilai terkecil. Jika ada dua buah kartu dengan nilai yang sama, maka yang diperhatikan adalah lambangnya. Misalkan asisten pesulap mendapat kartu 10♠, 5♣, K♥, 7♦, dan 10♦. Maka, yang kartu yang disembunyikan pasti salah satu dari 7♦ dan 10♦. Karena jarak dari 7 ke 10 adalah 3 sedangkan jarak dari 10 ke 7 adalah 10, maka 10♦ disembunyikan. Selanjutnya, dari 3 kartu 10♠, 5♣, dan K♥, harus dibuat suatu urutan sehingga pesulap
menginterpretasikan urutan tersebut sebagai angka 3. Maka sesuai kesepakatan sebelumnya urutan yang merepresentasikan nilai 3 adalah BAC dengan A kartu terbesar dan C kartu terkecil, sehingga urutan kartu yang diperlihatkan asisten pesulap kepada pesulap adalah 7♦ (untuk memberi tahu lambang dan nilai inisial), 10♠, K♥, dan 5♣.
E. Aplikasi Pada Teori Ramsey Secara umum, teori Ramsey membahas distribusi subset elemen dalam suatu set elemen. Teori Ramsey merupakan extremal combinatorics yang memberikan jumlah objek jika kumpulan objek tersebut harus memenuhi kondisi tertentu. Berikut adalah permasalahan yang dapat memberikan gambaran mengenai teori Ramsey: dalam suatu grup yang terdiri dari enam orang, hubungan antara sepasang orang dapat berupa pertemanan ataupun permusuhan; buktikan bahwa ada setidaknya tiga orang yang saling berteman atau tiga orang yang saling bermusuhan. Misalkan A merupakan salah satu dari keenam orang tersebut, maka setidaknya tiga orang dari lima orang selain A bermusuhan atau berteman dengan A (sesuai prinsip pigeonhole). Anggap B, C, D berteman dengan A. Maka, jika dua dari B, C, D berteman, akan terbentuk tiga orang yang saling berteman. Sebaliknya, jika tidak, maka akan terbentuk tiga orang yang saling bermusuhan. Bila dikaitkan dengan permasalahan tersebut, bilangan Ramsey dengan notasi R(m,n) merupakan jumlah minimum orang yang diperlukan untuk menghasilkan m orang yang saling berteman atau n orang yang saling bermusuhan. Berdasarkan solusi dari permasalahan tersebut, R(3,3) = 6.
IV. KESIMPULAN Prinsip pigeonhole merupakan prinsip sederhana namun merupakan salah satu alat pembuktian yang efektif dan mempunyai banyak aplikasi pada permasalahan kombinatorial.
REFERENSI [1] [2] [3] [4] [5]
[6]
[7]
Jukna, Stasys. 2001. Extremal Combinatorics, With Applications in Computer Science. Springer-Verlag Publisher Munir, Rinaldi. 2008. Diktat Kuliah IF 2091 Struktur Diskrit 4th ed. Program Studi Teknik Informatika STEI ITB. Rosen, Kenneth H.. 2012. Discrete Mathematics and Its Applications 7th ed. Mc Graw-Hill. Soifer, A. 2010. Geometric Etudes in Combinatorial Mathematics. Springer. Hee, Edwin Kwek Swee; Meiizhuo, Huang; Swee, Koh Chan; Kuan, Heng Wee. Applications of The Pigeonhole Principle. 17 Desember 2012 (20:20) <sms.math.nus.edu.sg/festival/projects/applications%20of%20pige onhole%20principle.doc> Simonson, Shai; Holm, Tara S.. A Combinatorial Card Trick. 18 Desember 2012 (15:42)
The pigeonhole principle and its generalizations. 18 Desember 2012 (16:02) < https://sites.google.com/site/generalizedpigeonholeprinciple/>
Makalah IF2091 Struktur Diskrit – Sem. I Tahun 2012/2013
[8]
[9]
Hash Collision 101 (A Lesson That Anyone Can Understand). 18 Desember 2012 (17:01) Impossibly good compression. 18 Desember 2012 (17:07)
PERNYATAAN Dengan ini saya menyatakan bahwa makalah yang saya tulis ini adalah tulisan saya sendiri, bukan saduran, atau terjemahan dari makalah orang lain, dan bukan plagiasi. Bandung, 18 Desember 2012
ttd
Aldy Wirawan 13511035