Breaking News
Loading...
Rabu, 17 April 2013

Standard Library, Fungsi dan Variabel C. Modul IV

            Kembali lagi dengan tutorial atau sharing koding dari program c. Kali ini saya akan bagikan beberapa source code terkait denga topik pembahasan seperti pada judul postingan ini. Dalam postingan kali ini ada beberapa program yang akan saya bagikan ke teman-teman, seperti program tahun kabisat, kalkulator sederhana, segitiga fibonanci dan fungsi stdarg. Langsung saja ke source code yang ada dibawah ini beserta video dokumentasi program. Namun terkait dengan video saya mendapat rejeki untuk mendokumentasikan soal nomor 8. dari mana dapat nomor 8, nah perhitungannya sedikit  gokil.. no registrasi saya adalah 49013018.. nah rumus perhitungan itu adalah (2 angka dibelakang noreg mod 4). Jadi 18 % 4 =2. Hasil bagi 2 tersebut mengerjakan no 8 sesuai petunjuk dosen.
video1. video dokumentasi program


Coding 1
Source Code Latihan modul IVd

1.  #include<stdio.h>//header standart input output
2.  int kabisat(int th);//deklarasi fungsi kabisat bertipe integer dengan parameter th bertipe integer
3.  int main(void)//fungsi utama
4.  {
5.  int tahun,ulang;//deklarasi variabel lokal
6.  ulang = 1;//inisialisasi variabel ulang
7.  printf("=== Latihan Modul IV.d. Ketut Agus Seputra ===\n\n");
8.  do{//melakukan proses
9.  printf("Masukkan Tahun : ");
10. scanf("%d",&tahun);//menerima masukkan tahun melalui variabel tahun bertipe integer
11. kabisat(tahun);//memanggil fungsi kabisat dengan parameter yang dikirim berupa variabel tahun
12. printf("\nUlang Lagi ??[1/0] : ");
13. scanf("%d",&ulang);//menerima masukkan pilihan ulang berupa variabel ulang
14. }while(ulang == 1);//kembali melakukan proses diatas selagi kondisi dalam while terpenuhi
15. printf("Terima Kasih");
16. getch();//menahan eksekusi program
17. return 0;//nilai balikan 0
18. }
19. int kabisat(int th)//proses fungsi kabisat dengan parameter yang diterima berupa variabel th bertipe integer
20. {
21. if (((th % 4 == 0)&&(th % 100 != 0))||(th % 400 == 0))
22. /*kondisi jika tahun habis dibagi 4 namun tidak habis dibagi 100 atau tahun habis dibagi 400*/
23. printf("Tahun %d merupakan Tahun Kabisat",th);
24. else//kondisi lainnya
25. printf("Tahun %d bukan merupakan tahun kabisat",th);
26. return 0;//nilai balikan 0
27. }

Deskripsi Singkat

Penggalan kode program diatas merupakan penggalan kode program pengecekan tahun kabisat guna menerapkan control flow khususnya metode if dan juga case. Dimana program tersebut merupakan soal dari latihan d modul IV.
Berikut dapat dijelaskan mengenai algoritma program tersebut.
1.    Pengguna memasukkan angka tahun berupa integer.
2.    Program akan mengecek tahun yang dimasukkan dengan algoritma sebagai berikut.
1)    jika tahun yang dimasukkan habis dibagi dengan 4, namun tidak habis dibagi dengan 100 tahun tersebut merupakan tahun kabisat.
2)    Jika tahun yang dimasukkan juga habis dibagi dengan 400 maka sudah pasti tahun tersebut adalah tahun kabisat.
3)    Jika kedua kondisi tersebut tidak terpenuhi maka tahun yang dimaksukkan buka merupakan tahun kabisat.
3.    Demikian algoritma dari program tahun kabisat. 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 4d

Coding 2
Source Code Soal modul IV.2

1.  #include <stdio.h>//header standart input output
2.  int main(void)//fungsi utama
3.  {
4.  int i,j,n,k;//deklarasi variabel
5.  k=1;
6.  n=5;//inisialisasi variabel
7.  printf("=== Soal Modul IV.2. Ketut Agus Seputra ===\n");
8.  for(i=1;i<=n;i++)//perulangan menentukan baris segitiga
9.  {
10. for(j=n;j>i;j--)//perulangan untuk menampilkan spasi
11. {
12. printf(" ");
13. }
14. for(j=i;j<=k;j++)//perulangan untuk menampilkan segitiga pertama
15. {
16. printf("%d",j);
17. }
18. for(j=k-1;j>=i;j--)
19. {
20. printf("%d",j);//perulangan untuk menampilkan segitiga kedua
21. }

22. k=1+k++;//membuat interval 2 pada setiap perulangan
23. printf("\n");
24. }
25. getch();//menahan eksekusi program
26. return (0);//mengembalikan nilai 0
27. }


Deskripsi Singkat

Penggalan kode program diatas merupakan penggalan kode program segitiga fibonanci. Dimana program tersebut merupakan soal nomor 2 modul IV. Berikut soal dapat dilihat pada gambar 2.
Gambar 2. Soal segitiga fibonanci
Berikut dapat dijelaskan mengenai algoritma program tersebut.
1.    Program akan membuat segitiga dengan jumlah baris n. Dimana n = 5.
2.    Oleh karena itu untuk membuat baris segitiga maka harus menggunakan perulangan, yaitu for. Dimana perulangan dari i=1 sampai pada i<=5, seperti pada baris ke 8 penggalan kode diatas.
3.    Untuk menentukan jumlah kolom dan tampilan segitiga maka didalam perulangan tadi harus terdapat perulangan lagi, inilah yang disebut sebagai perulangan bersarang.
4.    Melihat segitiga seperti didalam soal pada gambar 2, maka segitiga tersebut perlu dibagi menjadi 3 buah segitiga, segitiga 1 untuk membuat spasi, kemudian segitiga 2 untuk membuat baris bilangan, dan segitiga 3 untuk membuat baris bilangan yang ke 2.
1)    Untuk segitiga 1, perulangan dilakukan dari j=n sampai dengan j > I dengan menggunakan fungsi decreament, bisa dilihat pada baris 10.
2)    Untuk segitiga 2, perulangan dilakukan dari j=i sampai j<=k, dengan menggunkan fungsi decreament seperti pada baris ke 14, dimana ka merupakan interval dari setiap perulangan dengan nilai 2 seperti pada baris ke 22.
3)    Untuk segitiga 3, perulangan sama seperti pada segitiga 2, namun perulangan dibalik dan start perulangan juga berbeda. Perulangan disini menggunakan fungsi decreament. Bisa dilihat pada baris ke 18.
5.    Demikian algoritma dari program segitiga fibonanci. Untuk penjelasan masing-masing baris sudah dijelaskan melalui komentar pada setiap baris. Berikut hasil program dapat dilihat pada gambar 3
Gambar 3. Tampilan program soal modul IV.2

Coding 3
Source Code Soal modul IV.7

1.  #include<stdio.h>//header standart input output
2.  #include<math.h>//header fungsi math
3.  #include <stdlib.h>//header standart library
4.  float operasi_dasar();//deklarasi fungsi dasar(perkalian, pembagian, penjumlahan, pengurangan)
5.  float operasi_trigonometri();// deklarasi fungsi trigonometri(sin, cos, tan)
6.  float luassegitiga(float a, float t);//deklarasi fungsi luas seditiga dengan parameter variabel a,t bertipe float
7.  float luaslingkaran(float r);//deklarasi fungsi luas lingkaran dengan parameter variabel r bertipe float
8.  float luassegiempat(float s);//deklarasi fungsi luas segiempat dengan parameter variabel s bertipe float
9.  float akar(float a);//deklarasi fungsi akar dengan parameter variabel a bertipe float
10. float expo(float a);//deklarasi fungsi expo dengan parameter variabel bertipe float
11. float bulat(float a);//deklarasi fungsi bulat dengan parameter variabel a bertipe float
12. float hasil,PI = 3.14159265,a,t,r,s;//deklarasi variable publik bertipe float
13. int main(void)//fungsi utama
14. {
15. int menu,ulang;
16. ulang =1;
17. do{//proses mulai berjalan
18. system("cls");
19. printf("=== Soal Modul IV.7. Ketut Agus Seputra ===\n");
20. printf("Menu Operasi Matematika : \n");
21. printf("1. Operasi Dasar. \n2. Operasi Trigonometri. \n3. Luas Segitiga. \n4. Luas Lingkaran.\n");
22. printf("5. Luas Segi Empat. \n6. Akar Kuadrat. \n7. Fungsi exp. \n8. Pembulatan.");
23. printf("\nMasukkan Pilihan Menu Utama : ");
24. scanf("%d",&menu);//menerima masukkan pilihan menu berupa variabel menu bertipe integer
25. switch (menu)//eksekusi pilihan menu
26. {
27. case 1://pilihan menu operasi perhitungan dasar
28. printf("Operasi Perhitungan Dasar Matematika.\n");
29. printf("Pilihan Menu :\n");
30. printf("1. Perkalian. \n2. Pembagian. \n3. Penjumlahan. \n4. Pengurangan.\n");
31. printf("\nHasil Operasi adalah %.2f",operasi_dasar());//pemanggilan fungsi operasi_dasar
32. break;
33. case 2://pilihan menu operasi trigonometri
34. printf("Operasi Perhitungan Trigonometri.\n");
35. printf("Pilihan Menu :\n");
36. printf("1. fungsi cos. \n2. fungsi sin. \n3. fungsi tan.\n");
37. printf("\nHasil Operasi adalah %.2f",operasi_trigonometri());//pemanggilan fungsi operasi_trigonometri
38. break;
39. case 3://pilihan menu operasi luas segitiga
40. printf("Perhitungan Luas Segitiga\n");
41. printf("Masukkan alas segitiga : ");
42. scanf("%f",&a);//menerima masukkan alas segitiga dengan variabel a bertipe float
43. printf("Masukkan tinggi segitiga : ");
44. scanf("%f",&t);//menerima masukkan tinggi segitiga dengan variabel a bertipe float
45. printf("Hasil Operasi adalah %.2f",luassegitiga(a,t));//pemanggilan fungsi luassegitiga dengan parameter a,t
46. break;
47. case 4://pilihan menu operasi luas lingkaran
48. printf("Perhitungan Luas Lingkaran\n");
49. printf("Masukkan jari-jari lingkaran : ");
50. scanf("%f",&r);//menerima masukkan jari-jari lingkaran dengan variabel r bertipe float
51. printf("Hasil Operasi adalah %.2f",luaslingkaran(r));//pemanggilan fungsi luaslingkaran dengan parameter r
52. break;
53. case 5://pilihan menu operasi luas segi empat
54. printf("Perhitungan Luas Segi Empat\n");
55. printf("Masukkan Sisi segi empat : ");
56. scanf("%f",&s);//menerima masukkan sisi segiempat dengan variabel s bertipe float
57. printf("Hasil Operasi adalah %.2f",luassegiempat(s));//pemanggilan fungsi luassegiempat dengan parameter s
58. break;
59. case 6://pilihan menu operasi akar kuadrat
60. printf("Perhitungan Akar Kuadrat\n");
61. printf("Masukkan Nilai Kuadrat : ");
62. scanf("%f",&a);//menerima masukkan angka dengan variabel a bertipe float
63. printf("Hasil Operasi adalah %.2f",akar(a));//memanggil fungsi akar dengan parameter a
64. break;
65. case 7://pilihan menu operasi exponen
66. printf("Perhitungan Exponen\n");
67. printf("Masukkan Nilai a : ");
68. scanf("%f",&a);//menerima masukkan angka dengan variabel a bertipe float
69. printf("Hasil Operasi adalah %.2f",expo(a));//memanggil fungsi expo dengan parameter a
70. break;
71. case 8://pilihan menu operasi pembulatan
72. printf("Perhitungan Pembulatan\n");
73. printf("Masukkan Nilai a : ");
74. scanf("%f",&a);//menerima masukkan angka dengan variabel a bertipe float
75. printf("Hasil Operasi adalah %.2f",bulat(a));
76. break;
77. default://pilihan menu tidak tersedia
78. printf("Menu Tidak Tersedia");
79. getch();//menahan eksekusi program
80. return main();//kembali ke fungsi main
81. break;
82. }
83. printf("\nUlang lagi ? [1/0] : ");
84. scanf("%d",&ulang);//menerima masukkan ulang dengan variabel ulang bertipe integer
85. }while(ulang == 1);//proses diatsas terus berulang selagi masukkan berupa angka 1
86. printf("Terima KAsih");
87. getch();//menahan ekseskusi program
88. return 0;//nilai kembali nol
89. }
90. float operasi_dasar()//proses operasi dasar
91. {
92. int menu2;
93. float a1,a2;//deklarasi variabel lokal
94. printf("Masukkan pilihan operasi : ");
95. scanf("%d",&menu2);//menerima masukkan menu kedua dengan variabel menu2 bertipe integer
96. printf("Masukkan Angka pertama : ");
97. scanf("%f",&a1);//menerima masukkan angka pertama dengan variabel a1 bertipe float
98. printf("Masukkan Angka kedua : ");
99. scanf("%f",&a2);//menerima masukkan angka kedua dengan variabel a2 bertipe float
100.   switch (menu2)//eksekusi menu kedua
101.   {
102.   case 1://pilihan menu perkalian
103.   printf("Menu Perkalian");
104.   hasil=a1*a2;//proses perkalian variabel a1 dan a2
105.   break;
106.   case 2://pilihan menu pembagian
107.   printf("Menu Pembagian");
108.   hasil=a1/a2;//proses pembagian variabel a1 dan a2
109.   break;
110.   case 3://pilihan menu penjumlahan
111.   printf("Menu Penjumlahan");
112.   hasil=a1+a2;//proses penjumlahan variabel a1 dan a2
113.   break;
114.   case 4://pilihan menu pengurangan
115.   printf("Menu Pengurangan");
116.   hasil=a1-a2;//proses pengurangan variabel a1 dan a2
117.   break;
118.   default://menu tidak tersedia
119.   printf("Menu tidak tersedia");
120.   break;
121.   }
122.   return hasil;//mengembalikan nilai ke fungsi utama dengan variabel hasil
123.    }
124.    float operasi_trigonometri()//proses fungsi trigonometri
125.    {
126.   int menu2;
127.   float a;//deklarasi variabel lokal
128.   printf("Masukkan pilihan operasi : ");
129.   scanf("%d",&menu2);//menerima masukkan perulangan dengan variabel menu2
130.   printf("Masukkan Angka : ");
131.   scanf("%f",&a);//menerima masukkan angka dengan variabel a bertipe float
132.   switch (menu2)//eksekusi pilihan menu
133.   {
134.   case 1://pilihan menu fungsi cos
135.   printf("Operasi Fungsi cos");
136.   hasil=cos (a*PI/180);//operasi matematika dengan fungsi cos
137.   break;
138.   case 2://pilihan menu fungsi sin
139.   printf("Operasi Fungsi sin");
140.   hasil=sin (a*PI/180);//operasi matematika dengan fungsi sin
141.   break;
142.   case 3://pilihan menu fungsi tan
143.   printf("Operasi Fungsi tan");
144.   hasil=tan (a*PI/180);//operasi matematika dengan fungsi tan
145.   break;
146.   default://pilihan menu tidak tersedia
147.   printf("Menu tidak tersedia");
148.   break;
149.   }
150.   return hasil;//mengembailkan nilai hasil ke fungsi utama
151.    }
152.    float luassegitiga(float a, float t)//proses fungsi luas segitiga
153.    {
154.   hasil=(a*t)/2;//perhitungan matematika
155.   return hasil;//mengembalikan hasil ke fungsi utama
156.    }
157.    float luaslingkaran(float r)//proses fungsi luas lingkaran
158.    {
159.   hasil=PI*(r*r);//perhitungan matematika
160.   return hasil;//mengembalikan hasil ke fungsi utama
161.    }
162.    float luassegiempat(float s)//proses fungsi luassegiempat
163.    {
164.   hasil=s*s;//perhitungan matematika
165.   return hasil;//mengembalikan hasil ke fungsi utama
166.    }
167.    float akar(float a)//proses fungsi akar
168.    {
169.   hasil=sqrt (a);//perhitungan akar dengan fungsi sqrt
170.   return hasil;//mengembalikan hasil ke fungsi utama
171.    }
172.    float expo(float a)//proses fungsi exponen
173.    {
174.   hasil=exp (a);//perhitungan matematika dengan fungsi exp
175.   return hasil;//mengembalikan hasil kefungsi utama
176.    }
177.    float bulat(float a)//proses fungsi pembulatan
178.    {
179.   float x,y;
180.   x=floor(a);//perhitungan matematika dengan fungsi floor(pembulatan kebawah)
181.   y=a-x;//mencari kondisi angka dibelakang koma
182.   if (y<=0.5)//jika angka dibelakang koma lebih kecil sama dengan 0.5
183.   {
184.   hasil=floor (a);//proses pembulatan kebawah
185.   }else{//jika tidak
186.   hasil=ceil (a);//proses pembulatan keatas
187.   }
188.   return hasil;//mengembalikan hasil ke fungsi utama
189.    }


Deskripsi Singkat

Penggalan kode program diatas merupakan penggalan kode program kalkulator sederhana guna menerapkan control flow khususnya metode case dan menerapkan fungsi math.h. Dimana program tersebut merupakan soal 7 modul IV.
Berikut dapat dijelaskan mengenai algoritma program tersebut.
1.    Pengguna memasukkan menu sesuai pilihan.
2.    Program akan menyeleksi menu tersebut dengan menggunakan fungsi case.
3.    Setelah ditemukan pilihannya maka program akan melakukan sesuai dengan fungsi matematika masing-masing.
4.    Demikian algoritma dari program kalkulator sederhana. 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 Modul IV.7

Coding 4
Source Code Soal modul IV.8

1.  #include <stdarg.h> //header stdarg
2.  #include <stdio.h>  
3.  int sum_up(int count,...) //fungsi sum_up dengan argumen tak terbatas
4. 
5.  va_list ap;  //va_list fungsi untuk mendeskripsikan argumen pada fungsi menjadi list dengan variabel ap
6.  int i, sum;  //inisialisasi argumen list
7.  va_start (ap, count);  //memulai penjumlahan list ap
8.  sum = 0; 
9.  for (i = 0; i < count; i++)  //perulangan untuk mendapatkan argument berikutnya 
10. sum += va_arg (ap, int);   //menjumlhakan setiap argument  
11. va_end (ap);//menutup penjumlahan list ap 
12. return sum; //mengembalikan variabel sum ke fungsi utama
13. }  
14. int main(void) //fungsi main
15. {
16. printf("%d\n", sum_up(2, 2, 4));//menjumlahkan isi argument dengan output 6
17. printf("%d\n", sum_up(4, 1, 3, 5, 7)); //menjumlahkan ini argument dengan output 16
18. getch();
19. return 0;
20. }


Deskripsi Singkat

Penggalan kode program diatas merupakan penggalan kode program implementasi dari penggunaan header stdarg. stdarg.h adalah header standar C library dari bahasa pemrograman C yang memungkinkan fungsi untuk menerima jumlah tak terbatas argumen. Dimana program tersebut merupakan soal nomor 8 modul IV.
Berikut dapat dijelaskan mengenai algoritma program tersebut.
1.    Fungsi dapat menerima argument yang tak terbatas.
2.    Argument tersebut dapat dijumlahkan dengan menggunakan fungsi-fungsi yang ada pada header stdarg.
3.    Penjumlahan anggota argument pada fungsi tersebut berlangsung dengan melakukan beberapa kali perulangan sesuai dengan angka pada anggota pertama dari argument dalam fungsi sum_up. Penjumlahan tersebut dapat dilihat pada bari ke 16 dan 17.
4.    Demikian algoritma dari program stdarg. Untuk penjelasan masing-masing baris sudah dijelaskan melalui komentar pada setiap baris. Berikut dapat dilihat hasil program pada gambar 5.
Gambar 5. Tampilan program soal modul IV.8

0 komentar:

Posting Komentar

 
Toggle Footer