Studi Kasus Permutasi dan Kombinasi Python

Studi Kasus Permutasi dan Kombinasi Python – pesonainformatika.com, pada studi kasus kali ini, kita akan belajar mengenai studi kasus menggunakan bahasa pemrograman python, nah di kasus kali ini kali ini kita akan menerapkan konsep permutasi dan kombinasi menggunakan bahasa pemrograman python.

selanjutnya sebelum mulai membuat program kita harus tau dulu apa itu permutasi dan kombinasi, apa pentingnya mempelajari ini, kita akan kupas tuntas disini

Apa itu Permutasi

Permutasi adalah konsep tentang bagaimana cara menggabungkan objects dalam suatu grub angka (array/list) dengan memperhatikan urutan, contohnya seperti ini

{1,2,3}, {2,3,1}, {3,1,2}

ketiga contoh diatas tidak lah sama karena ketiganya tidak memperhatikan urutan, sebagai gambaran kita akan menggunakan studi kasus cerita, seperti ini

Ada sebuah kotak berisi 3 bola masing-masing berwarna merah, hijau dan biru. Jika seorang anak ditugaskan untuk mengambil 2 bola secara acak dan urutan pengambilan diperhatikan, ada berapa permutasi yang terjadi?

contoh soal permutasi

dari kasus diatas dapat kita tangkap bahwa

Ada 6 permutasi yaitu; M-H, M-B, H-M, H-B, B-M dan B-H.

jawaban soal permutasi

kali ini lanjut untuk mengenal apa itu kombinasi

Mengenal Apa itu Kombinasi

lawan dari permutasi adalah kombinasi , nah kombinasi adalah cara menggabungkan objects dalam suatu grub angka (array/list) tanpa memperhatikan urutan, contohnya seperti ini

{1,2,3}, {2,3,1}, {3,1,2}

sama seperti sebelumnya, kita menggunakan soal cerita seperti ini

Seorang anak hanya diperbolehkan mengambil dua buah amplop dari tiga buah amplop yang disediakan yaitu amplop A, amplop B dan amplop C. Tentukan ada berapa banyak kombinasi untuk mengambil dua buah amplop dari tiga buah amplop yang disediakan?

soal contoh kombinasi

dari kasus ini dapat kita menyimpulkan bahwa

Ada 3 kombinasi yaitu; A-B, A-C dan B-C.

jawaban soal kombinasi

Membuat Program

nah dari rumus diatas kita bisa membuat program dari rumus diatas, kita bisa membuat program, sederhana menggunakan modul bawaan dari python

Permutasi

langkah pertama kita buat dulu bentuk dasar dari permitasi di file permutasi.py lalu isi seperti ini

from itertools import permutations

data_list = [1, 2, 3, 4, 5]

# penggunaan permutation
permutasi = permutations(data_list)

# cetak object
print(permutasi)

# loop untuk mengetahui hasil dari fungsi permutation

for index, data in enumerate(list(permutasi), 1):
    print(f'hasil nomor: {index}. {data}')

jika dijalankan hasilnya seperti ini

hasil nomor: 1. (1, 2, 3, 4, 5)
hasil nomor: 2. (1, 2, 3, 5, 4)
hasil nomor: 3. (1, 2, 4, 3, 5)
hasil nomor: 4. (1, 2, 4, 5, 3)
hasil nomor: 5. (1, 2, 5, 3, 4)
hasil nomor: 6. (1, 2, 5, 4, 3)
hasil nomor: 7. (1, 3, 2, 4, 5)
hasil nomor: 8. (1, 3, 2, 5, 4)
hasil nomor: 9. (1, 3, 4, 2, 5)
hasil nomor: 10. (1, 3, 4, 5, 2)
hasil nomor: 11. (1, 3, 5, 2, 4)
hasil nomor: 12. (1, 3, 5, 4, 2)
hasil nomor: 13. (1, 4, 2, 3, 5)
hasil nomor: 14. (1, 4, 2, 5, 3)
hasil nomor: 15. (1, 4, 3, 2, 5)
hasil nomor: 16. (1, 4, 3, 5, 2)
hasil nomor: 17. (1, 4, 5, 2, 3)
hasil nomor: 18. (1, 4, 5, 3, 2)
hasil nomor: 19. (1, 5, 2, 3, 4)
hasil nomor: 20. (1, 5, 2, 4, 3)
hasil nomor: 21. (1, 5, 3, 2, 4)
hasil nomor: 22. (1, 5, 3, 4, 2)
hasil nomor: 23. (1, 5, 4, 2, 3)
hasil nomor: 24. (1, 5, 4, 3, 2)
hasil nomor: 25. (2, 1, 3, 4, 5)
hasil nomor: 26. (2, 1, 3, 5, 4)
hasil nomor: 27. (2, 1, 4, 3, 5)
hasil nomor: 28. (2, 1, 4, 5, 3)
hasil nomor: 29. (2, 1, 5, 3, 4)
hasil nomor: 30. (2, 1, 5, 4, 3)
hasil nomor: 31. (2, 3, 1, 4, 5)
hasil nomor: 32. (2, 3, 1, 5, 4)
hasil nomor: 33. (2, 3, 4, 1, 5)
hasil nomor: 34. (2, 3, 4, 5, 1)
hasil nomor: 35. (2, 3, 5, 1, 4)
hasil nomor: 36. (2, 3, 5, 4, 1)
hasil nomor: 37. (2, 4, 1, 3, 5)
hasil nomor: 38. (2, 4, 1, 5, 3)
hasil nomor: 39. (2, 4, 3, 1, 5)
hasil nomor: 40. (2, 4, 3, 5, 1)
hasil nomor: 41. (2, 4, 5, 1, 3)
hasil nomor: 42. (2, 4, 5, 3, 1)
hasil nomor: 43. (2, 5, 1, 3, 4)
hasil nomor: 44. (2, 5, 1, 4, 3)
hasil nomor: 45. (2, 5, 3, 1, 4)
hasil nomor: 46. (2, 5, 3, 4, 1)
hasil nomor: 47. (2, 5, 4, 1, 3)
hasil nomor: 48. (2, 5, 4, 3, 1)
hasil nomor: 49. (3, 1, 2, 4, 5)
hasil nomor: 50. (3, 1, 2, 5, 4)
hasil nomor: 51. (3, 1, 4, 2, 5)
hasil nomor: 52. (3, 1, 4, 5, 2)
hasil nomor: 53. (3, 1, 5, 2, 4)
hasil nomor: 54. (3, 1, 5, 4, 2)
hasil nomor: 55. (3, 2, 1, 4, 5)
hasil nomor: 56. (3, 2, 1, 5, 4)
hasil nomor: 57. (3, 2, 4, 1, 5)
hasil nomor: 58. (3, 2, 4, 5, 1)
hasil nomor: 59. (3, 2, 5, 1, 4)
hasil nomor: 60. (3, 2, 5, 4, 1)
hasil nomor: 61. (3, 4, 1, 2, 5)
hasil nomor: 62. (3, 4, 1, 5, 2)
hasil nomor: 63. (3, 4, 2, 1, 5)
hasil nomor: 64. (3, 4, 2, 5, 1)
hasil nomor: 65. (3, 4, 5, 1, 2)
hasil nomor: 66. (3, 4, 5, 2, 1)
hasil nomor: 67. (3, 5, 1, 2, 4)
hasil nomor: 68. (3, 5, 1, 4, 2)
hasil nomor: 69. (3, 5, 2, 1, 4)
hasil nomor: 70. (3, 5, 2, 4, 1)
hasil nomor: 71. (3, 5, 4, 1, 2)
hasil nomor: 72. (3, 5, 4, 2, 1)
hasil nomor: 73. (4, 1, 2, 3, 5)
hasil nomor: 74. (4, 1, 2, 5, 3)
hasil nomor: 75. (4, 1, 3, 2, 5)
hasil nomor: 76. (4, 1, 3, 5, 2)
hasil nomor: 77. (4, 1, 5, 2, 3)
hasil nomor: 78. (4, 1, 5, 3, 2)
hasil nomor: 79. (4, 2, 1, 3, 5)
hasil nomor: 80. (4, 2, 1, 5, 3)
hasil nomor: 81. (4, 2, 3, 1, 5)
hasil nomor: 82. (4, 2, 3, 5, 1)
hasil nomor: 83. (4, 2, 5, 1, 3)
hasil nomor: 84. (4, 2, 5, 3, 1)
hasil nomor: 85. (4, 3, 1, 2, 5)
hasil nomor: 86. (4, 3, 1, 5, 2)
hasil nomor: 87. (4, 3, 2, 1, 5)
hasil nomor: 88. (4, 3, 2, 5, 1)
hasil nomor: 89. (4, 3, 5, 1, 2)
hasil nomor: 90. (4, 3, 5, 2, 1)
hasil nomor: 91. (4, 5, 1, 2, 3)
hasil nomor: 92. (4, 5, 1, 3, 2)
hasil nomor: 93. (4, 5, 2, 1, 3)
hasil nomor: 94. (4, 5, 2, 3, 1)
hasil nomor: 95. (4, 5, 3, 1, 2)
hasil nomor: 96. (4, 5, 3, 2, 1)
hasil nomor: 97. (5, 1, 2, 3, 4)
hasil nomor: 98. (5, 1, 2, 4, 3)
hasil nomor: 99. (5, 1, 3, 2, 4)
hasil nomor: 100. (5, 1, 3, 4, 2)
hasil nomor: 101. (5, 1, 4, 2, 3)
hasil nomor: 102. (5, 1, 4, 3, 2)
hasil nomor: 103. (5, 2, 1, 3, 4)
hasil nomor: 104. (5, 2, 1, 4, 3)
hasil nomor: 105. (5, 2, 3, 1, 4)
hasil nomor: 106. (5, 2, 3, 4, 1)
hasil nomor: 107. (5, 2, 4, 1, 3)
hasil nomor: 108. (5, 2, 4, 3, 1)
hasil nomor: 109. (5, 3, 1, 2, 4)
hasil nomor: 110. (5, 3, 1, 4, 2)
hasil nomor: 111. (5, 3, 2, 1, 4)
hasil nomor: 112. (5, 3, 2, 4, 1)
hasil nomor: 113. (5, 3, 4, 1, 2)
hasil nomor: 114. (5, 3, 4, 2, 1)
hasil nomor: 115. (5, 4, 1, 2, 3)
hasil nomor: 116. (5, 4, 1, 3, 2)
hasil nomor: 117. (5, 4, 2, 1, 3)
hasil nomor: 118. (5, 4, 2, 3, 1)
hasil nomor: 119. (5, 4, 3, 1, 2)
hasil nomor: 120. (5, 4, 3, 2, 1)

jadi dari contoh kasus diatas terdapat 120 permutasi bedasarkan data yang kita input dalam variabel data_list mari kita kupas satu persatu

pertama kita import fungsi permutation dari modul itertools

from itertools import permutations

kemudian kita definisikan list yang akan kita hitung permutasinya menggunakan fungsi permutations

data_list = [1, 2, 3, 4, 5]

# penggunaan permutation
permutasi = permutations(data_list)

nah dari kode diatas variabel permutasi akan berisi object dari permutations(data_list) jika kita cetak menggunakan fungsi print hasilnya seperti ini

<itertools.permutations object at 0x7fc49ead8860>

nah untuk mengetahui hasil dari permutasinya kita perlu convert dulu menjadi list kemudian kita lakukan looping

for index, data in enumerate(list(permutasi), 1):
    print(f'hasil nomor: {index}. {data}')

Kombinasi

sekarang masuk ke kasus yang kedua yaitu kombinasi, sama seperti kasus sebalumnya kita akan menggunakan fungsi bawaan dari python, yaitu combinations penerapanya seperti ini

from itertools import combinations

data_list = [1, 2, 3, 4, 5]

kombinasi = combinations(data_list, r=2)

# cetak objects
print('object kombinasi', kombinasi)


# Cetak Hasil
for index, data in enumerate(list(kombinasi), 1):
    print(f'kombinasi ke: {index}. {data}')

jika kita jalankan hasilnya akan seperti ini

kombinasi ke: 1. (1, 2)
kombinasi ke: 2. (1, 3)
kombinasi ke: 3. (1, 4)
kombinasi ke: 4. (1, 5)
kombinasi ke: 5. (2, 3)
kombinasi ke: 6. (2, 4)
kombinasi ke: 7. (2, 5)
kombinasi ke: 8. (3, 4)
kombinasi ke: 9. (3, 5)
kombinasi ke: 10. (4, 5)

sama seperti sebelumnya yang kita konversi adalah object dari kombinasi yang tersimpan dalam variabel kombinasi yang kita conversi menjadi list dan kita looping

# Cetak Hasil
for index, data in enumerate(list(kombinasi), 1):
    print(f'kombinasi ke: {index}. {data}')

nah sampai disini dulu studi kasus kali ini source code materi kali ini dapat diakses di github, ikuti terus pesonainformatika, dan dapatkan studi kasus bahasa pemrograman lainya seperti  Java, Python  C++