Membuat Program Segitiga Pascal pada Python
Contents | |
---|---|
1. | Apa Itu Segitiga Pascal? |
2. | Algoritma Pembuatan Segitiga Pascal pada Python |
3. | Script Python Pembuatan Segitiga Pascal |
4. | Kesimpulan |
Sebagian besar dari kita tentu saja tidak asing dengan istilah segitiga pascal. Terutama yang hobi mengerjakan masalah matematika, seperti polynomial dll, akan sangat tidak asing dengan segitiga pascal.
Apa itu Segitiga Pascal?
Menurut wikipedia, segita pascal adalah suatu aturan geometri pada koefisien binomial dalam sebuah segitiga. Geometri tersebut ditemukan dan telah dikaji berulang-ulang oleh Blaise Pascal. Agak membingungkan ya pengertiannya, memang biasanya hanya menggunakan segitiga pascal tanpa mempedulikan pengertiannya.
Berikut ini adalah contoh segitiga pascal yang dibuat menggunakan python. Dan tentu saja, angka-angka berikut merupakan output pada console python
Contoh di atas adalah segitiga pascal dengan 8 baris. Selain polanya sesuai, posisi print diatur sedemikian rupa sehingga berbentuk seperti segitiga, dengan bagian puncak berada di tengah. Menarik bukan?
Untuk selanjutnya, akan dibahas bagaimana membuat program python yang mampu membuat segitiga pascal seperti di atas. Dimana input yang digunakan adalah N baris dan outputnya adalah segitiga pascal dengan N baris.
Algoritma Pembuatan Segitiga Pascal Pada Python
Sebelum membuat program segitiga pascal pada python, mari kita bahas dulu algoritmanya, agar pembuatan programnya menjadi lebih mudah.
Gambar di atas adalah diagram yang berisi beberapa baris awal dari segitiga pascal. Dilengkapi dengan grid untuk menunjukkan jumlah karakter setiap baris, termasuk spasi, dan susunan karakternya. Menggunakan diagram tersebut, mari kita susun algoritma untuk membuat segitiga pascal pada python.
- Pertama, segitiga pascal dimulai dengan baris pertama berisi 1 dan baris kedua berisi 1 1. Dua baris ini akan dibuat pertama, sedangkan baris-baris selanjutnya akan mengikuti.
- Setiap baris selalu diawali dengan angka 1, kita gunakan dalam membuat baris baru.
- Pola baris ke N dari segitiga pascal, adalah hasil penjumlahan dari baris sebelumnya. Dimana elemen ke i dari baris ke-N adalah hasil penjumlahan elemen ke i dan i-1 dari baris ke N-1, atau baris sebelumnya.
- Misalkan angka 3, elemen ke-1, pada baris ke-4, merupakan penjumlahan dari 1 dan 2 yang merupakan elemen baris ke-0 dan ke-1 dari baris ke-3.
- Ketika membuat baris baru, maka dilakukan loop penjumlahan terhadap elemen dari baris sebelumnya atau baris terakhir dari segitiga yang sudah dibuat.
- Pembuatan baris dimulai dari baris ke-3, setiap selesai dibuat satu baris, baris di masukkan ke dalam list yang berisi baris-baris sebelumnya.
- Pembuatan baris segitiga pascal dilakukan berulang hingga jumlah baris mencapai N.
- Setelah selesai membuatnya, tahap selanjutnya adalah melakukan print dengan format yang sesuai.
- Dari diagram segitiga pascal di atas, terlihat bahwa setiap baris memiliki jumlah karakter (termasuk spasi) yang sama dengan baris terakhir. Elemen awal memiliki banyak spasi dibandingkan dengan elemen selanjutnya.
- Baris terakhir memiliki jumlah 2xN-1 karakter, dimana contohnya baris ke-3 memiliki 7 elemen.
- Untungnya, string python memiliki formating untuk mencetak dengan format tersebut.
Oke, setelah memahami algoritma pembuatan segitiga pascal, saatnya menuangkannya ke dalam program python
Script Python untuk Segitiga Pascal
Berikut ini adalah script python lengkap untuk membuat segitiga pascal dengan N baris.
2 pascal = [[1], [1, 1]]
3
4 # Membuat N baris Pascal
5 for i in range(N-2):
6 baris_baru = [1]
7
8 # Baris ke-N
9 for j in range(len(pascal[-1]) - 1):
10 baris_baru.append(pascal[-1][j] + pascal[-1][j+1])
11
12 baris_baru.append(1)
13
14 pascal.append(baris_baru)
15
16 # Print dan Formating
17 baris_terakhir = list(map(str, pascal[-1]))
18 n_baris = len(" ".join(baris_terakhir))
19
20 for row in pascal:
21 row = list(map(str, row))
22 row = " ".join(row)
23
24 # Print dengan format center
25 print(row.center(n_baris))
Mari kita bahas satu persatu script python di atas.
- Pertama, kita buat variabel N yang berisi jumlah baris segitiga pascal dan variabel pascal yang merupakan list berisi baris segitiga pascal dalam list.
- Seperti yang sudah dibahas sebelumnya, variabel pascal sudah berisi baris pertama [1] dan kedua [1, 1] dari segitiga pascal.
- List python dipisahkan menggunakan koma (, ) tidak masalah, nanti kita ubah formatnya ketika sudah siap untuk di print.
- Kemudian, di baris ke-4, kita mulai melakukan loop untuk membuat seluruh baris segitiga pascal. Disini digunakan loop hingga N-2, karena 2 baris sudah dibuat sebelumny.
- Saatnya membuat baris baru pada variabel baris_baru. Ingat, setiap baris selalu dimulai dari angka 1, jadi kita masukkan dulu nilainya.
- Pada baris ke-9, buat loop untuk mengisi baris baru, ingat, baris ke-N dari segitiga pascal adalah penjumlahan dari elemen ke-n dan n+1 dari baris sebelumnya.
- Sehingga digunakan for loop dengan range N-1.
- setelah itu lakukan penjumlahan elemen ke-n dengan n+1 dari baris segitiga pascal sebelumnya, gunakan method .append() dari list python untuk menambahkan penjumlahan pada baris_baru
- Setelah elemen dari loop ditambahkan, saat nya menambahkan angka 1 pada elemen terakhir dari baris-baru. Yaitu pada script python baris ke-12.
- baris_baru yang sudah komplit kemudian di-append ke list pascal. Dan dengan begitu selesai list yang berisi seluruh baris segitiga pascal. Selanjutnya adalah bagaimana menampilkannya pada console.
- Semua baris memiliki jumlah karakter sesuai baris terakhir, termasuk spasi. Karena itu kita buat dulu string yang berisi semua elemen baris terakhir.
- Pertama, ubah dulu integer pada list pascal menjadi string pada baris ke-17. Proses ini menggunakan list comprehension
- Setelah itu, satukan semuanya menggunakan method .join() pada baris ke-18. Karena kita hanya butuh panjang datanya, gunakan len() dan simpan pada variabel n_baris.
- Gunakan loop pada baris ke-20 untuk seluruh baris list segitiga pascal, baris akan diprint per row dengan format tertentu.
- Ubah isi row menjadi string, seperti pada baris ke-17.
- Kemudian satukan menjadi 1 string dengan dipisahkan spasi, menggunakan method .join() dari string python. Seperti pada baris ke-18.
- row sudah dalam bentuk string yang berisi semua angka pada baris segitiga pascal. Kemudian print pada baris ke-25. Gunakan method .center(n_baris) agar semua baris yang di-print memiliki jumlah elemen yang sama, dan posisinya center.
Kesimpulan
Demikian proses pembuatan program python untuk membuat segitiga pascal yang memiliki N baris. Memang sih rada panjang penjelasannya, tapi worth it lah untuk dipelajari, karena banyak menggunakan konsep pemrograman bahasa python di dalamnya.
Posting Komentar untuk "Membuat Program Segitiga Pascal pada Python"