Monday, May 23, 2016

PERKALIAN MATRIK DENGAN VEKTOR C++

https://massmada.blogspot.com/2016/05/perkalian-matrik-dengan-vektor-c.html
Selamat malam, artikel ini akan  dibahas program perkalian matrik dengan vektor menggunakan C++, disini saya akan memberikan bukan hanya c++ nya saja, tetapi terdapat juga algoritma/flowchart, mengidentifikasi input/output, memahami masalah, test menggunakan data, implementasi menggunakan bahasa c++, debug(hasil eksekusi ) . Berikut :


Analisis kasus : 
Perkalian matrik berordo 2x3 dengan vektor nya :
  - Syarat dua matriks dapat dikalikan adalah ukuran kolom matriks pertama haruslah sama
dengan ukuran baris matriks kedua. Misalnya matiks A berukuran 2 x 3 dan matriks B berukuran 3 x 1 (vektor) dan akan menghasilkan matriks C berukuran 1 x 2. Untuk memperoleh elemen c[i,j] maka suku perkalian dari elemen a dengan baris i dan b dengan kolom j. Sedangkan kolom elemen a dan baris elemen b harus mempunyai perulangan tersendiri.

Menentukan input dan output :
m,n,p, matriks1, matriks2, baris, kolom, i, j, hasil : integer {input}
matriks1, matriks2, hasil : integer {output}

Membuat flowchart/Algoritma :

- Algoritma :

for i <-- 1 to baris do
    for j <-- 1 to kolom do
          mat_kali[i,j] <-- 0;
          for k <-- 1 to barkol do
                    mat_kali[i,j] <-- mat_kali[i,j] + matriks1[i,k] * matriks2[k,j]
         endfor
    endfor
endfor


- Raptor/flowchart : 

main
https://massmada.blogspot.com/2016/05/perkalian-matrik-dengan-vektor-c.html
baca_matriks



baca_matriks2
kali_matriks
cetak_matriks
TEST MENGGUNAKAN  DATA : 

Misalkan data  matriks ke-1 :

 Data[1,1] diisi 1
 Data[1,2] diisi 2
 Data[1,3] diisi 3
 Data[2,1] diisi 4
 Data[2,2] diisi 5
 Data[2,3] diisi 6

Maka akan tampil matrik seperti dibawah 

1 2 3
4 5 6 

Misalkan data matriks ke-2 :
Data[1,1] diisi 7
Data[2,1] diisi 8
Data[3,1] diisi 9

Maka akan tampil matriks ke-2 seperti dibawah :

7
8
9

dan akan mencetak dari hasil perkaliannya matriknya menjadi berordo 1x2 , yaitu :

50
122 


IMPLEMENTASI BAHASA C++ :

#include <iostream>
using namespace std;
void baca_matriks (int mat[10][10], int baris, int kolom){
    int i,j;
    for (i=0; i<baris; i++)
        for (j=0; j<kolom; j++){
            cout << "Data [" << i+1 << "," << j+1 << "] : ";
            cin >> mat[i][j];
        }
}

void kali_matriks(int matriks1[10][10], int matriks2[10][10], int baris, int kolom, int barkol, int mat_kali[10][10]){
    for (int i=0; i<baris; i++)
        for (int j=0; j<kolom; j++){
            mat_kali[i][j] = 0;
            for (int k=0; k<barkol; k++)
                mat_kali[i][j] = mat_kali[i][j] + matriks1[i][k] * matriks2[k][j];
        }
}

void cetak_matriks (int A[10][10], int baris, int kolom){
    for (int i=0; i<baris; i++){
        for (int j=0; j<kolom; j++)
            cout << A[i][j];
        cout << endl;
    }
}

main() {
    int m, n, p;
    int matriks1[10][10], matriks2[10][10];
    int hasil[10][10];
    m = 2;
    p=3;
    n=1;
   
    cout<<"Data matriks ke-1"<<endl;
    baca_matriks(matriks1,m,p);
    cetak_matriks(matriks1,m,p);
    cout<<"Data matriks ke-2"<<endl;
    baca_matriks(matriks2,p,n);
    cetak_matriks(matriks2,p,n);
    kali_matriks(matriks1,matriks2,m,n,p,hasil);
    cout<<"Hasil perkalian : "<<endl;
    cetak_matriks(hasil,m,n);
}

DEBUG(hasil eksekusi) :




dari kertas nya :


https://massmada.blogspot.com/2016/05/perkalian-matrik-dengan-vektor-c.html




 
Baca selengkapnya

Saturday, May 14, 2016

Mengurutkan Deret Bilangan Dengan Buble Sort Pemrograman C++

https://mada-education.blogspot.co.id/2016/05/c-mengurutkan-deret-bilangan-dengan.html
Analisa masalah :
Bubble Sort adalah salah satu algoritma untuk sorting data, atau kata lainnya mengurutkan data dari yang terbesar ke yang terkecil atau sebaliknya (Ascending atau Descending)

Bubble sort (metode gelembung) adalah metode/algoritma pengurutan dengan dengan cara melakukan penukaran data dengan tepat disebelahnya secara terus menerus sampai bisa dipastikan dalam satu iterasi tertentu tidak ada lagi perubahan. Jika tidak ada perubahan berarti data sudah terurut. Disebut pengurutan gelembung karena masing-masing kunci akan dengan lambat menggelembung ke posisinya yang tepat.

           Metode pengurutan gelembung (Bubble Sort) diinspirasikan oleh gelembung sabun yang berada dipermukaan air. Karena berat jenis gelembung sabun lebih ringan daripada berat jenis air, maka gelembung sabun selalu terapung ke atas permukaan. Prinsip di atas dipakai pada pengurutan gelembung.

Algoritma bubble sort adalah salah satu algoritma pengurutan yang paling simple, baik dalam hal pengertian maupun penerapannya. Ide dari algoritma ini adalah mengulang proses pembandingan antara tiap-tiap elemen
array dan menukarnya apabila urutannya salah. Pembandingan elemen-elemen ini akan terus diulang hingga tidak perlu dilakukan penukaran lagi. Algoritma
ini termasuk dalam golongan algoritma comparison sort, karena menggunakan perbandingan dalam operasi antar elemennya. Berikut ini adalah gambaran dari algoritma bubble sort. Misalkan kita mempunyai sebuah array dengan.  Elemen-elemen “4 2 5 3 9”. Proses yang akan terjadi apabila digunakan algoritma bubblesort adalah sebagai berikut.

Pass pertama
(4 2 5 3 9) menjadi (2 4 5 3 9)
(2 4 5 3 9) menjadi (2 4 5 3 9)
(2 4 5 3 9) menjadi (2 4 3 5 9)
(2 4 3 5 9) menjadi (2 4 3 5 9)
Pass kedua
(2 4 3 5 9) menjadi (2 4 3 5 9)
(2 4 3 5 9) menjadi (2 3 4 5 9)
(2 3 4 5 9) menjadi (2 3 4 5 9)
(2 3 4 5 9) menjadi (2 3 4 5 9)
Pass ketiga
(2 3 4 5 9) menjadi (2 3 4 5 9)
(2 3 4 5 9) menjadi (2 3 4 5 9)
(2 3 4 5 9) menjadi (2 3 4 5 9)
(2 3 4 5 9) menjadi (2 3 4 5 9)

Dapat dilihat pada proses di atas, sebenarnya pada pass kedua, langkah kedua, array telah terurut. Namun algoritma tetap dilanjutkan hingga pass kedua berakhir. Pass ketiga dilakukan karena definisi terurut dalam algoritma bubblesort adalah tidak ada satupun penukaran pada suatu pass, sehingga pass ketiga dibutuhkan untuk memverifikasi keurutan array tersebut.

       Algoritma Bubble Sort

1.    Membandingkan data ke-i dengan data ke-(i+1) (tepat bersebelahan). Jika tidak sesuai maka tukar (data ke-i = data ke-(i+1) dan data ke-(i+1) = data ke-i). Apa maksudnya tidak sesuai? Jika kita menginginkan algoritme menghasilkan data dengan urutan ascending (A-Z) kondisi tidak sesuai adalah data ke-i > data ke-i+1, dan sebaliknya untuk urutan descending (A-Z).
2.    Membandingkan data ke-(i+1) dengan data ke-(i+2). Kita melakukan pembandingan ini sampai data terakhir. Contoh: 1 dgn 2; 2 dgn 3; 3 dgn 4; 4 dgn 5 … ; n-1 dgn n.
3.    Selesai satu iterasi, adalah jika kita sudah selesai membandingkan antara (n-1) dgn n. Setelah selesai satu iterasi kita lanjutkan lagi iterasi berikutnya sesuai dengan aturan ke-1. mulai dari data ke-1 dgn data ke-2, dst.
4.    Proses akan berhenti jika tidak ada pertukaran dalam satu iterasi.

Contoh Kasus Bubble Sort :


Misalkan kita punya data seperti ini: 6, 4, 3, 2 dan kita ingin mengurutkan data ini (ascending) dengan menggunakan bubble sort. Berikut ini adalah proses yang terjadi:

Iterasi ke-1: 4, 6, 3, 2 :: 4, 3, 6, 2 :: 4, 3, 2, 6 (ada 3 pertukaran)

Iterasi ke-2: 3, 4, 2, 6 :: 3, 2, 4, 6 :: 3, 2, 4, 6 (ada 2 pertukaran)

Iterasi ke-3: 2, 3, 4, 6 :: 2, 3, 4, 6 :: 2, 3, 4, 6 (ada 1 pertukaran)

Iterasi ke-4: 2, 3, 4, 6 :: 2, 3, 4, 6 :: 2, 3, 4, 6 (ada 0 pertukaran) -> proses selesai


 
#kodenya :

#include <iostream>
using namespace std;

// " dalam program ini ada 4 prosedur yg digunakan "//

//prosedur pertama ini digunakan untuk input data
//prosedur ini memiliki 2 parameter yaitu " int A[], int n "
//nilai untuk prameter untuk int n didapat dari inputan dalam fungsi main
//nilai untuk parameter int A[] didapat dari deklarasi dalam fungsi main
// parameter A[] sebagai varibale untuk menampung inputan dan n untuk bts perulngan
void baca_data(int A[], int n) {
int i;
for (i = 0; i < n; i++)
{ cout << "Data ke-" << i+1 << " : ";
cin >> A[i];
}
}

//prosedur kedua ini digunakan untuk menampilkan data yg telah di input tadi
//prosedur ini memiliki 2 parameter yaitu " int A[], int n "
//nilai untuk prameter untuk int n didapat dari inputan dalam fungsi main
//nilai untuk parameter int A[] didapat dari deklarasi dalam fungsi main
void cetak_data( int A[], int n) {
int i;
for (i = 0; i < n; i++)
cout << A[i] << " ";
cout << "\n";
}

//prosedur ketiga ini digunakan untuk penukaran nilai a <--> b
//prosedur ini memiliki 2 parameter int *a dan int *b
//nilai prameter  int *a dan int *b ini didapat ketika prosdur ini dipanggil
//--- ke prosedur empat
//parameter int *a dan int *b digunkan sebagai variable untuk terjadi tempt penukaran
void tukar (int *a, int *b)
{ int temp;
temp = *a;
*a = *b;
*b = temp;
}

//prosedur keempat ini merupakan proses untuk mengurutkan nilai / angka yg di inputkan
//prosedur ini memiliki 2 parameter yaitu " int x[], int n "
//nilai untuk prameter untuk int n didapat dari inputan dalam fungsi main
//nilai untuk parameter int x[] didapat dari deklarasi dalam fungsi main
//dalam prosedur ini dia memangil prosedur ketiga untuk mebntu proses pengurutn data secara buble sorting
void buble_sort (int x[], int n)
{ int i, j;
for (i = 0; i<n-1; i++)
for (j = i+1; j<n; j++)
if (x[i] > x[j])
tukar(&x[i], &x[j]);
}


 main() {
//  nilai variable " nilai[100], n " disni digunakan untuk mengisi nilai parameter dalm prosedur    
int nilai[100], n;
cout << "Banyak data : ";
cin >> n;
baca_data(nilai,n);    //  pemgilan prosedur
cout<<endl;
cout<<"data awal"<<endl;
cetak_data(nilai,n);   //  pemgilan prosedur
buble_sort(nilai,n);   //  pemgilan prosedur
cout<<"data stelah diurutkan"<<endl;
cetak_data(nilai,n);   //  pemgilan prosedur
}

raptor :  klik

Blog raka : programraka.blogspot.co.id/2016/05/c-mengurutkan-deret-bilangan-dengan.html?m=1

Blog jepri : myjeprianwar46.blogspot.co.id/2016/05/tugas-memuat-algoritma-teman.html?m=0
Baca selengkapnya

Metode Selection Sort Array Dengan C++

https://massmada.blogspot.com/2016/05/metode-selection-sort-array-dengan-c.html
Selamat datang.

Kali ini aku akan menjelaskan selection sort array menggunakan C++ . Selection sort array adalah jenis algoritma seleksi yang mengurutkan sebuah array berulang kali hingga menemukan elemen minimum (mempertimbangkan urutan menaik) dari bagian yang tidak disortir dan meletakkannya di awal.

Analisis selection sort : mengurutkan bilangan dari elemen array [2,7,4,9] menjadi [2,4,7,9] dengan tahapan yang lebih muda.



Baca Juga : Kegunaan Template Class dan Reference Parameter pada C++

Algoritma pengurutan dengan metode seleksi dapat diilustrasikan demikian. Misalkan
diberikan data awal :
[8, 4, 7, 3, 1, 2, 6, 5]
Data pertama adalah 8. Akan dicari (atau tepatnya “dipilih/diseleksi”) data terkecil dari data
kedua sampai terakhir yang terkecil untuk menempati posisi pertama (i = 1) ini. Data terkecil
ditemukan pada posisi ke-5 (t=5). Maka data pertama ditukar dengan data ke-5, menjadi :
[1, 4, 7, 3, 8, 2, 6, 5]
Langkah ini diulang untuk data kedua (i=2). Ditemukan data terkecil pada posisi ke-6 (t=6). Data
ke-2 ditukar dengan data ke-6, menjadi :
[1, 2, 7, 3, 8, 4, 6, 5]
Fase selengkapnya dapat dilihat pada data berikut ini.
Data awal : [8, 4, 7, 3, 1, 2, 6, 5] 1 terkecil, 8 -- 1
fase 1 [1, 4, 7, 3, 8, 2, 6, 5] 2 terkecil, 4 -- 2
fase 2 [1, 2, 7, 3, 8, 4, 6, 5] 3 terkecil, 7 -- 3
fase 3 [1, 2, 3, 7, 8, 4, 6, 5] 4 terkecil, 7 -- 4
fase 4 [1, 2, 3, 4, 8, 7, 6, 5] 5 terkecil, 8 -- 5
fase 5 [1, 2, 3, 4, 5, 7, 6, 8] 6 terkecil, 7 -- 6
fase 6 [1, 2, 3, 4, 5, 6, 7, 8] 7 terkecil, tetap
fase 7 [1, 2, 3, 4, 5, 6, 7, 8]
fase 8 [1, 2, 3, 4, 5, 6, 7, 8]

dibawah ini adalah program dan penjelasan dari selection sort array :

#include <iostream>

using namespace std;

void baca_data(int A[], int n){
    //fungsi ini untuk menginputkan data satu persatu sesuai batas yang ditentukan
     int i;
    for (i = 0; i < n; i++){
        //melakukan perulangan sesuai batas n
        cout << "Data ke-: "<<i+1<<"= ";
        cin >> A[i]; //menginputkan data dan disimpan di array A
    }

}

void cetak_data(const int A[], int n){   
    //menampilkan dari elemen array satu persatu   
    int i;

    for (i = 0; i < n; i++) cout << A[i];

    cout << "\n";

}

void tukar (int *a, int *b){
    int temp;
    temp = *a; //memberikan nilai pada variabel temp
    *a = *b; //mengeset variabel a sebagai nilai b
    *b = temp; //untuk mengisi variabel b dengan variabel temp
}

void minimum(int A[], int dari, int n, int * tempat){
    int i, min;
    min = A[dari];   
    *tempat = dari;

    for (i = dari+1; i<n; i++)
        if (A[i] < min){
            min = A[i];
            *tempat = i;
        }

}


void selection_sort(int A[], int n){
    int i, t;
    for (i = 0; i<n; i++){
        minimum(A, i, n, &t);

        tukar(&A[i], &A[t]);
    }
}

main() {
    int data[10], n;
   
    cout << "Banyak data : ";
   
    cin >> n;
   
    baca_data(data,n);
   
    cetak_data(data,n);
   
    selection_sort(data,n);
   
    cout<<endl;
   
    cout<<"setelah diurutkan"<<endl;
   
    cetak_data(data,n);
   
    return 0;
}


Penjelasan :
Parameter int A[] pada void baca_data(int A[], int n) berfungsi untuk memberikan parameter array.

void baca_data() berfungsi untuk menginputkan data satu persatu sesuai batas yang ditentukan.

void cetak_data() berfungsi untuk menampilkan dari elemen array satu persatu.

void tukar () berfungsi untuk menukarkan nilai dari 2 parameter yang dimasukkan.

void minimum() berfungsi untuk mencari nilai yang paling kecil dari array.

void selection_sort() berfungsi untuk melakukan selection sort pada array.



Hasil :
https://massmada.blogspot.com/2016/05/metode-selection-sort-array-dengan-c.html

raptor : klik

Terimakasih sudah berkunjung ke blogku :D
Baca selengkapnya
Metode insertion sort array dengan C++

Metode insertion sort array dengan C++

Selamat datang. Disini saya akan menjelaskan apa yang dimaksud insertion sort

Untuk menjelaskan algoritma pengurutan dengan metode penyisipan, bayangkan
setumpuk kartu ada di meja, dengan nomor :
[8, 4, 7, 3, 1, 2, 6, 5]
Pertama, kartu 8, diperoleh di tangan kiri :
[8]
Kedua, diambil kartu nomor 4, karena lebih kecil dari 8, ditaruh di sebelah kiri, sehingga
diperoleh :
[4, 8]
Ketiga, diambil kartu nomor 7, dibandingkan dengan kartu pertama, 7 lebih besar dari 4 dan
lebih kecil dari 8, sehingga 7 diletakkan di antara 4 dan 8 :
[4, 7, 8]
Mulai langkah ketiga ini, kita dapat menarik kesimpulan, bahwa “tempat yang tepat” berarti
“kartu yang saat ini diambil akan diletakkan berada di antara yang kecil dan yang besar dari
kartu yang diambil tersebut”.
Urutan selengkapnya adalah sebagai berikut :
Data awal : [8, 4, 7, 3, 1, 2, 6, 5]
fase 1, 4 masuk [4, 8, 7, 3, 1, 2, 6, 5]
fase 2, 7 masuk [4, 7, 8, 3, 1, 2, 6, 5]
fase 3, 3 masuk [3, 4, 7, 8, 1, 2, 6, 5]
fase 4, 1 masuk [1, 3, 4, 7, 8, 2, 6, 5]
fase 5, 2 masuk [1, 2, 3, 4, 7, 8, 6, 5]
fase 6, 6 masuk [1, 2, 3, 4, 6, 7, 8, 5]
fase 7, 5 masuk [1, 2, 3, 4, 5, 6, 7, 8]
fase 8 [1, 2, 3, 4, 5, 6, 7, 8]




Dibawah ini saya akan menjelaskan insertion sort :

#include <iostream>
#include <conio.h>
using namespace std;
class Sorting { //membuat class sorting
friend istream& operator>>(istream& in, Sorting& a);
friend ostream& operator<<(ostream& out, Sorting& a);
public:
 //mengeset fungsi kedalam method yang bersifat public
void baca_data(); //berfungsi untuk membaca data
void cetak_data(); //berfungsi untuk mencetak data
void buble_sort();
void insertion_sort();
void selection_sort();
private: //mengeset fungsi kedalam method yang bersifat private
void minimum(int , int, int&); //menulis fungsi untuk menentukan nilai minimum
void tukar (int&, int&); //menulis fungsi untuk menukar nilai dari 2 parameter
int data[10], n;
};
istream& operator>>(istream& in, Sorting& a) {
cout << "Banyak data : ";
in >> a.n;
for (int i = 0; i < a.n; i++) {
cout << "Data ke-" << i+1 << " : ";
in >> a.data[i];
}
return in;
}
ostream& operator<<(ostream& out, Sorting& a) {
for (int i = 0; i < a.n; i++)
out << a.data[i] << " ";
out << "\n";
return out;
}
void Sorting::tukar (int &a, int &b)
{ int temp; //membuat variabel sebagai tempat nilai pertukaran
temp = a; //menempatkan nilai a di variabel temp
a = b; //mengeset a = b
b = temp; //menukarkan b sebagai template
}
void Sorting::insertion_sort()
{
int i, j, temp; //membuat variabel
cout << "Data pertama sudah ada ditangan kiri, yaitu : " << data[0] << '\n';
for(j = 1; j < n; j++) //membuat perulangan dengan batas kurang dari n
{
temp = data[j]; //mengeset temp dengan nilai data[j] dimana j akan bertambah nilai nya
cout << "\nData ke-" << j+1 << " yaitu " << data[j] << " diambil dari meja\n";
cout << "Dilakukan penggeseran elemen :\n";
for(i = j - 1; (i >= 0) && (data[i] > temp); i--)
{
cout << "data pd posisi ke-[" << i+1 << "] digeser ke posisi [" << i+2 << "]\n";
data[i+1] = data[i];
}
cout << "Data baru masuk pada posisi ke-[" << i+2 << "]\n";
data[i+1] = temp; //Insert key into proper position
cout << "Data saat ini adalah : ";
for (int k=0; k<=j; k++) cout << data[k] << " ";
getch();
}
}
main(){
Sorting angka; //deklarasi class sorting
cin >> angka; //memasukkan nilai ke variabel angka
angka.insertion_sort(); //memanggil fungsi insertion sort
cout << "\nHasil akhir adalah : \n";
cout << angka; //hasil dari pengurutan akan ditampilkan menggunakan variabel angka
}

raptor : klik
Baca selengkapnya

Friday, May 6, 2016

MENGGESER ELEMEN ARRAY C++

https://mada-education.blogspot.com/2016/05/menggeser-elemen-array-c.html
Menggeser elemen array merupakan memindahkan nilai dari indeks i ke indeks berikutnya. Sebenarnya dalam membuat program ini tidaklah susah.

Logika program nya (menggeser array ke kiri):
Menggunakan perulangan for untuk menjangkau semua indeks array. Jika perulangan baru saja mulai maka variabel temp akan menyimpan nilai array indeks pertama. Variabel temp ini berfungsi untuk memberikan nilai indeks array terakhir. Untuk selain indeks terakhir, jika indeks array nya ke i, maka isi datanya dengan data indeks array ke i+1 .

Yap ini kodenya :


#include <iostream>
using namespace std;
main(){
int a[4] = {1,2,3,4}; //array yg akan digeser
int temp; //berfungsi untuk menyimpan dari array a[0]
for(int i=0;i<4;i++){
if(i < 1){  //jika i kurang dari 1
   //agar data a[0] masih ada maka disimpan di variabel temp
temp = a[0];
a[i] = a[i+1]; //berfungsi agar nilai var a[0] berganti dengan a[1]
} else if(i >0 && i<3){
a[i] = a[i+1]; 
} else if(i == 3){
a[i] = temp; 
}
}

cout<<"setelah digeser : ";

for(int i=0;i<4;i++){ //menampilkan hasil pergeseran :
cout<<" "<<a[i]<<" ";
}
}

Penjelasan :
int a[4] = {1,2,3,4}; membuat array bernama a dengan tipe data integer dengan jumlah total 4 indeks. Nilai indeks ke-0 = 1, 1 = 2, 2 = 3, & 3 = 4

 int temp; untuk membuat variabel bernama temp.

for(int i=0;i<4;i++) untuk melakukan perulangan untuk menjangkau ke empat indeks.

temp = a[0]; untuk menyimpan data indeks pertama yang akan digunakan untuk mengisi indeks terakhir.

a[i] = a[i+1]; untuk mengganti data indeks dengan data indeks berikutnya.


Hasilnya :
https://mada-education.blogspot.com/2016/05/menggeser-elemen-array-c.html

Baca selengkapnya

MENGHILANGKAN DUPLIKASI DATA DI ARRAY C++ [RENCANA KULIAH]

Hai, selamat malam. Kali ini saya akan membagikan program menghilangkan duplikasi data. Dibawah ini adalah program beserta petunjuknya, agak rumit sih :D

#include <iostream>
#include <conio.h>

using namespace std;
main(){
int nilai[10],dup[10]; /*var nilai berfungsi untuk menampung nilai array yang dimasukkan, dan var dup berfungsi menampung array hasil dari duplikasi data
         */

int temp, jml,jmldup,k; /*var temp berfungsi untuk menyimpan sementara suatu variabel, jml berfungsi unntuk memberi jumlah kemunculan huruf yg dimasukkan, jmldup berfungsi untuk membatasi dari array dup[], dan k berfungsi untuk mengurutkan dlm menampilkan array dup[]*/
k=0;
jmldup = 0;
for(int i=0;i<10;i++){
               /*memasukkan data array dengan perulangan*/
cout<<"Masukkan nilai ke-"<<i+1<<" : ";cin>>nilai[i];
}
for(int i=0;i<10;i++){
                //mengurutkan data dari nilai terkecil ke tertinggi
for(int j=i+1;j<10;j++){
if(nilai[i] > nilai[j]){
temp = nilai[j];
nilai[j] = nilai[i];
nilai[i] = temp;
}
}

}

for(int i=0;i<10;i++){
cout<<nilai[i]<<"  ";
}
cout<<endl;
for(int i=0;i<10;i++){
jml = 0;
for(int j=0;j<10;j++){
if(nilai[i] == nilai[j]){
                               /*var jml dimulai dari 0, apabila nanti nilai = nilai maka jml akan bernilai 1 apabila data tidak ada yg sama, apabila data yg sama 3 maka akan bernilai 3, dst.*/
jml++;
}
}
if(nilai[i] != nilai[i-1]){
                        /*untuk menampilkan frekuensi huruf dan mencegah kemunculan 2 kali*/
cout<<nilai[i]<<" kemunculan = "<<jml<<endl;
}
if(jml == 1){ /*apabila frekuensi kemunculan nya 1 maka elemen nilai akan disimpan di var dup*/

dup[k] = nilai[i];
jmldup++;
k++;
}
}

cout<<endl<<endl<<"Menghilangkan duplikasi data : ";
for(int i=0;i<=jmldup;i++){
cout<<dup[i]<<"   ";
}
}

RAPTORNYA ::


Baca selengkapnya