Jumat, 19 Mei 2017

Program C++ Menghitung Frekuensi Kemunculan Huruf

Assalamu'alaikum wr wb,

Rasanya sudah lama sekali gak update ini blog, sekarang waktunya update lagi hehe..

Sekarang saya pengen share program c++ nih, yaitu program untuk menghitung frekuensi kemunculan huruf, jadi nantinya karakter 'A-Z' dan 'a-z' akan dihitung berapa kali kemunculannya. Berikut langsung saja kita bahas..

Program C++ Menghitung Frekuensi Kemunculan Huruf

Program C++ Menghitung Frekuensi Kemunculan Huruf

Jadi untuk inputannya akan menggunakan input dari file .txt, nantinya di file .txt tersebut dimasukkan kata atau kalimat yang ingin dihitung frekuensi kemunculan hurufnya.

Maka kita pakai header

#include <fstream>

Nanti file inputnya bernama input.txt

Disini saya juga menggunakan struct..

Nantinya di struct ini ada 2 member yang menggunakan array, satu array digunakan untuk menyimpan huruf apa saja yang akan dihitung, berarti array ini akan bertipe data char, dan satu array lagi digunakan untuk menyimpan nilai jumlah masing-masing huruf atau karakter, array ini bernilai awal = 0.

struct hitung{
char cek[52] = {'a','b','c','d','e','f','g','h','i',
'j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D'
,'E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
int jmlh[52]={0};
};

hitung alphabeth;

Buat juga variable yang menampung karakter yang sedang dicek

    char x; 

Pertama buka terlebih dahulu file sebagai inputnya

    ifstream file;
    file.open("input.txt");

Proses perhitungan karakter hurufnya seperti ini:

    int i=0;
    while( ! file.eof()){
        file.get(x);
        for(int a=0;a<52;a++){
            if(x == alphabeth.cek[a]){
                alphabeth.jmlh[a]++;
            }
        }
        i++;
    }

Selama ada isi di dalam file ! file.eof() maka akan terus berulang, lalu ambil karakter yang pertama pada file dan masukkan ke variable x untuk dicek file.get(x);

Cek termasuk huruf apakah variable x dengan menggunakan perulangan for sebanyak jumlah huruf yang akan dicek. jika x adalah huruf yang berada pada alphabeth.cek[a] maka nilai alphabeth.jmlh[a] akan bertambah satu. dimana nilai a adalah urutan perulangannya yang dimulai dari 0.

Jika ketemu maka akan lanjut ke perulangan selanjutnya untuk mengambil karakter selanjutnya dan memasukkannya ke variable x pada input.txt, jika tidak maka akan mencari huruf selanjutnya pada alphabeth.cek[a] yang cocok dengan x.

Terus berulang sampai keadaan ! file.eof tidak terpenuhi.

Dan selanjutnya akan ditampilkan huruf yang memiliki jumlah huruf lebih dari sama dengan 1.

    for(int i=0;i<52;i++){
        if(alphabeth.jmlh[i]!=0){
            cout<<"jumlah "<<alphabeth.cek[i]<<" = "<<alphabeth.jmlh[i]<<endl;
        }
    }

Selesai deh..

Berikut adalah program secara keseluruhannya:

#include <iostream>
#include <fstream>

using namespace std;

int main()
{
    ifstream file;

    struct hitung{
    char cek[52] = {'a','b','c','d','e','f','g','h','i',
    'j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D'
    ,'E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
    int jmlh[52]={0};
    };
    hitung alphabeth;

    char x;
    file.open("input.txt");

    int i=0;
    while( ! file.eof()){
        file.get(x);
        for(int a=0;a<52;a++){
            if(x == alphabeth.cek[a]){
                alphabeth.jmlh[a]++;
            }
        }
        i++;
    }

    for(int i=0;i<52;i++){
        if(alphabeth.jmlh[i]!=0){
            cout<<"jumlah "<<alphabeth.cek[i]<<" = "<<alphabeth.jmlh[i]<<endl;
        }
    }

    cout<<"\nIrfan Muhammad Ghani 15101052"<<endl;

    return 0;
}

Contoh inputan filenya:
Program C++ Menghitung Frekuensi Kemunculan Huruf
Outputnya:
Program C++ Menghitung Frekuensi Kemunculan Huruf

Mungkin sekian dari saya, terimakasih telah mengunjungi blog saya, dan semoga bermanfaat.

Silakan untuk berkomentar.

Wassalamu'alaikum wr wb.

Orang biasa yang senang belajar. Senang ngoprek dan menulis sesuatu yang berbau teknologi, desain grafis, dan hal random lainnya.

3 komentar

  1. kan udh ku tulis semua.. udh di compile run kok ga bisa ngetik apa apa yaaaa

    BalasHapus
    Balasan
    1. Program yg ini inputannya dari file .txt jadi program hanya menghitung dan menampilkan frekuensi yg ada di file tsb..

      Hapus

Silakan Berkomentar