Berikut ini adalah pertanyaan dari naufalwiatra pada mata pelajaran TI untuk jenjang Sekolah Menengah Atas
Masukkan angka 5 (jika diisi 5 akan membentuk piramida sbb)
Jawaban dan Penjelasan
Berikut ini adalah pilihan jawaban terbaik dari pertanyaan diatas.
Kode Program (C++)
#include <iostream>
using namespace std;
int main() {
// n: untuk menyimpan masukan
// m: counter baris, untuk output spasi pada awal baris
int n, m=1;
cout << "Masukkan sebuah angka: ";
cin >> n;
cout << "Piramida terbalik yang dapat dibentuk:" << endl;
while (n >= 0) {
for (int i=0; i <= 2*n; i++) {
i <= n ? cout << i : cout << 2*n-i;
cout << " ";
}
cout << endl;
// spasi di awal baris
for (int i=0; i < m; i++) cout << " ";
n--; m++;
}
return 0;
}
Pembahasan
Pada program di atas, dideklarasikan 2 buah variabel, yaitu dan.
- Variabel digunakan sebagai"counter" angka yang dicetak.
- Variabel digunakan sebagai"counter" baris piramida yang dicetak, dan sebagai penghitung banyak spasi yang dibutuhkan di awal baris baru.
Untuk menghasilkan piramida terbalik, program di atas menggunakan looping utama . Kondisi dari adalah, di mana adalah angka masukan user. Di akhir blok looping \tt while, diperlukan dekrementasi (dengan ) agar nilai berkurang 1 setiap kembali ke awal blok. Kita juga perlu inkrementasi (dengan ) dalam setiap eksekusi blok .
Untuk mencetak angka pada setiap baris, digunakan looping , yang melakukan pencetakan angka 0 hingga , kemudian menurun hingga 0 lagi, untuk setiap baris, dengan nilai awal, atau nilai yang sudah berkurang pada iterasi ke-2 dan setelahnya.
Kita dapat menggunakan 2 skema secara sekuensial, yang pertama untuk angka menaik, dan yang kedua untuk angka menurun ketika sudah mencapai nilai . Namun pada program ini, dijadikan 1 saja, sehingga variabel perulangannya, yaitu , perlu diinkrementasi dari 0 hingga . Di dalam , terdapat "inline" , atau satu baris, yaitu pada baris: i <= n ? cout << i : cout << 2*n-i;
Artinya, jika kurang dari atau sama dengan, cetak , namun jika tidak (lebih dari ), cetak angka .
Contoh Hasil Eksekusi
Dengan masukan angka 5:
Masukkan sebuah angka: 5
Piramida terbalik yang dapat dibentuk:
0 1 2 3 4 5 4 3 2 1 0
0 1 2 3 4 3 2 1 0
0 1 2 3 2 1 0
0 1 2 1 0
0 1 0
0
Dengan masukan angka 9:
Masukkan sebuah angka: 9
Piramida terbalik yang dapat dibentuk:
0 1 2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 1 0
0 1 2 3 4 5 6 7 8 7 6 5 4 3 2 1 0
0 1 2 3 4 5 6 7 6 5 4 3 2 1 0
0 1 2 3 4 5 6 5 4 3 2 1 0
0 1 2 3 4 5 4 3 2 1 0
0 1 2 3 4 3 2 1 0
0 1 2 3 2 1 0
0 1 2 1 0
0 1 0
0
Dengan masukan angka 4:
Masukkan sebuah angka: 4
Piramida terbalik yang dapat dibentuk:
0 1 2 3 4 3 2 1 0
0 1 2 3 2 1 0
0 1 2 1 0
0 1 0
0
Semoga dengan pertanyaan yang sudah terjawab oleh henriyulianto dapat membantu memudahkan mengerjakan soal, tugas dan PR sekolah kalian.
Apabila terdapat kesalahan dalam mengerjakan soal, silahkan koreksi jawaban dengan mengirimkan email ke yomemimo.com melalui halaman Contact
Last Update: Wed, 12 Oct 22