Breaking News
Loading...
Sabtu, 20 April 2013

Array 1 Dimensi, Character, dan String. Modul V

        Pada postingan kali ini, saya akan membagikan source code lagi untuk mendukung program pemerintah dalam mencerdaskan anak bangsa, hehehe,. Source code kali ini bertemakan array satu dimensi, karakter, dan string. Dibandingkan dengan tema-tema program sebelumnya, kali ini tema ini sedikit lebih sulit. Tapi kalo dibilang sulit ya tidak juga, cuman ribet dan males mikir hingga program sederhana seperti ini saja dikerjakan lama2. hehehehee. Sedikit informasi bahwa pada postingan kali ini juga saya share video dokumentasi seperti postingan-postingan sebelumnya. Pada video kali ini saya mendapat mandat untuk mendokumentasikan pembuatan program latihan modul Vb.       
video 1. Dokumentasi Program


Coding 1
Source Code Latihan modul Vb

1.  #include<stdio.h>
2.  #include<string.h>//header string yang berisi tentang fungsi-fungsi string
3.  int main(void)//fungsi utama
4.  {
5.  char password1[20],password2[20],login1[20],login2[20];//deklarasi variabel
6.  int hasil,i,ulang;//deklarasi variabel
7.  ulang=0;//inisialisasi variable ulang
8.  strcpy(password1,"agus");//mengisikan nilai pada pasword 1
9.  strcpy(password2,"seputra");//mengisikan nilai pada pasword 2
10. do{
11. printf("Masukkan Password pertama : ");
12. gets(login1);//menerima masukkan pembanding password 1
13. printf("Masukkan Password kedua : ");
14. gets(login2);//menerima masukkan pambanding password 2
15. hasil=akses(password1,password2,login1,login2);//memanggil fungsi akses
16. if(hasil==0){//kondisi jika fungsi akses bernilai 0 atau login dinyatakan benar
17. printf("selamat anda berhasil");
18. } else//konisi salah
19. printf("Coba lagi\n");
20. ulang++;//increment ulang yang terus bertambah
21. if(ulang==3)//jika increament ulang sudah bernilai 3 maka muncul pesan
22. {
23. printf("Akses anda ditolak");
24. }
25. }while((hasil==1)&&(ulang!=3));//perulangan terus terjadi selagi kondisi dalam while masi terpenuhi
26. getch();
27. return 0; 
28. }
29. int akses(char password1[20],char password2[20],char login1[20],char login2[20])
30. {
31. int banding1,banding2,i,hasil;//deklarasi variabel lokal
32. banding1=strcmp(password1,login1);//membandingkan password1 dg login 1, jika benar maka bernilai 0
33. banding2=strcmp(password2,login2);//membandingkan password2 dg login 2, jika benar maka bernilai 0
34. if ((banding1==0)&&(banding2==0))//jika kedua kondisi bernilai benar
35. hasil=0;//hasil bernilai 0
36. else//jika tidak
37. {
38. hasil=1;//bernilai 1
39. }
40. return hasil;//mengirim nilai balikan hasil ke fungsi utama
41. }

Deskripsi Singkat

Penggalan kode program diatas merupakan penggalan kode program pengecekan password masukkan dari user guna menerapkan fungsi string, control flow khususnya metode if dan juga case, serta perulangan. Dimana program tersebut merupakan soal dari latihan b modul V.
Berikut soal latihan b.
Buatlah program 2 buah password berurutan dengan nama Anda menggunakan pembanding kata/kalimat. Password pertama nama depan, password kedua nama belakang Anda. Jika salah sebanyak 3x maka muncul tulisan akses ditolak.
Berikut dapat dijelaskan mengenai algoritma program tersebut.
1.    Pengguna memasukkan 2 password yang terdiri dari nama depan dan nama belakang.
2.    Program akan mengecek kata yang dimasukkan dengan algoritma sebagai berikut.
1)    Pada program sudah ada variabel password 1 dan password 2 yang telah diberi nilai dengan fungsi strcpy. Dapat dilihat pada penggalan kode baris 8 dan 9.
2)    Masukkan dari user akan disimpan dalam variabel login1 dan login 2 seperti pada baris 12 dan 14.
3)    Kemudian program akan emmanggil fungsi pengecekan yaitu fungsi akses dengan mengirim parameter password1, password2,login1,login2 seperti pada baris 15.
4)    Didalam fungsi akses variabel yang dikirim tadi akan diterima sesuai dengan parameter pada fungsi.
5)    Variabel tersebut akan proses dengan mebandingkan password1 dan login1 dengan fungsi strcmp dapat dilihat pada baris 32 dan 33.
6)    Hasil perbandingan tersebut disimpan dalam variabel banding. Jika perbandingan kedua variabel cocok maka nilai variabel bandig adalah 0.
7)    Kedua variabel banding akan dicocokan jika keduanya menghasilkan nilai 0, maka hasil akan bernilai 0. Dapat dilihat pada baris 35.
8)    Hasil tersebut akan dikirim ke fungsi utama seperti pada baris 40.
9)    Selanjutnya pada fungsi utama hasil tersebut akan diproses.
10) Jika hasil bernilai 0 maka login benar seperti pada baris 16 dan 17.
11) Jika salah maka kesalahan akan dihitung seperti pada baris 18, 19,20.
12) Batas kesalahan adalah 3 jika sudah 3 kali maka muncul pesan akses ditolak, seperti pada baris 21 sampi 24.
3.    Demikian algoritma dari program pengecekan password. Untuk penjelasan masing-masing baris sudah dijelaskan melalui komentar pada setiap baris. Berikut hasil program dapat dilihat pada gambar 1.
Gambar 1. Tampilan program latihan 5b

Coding 2
Source Code Latihan modul Vc

1.  #include<string.h>//header string yang berisi fungsi-fungsi operasi string
2.  #include<stdio.h>
3.  char tukar(char nama1[20], char nama2[20] );//deklarasi fungsi tukar
4.  int main(void)//fungsi utama
5.  {
6.  char nama1[20], nama2[20],temp[20];//deklarasi variabel lokal
7.  printf("=== Soal latihan b Modul V. Ketut Agus Seputra ===\n");
8.  printf("Masukkan nama depan anda :");
9.  scanf("%s",&nama1);//menerima masukkan nama depan
10. printf("Masukkan nama belakang anda :");
11. scanf("%s",&nama2);//menerima masukan nama belakang
12. tukar(nama1,nama2);//memanggil fungsi dengan parameter nama1, nama2
13. getch();
14. return 0;
15. }
16. char tukar(char nama1[20], char nama2[20])//proses penukaran string
17. {
18. char temp[20];//variabel temporarari
19. strcpy(temp,nama1);//memasukkan nama1 ke temp
20. strcpy(nama1,nama2);//memasukkan nama2 ke nama1
21. strcpy(nama2,temp);//memasukkan nama1 ke nama 2
22. //strcat(nama1,temp);// menggabungkan nama1 dan temp
23. printf("Nama anda adalah %s %s",nama1,nama2);//menampilkan hasil penukaran
24. //printf("Hasil penukaran adalah %s",nama1);//menampilkan hasil penggabungan
25. }
26.  

Deskripsi Singkat

Penggalan kode program diatas merupakan penggalan kode program penukaran isi string masukkan dari user guna menerapkan fungsi string. Dimana program tersebut merupakan soal dari latihan c modul V.
Berikut soal latihan nomor c.
Buatlah program untuk menukarkan nama Anda. Pada awalnya kata_1 = nama depan dan kata_2 = nama belakang menjadi kata_1 = nama belakang dan kata_2 = nama depan.
Berikut dapat dijelaskan mengenai algoritma program tersebut.
1.    Pengguna memasukkan dua password yang terdiri dari nama depan dan nama belakang.
2.    Program akan mengecek kata yang dimasukkan dengan algoritma sebagai berikut.
1.     Program akan menukarkan nilai kedua variabel tersebut dengan menggunakan variabel temporari. Penukaran tersebut menggunakan fungsi strcpy seperti pada baris 19, 20, 21. Seperti pada ilustrasi pada gambar 2.
Gambar 2. Ilustrasi penukaran
2.     Kemudian program menampilkan kedua variabel yang nilainya sudah tertukar tadi seperti pada baris 23.
3.    Demikian algoritma dari program penukaran isi variabel string. Untuk penjelasan masing-masing baris sudah dijelaskan melalui komentar pada setiap baris. Berikut hasil program dapat dilihat pada gambar 3.
Gambar 3. Tampilan program latihan 5c

Coding 3
Source Code Soal modul V.2

1.  #include<stdio.h>
2.  #include<string.h>
3.  #include<conio.h>
4.  int main(void)
5.  {
6.  char kalimat[100],str_kcl[100];//deklarasi variabel
7.  int n,kar,ulang;
8.  ulang=0;
9.  printf("=== Soal Modul V.2 Ketut Agus Seputra ===\n");
10. do{
11. printf("Masukkan kalimat anda : \n");
12. gets(kalimat);//menerima masukkan kalimat
13. n=strlen(kalimat);//menghitung panjang kalimat
14. strlwr(kalimat);//merubah format kalimat jadi huruf kecil
15. printf("Jumlah vokal adalah %d\n",jum_vok(kalimat));//memanggil fungsi jum_vok
16. printf("Jumlah konsonan adalah %d\n",jum_kon(kalimat));//memanggil fungsi jum_kon
17. printf("Jumlah karakter adalah %d\n",karakter(n,kalimat));//memanggil fungsi karakter
18. printf("Ulang lagi? [1/0] : ");
19. scanf("%d\n",&ulang);
20. }while(ulang==1);//proses diatas terus berulang semasih kondisi while terpenuhi
21. getch();
22. return (0);
23. }
24. int jum_vok(char str[])//fungsi menghitung vokal
25. {
26. char str_vokal[6]={'a','i','u','e','o','\0'};//deklarasi array vokal
27. int n,i,j,vokal;
28. vokal=0;//inisialisasi kounter vokal
29. for(i=0;str[i]!='\0';i++)//membuat perulangan dari 0 sampai indeks kalimat habis
30. {
31. for(j=0;str_vokal[j];j++)//membuat perulangan guna mencocokan anggota array vokal
32. {
33. if(str[i]==str_vokal[j])//jika terdapat karakter antara array kalimat dan vokal sama
34. vokal++;//counter vokal bertambah
35. }
36. }
37. return vokal;//mengirim nilai balikan vokal ke fungsi utama
38. }
39. int jum_kon(char str[])//fungsi menghitung konsonan
40. {
41. char str_kon[22]={'b','c','d','f','g','h','j','k','l','m','n','p','q','r','s','t','v','w','x','y','z','\0'};
42. //inisialisasi array konsonan
43. int n,i,j,konsonan;
44. konsonan=0;//inisialisasi counter konsonan
45. for(i=0;str[i]!='\0';i++)//membuat perulangan dari 0 sampai indeks kalimat habis
46. {
47. for(j=0;str_kon[j];j++)//membuat perulangan guna mencocokan anggota array konsonan
48. {
49. if(str[i]==str_kon[j])//jika terdapat karakter antara array kalimat dan konsonan sama
50. konsonan++;//counter konsonan bertambah
51. }
52. }
53. return konsonan;//mengirim nilai balikan konsonan ke fungsi utama
54. }
55. int karakter(int n,int kalimat)//fungsi menghitung karakter lain
56. {
57. int kar;
58. kar= n-((jum_vok(kalimat))+(jum_kon(kalimat)));
59. /*mengurangi panjang kalimat dengan jumlah konsonan dan vokal
60. dengan memanggil fungsi-fungsi yang ada.*/
61. return kar;//mengirim nilai balikan kar
62. }


Deskripsi Singkat

Penggalan kode program diatas merupakan penggalan kode program pengecekan jumlah huruf vokal, konsonan, dan karakter lainnya yang dimasukkan oleh user dengan menerapkan fungsi string, control flow khususnya metode if dan juga case, serta perulangan. Dimana program tersebut merupakan soal dari modul V no 2.
Berikut soal nomor 2.
Buatlah program untuk menganalisa sebuah string inputan yang diinputkan oleh user dan kemudian tampilkan:
a. Berapa jumlah karakter vokal (a,i,u,e,o)?
b. Berapa jumlah karakter konsonan?
c. Berapa jumlah karakter lainnya?
Berikut dapat dijelaskan mengenai algoritma program tersebut.
1.    Pengguna memasukkan kalimat dengan panjang maksimal 100. Masukkan pengguna boleh karakter apa saja.  Program akan mengecek kata yang dimasukkan dengan algoritma sebagai berikut.
1)    Pada program sudah diinisialisasikan array vokal dan konsonan.
2)    Program akan membuat perulangan sesuai dengan panjang karakter kalimat yang dimasukkan. Setiap kali perulangan program akan mengecek setiap anggota dari kalimat apakah ada yang sama dengan array dari vocal atupun konsonan.
3)    Apabila ada yang sama, maka akan dilakukan counter terhadap vocal dan konsonan tersebut.
4)    Untuk pengecekan karakter lain. Program akan mengurangi jumlah karakter dengan jumlah konsonan dan vokal.
2.    Demikian algoritma dari program pengecekan jumlah vokal, konsonan, dan karakter lain dari string. Untuk penjelasan masing-masing baris sudah dijelaskan melalui komentar pada setiap baris. Berikut hasil program dapat dilihat pada gambar 4.

Gambar 4. Tampilan program soal 2

Coding 4
Source Code Soal modul V.5

1.  #include <string.h>//header string
2.  #include <stdio.h>
3.  int main(void)
4.  {
5.  int a[5]={5,10,6,0,4},b[5];//deklarasi variabel lokal
6.  printf("=== Soal Modul V.5. Ketut Agus Seputra ===\n");
7.  tukar(a,b);//memanggil fungsi tukar dengan parameter a,b
8.  getch();
9.  return 0;
10. }
11. int tukar(int a[5], int b[5])
12. {
13. int i,j;
14. for (i=0;i<5;i++)//perulangan dari 0 sampai 4
15. {
16. b[i]=a[4-i];//mengisi index b ke 0 dengan 4, index b ke 1 dengan 3, begitu seterusnya
17. }
18. for(i=0;i<5;i++)//perulangan menampilkan nilai setiap index
19. {
20. printf("Nilai index | A ke % d adalah %d  => B ke %d adalah %d\n",i,a[i],i,b[i]);
21. }
22. }


Deskripsi Singkat

Penggalan kode program diatas merupakan penggalan kode program penukaran isi array dan pembalikan indeks dengan menerapkan fungsi string, control flow khususnya metode if dan juga case, serta perulangan. Dimana program tersebut merupakan soal dari modul V no 5.
Berikut Soal nomor 5.
Array: int A[5];
Indeks 0 1 2 3 4
Nilai 5 10 6 0 4
Array: int B[5];
Indeks 0 1 2 3 4
Nilai _ _ _ _ _
Dimana array B akan berisi elemen-elemen array A tapi dengan posisi terbalik, data pertama di array A akan berada di data terakhir di array B!
Berikut dapat dijelaskan mengenai algoritma program tersebut.
1.    Pada program sudah terdapat sebuah array a yang sudah mempunyai anggota dan terdapat array b yang akan diisi oleh anggota array a seperti pada baris 5.
2.    Program diminta untuk mengisi array b dengan anggota array a, namun dengan indeks yang terbalik. Adapun algoritma programnya adalah sebagai berikut.
1)    Membuat perulangan untuk mengisikan anggota dari array seperti pada baris 14.
2)    Dari perulangan tersebut akan dibuatkan proses untuk mengisi array dari b dengan anggota array a. indeks 0 array b akan diisi dengan indeks ke 4 dari array a, indeks 1 array b akan diisi dengan indeks ke 3 dari array a, begitu seterusnya seperti pada baris 16.
3)    Satu persatu anggota array b akan ditampilkan dengan menggunakan perulangan seperti pada baris 18 dan 20.
3.     Demikian algoritma dari program pengisian array bilangan. Untuk penjelasan masing-masing baris sudah dijelaskan melalui komentar pada setiap baris. Berikut hasil program dapat dilihat pada gambar 5.
Gambar 5. Tampilan program soal 5

Coding 5
Source Code Soal modul V.6

1.  #include<string.h>//header string
2.  #include<stdio.h>
3.  int main(void)
4.  {
5.  char binatang[9]="harimau",tmp[9]={'_','_','_','_','_','_','_'},tebak[9];
6.  int i,j,banding,cek,kes,ke;
7.  kes=5;//inisialisasi batas kesalahan
8.  ke=0;//inisialisasi inputan ke
9.  j=0;//inisialisasi kounter kesalahan
10. printf("=== Soal Modul V.6. Ketut Agus Seputra ===\n");
11. do{
12. ke++;
13. printf("masukkan tebakan huruf ke %d : ",ke);
14. scanf("%s",&tebak);//menerima masukkan huruf
15. strlwr(tebak);//merubah karakter huruf besar ke kecil
16. cek=cocokan(tebak,binatang,tmp);//memanggil fungsi cocokan dan dijadikan variabel cek
17. if(cek==0)//jika cek= 0 maka j akan bertambah 1
18. {
19. j=j+1;//counter kesalahan
20. printf("\nTebakan anda salah, kesalahan anda sudah %d dari %d kesempatan\n",j,kes);
21. }
22. printf("\n");
23. banding=strcmp(binatang,tmp);//membandingkan variable tmp apakah sudah sama dengan binatang
24. }while((j<kes)&&(banding!=0));//kondisi diatas terus berulang semasih kondisi while terpenuhi
25. printf("\n");
26. if(banding==0)//jika tebakan sudah benar
27. {
28. printf("Selamat Anda Berhasil!!!");
29. }else//jika kesempata sudah habis
30. {
31. printf("Silakan coba dilain kesempatan");
32. }
33. getch();
34. return 0;
35. }
36. int cocokan(char tebak[9], char binatang[9],char tmp[9])
37. {
38. int i,cek;
39. i=0;
40. cek=0;
41. for (i=0 ;i<9;i++)//perulangan untuk mengecek masukan huruf
42. {
43. if(binatang[i]==tebak[0])//jika indeks dari binatang ada yang sama dengan huruf
44. {
45. tmp[i]=tebak[0];//maka indeks dari tmp akan diisi oleh huruf tersebut
46. cek=1;//cek bernilai 1
47. }
48. printf(" %c",tmp[i]);//menampilkan hasil tebakan
49. }
50. return cek;//mengirim nilai balikan cek ke fungsi utama
51. }



Deskripsi Singkat

Penggalan kode program diatas merupakan penggalan kode program game tebak huruf dengan menerapkan fungsi string, control flow khususnya metode if dan juga case, serta perulangan. Dimana program tersebut merupakan soal dari modul V no 6.
Berikut soal no 6.
Buatlah program menebak nama binatang maksimal 9 huruf. Setiap huruf yang betul akan ditampilkan sesuai dengan posisi huruf tersebut. Jika salah sebanyak 5x, maka program berakhir! Counter kesalahan juga ditampilkan pada layar!
Berikut dapat dijelaskan mengenai algoritma program tersebut.
1.    Pada program sudah terdapat variabel binatang dengan anggota array {h,a,r,i,m,a,u}, dan variabel tmp untuk menyimpan inputan huruf dari pengguna.
2.    Pengguna memasukkan huruf, seperti pada baris 14, dan format masukkan akan dirubah menjadi huruf kecil dengan fungsi strlwr, seperti pada baris 15. Tujuan dari perubahan format tersebut agar karakter huruf besar dan huruf kecil dibaca sama.
3.    Huruf yang dimasukkantadi berupa variabel tebak, akan dikirim dikirim ke fungsi cocokan guna diproses, seperti pada baris 16.
4.    Pada fungsi cocokan akan terjadi perulangan untuk mencocoan masukkan huruf tadi dengan anggota array binatang, seperti pada baris 41.
5.    Jika terdapat huruf yang sama, maka huruf tersebut akan dimasukkan ke dalam array tmp sesuai dengan indeks yang terdapat pada array binatang dan cek=1. Terdapat variabel cek untuk membedakan masukan yang salah dan yang benar. Jika Proses tersebut dapat dilihat pada baris 43 sampai 47.
6.    Array tmp yang sudah berisi anggota huruf tadi akan ditampilkan pada baris 48 sesuai dengan indeksnya.
7.    Variabel cek tadi akan dikrim ke fungsi utama untuk dilakukan proses pengecekan kesalahan. Seperti pada baris 50.
8.    Pada fungsi utama variabel cek tersebut digunakan untuk mengecek kesalahan yang terjadi. Jika cek sama dengan 0 maka counter kesalahan j akan bertambah 1. Maksimal kesalahan dapat dihitung dari jumlah j yang terus bertambah jika variabel cek bernilai nol, seperti pada baris 17 sampai 21.
9.    Untuk menghentikan perulangan maka dibuatkan variabel pembanding yang tujuannya membandingkan array binatang dengan array tmp yaitu variabel banding. Pembandingan tersebut menggunakan fungsi strcmp. Seperti apda baris 23.
10. Game selesai jika kesalahan sudah 5 kali atau tebakan sudah benar. Proses tersebut dapat dilihat pada baris 24 sampai 32.
11.  Demikian algoritma dari game tebak huruf. Untuk penjelasan masing-masing baris sudah dijelaskan melalui komentar pada setiap baris. Berikut hasil program dapat dilihat pada gambar 6.
Gambar 6. Tampilan program soal 6

2 komentar:

  1. kk saya mau tanya...
    gimana programnya klo mau buat pertukaran array tp yang bertipe karakter ??
    mohon bantuannya saya newbie :)

    BalasHapus
    Balasan
    1. Sama saja algoritma seperti diatas, cuman tipe variabel dipakai string berindeks

      Hapus

 
Toggle Footer