Minggu, 30 November 2014

Contoh Soal dan Penyelesaiannya



1.      Buatlah program menghitung pangkat dua serta pangkat tiga dari sebuah bilangan bulat dengan makro. Sebagai input adalah bilangan itu sendiri, sedangkan sebagai output adalah pangkat dua serta pangkat tiga dari bilangan bulat tersebut.

2.      Buatlah program menghitung luas dan keliling lingkaran. Proses berada didalam file header, nama file header yang diinginkan : lingkaran.h

Tampilan Yang Diinginkan:
Masukkan Nilai Jari-jari : ... <di-input>
Luas Lingkaran : ... < hasil proses >
Keliling Lingkaran : ... < hasil proses >

3.       Buatlah program menghitung nilai akhir perkuliahan pada suatu matakuliah, dengan ketentuan sebagai berikut:

Nilai Absensi * 10 %
Nilai Tugas * 20 %
Nilai U.T.S * 30 %
Nilai U.A.S * 40 %
Untuk proses penilaian dilakukan didalam file header dan simpan nama file header tersebut hitnilai.h.
Tampilan yang diinginkan:
Program Hitung Nilai Akhir Mata Kuliah
Masukkan Nilai Absensi : ……<di-input>
Masukkan Nilai Tugas : ……<di-input>
Masukkan Nilai U.T.S : ……<di-input>
Masukkan Nilai U.A.S : ……<di-input>
Nilai Murni Absensi = <data-inputan> * 10% = <hasil-proses>
Nilai Murni Tugas = <data-inputan> * 20% = <hasil-proses>
Nilai Murni U.T.S = <data-inputan> * 30% = <hasil-proses>
Nilai Murni U.A.S = <data-inputan> * 40% = <hasil-proses> 
Nilai akhir yang diperoleh sebesar = <output>

Jawaban :

1.       Fungsi Pemangkatan

/*Membuat  Fungsi Pemangkatan*/

#include<conio>
#include<iostream>
#define pangkat2(n) n*n    /*Konstanta Untuk Pemangkatan 2*/
#define pangkat3(n) n*n*n  /*Konstanta Untuk Pemangkatan 3*/

void judul()
{
cout<<"Membuat Fungsi Pemangkatan 2 dan Pemangkatan 3 "<<endl;
}
garis()
{
cout<<"----------------------------------------------"<<endl;
}
main()
{
int n;

judul();
garis();
cout<<"Masukkan Angka : ";cin>>n; /*Input Untuk Angka Yang Akan Dipangkatkan*/
 garis();
cout<<"Pangkat Dua dari "<<n<<" adalah "<<pangkat2(n)<<endl;
cout<<"Pangkat Tiga dari "<<n<<" adalah "<<pangkat3(n)<<endl;
getche();
                   
}

dan untuk tampilan programnya adalah :




2.       a.    Langkah Pertama Membuat File Header

/*Membuat File Header Untuk Menghitung Rumus Luas dan Keliling Lingkaran*/

#define phi 3.14286
#define L(n) phi*n*n
#define K(n) phi*2*n

NB : Save dulu file header di atas dengan cara klik File>>Save As>>(Save di C – Local Disk – BC5-INCLUDE-Ganti Format File ke Headers(*.h, *.hpp, *.rh) dan ganti Nama File Menjadi “lingkaran”)

b.    Langkah Kedua Membuat Script Programnya

        /*Program Menghitung Rumus Luas dan Keliling Lingkaran*/
#include<iostream>
#include<conio>
#include"lingkaran.h"  /*File Header yang Telah Dibuat*/

void judul()
{
cout<<"Program Menghitung Luas dan Keliling Lingkaran"<<endl;
}
garis()
{
cout<<"----------------------------------------------"<<endl;
}
main()
{
int n,luas,keliling;

clrscr();
judul();
garis();
cout<<"Masukkan Jari-Jari Lingkaran : ";cin>>n;  /*Input Jari-Jari Lingkaran*/
garis();
luas=L(n);
cout<<"Maka Luas Lingkaran dengan Jari-Jari "<<n<<" adalah "<<luas<<endl;
keliling=K(n);
cout<<"Maka Keliling Lingkaran dengan Jari-Jari "<<n<<" adalah "<<keliling<<endl;
garis();
getch();
}             

dan untuk tampilan programnya adalah :

  




3.       a.    Langkah Pertama Membuat File Header

/*Membuat File Header Untuk Menghitung Nilai Akhir Perkuliahan*/
#define NA na*0.1
#define NT nt*0.2
#define NUTS nuts*0.3
#define NUAS nuas*0.4
#define NAKHIR NA+NT+NUTS+NUAS

NB : Save dulu file header di atas dengan cara klik File>>Save As>>(Save di C – Local Disk – BC5-INCLUDE-Ganti Format File ke Headers(*.h, *.hpp, *.rh) dan ganti Nama File Menjadi “hitnilai”)

b.    Membuat Script Programnya


/*Program Menghitung Nilai Akhir Perkuliahan*/
#include<iostream>
#include<conio>
#include"hitnilai.h"
main()
{
float n_absensi,n_tugas,n_uas,n_akhir,na,nt,nuas,nuts,n_uts;

cout<<"Program Hitung Nilai Akhir Mata Kuliah"<<endl;
cout<<"--------------------------------------"<<endl;
cout<<endl;
cout<<"Masukkan Nilai Absensi     : ";cin>>na;
cout<<"Masukkan Nilai Tugas         : ";cin>>nt;
cout<<"Masukkan Nilai UTS            : ";cin>>nuts;
cout<<"Masukkan Nilai UAS            : ";cin>>nuas;
cout<<"--------------------------------------"<<endl;
n_absensi=NA;
cout<<"Nilai Murni Absensi                 : "<<na<<" * 10% = "<<n_absensi<<endl;
n_tugas=NT;
cout<<"Nilai Murni Tugas                     : "<<nt<<" * 20% = "<<n_tugas<<endl;
n_uts=NUTS;
cout<<"Nilai Murni UTS                        : "<<nuts<<" * 30% = "<<n_uts<<endl;
n_uas=NUAS;
cout<<"Nilai Murni UAS                        : "<<nuas<<" * 40% = "<<n_uas<<endl;
cout<<endl;
n_akhir=NAKHIR;
cout<<"Nilai Akhir Yang Diperoleh Sebesar  : "<<n_akhir<<endl;
getch();
}
  

dan untuk tampilan programnya adalah :




Cara Membuat File Header Pada C++

         File Header adalah suatu file yang sebenarnya berisikan definisi fungsi dan konstanta dan berakhiran .h . Pada Borland C++, kita sudah terbiasa dengan file header standar seperti iostream, conio, stdio, dll. Selain file header standar yang sudah disediakan tersebut, kita juga bisa membuat sendiri file header dengan cara yang sama seperti membuat file editor dan pada saat menyimpan file header yang dibuat harus berakhiran .h.
        
         Contoh pembuatan file header adalah sebagai berikut : 
         
  • File Header dengan nama atur.h

File header di bawah ini dibuat seperti kita membuat program pada umumnya,
 

/*atur.h
contoh pembuatan fie header untuk pengaturan.
*/
#define awal {
#define akhir }
#define mulai() main()
#define cetak cout
#define tampil cprintf
#define masuk scanf
#define hapus() clrscr()
#define jika if
#define warna textcolor
#define tahan getche()







Setelah itu kita save ke C:/BC5/INCLUDE/...... lalu ganti formatnya dari .cpp ke headers (.h) dan save
.
 
Nah untuk cara menggunakan file header yang telah kita buat tadi yaitu :

/*Program Dengan File Header Sendiri*/
#include<stdio>
#include<conio>
#include<iostream>
#include"atur.h"  //--> FIle Header yang telah dibuat
mulai()       //--> mulai() merupakan pengganti dari main() pada file header tadi
awal          //--> awal merupakan pengganti dari {
int a,b,c;
hapus();      //--> hapus() merupakan pengganti dari clrscr()
warna(4);
tampil("\nPROGRAM PENJUMLAHAN\n");
cetak<<endl;
cetak<<"Masukkan Nilai A = ";
cin>>a;
cetak<<"Masukkan Nilai B = ";
cin>>b;
c=a+b;
cetak<<"Hasil Dari "<<a<<"+"<<b<<"="<<c;
tahan;
akhir


dan untuk tampilan programnya adalah :



Pada contoh di atas, sudah ditentukan sebelumnya jika tanda "{" bisa dituliskan dengan "awal", "main()" bisa dituliskan dengan "mulai()", "cout" bisa dituliskan dengan "cetak" dan seterusnya sesuai dengan yang telah kita buat pada file header "atur.h" tadi dan tentunya file header tersebut arus kita sertakan pada program yang kita buat. Kita juga bisa membuat bermacam-macam file header, contohnya file header untuk menghitung nilai, file header untuk menghitung luas dan keliling lingkaran, dsb.


  












   
          
  

Macro pada C++


Beberapa hal yang perlu dipelajari dalam penyusunan suatu macro adalah :


  • Prepocessor Directives


         Preprocessor Directive adalah suatu perintah yang termasuk ke dalam program, tetapi bukanlah instruksi dari program itu sendiri tetapi untuk preprocessor. Preprocessor ini dijalankan secara otomatis oleh kompiler, ketika didalam proses penterjemahan (Compile) program berlangsung, didalamnya membuat nilai pembuktian pertama dan menterjemahkan code program didalam kode objek. Didalam penggunaan preprocessor directive selalu dimulai dengan tanda ( # ).


         Yang termasuk preprocessor directive adalah :

  1. #define 
        Digunakan untuk mendefinisikan suatu nilai tertentu kepada suatu nama konstanta. Bentuk umum  dari preprocessor directive #define adalah :
#define nama_konsanta teks
Ex : #define NILAI 75

Dalam penulisan nama konstanta sebaiknya ditulis menggunakan huruf besar untuk membedakannya dengan nama variabel dan teks merupakan nilai dari konstanta tersebut. Dalam contoh di atas diketahui untuk nama konstanta adalah NILAI dan teks adalah 75 dan itu adalah nilai yang tetap. Artinya di dalam program jika kita memasukkan kata nilai, maka akan otomatis keluar angka 75.

Contoh Program menggunakan #define :
/*Program Penggunaan #define */
#include<conio>
#include<iostream>
#define NILAI 75
main()
{
    clrscr();
   int nilai;
   nilai=NILAI;
    cout<<"Nilai Ilham adalah "<<nilai<<endl;
   getch();
}
dan tampilan programnya 

      2. #include
         
          Preprocessor #include berfungsi untuk memasukkan atau menyertakan file-fie header ke dalam program yang akan dibuat. Penulisan #include ada 2 macam yaitu :
  • #include "file_header" 
         Pertama kali kompiler akan mencari file header yang disebutkan pada directori yang sedang aktif dan apabila tidak ditemukan akan mencari pada directori dimana file header tersebut berada. Contoh : #include "iostream.h"  #include "conio.h"
          
  • #include <file_header>
         Pertama kali compiler akan mencari  file header yang disebutkan pada directori yang ada file headernya, kecuali pada directori yang sedang aktif. Contoh : #include <conio.h>
#include<stdio.h>

     3. #if - #endif 


         Preprocessor #if - #endif digunakan untuk mengkompilasi jika pernyataan kondisi pada #if bernilai benar, jika tidak maka, diabaikan. Pernyataan kondisi berupa ekspresi konstanta yang dideklarasikan dengan #define.

        Bentuk penulisan preprocessor #if - #endif adalah :

#if ekspresi - konstanta
   pernyataan;
#endif

Contoh Program menggunakan #if - #endif adalah :

/*Program Penggunaan #if - #endif*/
#include<iostream>
#include<conio>
#define NILAI 75

main()
{
   #if NILAI>=70
   cout<<"Selamat Anda LULUS"<<endl;
   #endif

   getch();
}


dan tampilan programnya yaitu:





     4. #if - #else - #endif

      Prepocessor ini digunakan untuk mengkompilasi jika pernyataan kondisi pada #if bernilai benar, jika #if bernilai salah, maka pernyataan #else dikompilasi. Penggunaan preprocessor ini sama halnya dengan penggunaan if - else pada program biasa. Pernyataan kondisi berupa ekspresi konstanta yang di deklarasikan menggunakan #define.
         Bentuk Umum penulisan #if - #else - #endif adalah :

#if ekspresi-konstanta
     pernyataan-1;
#else
     pernyataan-2;
#endif

        Contoh program menggunakan Preprocessor #if - #else - #endif adalah :

/*Program Penggunaan #if - #else - #endif*/
#include<iostream>
#include<conio>
#define NILAI 70
main()
{
    #if NILAI>70
   cout<<"Selamat Anda LULUS"<<endl;
   #else
   cout<<"Maaf, Anda Tidak Lulus"<<endl;
   #endif
   getch();
}


dan untuk tampilan programnya adalah :



   5. #elif

       Preprocessor #elif digunakan untuk mengkompilasi dari pernyataan bertingkat. Dalam hal ini #elif sama halnya seperti #elseif, #elif merupakan kombinasi dari #if dan #else. Perintah dijalankan sesuai dengan kondisi yang telah ditentukan. Hasil hanya dapat dijalankan sesuai dengan ketentuan yang benar. Bentuk #elif diikuti oleh ekspresi-konstanta. 
        Bentuk umum penulisan #eif adalah :

#if ekspresi-konstanta-1
     pernyataan-1;
#elif ekspresi-konstanta-2
     pernyataan-2;
#elif ekspresi-konstanta-n
     pernyataan-n;

 Contoh Program menggunakan preprocessor #elif adalah :

/*Program Penggunaan #elif */
#include<conio>
#include<iostream>
#define N 15
main()
{
   #if N>10
   cout<<"Lebih Besar Dari Sepuluh"<<endl;
   #elif N==10
   cout<<"Sama Dengan Sepuluh"<<endl;
   #else
   cout<<"Lebih Kecil Dari Sepuluh"<<endl;
   #endif
   getch();
}

dan untuk tempilan programnya yaitu :



     6. #undef

        Preprocessor #undef digunakan untuk menghilangkan nilai yang telah didefinisikan (#define) dari daftar definisi.

Contoh Program Penggunaan #undef adalah :

/*Penggunaan #undef */
#include<iostream>
#include<conio>
#define LEBAR_MAKS 100
#if LEBAR_MAKS>200
#undef LEBAR_MAKS //--> menghilangkan LEBAR_MAKS
#define LEBAR_MAKS 200
#elsif LEBAR_MAKS <50
#undef LEBAR_MAKS //--> menghilangkan LEBAR_MAKS
#define LEBAR_MAKS 50
#else
#undef LEBAR_MAKS //--> menghilangkan LEBAR_MAKS
#define LEBAR_MAKS 50
#endif
main( )
{
char str[LEBAR_MAKS];
cout<<LEBAR_MAKS;
getch();
}

dan untuk tampilan programnya adalah :

     7. #ifdef - #ifndef

         Preprocessor #ifdef dan #ifndef memberikan bagian dari program yang akan dikompile, hal ini dapat dilakukan jika sudah konstanta didefiniskan pada bagian #define, hal ini merupakan parameter yang khusus yang harus terdefinisi.
        Bentuk umum penulisannya adalah :

#ifdef
       nama-konstanta pernyataan
#endif

        Jika nama-konstanta terdefinisi, maka pernyataan akan dijalankan, jika nama-konstanta tidak terdefinisi, maka pernyataan diabaikan .
 
 Contoh program menggunakan #ifdef dan #ifndef adalah :

//--> Penggunaan #ifdef dan #ifndef
#include<iostream>
#include<conio>
#define ANAK1 "ILHAM"
#define ANAK2 "HADIANSYAH"
main( )
{
#ifdef ANAK1
cout<<"Pagi ini "<<ANAK1<<" pergi Kesekolah";
#else
#ifndef ANAK2
cout<<"Hari ini "<<ANAK1<<" "<<ANAK2;
cout<<" pergi Kesekolah";
#else
cout<<"Pagi ini "<<ANAK2<<"pergi Kesekolah";
#endif
#endif
getch();
}


dan untuk tampilan programnya adalah :


Nah itu tadi pembahasan mengenai Macro pada C++, jangan lupa komennya  (^.^)b