[Loop] Program Cek Kekuatan Password


Soal

Password adalah deretan karakter kunci rahasia untuk melakukan sesuatu. Agar tidak mudah ditebak oleh oranglain, password sebaiknya tidak hanya mengandung karakter abjad, tetapi juga karakter angka dan karakter khusus. Password yang diterima boleh dimulai oleh karakter apapun. Untuk persoalan ini, dibatasi karakter abjad hanya huruf kel [‘a’..’z’]

Buatlah program lengkap dalam Bahasa C (tidak mengandung fungsi dan prosedur) yang melakukan hal berikut secara berurutan :
a. Membaca N, yaitu banyak nya karakter password yang akan dimasukkan, lalu menerima masukan sejumlah N karakter password satu per satu. Jika N<-0, program akan mengulangi pembacaan N hingga memenuhi syarat.
b. Menghitung banyak nya karakter abjad [‘a’..’z’], banyaknya karakter angka [‘0’..’9′] dan banyaknya karakter khusus (selain karakter abjad dan angka) di dalam password yang dimasukkan.
c. Menentukan dan mencetak katergori kekuatan password yang diterima berdasarkan banyak nya karakter. Suatu password punya kekuatan kategori “tinggi” jika mengandung minimal satu karakter dari masing masing kelompok karakter, karakter khusus merupakan karakter terbanyak, dan panjangnya minimum 8 karakter. Jika ada kriteria kategori “tinggi” yang tidak terpenuhi, tetapi panjang password minimum 8 karakter, kakuatan password tersebut masuk kategori “sedang”. Jika tidak memenuhi semua kriteria kategori “tinggi”, password tersebut dikategorikan berkekuatan “rendah”.


Skenario yang harus diperhatikan

1. Pertama tama, program membaca N jumlah karakter password.
2. Baca satu persatu karakter password sejumlah N
3. Hitung berapa jumlah jenis karakter password. Yaitu, berapa jumh angka, abjad dan karakter khusus (simbol dsb).
4. Untuk memudahkan penentuan kekuatan password sesuai dengan deskripsi soal. Dapat digunakan skenario boolean untuk pengecekan terpenuhi atau tidak 3 syarat. yaitu : -a- jumlah karakter =>8 buah, -b- jumlah karakter baik angka, abjad atau karakter lain bernilai lebih dari satu =, dan -c- jumlah karakter khusus lebih besar dari jumlah jenis karakter lainnya (angka dan huruf).
5. Pengambilan state kekuatan password tinggi apabila syarat a, b dan c terpenuhi, kekuatan password tinggi apabila syarat a masih terpenuhi (meskipun syarat b dan c tidak terpenuhi), dan kekuatan password rendah apabila tidak ada syarat yang terpebuhi.

Jawaban

/*program cek kekuatan password*/

#include
#include”boolean.h”

int main () {
//kamus
________int N,i;
________char X;
________int countangka=0;
________int counthuruf=0;
________int countkhusus=0;
________boolean syarata=false, syaratb=false, syaratc=false;

//Algoritma
________do {
________________scanf (“%d”,&N);
________} while (N<=0);

//syarata
________if (N>=8) {
________________syarata=true;
________}

//syarat b
________if (countangka>0 && counthuruf>0 && countkhusus>0) {
________________syaratb=true;
________}

//syaratc
________if (countkhusus>countangka && countkhusus>counthuruf) {
________________syaratc=true;
________}

//tampil status password
________if (syarata==true && syaratb==true && syaratc==true ) {
________________printf (“status password kuat”);
________} else if (syarata==false && syaratb==false && syaratc==false ) {
________________printf (“status password lemah”);
________} else {
________________printf (“status password sedang”);
________}

________return 0;

}

Adapun boolean.h nya sebagai berikut :

/* Definisi type boolean */

#ifndef _BOOLEAN_h
#define _BOOLEAN_h

#define boolean unsigned char
#define true 1
#define false 0

#endif

catatan : tanda “______” di kode program menunjukkan negasi

Hasil

Kekuatan Password Tinggi
status password kuat

Kekuatan Password Sedang
password sedang

Kekuatan Password Lemah
passwod lemah

*Soal diambil dari kumpulan soal oddyseus itb dengan sedikit revisi.


		

2 thoughts on “[Loop] Program Cek Kekuatan Password

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s