#include <iostream>
#include <string>
#include <cctype> // Diperlukan untuk fungsi isupper, islower, isdigit
int main() {
// 1. Deklarasi variabel
std::string kataSandi;
int jumlahHurufKapital = 0;
int jumlahHurufKecil = 0;
int jumlahAngka = 0;
int jumlahSimbol = 0;
// 2. Minta input dari pengguna
std::cout << "Masukkan kata sandi: ";
std::getline(std::cin, kataSandi);
// 3. Proses setiap karakter dalam kata sandi
for (char karakter : kataSandi) {
if (isupper(karakter)) {
jumlahHurufKapital++;
} else if (islower(karakter)) {
jumlahHurufKecil++;
} else if (isdigit(karakter)) {
jumlahAngka++;
} else {
jumlahSimbol++;
}
}
// 4. Tampilkan hasil
std::cout << "\n--- Hasil Analisis Kata Sandi ---" << std::endl;
std::cout << "Jumlah Huruf Kapital: " << jumlahHurufKapital << std::endl;
std::cout << "Jumlah Huruf Kecil : " << jumlahHurufKecil << std::endl;
std::cout << "Jumlah Angka : " << jumlahAngka << std::endl;
std::cout << "Jumlah Simbol : " << jumlahSimbol << std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8Y2N0eXBlPiAvLyBEaXBlcmx1a2FuIHVudHVrIGZ1bmdzaSBpc3VwcGVyLCBpc2xvd2VyLCBpc2RpZ2l0CgppbnQgbWFpbigpIHsKICAgIC8vIDEuIERla2xhcmFzaSB2YXJpYWJlbAogICAgc3RkOjpzdHJpbmcga2F0YVNhbmRpOwogICAgaW50IGp1bWxhaEh1cnVmS2FwaXRhbCA9IDA7CiAgICBpbnQganVtbGFoSHVydWZLZWNpbCA9IDA7CiAgICBpbnQganVtbGFoQW5na2EgPSAwOwogICAgaW50IGp1bWxhaFNpbWJvbCA9IDA7CgogICAgLy8gMi4gTWludGEgaW5wdXQgZGFyaSBwZW5nZ3VuYQogICAgc3RkOjpjb3V0IDw8ICJNYXN1a2thbiBrYXRhIHNhbmRpOiAiOwogICAgc3RkOjpnZXRsaW5lKHN0ZDo6Y2luLCBrYXRhU2FuZGkpOwoKICAgIC8vIDMuIFByb3NlcyBzZXRpYXAga2FyYWt0ZXIgZGFsYW0ga2F0YSBzYW5kaQogICAgZm9yIChjaGFyIGthcmFrdGVyIDoga2F0YVNhbmRpKSB7CiAgICAgICAgaWYgKGlzdXBwZXIoa2FyYWt0ZXIpKSB7CiAgICAgICAgICAgIGp1bWxhaEh1cnVmS2FwaXRhbCsrOwogICAgICAgIH0gZWxzZSBpZiAoaXNsb3dlcihrYXJha3RlcikpIHsKICAgICAgICAgICAganVtbGFoSHVydWZLZWNpbCsrOwogICAgICAgIH0gZWxzZSBpZiAoaXNkaWdpdChrYXJha3RlcikpIHsKICAgICAgICAgICAganVtbGFoQW5na2ErKzsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBqdW1sYWhTaW1ib2wrKzsKICAgICAgICB9CiAgICB9CgogICAgLy8gNC4gVGFtcGlsa2FuIGhhc2lsCiAgICBzdGQ6OmNvdXQgPDwgIlxuLS0tIEhhc2lsIEFuYWxpc2lzIEthdGEgU2FuZGkgLS0tIiA8PCBzdGQ6OmVuZGw7CiAgICBzdGQ6OmNvdXQgPDwgIkp1bWxhaCBIdXJ1ZiBLYXBpdGFsOiAiIDw8IGp1bWxhaEh1cnVmS2FwaXRhbCA8PCBzdGQ6OmVuZGw7CiAgICBzdGQ6OmNvdXQgPDwgIkp1bWxhaCBIdXJ1ZiBLZWNpbCAgOiAiIDw8IGp1bWxhaEh1cnVmS2VjaWwgPDwgc3RkOjplbmRsOwogICAgc3RkOjpjb3V0IDw8ICJKdW1sYWggQW5na2EgICAgICAgIDogIiA8PCBqdW1sYWhBbmdrYSA8PCBzdGQ6OmVuZGw7CiAgICBzdGQ6OmNvdXQgPDwgIkp1bWxhaCBTaW1ib2wgICAgICAgOiAiIDw8IGp1bWxhaFNpbWJvbCA8PCBzdGQ6OmVuZGw7CgogICAgcmV0dXJuIDA7Cn0=