SlideShare a Scribd company logo
1 of 10
**2.6. (Sum the digits in an integer)
Write a program that reads an integer between 0 and 1000 and adds all the digits in
the integer. For example, if an integer is 932, the sum of all its digits is 14.
Hint: Use the % operator to extract digits, and use the / operator to remove the
extracted digit. For instance, 932 % 10 = 2 and 932 / 10 = 93.
Here is a sample run:
Enter a number between 0 and 1000: 999
The sum of the digits is 27
Untuk menjumlahkan digit-digit dalam bilangan dalam rentang 0 hingga 1000, kita bisa
harus mengekstrak bilangan ini ke dalam ratusan, puluhan dan satuan. Misal, bilangan 932 dapat
diekstrak menjadi 9 ratusan 3 puluhan dan 2 satuan. Untuk mengekstrak bilangan ini, kita bisa
menggunakan operasi pembagian integer dan operasi modulo (sisa pembagian). Misal, operasi
pembagian aritmatika 932 dengan 10 adalah sebagai berikut:
932 ÷ 10 = 93,2
Sementara, hasil pembagian integer antara 932 dengan 10 adalah sebagai berikut:
932 ÷ 10 = 93
Pada pembagian integer ini, bagian pecahan ini langsung dipotong begitu saja. Operasi modulo
adalah operasi untuk mendapatkan sisa pembagian dari dua operand. Operasi modulo ini
dilambangkan 𝑎 𝑚𝑜𝑑 𝑏 dimana a dan b adalah bilangan bulat. Misal, langkah-langkah melakukan
operasi 932 𝑚𝑜𝑑 10 adalah sebagai berikut:
Karena, 932 ÷ 10 = 93 sisa 2 sehingga 932 𝑚𝑜𝑑 10 = 2.
Pada kasus ini, kita bisa mengekstraksi bilangan 932 menggunakan operator modulo dan
pembagian integer dalam beberapa langkah berikut:
Langkah 1 : Satuan dari 932 didapat dari 932 𝑚𝑜𝑑 10 = 2 sehingga satuan dari 932 adalah 2.
Kemudian, bilangan 932 dioperasikan dengan pembagian integer dengan 10, 932 ÷
10 = 93, untuk diekstrasi sebagai puluhan pada langkah berikutnya.
Langkah 2 : Hasil operasi pembagian integer pada langkah 1 (yaitu, 93) digunakan untuk
mengekstrasi puluhan. Bilangan 93 ini dioperasikan modulo dengan 10,
sehingga 93 𝑚𝑜𝑑 10 = 3. Sehingga, puluhan dari 932 adalah 3. Kemudian, bilangan
93 ini dioperasikan integer dengan 10, 93 ÷ 10 = 9 untuk diekstrasi sebagai ratusan
pada langkah berikutnya.
Langkah 3 : Hasil operasi pembagian integer pada langkah 2 (yaitu, 9) digunakan untuk
mengekstaksi ratusan. Bilangan 9 ini dioperasikan modulo dengan 9,
sehingga 9 𝑚𝑜𝑑 10 = 9. Sehingga, ratusan dari 932 adalah 9.
Kemudian ratusan, puluhan dan satuan dari 932 ini dijumlahkan (9 + 3 + 2) menghasilkan 14.
Langkah-langkah menjumlahkan digit-digit bilangan dalam rentang 0 hingga 1000 ini dapat
diterjemahkan dalam baris kode C++ sebagai berikut:
1 #include <iostream>
2 using namespace std;
3
4 /*
5 =====================================================
6 02.06. Sum the digits in an integer
7 By : Putra
8 Lang : idn (Indonesia)
9 -----------------------------------------------------
10 Masalah :
11
12 Tuliskan program yang membaca bilangan mulai dari
13 0 hingga 1000. Kemudian, digit-digit bilangan ini
14 dijumlahkan. Misal, pengguna menginput bilangan
15 932 maka program akan menampilkan jumlah digit-
16 digit bilangan ini ( 9 + 3 + 2 ), yaitu 14.
17
18 Petunjuk: Gunakan operator % untuk mengekstrak
19 digit-digit bilangan ini. Dan, gunakan operator /
20 untuk menghilangkan digit yang telah diekstrak.
21 Misal, 932 % 10 = 2 dan 932 / 10 = 93.
22
23 =====================================================
24 */
25
26 int main() {
27 cout << endl
28 <<"======================================================="
29 << endl
30 << endl
31 << "02.06. Sum the digits in an integer"
32 << endl
33 << endl
34 << "-------------------------------------------------------"
35 << endl;
36
37 // 1. Input bilangan integer dalam rentang 0 hingga 1000
38 cout << "Input bilangan antara 0 hingga 1000 (Misal, 932) : ";
39 // int non-negatif dengan rentang lebih pendek.
40 unsigned short bilangan;
41 cin >> bilangan;
42
43 // 2. Mengekstrak satuan bilangan ini
44 unsigned short satuan;
45 unsigned short sisaBilangan;
46 satuan = bilangan % 10;
47 sisaBilangan = bilangan / 10;
48
49 // 3. Mengekstrak puluhan bilangan
50 unsigned short puluhan;
51 puluhan = sisaBilangan % 10;
52 sisaBilangan = sisaBilangan / 10;
53
54 // 4. Mengekstrak ratusan bilangan
55 unsigned short ratusan;
56 ratusan = sisaBilangan % 10;
57 sisaBilangan = sisaBilangan / 10;
58
59 // 5. Menampilkan jumlah digit
60 unsigned short jumlahDigit = ratusan + puluhan + satuan;
61 cout << "Anda menginput bilangan " << bilangan << endl;
62
63 cout << "Jadi, jumlah digit bilangan " << bilangan
64 << " adalah " << endl
65 << "(" << ratusan << " + " << puluhan << " + " << satuan << " )"
66 << endl
67 << " = " << jumlahDigit << ". "
68 << endl
69 << "======================================================="
70 << endl
71 << endl;
72
73 return 0;
74 }
Baris kode ini terdiri dari langkah-langkah berikut:
Langkah 1. Menerima input bilangan dalam rentang 0 hingga 1000
Pada langkah 1 ini, program menerima input bilangan integer yang ditampung dalam
variabel dengan nama bilangan seperti yang ditunjukkan pada baris kode ke-40 berikut:
37 // 1. Input bilangan integer dalam rentang 0 hingga 1000
38 cout << "Input bilangan antara 0 hingga 1000 (Misal, 932) : ";
39 // int non-negatif dengan rentang lebih pendek.
40 unsigned short bilangan;
41 cin >> bilangan;
Variabel bilangan ini diberikan tipe data unsigned short agar lebih efisien daripada menggunakan
int. Karena ruang yang digunakan untuk menyimpan variabel unsigned short hanya 16 bit
dibandingkan int sebesar 32 bit. Selain itu, variabel bilangan ini hanya menerima input dalam
rentang 0 hingga 1000 saja. Artinya, rentang ini masih jauh dari rentang maksimum yang dapat
disimpan oleh tipe data unsigned short, yaitu antara 0 hingga 216
– 1 (0 hingga 65.535).
Langkah 2. Mengekstraksi satuan dari bilangan ini.
Untuk mengekstraksi satuan dari nilai yang tersimpan dalam variabel bilangan, baris kode
yang digunakan adalah:
43 // 2. Mengekstrak satuan bilangan ini
44 unsigned short satuan;
45 unsigned short sisaBilangan;
46 satuan = bilangan % 10;
47 sisaBilangan = bilangan / 10;
Hasil ekstraksi angka satuan dalam variabel bilangan disimpan dalam variabel dengan nama
satuan.
44 unsigned short satuan;
Variabel satuan ini digunakan untuk menyimpan hasil operasi modulo (%) antara nilai yang
tersimpan dalam variabel bilangan dengan 10. Variabel dengan nama satuan ini menyimpan nilai
hasil ekstraksi angka satuan dari nilai yang tersimpan dalam variabel bilangan.
46 satuan = bilangan % 10;
Variabel dengan nama sisaBilangan ini sengaja didefinisikan untuk menampung hasil pembagian
integer antara nilai yang tersimpan dalam variabel bilangan dengan 10. Nilai dalam variabel ini
akan terus berubah pada langkah-langkah berikutnya.
45 unsigned short sisaBilangan;
47 sisaBilangan = bilangan / 10;
Langkah 3. Mengekstraksi puluhan dari bilangan ini.
Untuk mengekstraksi puluhan dari nilai yang tersimpan dalam variabel bilangan, baris kode
yang digunakan adalah:
49 // 3. Mengekstrak puluhan bilangan
50 unsigned short puluhan;
51 puluhan = sisaBilangan % 10;
52 sisaBilangan = sisaBilangan / 10;
Hasil ekstraksi angka puluhan dalam variabel bilangan disimpan dalam variabel dengan nama
puluhan.
50 unsigned short puluhan;
Variabel puluhan ini digunakan untuk menyimpan hasil operasi modulo (%) antara nilai yang
tersimpan dalam variabel sisaBilangan dengan 10. Variabel dengan nama puluhan ini menyimpan
nilai hasil ekstraksi angka puluhan dari nilai yang tersimpan dalam variabel sisaBilangan.
51 puluhan = sisaBilangan % 10;
Kemudian, nilai variabel sisaBilangan diubah dengan mengoperasikan pembagian integer nilai
dalam sisaBilangan sebelumnya dengan bilangan 10.
52 sisaBilangan = sisaBilangan / 10;
Padahal, operasi ini bisa dituliskan dengan division assignment operation seperti ini:
sisaBilangan /= 10;
bukan?
Langkah 4. Mengekstraksi ratusan dari bilangan ini.
Untuk mengekstraksi ratusan dari nilai yang tersimpan dalam variabel bilangan, baris kode
yang digunakan adalah:
54 // 4. Mengekstrak ratusan bilangan
55 unsigned short ratusan;
56 ratusan = sisaBilangan % 10;
57 sisaBilangan = sisaBilangan / 10;
Hasil ekstraksi angka ratusan dalam variabel bilangan disimpan dalam variabel dengan nama
ratusan.
55 unsigned short ratusan;
Variabel ratusan ini digunakan untuk menyimpan hasil operasi modulo (%) antara nilai yang
tersimpan dalam variabel sisaBilangan dengan 10. Variabel dengan nama ratusan ini menyimpan
nilai hasil ekstraksi angka ratusan dari nilai yang tersimpan dalam variabel sisaBilangan.
56 ratusan = sisaBilangan % 10;
Kemudian, nilai variabel sisaBilangan diubah dengan mengoperasikan pembagian integer nilai
dalam sisaBilangan sebelumnya dengan bilangan 10.
57 sisaBilangan = sisaBilangan / 10;
Padahal, operasi ini bisa dituliskan dengan division assignment operation seperti ini:
sisaBilangan /= 10;
bukan?
Langkah 5. Menampilkan jumlah digit-digit dari bilangan ini.
Setelah digit ratusan, puluhan dan satuan diekstaksi, ketiga digit ini dijumlahkan dan
hasilnya disimpan dalam variabel jumlahDigit.
59 // 5. Menampilkan jumlah digit
60 unsigned short jumlahDigit = ratusan + puluhan + satuan;
Setelah baris kode ini dikompilasi, program ini bisa dijalankan. Jika pengguna menginput
nilai 932 (terdiri dari 3 digit), maka output yang ditampilkan oleh program adalah sebagai berikut:
Jika pengguna menginput nilai 35 (terdiri dari 2 digit saja) maka output yang dihasilkan adalah
sebagai berikut:
Jika pengguna menginput bilangan 9 (hanya terdiri dari 1 digit saja) maka output yang dihasilkan
adalah sebagai berikut:
Fitur pengembangan dari program ini berikutnya adalah perlu adanya pengecekan input yang
dilakukan oleh pengguna. Pengecekan ini digunakan untuk menampilkan pesan error ketika
pengguna menginput bilangan integer di luar rentang 0 hingga 1000, menginput bilangan selain
integer atau menginput nilai yang bukan bilangan. Pengecekan ini menggunakan operator
percabangan (if … then …). Fitur pengembangan selanjutnya adalah menawarkan pengguna untuk
menginput nilai atau tidak menggunakan operator percabangan (if … then …) dan perulangan
while loop atau for loop.
Sumber Rujukan:
Liang. 2014. Introduction to Programming with C++ 3rd Edition. London: Pearson Education.
https://www.pearson.com/en-us/subject-catalog/p/Liang-Companion-Website-for-
Introduction-to-Programming-with-C-Access-to-Videonotes-3rd-
Edition/P200000003422/978013338026

More Related Content

Similar to 2.6. Jumlah Digit dalam Bilangan Ratusan Menggunakan C++

Similar to 2.6. Jumlah Digit dalam Bilangan Ratusan Menggunakan C++ (20)

Sistem bilangan3
Sistem bilangan3Sistem bilangan3
Sistem bilangan3
 
Sistem bilangan2
Sistem bilangan2Sistem bilangan2
Sistem bilangan2
 
Sistem bilangan2
Sistem bilangan2Sistem bilangan2
Sistem bilangan2
 
Sistem bilangan2
Sistem bilangan2Sistem bilangan2
Sistem bilangan2
 
Sistem bilangan2
Sistem bilangan2Sistem bilangan2
Sistem bilangan2
 
Sistem bilangan3
Sistem bilangan3Sistem bilangan3
Sistem bilangan3
 
Punya leli
Punya leliPunya leli
Punya leli
 
Bab ii keg pembel 6 array
Bab ii keg pembel 6  arrayBab ii keg pembel 6  array
Bab ii keg pembel 6 array
 
Basic Counting
Basic CountingBasic Counting
Basic Counting
 
Sistem_bilangan.ppt
Sistem_bilangan.pptSistem_bilangan.ppt
Sistem_bilangan.ppt
 
Sistem bilangan
Sistem bilanganSistem bilangan
Sistem bilangan
 
Sistem bilangan
Sistem bilanganSistem bilangan
Sistem bilangan
 
Sistem bilangan
Sistem bilanganSistem bilangan
Sistem bilangan
 
Sistem bilangan
Sistem bilanganSistem bilangan
Sistem bilangan
 
Soal UAS Pemrograman Dasar Kelas 11 SMK semester ganjil tahun ajaran 2014-2015
Soal UAS Pemrograman Dasar Kelas 11 SMK semester ganjil tahun ajaran 2014-2015Soal UAS Pemrograman Dasar Kelas 11 SMK semester ganjil tahun ajaran 2014-2015
Soal UAS Pemrograman Dasar Kelas 11 SMK semester ganjil tahun ajaran 2014-2015
 
Soalprogdasx
SoalprogdasxSoalprogdasx
Soalprogdasx
 
Metode numerik-rinaldi-munir-libre
Metode numerik-rinaldi-munir-libreMetode numerik-rinaldi-munir-libre
Metode numerik-rinaldi-munir-libre
 
Pertemuan 10 sistem bilangan
Pertemuan 10 sistem bilanganPertemuan 10 sistem bilangan
Pertemuan 10 sistem bilangan
 
Fungsi grafik di matlab
Fungsi grafik di matlabFungsi grafik di matlab
Fungsi grafik di matlab
 
Pengulangan Visual Basic
Pengulangan Visual BasicPengulangan Visual Basic
Pengulangan Visual Basic
 

More from BayuYudhaSaputra

02.19. Menentukan Luas Segitiga Sembarang Menggunakan Bahasa Pemrograman C++
02.19. Menentukan Luas Segitiga Sembarang Menggunakan Bahasa Pemrograman C++02.19. Menentukan Luas Segitiga Sembarang Menggunakan Bahasa Pemrograman C++
02.19. Menentukan Luas Segitiga Sembarang Menggunakan Bahasa Pemrograman C++BayuYudhaSaputra
 
02.17. Menentukan Temperatre Wind-Chill Menggunakan Bahasa Pemrograman C++
02.17. Menentukan Temperatre Wind-Chill Menggunakan Bahasa Pemrograman C++02.17. Menentukan Temperatre Wind-Chill Menggunakan Bahasa Pemrograman C++
02.17. Menentukan Temperatre Wind-Chill Menggunakan Bahasa Pemrograman C++BayuYudhaSaputra
 
02.13. Menghitung Bunga Majemuk Menggunakan Bahasa Pemrograman C++
02.13. Menghitung Bunga Majemuk Menggunakan Bahasa Pemrograman C++02.13. Menghitung Bunga Majemuk Menggunakan Bahasa Pemrograman C++
02.13. Menghitung Bunga Majemuk Menggunakan Bahasa Pemrograman C++BayuYudhaSaputra
 
2.8. Menampilkan GMT menggunakan bahasa pemrograman C++
2.8. Menampilkan GMT menggunakan bahasa pemrograman C++2.8. Menampilkan GMT menggunakan bahasa pemrograman C++
2.8. Menampilkan GMT menggunakan bahasa pemrograman C++BayuYudhaSaputra
 
Lembar Kerja Peserta DIdik Penjumlahan Bilangan cacah
Lembar Kerja Peserta DIdik Penjumlahan Bilangan cacahLembar Kerja Peserta DIdik Penjumlahan Bilangan cacah
Lembar Kerja Peserta DIdik Penjumlahan Bilangan cacahBayuYudhaSaputra
 
1 1 01b2_lkpd_pengenalan_bilangan_cacah_antara_11_sampai_19
1 1 01b2_lkpd_pengenalan_bilangan_cacah_antara_11_sampai_191 1 01b2_lkpd_pengenalan_bilangan_cacah_antara_11_sampai_19
1 1 01b2_lkpd_pengenalan_bilangan_cacah_antara_11_sampai_19BayuYudhaSaputra
 
1 1 01b1_lkpd_pengenalan_bilangan_cacah_antara_0_sampai_10
1 1 01b1_lkpd_pengenalan_bilangan_cacah_antara_0_sampai_101 1 01b1_lkpd_pengenalan_bilangan_cacah_antara_0_sampai_10
1 1 01b1_lkpd_pengenalan_bilangan_cacah_antara_0_sampai_10BayuYudhaSaputra
 

More from BayuYudhaSaputra (9)

02.19. Menentukan Luas Segitiga Sembarang Menggunakan Bahasa Pemrograman C++
02.19. Menentukan Luas Segitiga Sembarang Menggunakan Bahasa Pemrograman C++02.19. Menentukan Luas Segitiga Sembarang Menggunakan Bahasa Pemrograman C++
02.19. Menentukan Luas Segitiga Sembarang Menggunakan Bahasa Pemrograman C++
 
02.17. Menentukan Temperatre Wind-Chill Menggunakan Bahasa Pemrograman C++
02.17. Menentukan Temperatre Wind-Chill Menggunakan Bahasa Pemrograman C++02.17. Menentukan Temperatre Wind-Chill Menggunakan Bahasa Pemrograman C++
02.17. Menentukan Temperatre Wind-Chill Menggunakan Bahasa Pemrograman C++
 
02.13. Menghitung Bunga Majemuk Menggunakan Bahasa Pemrograman C++
02.13. Menghitung Bunga Majemuk Menggunakan Bahasa Pemrograman C++02.13. Menghitung Bunga Majemuk Menggunakan Bahasa Pemrograman C++
02.13. Menghitung Bunga Majemuk Menggunakan Bahasa Pemrograman C++
 
2.8. Menampilkan GMT menggunakan bahasa pemrograman C++
2.8. Menampilkan GMT menggunakan bahasa pemrograman C++2.8. Menampilkan GMT menggunakan bahasa pemrograman C++
2.8. Menampilkan GMT menggunakan bahasa pemrograman C++
 
Logaritma (Log0001)
Logaritma (Log0001)Logaritma (Log0001)
Logaritma (Log0001)
 
Fungsi Kuadrat FK0001
Fungsi Kuadrat FK0001Fungsi Kuadrat FK0001
Fungsi Kuadrat FK0001
 
Lembar Kerja Peserta DIdik Penjumlahan Bilangan cacah
Lembar Kerja Peserta DIdik Penjumlahan Bilangan cacahLembar Kerja Peserta DIdik Penjumlahan Bilangan cacah
Lembar Kerja Peserta DIdik Penjumlahan Bilangan cacah
 
1 1 01b2_lkpd_pengenalan_bilangan_cacah_antara_11_sampai_19
1 1 01b2_lkpd_pengenalan_bilangan_cacah_antara_11_sampai_191 1 01b2_lkpd_pengenalan_bilangan_cacah_antara_11_sampai_19
1 1 01b2_lkpd_pengenalan_bilangan_cacah_antara_11_sampai_19
 
1 1 01b1_lkpd_pengenalan_bilangan_cacah_antara_0_sampai_10
1 1 01b1_lkpd_pengenalan_bilangan_cacah_antara_0_sampai_101 1 01b1_lkpd_pengenalan_bilangan_cacah_antara_0_sampai_10
1 1 01b1_lkpd_pengenalan_bilangan_cacah_antara_0_sampai_10
 

Recently uploaded

TUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdf
TUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdfTUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdf
TUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdfElaAditya
 
Dinamika Hidrosfer geografi kelas X genap
Dinamika Hidrosfer geografi kelas X genapDinamika Hidrosfer geografi kelas X genap
Dinamika Hidrosfer geografi kelas X genapsefrida3
 
Bab 6 Kreatif Mengungap Rasa dan Realitas.pdf
Bab 6 Kreatif Mengungap Rasa dan Realitas.pdfBab 6 Kreatif Mengungap Rasa dan Realitas.pdf
Bab 6 Kreatif Mengungap Rasa dan Realitas.pdfbibizaenab
 
Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdf
Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdfContoh Laporan Observasi Pembelajaran Rekan Sejawat.pdf
Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdfCandraMegawati
 
2 KISI-KISI Ujian Sekolah Dasar mata pelajaranPPKn 2024.pdf
2 KISI-KISI Ujian Sekolah Dasar  mata pelajaranPPKn 2024.pdf2 KISI-KISI Ujian Sekolah Dasar  mata pelajaranPPKn 2024.pdf
2 KISI-KISI Ujian Sekolah Dasar mata pelajaranPPKn 2024.pdfsdn3jatiblora
 
JAWAPAN BAB 1 DAN BAB 2 SAINS TINGKATAN 5
JAWAPAN BAB 1 DAN BAB 2 SAINS TINGKATAN 5JAWAPAN BAB 1 DAN BAB 2 SAINS TINGKATAN 5
JAWAPAN BAB 1 DAN BAB 2 SAINS TINGKATAN 5ssuserd52993
 
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKAMODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKAAndiCoc
 
Aksi Nyata Modul 1.1 Calon Guru Penggerak
Aksi Nyata Modul 1.1 Calon Guru PenggerakAksi Nyata Modul 1.1 Calon Guru Penggerak
Aksi Nyata Modul 1.1 Calon Guru Penggeraksupriadi611
 
Modul Ajar Pendidikan Pancasila Kelas 5 Fase C
Modul Ajar Pendidikan Pancasila Kelas 5 Fase CModul Ajar Pendidikan Pancasila Kelas 5 Fase C
Modul Ajar Pendidikan Pancasila Kelas 5 Fase CAbdiera
 
11 PPT Pancasila sebagai Paradigma Kehidupan dalam Masyarakat.pptx
11 PPT Pancasila sebagai Paradigma Kehidupan dalam Masyarakat.pptx11 PPT Pancasila sebagai Paradigma Kehidupan dalam Masyarakat.pptx
11 PPT Pancasila sebagai Paradigma Kehidupan dalam Masyarakat.pptxMiftahunnajahTVIBS
 
Paparan Refleksi Lokakarya program sekolah penggerak.pptx
Paparan Refleksi Lokakarya program sekolah penggerak.pptxPaparan Refleksi Lokakarya program sekolah penggerak.pptx
Paparan Refleksi Lokakarya program sekolah penggerak.pptxIgitNuryana13
 
CAPACITY BUILDING Materi Saat di Lokakarya 7
CAPACITY BUILDING Materi Saat di Lokakarya 7CAPACITY BUILDING Materi Saat di Lokakarya 7
CAPACITY BUILDING Materi Saat di Lokakarya 7IwanSumantri7
 
Dampak Pendudukan Jepang.pptx indonesia1
Dampak Pendudukan Jepang.pptx indonesia1Dampak Pendudukan Jepang.pptx indonesia1
Dampak Pendudukan Jepang.pptx indonesia1udin100
 
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMM
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMMLaporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMM
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMMmulyadia43
 
LK.01._LK_Peta_Pikir modul 1.3_Kel1_NURYANTI_101.docx
LK.01._LK_Peta_Pikir modul 1.3_Kel1_NURYANTI_101.docxLK.01._LK_Peta_Pikir modul 1.3_Kel1_NURYANTI_101.docx
LK.01._LK_Peta_Pikir modul 1.3_Kel1_NURYANTI_101.docxPurmiasih
 
Tugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docx
Tugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docxTugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docx
Tugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docxmawan5982
 
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptxBab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptxssuser35630b
 
Keterampilan menyimak kelas bawah tugas UT
Keterampilan menyimak kelas bawah tugas UTKeterampilan menyimak kelas bawah tugas UT
Keterampilan menyimak kelas bawah tugas UTIndraAdm
 
PELAKSANAAN + Link2 Materi TRAINING "Effective SUPERVISORY & LEADERSHIP Sk...
PELAKSANAAN  + Link2 Materi TRAINING "Effective  SUPERVISORY &  LEADERSHIP Sk...PELAKSANAAN  + Link2 Materi TRAINING "Effective  SUPERVISORY &  LEADERSHIP Sk...
PELAKSANAAN + Link2 Materi TRAINING "Effective SUPERVISORY & LEADERSHIP Sk...Kanaidi ken
 
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptx
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptxRefleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptx
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptxIrfanAudah1
 

Recently uploaded (20)

TUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdf
TUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdfTUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdf
TUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdf
 
Dinamika Hidrosfer geografi kelas X genap
Dinamika Hidrosfer geografi kelas X genapDinamika Hidrosfer geografi kelas X genap
Dinamika Hidrosfer geografi kelas X genap
 
Bab 6 Kreatif Mengungap Rasa dan Realitas.pdf
Bab 6 Kreatif Mengungap Rasa dan Realitas.pdfBab 6 Kreatif Mengungap Rasa dan Realitas.pdf
Bab 6 Kreatif Mengungap Rasa dan Realitas.pdf
 
Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdf
Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdfContoh Laporan Observasi Pembelajaran Rekan Sejawat.pdf
Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdf
 
2 KISI-KISI Ujian Sekolah Dasar mata pelajaranPPKn 2024.pdf
2 KISI-KISI Ujian Sekolah Dasar  mata pelajaranPPKn 2024.pdf2 KISI-KISI Ujian Sekolah Dasar  mata pelajaranPPKn 2024.pdf
2 KISI-KISI Ujian Sekolah Dasar mata pelajaranPPKn 2024.pdf
 
JAWAPAN BAB 1 DAN BAB 2 SAINS TINGKATAN 5
JAWAPAN BAB 1 DAN BAB 2 SAINS TINGKATAN 5JAWAPAN BAB 1 DAN BAB 2 SAINS TINGKATAN 5
JAWAPAN BAB 1 DAN BAB 2 SAINS TINGKATAN 5
 
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKAMODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA
 
Aksi Nyata Modul 1.1 Calon Guru Penggerak
Aksi Nyata Modul 1.1 Calon Guru PenggerakAksi Nyata Modul 1.1 Calon Guru Penggerak
Aksi Nyata Modul 1.1 Calon Guru Penggerak
 
Modul Ajar Pendidikan Pancasila Kelas 5 Fase C
Modul Ajar Pendidikan Pancasila Kelas 5 Fase CModul Ajar Pendidikan Pancasila Kelas 5 Fase C
Modul Ajar Pendidikan Pancasila Kelas 5 Fase C
 
11 PPT Pancasila sebagai Paradigma Kehidupan dalam Masyarakat.pptx
11 PPT Pancasila sebagai Paradigma Kehidupan dalam Masyarakat.pptx11 PPT Pancasila sebagai Paradigma Kehidupan dalam Masyarakat.pptx
11 PPT Pancasila sebagai Paradigma Kehidupan dalam Masyarakat.pptx
 
Paparan Refleksi Lokakarya program sekolah penggerak.pptx
Paparan Refleksi Lokakarya program sekolah penggerak.pptxPaparan Refleksi Lokakarya program sekolah penggerak.pptx
Paparan Refleksi Lokakarya program sekolah penggerak.pptx
 
CAPACITY BUILDING Materi Saat di Lokakarya 7
CAPACITY BUILDING Materi Saat di Lokakarya 7CAPACITY BUILDING Materi Saat di Lokakarya 7
CAPACITY BUILDING Materi Saat di Lokakarya 7
 
Dampak Pendudukan Jepang.pptx indonesia1
Dampak Pendudukan Jepang.pptx indonesia1Dampak Pendudukan Jepang.pptx indonesia1
Dampak Pendudukan Jepang.pptx indonesia1
 
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMM
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMMLaporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMM
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMM
 
LK.01._LK_Peta_Pikir modul 1.3_Kel1_NURYANTI_101.docx
LK.01._LK_Peta_Pikir modul 1.3_Kel1_NURYANTI_101.docxLK.01._LK_Peta_Pikir modul 1.3_Kel1_NURYANTI_101.docx
LK.01._LK_Peta_Pikir modul 1.3_Kel1_NURYANTI_101.docx
 
Tugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docx
Tugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docxTugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docx
Tugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docx
 
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptxBab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
 
Keterampilan menyimak kelas bawah tugas UT
Keterampilan menyimak kelas bawah tugas UTKeterampilan menyimak kelas bawah tugas UT
Keterampilan menyimak kelas bawah tugas UT
 
PELAKSANAAN + Link2 Materi TRAINING "Effective SUPERVISORY & LEADERSHIP Sk...
PELAKSANAAN  + Link2 Materi TRAINING "Effective  SUPERVISORY &  LEADERSHIP Sk...PELAKSANAAN  + Link2 Materi TRAINING "Effective  SUPERVISORY &  LEADERSHIP Sk...
PELAKSANAAN + Link2 Materi TRAINING "Effective SUPERVISORY & LEADERSHIP Sk...
 
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptx
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptxRefleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptx
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptx
 

2.6. Jumlah Digit dalam Bilangan Ratusan Menggunakan C++

  • 1. **2.6. (Sum the digits in an integer) Write a program that reads an integer between 0 and 1000 and adds all the digits in the integer. For example, if an integer is 932, the sum of all its digits is 14. Hint: Use the % operator to extract digits, and use the / operator to remove the extracted digit. For instance, 932 % 10 = 2 and 932 / 10 = 93. Here is a sample run: Enter a number between 0 and 1000: 999 The sum of the digits is 27 Untuk menjumlahkan digit-digit dalam bilangan dalam rentang 0 hingga 1000, kita bisa harus mengekstrak bilangan ini ke dalam ratusan, puluhan dan satuan. Misal, bilangan 932 dapat diekstrak menjadi 9 ratusan 3 puluhan dan 2 satuan. Untuk mengekstrak bilangan ini, kita bisa menggunakan operasi pembagian integer dan operasi modulo (sisa pembagian). Misal, operasi pembagian aritmatika 932 dengan 10 adalah sebagai berikut: 932 ÷ 10 = 93,2 Sementara, hasil pembagian integer antara 932 dengan 10 adalah sebagai berikut: 932 ÷ 10 = 93 Pada pembagian integer ini, bagian pecahan ini langsung dipotong begitu saja. Operasi modulo adalah operasi untuk mendapatkan sisa pembagian dari dua operand. Operasi modulo ini dilambangkan 𝑎 𝑚𝑜𝑑 𝑏 dimana a dan b adalah bilangan bulat. Misal, langkah-langkah melakukan operasi 932 𝑚𝑜𝑑 10 adalah sebagai berikut:
  • 2. Karena, 932 ÷ 10 = 93 sisa 2 sehingga 932 𝑚𝑜𝑑 10 = 2. Pada kasus ini, kita bisa mengekstraksi bilangan 932 menggunakan operator modulo dan pembagian integer dalam beberapa langkah berikut: Langkah 1 : Satuan dari 932 didapat dari 932 𝑚𝑜𝑑 10 = 2 sehingga satuan dari 932 adalah 2. Kemudian, bilangan 932 dioperasikan dengan pembagian integer dengan 10, 932 ÷ 10 = 93, untuk diekstrasi sebagai puluhan pada langkah berikutnya. Langkah 2 : Hasil operasi pembagian integer pada langkah 1 (yaitu, 93) digunakan untuk mengekstrasi puluhan. Bilangan 93 ini dioperasikan modulo dengan 10, sehingga 93 𝑚𝑜𝑑 10 = 3. Sehingga, puluhan dari 932 adalah 3. Kemudian, bilangan 93 ini dioperasikan integer dengan 10, 93 ÷ 10 = 9 untuk diekstrasi sebagai ratusan pada langkah berikutnya. Langkah 3 : Hasil operasi pembagian integer pada langkah 2 (yaitu, 9) digunakan untuk mengekstaksi ratusan. Bilangan 9 ini dioperasikan modulo dengan 9, sehingga 9 𝑚𝑜𝑑 10 = 9. Sehingga, ratusan dari 932 adalah 9. Kemudian ratusan, puluhan dan satuan dari 932 ini dijumlahkan (9 + 3 + 2) menghasilkan 14. Langkah-langkah menjumlahkan digit-digit bilangan dalam rentang 0 hingga 1000 ini dapat diterjemahkan dalam baris kode C++ sebagai berikut: 1 #include <iostream> 2 using namespace std; 3 4 /* 5 ===================================================== 6 02.06. Sum the digits in an integer 7 By : Putra 8 Lang : idn (Indonesia) 9 ----------------------------------------------------- 10 Masalah : 11 12 Tuliskan program yang membaca bilangan mulai dari 13 0 hingga 1000. Kemudian, digit-digit bilangan ini 14 dijumlahkan. Misal, pengguna menginput bilangan 15 932 maka program akan menampilkan jumlah digit-
  • 3. 16 digit bilangan ini ( 9 + 3 + 2 ), yaitu 14. 17 18 Petunjuk: Gunakan operator % untuk mengekstrak 19 digit-digit bilangan ini. Dan, gunakan operator / 20 untuk menghilangkan digit yang telah diekstrak. 21 Misal, 932 % 10 = 2 dan 932 / 10 = 93. 22 23 ===================================================== 24 */ 25 26 int main() { 27 cout << endl 28 <<"=======================================================" 29 << endl 30 << endl 31 << "02.06. Sum the digits in an integer" 32 << endl 33 << endl 34 << "-------------------------------------------------------" 35 << endl; 36 37 // 1. Input bilangan integer dalam rentang 0 hingga 1000 38 cout << "Input bilangan antara 0 hingga 1000 (Misal, 932) : "; 39 // int non-negatif dengan rentang lebih pendek. 40 unsigned short bilangan; 41 cin >> bilangan; 42 43 // 2. Mengekstrak satuan bilangan ini 44 unsigned short satuan; 45 unsigned short sisaBilangan; 46 satuan = bilangan % 10; 47 sisaBilangan = bilangan / 10; 48 49 // 3. Mengekstrak puluhan bilangan 50 unsigned short puluhan; 51 puluhan = sisaBilangan % 10; 52 sisaBilangan = sisaBilangan / 10; 53 54 // 4. Mengekstrak ratusan bilangan
  • 4. 55 unsigned short ratusan; 56 ratusan = sisaBilangan % 10; 57 sisaBilangan = sisaBilangan / 10; 58 59 // 5. Menampilkan jumlah digit 60 unsigned short jumlahDigit = ratusan + puluhan + satuan; 61 cout << "Anda menginput bilangan " << bilangan << endl; 62 63 cout << "Jadi, jumlah digit bilangan " << bilangan 64 << " adalah " << endl 65 << "(" << ratusan << " + " << puluhan << " + " << satuan << " )" 66 << endl 67 << " = " << jumlahDigit << ". " 68 << endl 69 << "=======================================================" 70 << endl 71 << endl; 72 73 return 0; 74 } Baris kode ini terdiri dari langkah-langkah berikut: Langkah 1. Menerima input bilangan dalam rentang 0 hingga 1000 Pada langkah 1 ini, program menerima input bilangan integer yang ditampung dalam variabel dengan nama bilangan seperti yang ditunjukkan pada baris kode ke-40 berikut: 37 // 1. Input bilangan integer dalam rentang 0 hingga 1000 38 cout << "Input bilangan antara 0 hingga 1000 (Misal, 932) : "; 39 // int non-negatif dengan rentang lebih pendek. 40 unsigned short bilangan; 41 cin >> bilangan; Variabel bilangan ini diberikan tipe data unsigned short agar lebih efisien daripada menggunakan int. Karena ruang yang digunakan untuk menyimpan variabel unsigned short hanya 16 bit dibandingkan int sebesar 32 bit. Selain itu, variabel bilangan ini hanya menerima input dalam
  • 5. rentang 0 hingga 1000 saja. Artinya, rentang ini masih jauh dari rentang maksimum yang dapat disimpan oleh tipe data unsigned short, yaitu antara 0 hingga 216 – 1 (0 hingga 65.535). Langkah 2. Mengekstraksi satuan dari bilangan ini. Untuk mengekstraksi satuan dari nilai yang tersimpan dalam variabel bilangan, baris kode yang digunakan adalah: 43 // 2. Mengekstrak satuan bilangan ini 44 unsigned short satuan; 45 unsigned short sisaBilangan; 46 satuan = bilangan % 10; 47 sisaBilangan = bilangan / 10; Hasil ekstraksi angka satuan dalam variabel bilangan disimpan dalam variabel dengan nama satuan. 44 unsigned short satuan; Variabel satuan ini digunakan untuk menyimpan hasil operasi modulo (%) antara nilai yang tersimpan dalam variabel bilangan dengan 10. Variabel dengan nama satuan ini menyimpan nilai hasil ekstraksi angka satuan dari nilai yang tersimpan dalam variabel bilangan. 46 satuan = bilangan % 10; Variabel dengan nama sisaBilangan ini sengaja didefinisikan untuk menampung hasil pembagian integer antara nilai yang tersimpan dalam variabel bilangan dengan 10. Nilai dalam variabel ini akan terus berubah pada langkah-langkah berikutnya. 45 unsigned short sisaBilangan; 47 sisaBilangan = bilangan / 10;
  • 6. Langkah 3. Mengekstraksi puluhan dari bilangan ini. Untuk mengekstraksi puluhan dari nilai yang tersimpan dalam variabel bilangan, baris kode yang digunakan adalah: 49 // 3. Mengekstrak puluhan bilangan 50 unsigned short puluhan; 51 puluhan = sisaBilangan % 10; 52 sisaBilangan = sisaBilangan / 10; Hasil ekstraksi angka puluhan dalam variabel bilangan disimpan dalam variabel dengan nama puluhan. 50 unsigned short puluhan; Variabel puluhan ini digunakan untuk menyimpan hasil operasi modulo (%) antara nilai yang tersimpan dalam variabel sisaBilangan dengan 10. Variabel dengan nama puluhan ini menyimpan nilai hasil ekstraksi angka puluhan dari nilai yang tersimpan dalam variabel sisaBilangan. 51 puluhan = sisaBilangan % 10; Kemudian, nilai variabel sisaBilangan diubah dengan mengoperasikan pembagian integer nilai dalam sisaBilangan sebelumnya dengan bilangan 10. 52 sisaBilangan = sisaBilangan / 10; Padahal, operasi ini bisa dituliskan dengan division assignment operation seperti ini: sisaBilangan /= 10; bukan?
  • 7. Langkah 4. Mengekstraksi ratusan dari bilangan ini. Untuk mengekstraksi ratusan dari nilai yang tersimpan dalam variabel bilangan, baris kode yang digunakan adalah: 54 // 4. Mengekstrak ratusan bilangan 55 unsigned short ratusan; 56 ratusan = sisaBilangan % 10; 57 sisaBilangan = sisaBilangan / 10; Hasil ekstraksi angka ratusan dalam variabel bilangan disimpan dalam variabel dengan nama ratusan. 55 unsigned short ratusan; Variabel ratusan ini digunakan untuk menyimpan hasil operasi modulo (%) antara nilai yang tersimpan dalam variabel sisaBilangan dengan 10. Variabel dengan nama ratusan ini menyimpan nilai hasil ekstraksi angka ratusan dari nilai yang tersimpan dalam variabel sisaBilangan. 56 ratusan = sisaBilangan % 10; Kemudian, nilai variabel sisaBilangan diubah dengan mengoperasikan pembagian integer nilai dalam sisaBilangan sebelumnya dengan bilangan 10. 57 sisaBilangan = sisaBilangan / 10; Padahal, operasi ini bisa dituliskan dengan division assignment operation seperti ini: sisaBilangan /= 10; bukan?
  • 8. Langkah 5. Menampilkan jumlah digit-digit dari bilangan ini. Setelah digit ratusan, puluhan dan satuan diekstaksi, ketiga digit ini dijumlahkan dan hasilnya disimpan dalam variabel jumlahDigit. 59 // 5. Menampilkan jumlah digit 60 unsigned short jumlahDigit = ratusan + puluhan + satuan; Setelah baris kode ini dikompilasi, program ini bisa dijalankan. Jika pengguna menginput nilai 932 (terdiri dari 3 digit), maka output yang ditampilkan oleh program adalah sebagai berikut: Jika pengguna menginput nilai 35 (terdiri dari 2 digit saja) maka output yang dihasilkan adalah sebagai berikut:
  • 9. Jika pengguna menginput bilangan 9 (hanya terdiri dari 1 digit saja) maka output yang dihasilkan adalah sebagai berikut:
  • 10. Fitur pengembangan dari program ini berikutnya adalah perlu adanya pengecekan input yang dilakukan oleh pengguna. Pengecekan ini digunakan untuk menampilkan pesan error ketika pengguna menginput bilangan integer di luar rentang 0 hingga 1000, menginput bilangan selain integer atau menginput nilai yang bukan bilangan. Pengecekan ini menggunakan operator percabangan (if … then …). Fitur pengembangan selanjutnya adalah menawarkan pengguna untuk menginput nilai atau tidak menggunakan operator percabangan (if … then …) dan perulangan while loop atau for loop. Sumber Rujukan: Liang. 2014. Introduction to Programming with C++ 3rd Edition. London: Pearson Education. https://www.pearson.com/en-us/subject-catalog/p/Liang-Companion-Website-for- Introduction-to-Programming-with-C-Access-to-Videonotes-3rd- Edition/P200000003422/978013338026