Search This Blog

Wednesday 24 August 2016

Mencari jumlah karakter yang ada dalam variabel array

Searching jumlah angka yang ada dalam variabel array merupakan sebuah usaha untuk mencari tahu berapa banyak karakter yang sesuai antara hasil inputan dengan isi dari variabel array dengan karakter yang sama. Dalam program pencarian jumlah angka yang ada dalam variabel array ini pada dasarnya sama dengan proses pencarian yang dibahas pada materi sebelumnya, hanya saja dalam pencarian jumlah ini ada beberapa potongan program yang ditambahkan, namun bukan berarti ada pula yang diubah dari materi sebelumnya. Karena intinya sama saja, melakukan pencarian terlebih dahulu untuk variabel yang sama antara isi variabel hasil inputan dengan isi dari variabel array yang sudah ditetapkan, namun setelah pencarian tersebut dilaksanakan, ada proses didalamnya yaitu untuk menghitung seberapa banyak angka tersebut dalam variabel array. Jika dalam pencarian sebelumnya ada penggalan program yang memerintahkan untuk break ketika ditemukan sebuah karakter yang sama untuk membuat program lebih terlihat singkat, namun pada program kali ini penggunaan penanda seperti flag justru lebih mempersingkat sebuah program. Memang bisa saja menggunakan algoritma lain, tetapi untuk penulis sendiri sejauh ini merasa bahwa dengan menggunakannya penanda untuk program pencarian jumlah jauh lebih singkat. Mengapa demikian? Karena dalam perulangan yang tidak menggunakan perintah untuk break dapat disisipkan proses penghitungan jumlah tersebut.

Proses yang dilakukan sama halnya dengan pada program sebelumnya, yaitu pertama kali yang dilakukan ialah mendeklarasikan variabel array dan memberinya nilai awal, tidak lupa untuk mendeklarasikan variabel untuk input, untuk perulangan dan juga untuk penanda. Namun bedanya, dalam program untuk menghitung jumlah isi variabel yang sama dengan inputan ini ada tambahan deklarasinya, yaitu mendeklarasikan sebuah variabel yang nanti akan menjadi tempat dimana hasil penghitungan jumlah tersebut disimpan. Setelah deklarasi selesai, maka akan disisipkan perintah untuk input dari user, dimana programmer dapat menyisipkan pula pada sebelumnya sebuah cetakan kalimat yang mengarahkan user untuk melakukan inputan tersebut dengan perintah printf atau yang lainnya. Lalu seperti yang biasa dilakukan pada saat pencarian karakter akan keberadaannya, kita dapat menyisipkan program perulangan yang dimana perulangan tersebut akan dilakukan sejumlah karakter yang ada dalam variabel array. Didalam perulangan sediri disisipkan sebuah kondisi untuk seleksi, seperti contoh program sebelumnya yang menggunakan kondisi if untuk proses seleksi tersebut. Proses seleksi dilakukan untuk mengecek isi array per-indeksnya, apakah hasil inputan yang dilakukan oleh user memiliki karakter yang sama dengan isi dari varabel array yang sudah disediakan tersebut. Namun dikarenakan dalam program yang dibahas ini tidak menggunakan perintah break, maka dalam kondisi if ini dapat disisipkan pula perintah untuk menghitung jumlah dari isi array yang sama tersebut. Hingga pada saat proses perulangan tersebut berakhir, maka akan diadakannya seleksi lanjutan, dimana pada proses seleksi ini sama seperti contoh program sebelumnya (posted yang diberi judul pencarian isi variabel array [ada dan tidak ada]), yaitu proses seleksi yang bukan untuk mengecek kesamaan dari inputan dengan isi variabel array, melainkan untuk mengecek apakah si penanda telah mengalami perubahan. Apabila si penanda sudah memiliki perubahan, maka dalam statement true terdapat perintah untuk memberitahukan user bahwa karakter yang dicarinya ada. Dan untuk mempersingkat program, maka dalam statement true ini dapat disisipkan pula perintah untuk mencetak hasil hitung jumlah dari isi variabel yang sama tersebut. Dan apabila ternyata isi dari variabel penanda tersebut justru tidak memiliki perubahan apa-apa, maka akan manuju statement false, dimana dalam statement tersebut terdapat perintah untuk mencetak / memberitahukan user bahwa karakter yang dicarinya tidak ada. Dan sebenarnya untuk perintah-perintah cetak informasi pada user tersebut tidak wajib, itu hanya jika diperlukan saja, karena itu bukanlah bagian dari proses pencarian maupun proses penghitungan jumlah yang dimaksud, itu hanyalah sebuah informasi yang diberikan oleh program agar user mengetahui hasil dari proses tersebut. Dan demikian, kembalii ditegaskan bahwa proses utamanya ialah apa yang diinput oleh user dan apa yang dijalankan oleh program dalam perulangannya.

Mungkin akan terlalu membingungkan jika penulis hanya membahas melalui penjelasan, untuk itu berikut merupakan contoh program yang dimaksud penulis, silahkan dipahami dan disesuaikan kembali dengan apa yang dijelaskan diatas:

#include<stdio.h>
main(){
 char X[9]="goomilar", Y;
int g, jum=0, tanda=0;
printf("inputkan karakter: ");
scanf("%c", &Y);

for(g=0; g<5; g++){
if(Y==X[g]){
tanda=1;
jum++;
}
}

if(tanda==1){
printf("\n\nKarakter \"%c\" ADA", Y);
printf("\n\njumlah karakter \"%c\" adalah %i",Y, jum);
}else{
printf("\n\nKarakter \"%c\" TIDAK ADA", Y);
}
}

Dalam program tersebut terlihat bahwa yang pertama kali dilakukan ialah deklarasi variabel array dengan memberinya nilai awal, serta deklarasi variabel lainnya yang dibutuhkan serta inisialisasi variabel penanda berikut penghitung. Diikuti dengan pencetakan ke layar untuk pengarah pada user akan apa yang harus dilakukannya, dan itu dilakukan agar user memahami bahwa yang harus dilakukannya ialah menginputkan karakter dari keyboard. Ditemani dengan perintah scanf dimana user akan melakukan proses input karena adanya perintah tersebut. Dan proses untuk pencarian berikut penghitunganpun dilakukan dengan dibantunya perulangan yang mana dalam perulangan tersebut akan mengecek per-indeks array. Serta disisipkannya kondisi selection yang menjadi kunci utama pengecekan ada atau tidak adanya karakter yang diinput dalam array. Serta adanya sedikit tambahan perintah untuk menghitung jumlah karakter yang ada jika memang karakter tersebut benar ada. Dan apabila ternyata memang tidak ada karakter tersebut, maka proses perulangan akan melewati perintah tersebut. Dan seperti yang sudah disebutkan diatas, bahwa setelah proses perulangan selesai akan ada seleksi lanjutan untuk sang penanda, apakah ada perubahan dalam penanda tersebut, apabila ada akan diberitahukannya pada user bahwa karakter tersebut ada, disertai keterangan hasil hitung yang memberitahukan berapa jumlah karakter tersebut yang tersimpan dalam variabel array. Namun apabila program tidak menjalankan proses tersebut, yang dengan kata lain hanya menjalankan statement false dikarenakan tidak adanya perubahan dari si penanda, maka yang akan tercetak ke layar ialah pemberitahuan bahwa karakter yang diinputkan ternyata tidak ada dalam array.

Dan jika kembali kita bandingkan dengan posted sebelumnya, perbedaan program untuk mencari ada dan tidak ada dengan program yang satu ini hanyalah terdapat pada deklarasi+inisialisasi variabel untuk menghitung tambahan satu perintah untuk menghitung dalam perulangan serta untuk mencetak informasi jumlah tersebut. Untuk sisanya sungguh sama dengan program sebelumnya, hanya saja yang dilakukan oleh penulis ialah mengganti nama dari tiap variabel yang digunakan. Memang terlihat sedikit membingungkan, karena jika dibandingkan dengan contoh-contoh program sebelumnya, penamaan variabel dalam program yang satu ini terlihat asing. Namun penulis memiliki sedikit unsur kesengajaan, ialah agar pembaca tidak hanya berpatok dengan beberapa huruf yang biasa digunakan, dengan harapan agar pembaca tidak merasa asing dan kebingungan saat menghadapi sebuah program dengan penamaan variabel menggunakan huruf lain. Dan dengan demikian, lebih diharapkan lagi dari contoh-contoh yang diberikan dalam setiap post pada blog ini akan menghasilkan algoritma dan kepahaman yang baik dari pembaca, bukan sekedar cukup tau akan hasil bacaan yang ada. Karena akan sia-sia suatu hal yang penting untuk dimengerti namun tidak diperdalam lagi (hanya dibaca tanpa dicoba sendiri programnya). Maka dengan demikian, cobalah pahami setiap contoh program yang didapat, dan alangkah lebih baik lagi jika Anda mencoba untuk membuat program yang sama atau bahkan lebih baik lagi dengan algoritma Anda sendiri.

No comments:

Post a Comment