Thursday, 18 April 2013


Pada postingan kali ini akan menampilkan source code serta deskripsi singkat mengenai Standard Library, Fungsi dan Variabel dengan Bahasa C. 
Pada postingan kali ini juga terdapat video penjelasan mengenai program kalkulator sederhana yang terdapat perintah perkalian, pengurangan, pertambahan, pembagian, cos, sin, tan, exp, luas segitiga, luas lingkaran, luas segi empat, akar kuadrat, pembulatan, dengan menggunakan library "math.h". Proses perhitungan kalkulator akan dilakukan di dalam fungsi.
Pembuatan video didapat dari ketentuan Nim % 4 = 17 % 4 = 1.
Jadi sisa bagi 1 akan membuat  video tutorial  pada soal nomor 7 tugas IV. Video tutorial pada soal nomor 7 yaitu tentang proses pembuatan program kalkulator dengan menggunakan fungsi pada bahasa C yang  dapat dilihat pada video di bawah berikut.

Video Program Kalkulator Dengan Menggunakan Fungsi Pada Bahasa C



Coding Tugas IV no.2
Source Code:
1.  #include <stdio.h>
2.  #include <stdlib.h>

3.  int main(void){
4.        int i,k,n,j;
5.        printf("n = ");
6.        scanf("%d",&n);
7.        printf("\n");
8.        for (i=1;i<=n;i++){
9.        for (j=4;j>=i;j--)
10.       printf(" ");
11.       for (k=i;k<=2*i-1;k++)
12.       {
13.            printf("%d",k);
14.       }
15.       for (k=2*i-2;k>=i;k--)
16.            printf("%d",k);
17.            printf("\n");
18.       }
19.       system("pause");
20.       return 0;
21. }

Deskripsi singkat:
1.   Source code program diatas merupakan perintah yang akan menampilkan piramida angka sesuai dengan nilai inputan dari user. 
2.       Baris 1 sampai baris 2 adalah pemanggilan header stdio.h dan stdlib.h
3.       Variabel yang diperlukan untuk menerima inputan user dan digunakan pada perulangan telah di deklarasikan pada baris 4.
4.  Pada source code di atas menggunakan perulangan bersarang, dimana perulangan utama merupakan perulangan yang akan menampilkan banyak baris.
Seperti perulangan utama yaitu for (i=1;i<=n;i++){} pada baris 8. Perulangan ini akan  di jalankan dari i=1 sampai dengan i=n. dimana n variable untuk menerima inputan dari user.
5.      Didalam perulangan utama for (i=1;i<=n;i++){}  akan terdapat 3 perulangan lagi.
·        Pada perulangan for (j=4;j>=i;j--){} pada baris 9 diperlukan untuk mengeluarkan karakter spasi ( ) agar sesuai dengan hasil output pada gambar diatas. Perulangan ini akan melakukan proses dekremen dari j=4 sampai nilai j>=1.
·     Pada perulangan for (k=i;k<=2*i-1;k++){} di baris 11 diperlukan untuk mengeluarkan baris bilangan pertama. Perulangan ini akan melakukan inkremen dari nilai k=i sampai dengan nilai k<2*i-1.
·     Pada perulangan  for (k=2*i-2;k>=i;k--){} pada baris 15 diperlukan untuk mengeluarkan baris bilangan kedua. Perulangan ini akan melakukan dekremen dari nilai awal k=2*i-2 sampai dengan nilai k>=i.
6.   Perintah system (“pause”) pada baris 19  berfungsi untuk menghentikan exekusi program sejenak.
7.       Perintah return 0 pada baris 20 berfungsi untuk mengembalikan nilai 0.



Coding Tugas IV no.7
Source Code:
1.  #include <stdio.h>
2.  #include <stdlib.h>
3.  #include <math.h>
4.  #define phi 3.14

5.  float perkalian(float a,float b){
6.    return (a*b);
7.  }

8.  float pengurangan(float a,float b){
9.    return (a-b);
10. }

11. float pertambahan(float a,float b){
12.   return (a+b);
13. }

14. float pembagian(float a,float b){
15.   return (a/b);
16. }

17. float hasil_cosinus(float nilai){
18.   return (cos(nilai*(phi/180)));
19. }

20. float hasil_sinus(float nilai){
21.   return (sin(nilai*(phi/180)));
22. }

23. float hasil_tangen(float nilai){
24.   return (tan(nilai*(phi/180)));
25. }

26. float hasil_exponen(float nilai){
27.   return (exp(nilai));
28. }

29. float luas_segitiga(float a,float t){
30.   return (0.5*(a*t));
31. }

32. float luas_lingkaran(float r){
33.   return (phi*(r*r));
34. }

35. float luas_segiempat(float s){
36.   return (s*s);
37. }

38. float akar_kuadrat(float a){
39.   return (sqrt(a));
40. }

41. float pembulatan(float a){
42.   float nilai = floor(a);
43.   if (a-nilai<=0.50){
44.       nilai = floor(a);
45.   }else{
46.       nilai = ceil(a);
47.   }
48.   return nilai;
49. }

50. int main(void){
51.     int pilihan;
52.     float nilai_a,nilai_b,alas,tinggi,jari,sisi,nilai_derajat,hasil;
53.     system("cls");
54.     printf("Nama : I Nyoman Yoga Setyawan\n");
55.     printf("No.Reg : 49013017\n\n");
56.     printf("   Program Kalkulator Sederhana    \n");
57.     printf("====================================\n\n");
58.     printf("            Menu pilihan          \n");
59.     printf("-----------------------------------\n");
60.     printf("1. Perkalian 2 buah bilangan\n");
61.     printf("2. Pengurangan 2 buah bilangan\n");
62.     printf("3. Pertambahan 2 buah bilangan\n");
63.     printf("4. Pembagian 2 buah bilangan\n");
64.     printf("5. Cosinus\n");
65.     printf("6. Sinus\n");
66.     printf("7. Tangen\n");
67.     printf("8. Exponen\n");
68.     printf("9. Luas segitiga\n");
69.     printf("10. Luas lingkaran\n");
70.     printf("11. Luas segi empat\n");
71.     printf("12. Akar kuadrat\n");
72.     printf("13. Pembulatan\n");
73.     printf("Pilih salah satu menu di atas!!\n");
74.     scanf("%d",&pilihan);
75.     system("cls");

76.     switch (pilihan){
77.         case 1:{
78.                      printf("Anda akan melakukan perkalian dua buah bilangan!!\n\n");
79.                      printf("Masukkan nilai a = ");
80.                      scanf("%f",&nilai_a);
81.                      printf("Masukkan nilai b = ");
82.                      scanf("%f",&nilai_b);
83.                      printf("Hasil perkalian %.2f * %.2f = %.2f\n",nilai_a,nilai_b,perkalian(nilai_a,nilai_b));
84.                      break;
85.                    }
86.         case 2:{
87.                      printf("Anda akan melakukan pengurangan dua buah bilangan!!\n\n");
88.                      printf("Masukkan nilai a = ");
89.                      scanf("%f",&nilai_a);
90.                      printf("Masukkan nilai b = ");
91.                      scanf("%f",&nilai_b);
92.                      printf("Hasil pengurangan %.2f - %.2f = %.2f\n",nilai_a,nilai_b,pengurangan(nilai_a,nilai_b));
93.                      break;
94.                    }
95.         case 3:{
96.                      printf("Anda akan melakukan penjumlahan dua buah bilangan!!\n\n");
97.                      printf("Masukkan nilai a = ");
98.                      scanf("%f",&nilai_a);
99.                      printf("Masukkan nilai b = ");
100.                    scanf("%f",&nilai_b);
101.                    printf("Hasil pertambahan %.2f + %.2f = %.2f\n",nilai_a,nilai_b,pertambahan(nilai_a,nilai_b));
102.                    break;
103.                  }
104.       case 4:{
105.                    printf("Anda akan melakukan pembagian dua buah bilangan!!\n\n");
106.                    printf("Masukkan nilai a = ");
107.                    scanf("%f",&nilai_a);
108.                    printf("Masukkan nilai b = ");
109.                    scanf("%f",&nilai_b);
110.                    printf("Hasil pembagian %.2f / %.2f = %.2f\n",nilai_a,nilai_b,pembagian(nilai_a,nilai_b));
111.                    break;
112.                  }
113.       case 5:{
114.                    printf("Anda akan melakukan perhitungan nilai cosinus dari nilai derajat yg di inputkan!!\n\n");
115.                    printf("Masukkan nilai dalam derajat = ");
116.                    scanf("%f",&nilai_derajat);
117.                    printf("Nilai Cosinus dari %.0f derajat = %.2f\n",nilai_derajat,hasil_cosinus(nilai_derajat));
118.                    break;
119.                  }
120.       case 6:{
121.                    printf("Anda akan melakukan perhitungan nilai sinus dari nilai derajat yg di inputkan!!\n\n");
122.                    printf("Masukkan nilai dalam derajat = ");
123.                    scanf("%f",&nilai_derajat);
124.                    printf("Nilai Sinus dari %.0f derajat = %.2f\n",nilai_derajat,hasil_sinus(nilai_derajat));
125.                    break;
126.                  }
127.       case 7:{
128.                    printf("Anda akan melakukan perhitungan nilai tangen dari nilai derajat yg di inputkan!!\n\n");
129.                    printf("Masukkan nilai dalam derajat = ");
130.                    scanf("%f",&nilai_derajat);
131.                    printf("Nilai Tangen dari %.0f derajat = %.2f\n",nilai_derajat,hasil_tangen(nilai_derajat));
132.                    break;
133.                  }
134.       case 8:{
135.                    printf("Anda akan melakukan perhitungan nilai exponen dari nilai yg di inputkan!!\n\n");
136.                    printf("Masukkan nilai = ");
137.                    scanf("%f",&nilai_derajat);
138.                    printf("Nilai Exponen dari %.2f = %.2f\n",nilai_derajat,hasil_exponen(nilai_derajat));
139.                    break;
140.                  }
141.       case 9:{
142.                    printf("Anda akan melakukan perhitungan luas alas segitiga!!\n\n");
143.                    printf("Masukkan nilai alas = ");
144.                    scanf("%f",&alas);
145.                    printf("Masukkan nilai tinggi = ");
146.                    scanf("%f",&tinggi);
147.                    printf("Luas segitiga dengan alas %.2f dan tinggi %.2f = %.2f\n",alas,tinggi,luas_segitiga(alas,tinggi));
148.                    break;
149.                 }

150.       case 10:{
151.                    printf("Anda akan melakukan perhitungan luas lingkaran!!\n\n");
152.                    printf("Masukkan nilai jari-jari = ");
153.                    scanf("%f",&jari);
154.                    printf("Luas lingkaran dengan jari-jari %.2f = %.2f\n",jari,luas_lingkaran(jari));
155.                    break;
156.                  }
157.       case 11:{
158.                    printf("Anda akan melakukan perhitungan luas segi empat!!\n\n");
159.                    printf("Masukkan nilai sisi = ");
160.                    scanf("%f",&sisi);
161.                    printf("Luas segi empat dengan sisi %.2f = %.2f\n",sisi,luas_segiempat(sisi));
162.                    break;
163.                  }
164.       case 12:{
165.                    printf("Anda akan melakukan perhitungan untuk mengetahui nilai akar dari nilai yang diinputkan!!\n\n");
166.                    printf("Masukkan nilai yang akan di akar = ");
167.                    scanf("%f",&nilai_a);
168.                    printf("Hasil akar kuadrat dari nilai %.2f = %.2f\n",nilai_a,akar_kuadrat(nilai_a));
169.                    break;
170.                  }

171.       case 13:{
172.                    printf("Anda akan melakukan perhitungan untuk mengetahui nilai pembulatan dari nilai yg diinputkan!!\n\n");
173.                    printf("Masukkan nilai yang akan dibulatkan = ");
174.                    scanf("%f",&nilai_a);
175.                    hasil = pembulatan(nilai_a);
176.                    printf("Nilai pembulatan dari nilai %.2f = %.2f\n",nilai_a,hasil);
177.                    break;
178.                  }

179.       default:{
180.                    printf("Pilihan anda tidak ada, silakan di ulangi untuk memilih menu !!\n");
181.                    system("pause");
182.                    return main();
183.                    break;
184.                  }
185.   }
186.   system("pause");
187.   return 0;
188.  }
Deskripsi singkat:
1.    Source code diatas merupakan perintah kalkulator yang dapat melakukan perintah perkalian, pengurangan, pertambahan, pembagian, cos, sin, tan, exp, luas segitiga, luas lingkaran, luas segi empat, akar kuadrat, pembulatan, yang menggunakan fungsi header “math.h”.
2.       Menu kalkulator akan di pilih sesuai dengan perintah yang ingin di jalankan oleh user, kemudian akan di simpan ke dalam variable pilihan yg telah di deklarasi.Pendeklarasian variable pilihan dapat dilihat pada source code program baris 51.
3.  Pilihan yang akan dimasukkan user berupa nilai angka yang bertipe integer. Perintah yang digunakan untuk menerima pilihan dari user  menggunakan perintah “scanf” dengan menggunakan kode format “%d” yang terlihat pada source code program di baris 74. Dimana perintah scanf memerlukan pemanggilan file header “stdio.h” agar dapat difungsikan. Pemanggilan file header “stdio.h” dapat dilihat pada baris 1 program.
4.  Terdapat kondisi pada pilihan yang di inputkan user sesuai dengan menu pilihan yang akan ditampilkan ke  layar menggunakan perintah “printf . Source code untuk menampilkan menu pilihan ke layar dapat dilihat pada baris 60 sampai baris 72 program.
5.  Jika user memasukkan pilihan menu yang sesuai, maka program akan menampilkan dan melakukan perhitungan sesuai dengan pilihan menu dari user. Dan jika user memasukkan pilihan menu yang tidak sesuai, maka  program akan menyarankan pengguna untuk kembali memilih menu pilihan yang sesuai / yang tersedia pada program dengan perintah default seperti terlihat pada baris 179 program.
6.  Kondisi pilihan sesuai inputan user menggunakan perintah “switch case”. Dimana perintah “switch case” digunakan untuk mengecek inputan pilihan user kemudian sistem akan mengerjakan perintah sesuai dengan inputan user, yang dapat dilihat pada source code program baris 77 sampai dengan baris 183.
7.    Perintah untuk melakukan proses perhitungan sesuai dengan m,enu pilihan dari user, akan di lakukan di dalam fungsi. Pada source code di atas terdapat 13 fungsi, dimana masing-masing fungsi berisi perintah utk melakukan proses perhitungan sesuai dengan menu pilihan user.
8.    Nilai parameter pada masing-masing fungsi akan diambil dari inputan user pada fungsi main() untuk di jadikan perhitungan pada masing-masing fungsi, kemudian hasil dari perhitungan akan di kembalikan ke fungsi main() untuk di tampilkan ke layar. 
·     Sebagai contoh untuk fungsi perkalian() yg dapat dilihat pada baris 5. Fungsi perkalian() dengan tipe float terdapat 2 parameter  a,b yang memiliki tipe data float. Di dalam fungsi perkalian akan dilakukan proses perkalian, dimana nilai yang akan dikalikan di terima dari fungsi main() yg dapat dilihat pada baris 80 dan baris 82 program. Nilai yg diterima akan di masukkan ke dalam parameter fungsi perkalian() seperti terlihat pada baris 5, kemudian digunakan sebagai proses sesuai dengan perintah di dalam fungsi perkalian(). Hasil dari proses akan di kembalikan ke fungsi main() dengan menggunakan perintah “return” untuk di tampilkan ke layar. Proses perhitungan dan pengembalian nilai  dalam fungsi perkalian() dapat dilihat pada baris 6 program.
·      Kembalian nilai dari fungsi perkalian() akan di panggil di dalam fungsi main() dengan perintah penulisan pada soure code program yaitu “nama_fungsi(parameter 1,parameter 2)”. Parameter 1 dan parameter 2 merupakan variable inputan yg memiliki tipe data float sesuai dengan tipe data parameter pada fungsi perkalian() yang telah di deklarasikan di dalam fungsi main().
9.     Untuk penjelasan pengambilan nilai parameter fungsi dari fungsi main() yang akan di proses di dalam fungsi dan pengembalian nilai hasil proses ke fungsi main() sama seperti penjelasan pada point 8 di atas. Hanya saja nama fungsi, parameter yang diperlukan pada fungsi, dan proses perhitungan di dalam fungsi berbeda dari masing-masing fingsi. Proses perhitungan di dalam fungsi dapat dilihat sebagai berikut.
·      Fungsi yang berisi parameter dapat dilihat pada source code program baris 5 sampai baris 49. Dimana nama fungsi dan proses perhitungan yang dilakukan di dalam masing-masing fungsi berbeda.
·      Pemanggilan hasil dari proses perhitungan yang dilakukan di dalam fungsi dapat dilihat pada source code diatas pada baris 83,92,101,110,117,124,131,138,147,154,161,168,176 yang menggunakan perintah “nama_fungsi(parameter 1,parameter 2)”.



Coding Tugas IV no.8
Source Code:
1. /* variadic function */
       2.       #include <stdarg.h>
       3.       #include <stdio.h>

       4.       int sum_up(int count,...)
       5.       {
       6.                  va_list ap;
   7.                  int i, sum;
   8.                  va_start (ap, count);
   9.                  sum = 0;
   10.               for (i = 0; i < count; i++)
   11.               sum += va_arg (ap, int);
   12.               va_end (ap);
   13.               return sum;
       14.    }

       15.    int main(void)
       16.    {
   17.               printf("%d\n", sum_up(2, 2, 4));
   18.               printf("%d\n", sum_up(4, 1, 3, 5, 7));
   19.               system ("pause");
   20.               return 0;
       21.    }


Deskripsi singkat:
1.       Baris 2 sampai baris 3 adalah pemanggilan header stdarg.h dan stdio.h
2.   Baris 4 adalah fungsi sum_ip(int count, ...) dengan variabel yang bisa diterima adalah tak terbatas.
3.    va_list pada baris 6 adalah keyword header “stdarg.h”, dan   variabel i, sum bertipe integer yang dapat dilihat pada baris 7.
4.       va_start(ap, count); adalah keyword dari header stdarg.h yang memanggil parameter, dengan  menggunakan perintah count. Yang dapat dilihat pada baris 8 program.
5.       sum diberikan inisialisasi nilai awal yaitu 0, yang dapat dilihat pada source code program baris 9.
6.       Perulangan for untuk mendapatkan argumen-argumen dari fungsi sum_up(); yang dapat dilihat pada source code program baris 10.
7.   Proses penjumlahan argumen akan ditampung di variabel sum yang terdapat di dalam perulangan for. Seperti terlihat pada source code program baris 11.
8.       va_end(ap); keyword dari header stdarg.h yg berguna untuk berhenti memanggil argumen dari fungsi sum_up(); yang dapat dilihat pada source code program baris 12.
9.   Perintah return sum merupakan perintah mengembalikan nilai sum;  yang dapat dilihat pada source code program baris 13.
10.   Baris 17 sampai baris 18 menampilkan output dari pemanggilan fungsi sum_up () diikuti beberapa argument, yang terletak di dalam fungsi main().




Coding Latihan D Modul IV
Source Code:
   1.  #include <stdio.h>
   2.  #include <stdlib.h>

   3.  int proses(int tahun){
   4.       if(tahun%4==0)
   5.       printf ("%d merupakan tahun kabisat\n",tahun);
   6.       else if ((tahun%100!=0)&&(tahun%100!=0)&&(tahun%4==0))
   7.       printf ("%d merupakan tahun kabisat\n",tahun);
   8.       else if ((tahun%100!=0)&&(tahun%400!=0)&&(tahun%4!=0))
   9.       printf ("%d bukan merupakan tahun kabisat\n",tahun);
   10.     else if ((tahun%100==0)&&(tahun%400!=0))
   11.     printf ("%d bukan merupakan tahun kabisat",tahun);
   12.     else
   13.     printf("Inputan salah\n");
   14. }

   15. int main(void){
   16.     int tahun;
   17.     printf("Nama : I Nyoman Yoga Setyawan\n");
   18.     printf("No.Reg : 49013017\n\n");
   19.     printf("Program Pengecekan Tahun Kabisat\n");
   20.     printf("=================================\n\n");
   21.     printf("Input Tahun : ");
   22.     scanf("%d",&tahun);
   23.     proses(tahun);
   24.     printf("\n");
   25.     system("pause");
   26.     return 0;
   27. }
Deskripsi singkat:
1.    Source code diatas merupakan perintah untuk melakukan pengecekan tahun kabisat atau bukan tahun kabisat dari tahun yang diinputkan oleh user. Dimana proses pengecekan akan dilakukan di dalam fungsi proses() yang dapat dilihat pada source code program baris 4 sampai dengan baris 13.
2.  Variable yang diperlukan pada program ini yaitu variable inputan tahun dari user, dimana variable diberi nama “tahun” yang memiliki tife data integer. Pendeklarasian variable dapat dilihat pada source code program baris 16.
3.   Penerimaan inputan tahun dari user dilakukan di dalam fungsi main() dengan menggunakan perintah “scanf” dengan menggunakan kode format “%d” sesuai dengan tipe data integer, yg dapat dilihat pada source code program baris 22.
4.     Inputan tahun dari user akan digunakan sebagai parameter yg terdapat di dalam fungsi proses(), kemudian akan di cek apakah merupakan tahun kabisat atu bukan berdasarkan kondisi yg terdapat di dalam fungsi proses().
Terdapat kondisi (algoritma) untuk melakukan pengecekan tahun kabisat atau bukan tahun kabisat di antaranya :
             a.       Jika angka tahun itu habis dibagi 4, maka tahun itu merupakan tahun kabisat.
b.     Jika angka tahun itu tidak habis dibagi 400 tetapi habis dibagi 100, maka tahun itu sudah pasti bukan merupakan tahun kabisat.
c.      Jika angka tahun itu tidak habis dibagi 400, tidak habis dibagi 100 akan tetapi habis dibagi 4, maka tahun itu merupakan tahun kabisat.
d.     Jika angka tahun tidak habis dibagi 400, tidak habis dibagi 100, dan tidak habis dibagi 4, maka tahun tersebut bukan merupakan tahun kabisat.
5.     Kondisi (algoritma) telah di implementasikan ke dalam source code program yang terletak di dalam fungsi proses(), yang dapat dilihat pada baris 4 sampai dengan baris 13 source code program.
6.     Hasil pengecekan tahun yang terdapat di dalam fungsi proses() akan dipanggil di dalam fungsi main() untuk di tampilkan ke layar. Pemanggilan fungsi dapat dilakukan dengan cara mengetikkan source code “nama_fungsi(parameter)”. Yang dapat dilihat pada baris 23 source code program.



0 comments:

Post a Comment