Jumat, 19 Februari 2016

I Miss You Mom




I miss you
I lean in your back from my fatigue
In your arms I lay from my remorse
Has far distance that separates us
Stretches of yearning in our hearts
I miss you
I have tried to collect the beauty of the world to change your present
I have tried to look for the best to fill my longing
But it was no use
Because you cannot be replaced as well
I miss you
The world would not be able take your place
The world will not be able to bother you
Only you who is always in my heart
You’re the only mother who is always there in my head
I miss you
The world was not meant to your presence
The world cannot prop up the heart and the extent of your affection
Because you’re the one who beautify my life
So beautiful in every second in your arms
So beautiful in every second in your lap
I miss you
My yearning to you will not be defeated by time
My love to you will not be defeated by distance
I’ll meet you
Right away after i completing my tasks

Kamis, 18 Februari 2016

Tugas pertama statistika I

gambar oleh wikipedia
Statistika Dasar
1. Populasi : Data keseluruhan yang menjadi bahan untuk diteliti. Tetapi tidak semuanya benar-benar diteliti. Contohnya : Jumlah mahasiswa Teknik Informasika 12A semuanya 50 anak.
2. Sampel : Bagian dari populasi yang benar-benar diteliti secara langsung. Contoh : Dari 50 anak pada contoh nomor 1, diambil sampel 10 anak yang masing-masing 5 cewek dan 5 cowok.
3. Sampling : Adalah proses dan cara mengambil sampel/contoh untuk meneliti atau menduga keadaan populasi. Contoh : Dari sampel nomor 2, dilakukan pendataan siapa/berapa banyak mahasiswa yang memilih kos dan berapa banyak sampel yang memilih pulang pergi.
4. Hipotesis : Jawaban sementara dari pengambilan data yang sudah dilakukan pada sampel. Contoh : Didapat jawaban mayoritas dari sampel nomor 3, mayoritas mahasiswa pulang pergi dalam berkuliah. Hipotesisnya banyak mahasiswa Teknik Informatika 12 A yang pulang pergi daripada kos.
5. Galat I dan Galat II : Galat I adalah penolakan hipotesis nol padahal hipotesis itu benar, sedangkan galat II adalah penerimaan hipotesis nol padahal hippotesis nol itu salah. Contoh : Dalam kasus kriminal, orang yang tidak salah malah dipenjara (galat I). Sebaliknya, orang yang salah malah dilepaskan (galat II).
6. Standar Deviasi : Adalah standar yang berfungsi memperlihatkan pada sebaran data, gap dan variansi sebaran dalam data. Contoh : Dalam periode sebelumnya, penggunaan BBM seseorang 20 liter, namun periode sekarang hanya 19 liter, 1 liter merupakan gap (standar deviasi).
7. Variansi : Ukuran bagi persebaran (dispersi data). Yang di ukur adalah seberapa jauh data tersebut disekitar rerata. Contoh : Perbedaaan rata-rata 2 orang siswa yang aktif di kegiatan ekstrakulikuler dengan siswa yang tidak mengikutinya.
8. 1-2 Tailed : Cara mengukur kekuatan 2 variabel atau lebih dengan cara mengukur tingkat kekuatan hubungan antara 2 variabel. Contoh : 1-2 tailed dari kepuasan pelanggan dengan kualitas layanan.
9. Interval Kepercayaan : Interval antara 2 angka yang dipercaya nilai parameter populasi terletak dalam interval. Contoh : Tertera pada kemasan mi instan 200gr, setelah diambil sampel 14 bungkus, ternyata beratnyasekitar 198gr.
10. P-Value : Probabilitas, besarnya peluang melakukan kesalahan jika menolak hipotesis nol. Contoh : Penelitian menghasilkan mesyarakat lebih suka produk A, tetapi peneliti (pedagang) tidak menerimanya dan malah memperbanyak produk B namun dengan kadar 5% dari hasil penelitian tersebut.
Diatas itu tugas aku yang pertama dari dosen statistika yang baru pertama kali ngajar tapi udah ngasih segini banyak tugas, tapi alhamdulillah sih bisa menambah sedikit wawasan. WARNING !!! Segala bentuk kesalahan yang terdapat didalamnya bukan tanggung jawab aku :D Silahkan dipakai referensi dan jangan lupa kritiknya ya biar jadi lebih baik :)

ELEKTRONIKA DIGITAL DASAR



A. Pengertian Elektronika Digital
Elektronika digital adalah sistem elektronik yang menggunakan signal digital. Signal digital didasarkan pada signal yang bersifat terputus-putus. Biasanya dilambangkan dengan notasi aljabar 1 dan 0. Notasi 1 melambangkan terjadinya hubungan dan notasi 0 melambangkan tidak terjadinya hubungan. Contoh yang paling gampang untuk memahami pengertian ini adalah saklar lampu. Ketika kalian tekan ON berarti terjadi hubungan sehingga dinotasikan 1. Ketika kalian tekan OFF maka akan berlaku sebaliknya. Elektronik digital merupakan aplikasi dari aljabar boolean dan digunakan pada berbagai bidang seperti komputer, telpon selular dan berbagai perangkat lain. Hal ini karena elektronik digital mempunyai beberapa keuntungan, antara lain: sistem digital mempunyai antar muka yang mudah dikendalikan dengan komputer dan perangkat lunak, penyimpanan informasi jauh lebih mudah dilakukan dalam sistem digital dibandingkan dengan analog. Namun sistem digital juga memiliki beberapa kelemahan, yaitu: pada beberapa kasus sistem digital membutuhkan lebih banyak energi, lebih mahal dan rapuh. 
B. Gerbang Logika 
Elektronik digital atau atau rangkaian digital apapun tersusun dari apa yang disebut sebagai gerbang logika. Gerbang logika melakukan operasi logika pada satu atau lebih input dan menghasilkan ouput yang tunggal. Output yang dihasilkan merupakan hasil dari serangkaian operasi logika berdasarkan prinsip prinsip aljabar
boolean. Dalam pengertian elektronik, input dan output ini diwujudkan dan voltase atau arus (tergantung dari tipe elektronik yang digunakan). Setiap gerbang logika membutuhkan daya yang digunakan sebagai sumber dan tempat buangan dari arus untuk memperoleh voltase yang sesuai. Pada diagram rangkaian logika, biasanya daya tidak dicantumkan. Dalam aplikasinya, gerbang logika adalah blok-blok penyusun dari perangkat keras elektronik. Gerbang logika ini dibuat dengan menggunakan transistor. Seberapa banyak transistor yang dibutuhkan, tergantung dari bentuk gerbang logika. Dasar pembentukan gerbang logika adalah tabel kebenaran (truth table). Ada tiga bentuk dasar dari tabel kebenaran yaitu AND, OR, dan NOT. Berikut adalah tabel-tabel dan bentuk gerbang logikanya. 

Gambar 1. Tabel Kebenaran Dan Representasinya Dalam Gerbang Logika 
Penjelasan dari Gambar 1 di atas adalah sebagai berikut:
- Pada AND, bila ada dua buah input A dan B maka output atau signal hanya dihasilkan jika A = 1 dan B = 1.
- Pada OR, bila ada dua buah input A dan B maka output atau signal akan dihasilkan jika salah satu atau kedua input bernilai 1. 
- Pada NOT, bila ada satu input mempunyai nilai tertentu maka operasi NOT akan menghasilkan output / signal yang merupakan kebalikan dari nilai inputnya.
 
Selain bentuk dasar di atas, beberapa bentuk yang merupakan turunan dari bentuk dasar juga penting diketahui. Gambar 2. menampilkan bentuk tabel kebenaran dan gerbang logika NAND, NOR, dan XOR. NAND adalah hasil operasi NOT + AND, NOR adalah operasi NOT + OR sedangkan XOR adalah ekslusif OR. NAND dan NOR merupakan bentuk gerbang logika yang banyak sekali digunakan untuk membangun perangkat elektronik digital.

 Gambar 2. Bentuk Turunan Tabel Kebenaran Dan Representasinya Dalam Gerbang Logika
C. Rangkaian Digital
Pada sub bab di atas kita telah belajar tentang bentuk-bentuk gerbang logika berdasarkan tabel kebenaran. Sebuah rangkaian digital sebenarnya disusun dari satu atau lebih gerbang logika ini. Perhatikancontoh pada Gambar 3. berikut ini. Kalau kita perhatikan pada gambar tersebut, pada bagian atas terlihat ada empat notasi gerban logika NAND, satu pin untuk sumber daya 5 V dan satu pin untuk ground. Sedangkan pada bagian bawah adalah representasi dari rangkaian digital ini, yaitu sebuah chip 7400.
Gambar 3: Contoh Rangkaian Digital Dan Representasinya Pada Hardware 

Gambar 4. Trainer Kendali Noise Akustik Secara Aktif 
http://www.ziddu.com/download/21059513/ElektronikaDigitalDasar.pdf.html

PENGENALAN ELEKTRONIKA ANALOG

nah ini yang paling gw suka dr smk dulunya tentang ke elektronika aan akhirnya nyambung juga gw ambil sistem informasi ketemu lagi deh dengan elektronika ini sedikit materinya hehehe


Elektronika analog ialah bidang elektronika dimana sinyal listrik yang terlibat bersifat kontinue, sedangkan komponen yang digunakan umumnya disebut komponen diskrit. Beda dengan elektronika digital dimana sinyal listrik yang terlibat merupakan sinyal  0V atau 5 V (sinyal digital berlogika 0 atau 1).
 

Gambar 1. Rangkaian Flip-flop Dengan Menggunakan Konsep Dasar Elektronika Analog 
Gambar 2. Contoh Trainer Rangkaian ADC Dengan Elektronika Analog 
Modul “ELEKTRONIKA ANALOG” dibawah ini merupakan modul yang berisi penerapan komponen elektronika analog dalam sistem penyearah, penguat, filter dan pembangkit gelombang.
Dalam modul ini terdapat 5 (lima) kegiatan belajar berkaitan  teori atom dan molekul, komponen pasif, komponen aktif, dasar penyearah dan penguat, op-amp, filter dan osilator. Setelah menyelesaikan modul ini peserta diklat memiliki sub kompetensi menguasai elektronika analog dalam rangka penguasaan kompetensi merawat peralatan elektronik Audio Video.

Statistika?? Apa kaitanya dengan Teknik Informatika?


Dulu pas SMP sama SMA klas X, XI Pernah sih belajar statistik walau ga teralu mendalami sekarang apa lagi ini kok ketemu lagi dengan statistik gw emang agak kurang suka dengan yg namanya matematika tapi kalo di jalani bisa bisa gua membahas itu aja kalo lagi nyamannya dengan mate matika tapi kalo lagi ga suka bgt sedikit pun ga gua liat contohnya pas kemaren belajar statistik tapi setelah itu gw tau kenapa apa statistik jadi seneng deh sekarang hehehe
 
aneh bin ajaiB bisa di bilang seperti itu kita kan mahasiswa informatika, kenapa kok ada mata kuliah statistik segala bukan kah itu mata kliah yg ada di fakultas mipa kalo matematika sih ga papa ini informatika apa hubungannya coba itulah yang sering dalam pertanyaan ku emngsih statistika itu ga teralu sulit dan juga ga boleh di anggap gampang tapi harus di jalani aja mau tau pasti ya jawabanya ayo baca aja bawah ini.



Pembahasan

Sebelum kita mengetahui hubungan dan peranan statistika dalam teknik informatika, ada baiknya kita ketahui terlebih dahulu apa itu statistika, agar kita dapat mengetahui lebih jelas hubungan dan peranan dalam teknik informatika.
Statistika adalah suatu metode(alat analisis) yang di tujukan untuk mengumpulkan data, klasifikasi data, tabulasi data, interpretasi data dan pengambilan keputusan terhadap masalah-masalah yang di dasarkan penelitian dengan sampel, agar di ketahuai bagaimana sifat-sifatnya atau karakteristik dari populasi tersebut. Bila penelitian tidak menggunakan sampel maka di perlukan data sensus untuk menganalisa sifat-sifat tersebut. Singkatnya, statistika adalah ilmu yang berkenaan dengan data. banyak beberapa orang yang terkadang keliru dan menganggap sama antara statistika dengan statistik, padahal keduanya mempunyai arti sangat berbeda. Statistika merupakan ilmu yang berkenaan dengan data, sedang statistik adalah kumpulan data khususnya yang berupa angka.

Aplikasi statistika yang di pakai di teknologi informatika.
1.      Program statistika buatan sendiri.
Contoh: bahasa pemrograman basic, pascal, fotran dll.
2.      Program statistika sebagai bagian dari program yang lain.
Contoh: add ins dari program aplikasi spreadsheet yaitu lotus dan excel.
3.      Program khusus statistika
Contoh: spss, minitab, sas, microstat.

Hubungan statistika dengan teknologi informatika juga sangat berkaitan erat. menjelaskan bahwa dalam ilmu statistika memiliki hubungan yang sangat erat dengan teknologi informatika dan akan menghasilkan suatu keputusan. Dimana tugas dari statistika disini metode pengolahan data dari data-data yang di kumpulkan dan di klasifikasikan data. Setelah itu baru kita proses data tersebut di komputer yang berguna sebagai sarana pengolahan data. Kemudian kita bisa menentukan kesimpulan dari data yang sudah di kelolah. Contoh:Dengan menggunakan kategori program statistika yang sebagai bagian dari program yang lain. Contoh: excel. Kita bisa menentukan suatu kesimpulan dari data statistika yang sudah di kelolah, dan gunakan cara yang mudah untuk menentukan kesimpulan dengan menggunakan diagram pie, bar, batang dll.

Ada 2  peranan statistika dalam dunia teknologi informatika yang ditegaskan oleh Autrisno Hadi, yang mengkutip pendapat Guilford, sebagai berikut.

1.      Statistika memberi landasan untuk meramalkan secara ilmiah tentang bagaimana suatu gejala akan terjadi dalam kondisi-kondisi yang telah di ketahui.

Dari peranan di atas dapat di simpulkan. Bahwa dalam membuat suatu program kita harus melakukan salah satu metode statistika yaitu survey. Apakah program yang kita buat nanti berguna dan bermanfaat bagi perusahaan dan gejala-gejala kekurangan apa dalam program ini. Ini dibutuhkan survey.

2.      Statistika memungkinkan peneliti menganalisa, menguraikan sebab akibat yang kompleks dan rumit.

Dari peranan statistika kedua dapat di simpulkan. Setiap kita membuat suatu program, metode statistika ini di perlukan karena kita bisa melihat kekurangan dan kelebihan program yang kita buat. Apakah program tersebut sudah dapat menjaga keamanan program tersebut dan mencari solusi kalau akibat yang kompleks bagi program misalnya terjadinya masalah dalam program. Ini merupakan salah satu metode statistika induktif. Yang keputusan,ramalan dan mencari solusi oleh peneliti.
Ilmu Statistika banyak sekali di gunakan dalam kehidupan sehari-hari kita, baik dalam ilmu-ilmu alam (misalnya astronomi dan biologi) maupun ilmu-ilmu sosial (termasuk sosiologi dan psikologi), maupun di bidang bisnis, ekonomi, dan industri). Statistika juga di gunakan oleh untuk berbagai macam keperluan dan tujuan dalam pemerintahan; sensus penduduk merupakan salah satu prosedur yang paling dikenal. Aplikasi statistika lainnya yang sekarang popular adalah prosedur jajak pendapat atau polling (misalnya dilakukan sebelum pemilihan umum), serta jajak cepat (perhitungan cepat hasil pemilu) atau quick count.


Kesimpulan.


Dapat disimpulkan bahwa ilmu statistika dibutuhkan untuk mahasiswa yang berjurusan teknik informatika, karena statistika berhubungan dengan bidang industri dan komputasi. Dengan mempelajari statistika kita dapat mengatasi problem-problem sulit yang berhubungan dengan dunia bisnis atau dunia kerja secara intelektual, karena bukan berarti seorang mahasiswa teknik informatika terlepas dari dunia bisnis.
Statistika memberikan alat analisis data bagi berbagai bidang ilmu. Kegunaannya bermacam-macam: mempelajari keragaman akibat pengukuran, mengendalikan proses, merumuskan informasi dari data, dan membantu pengambilan keputusan berdasarkan data. Statistika, karena sifatnya yang objektif, sering kali merupakan satu-satunya alat yang bisa diandalkan untuk keperluan-keperluan di atas.

ARRAY PEMPROGRAMAN i



walah walah UTS tingal 2 minggu lagi tapi aku belom begitu memahaminya semuanya akan tetapi aku harus punya tekat pasti bisa ayo mari lanjut belajar Pemprograman II
Arrays
Array adalah himpunan elemen (variable) dengan tipe yang sama dan disimpan secara berurutan dalam memory yang ditandai dengan memberikan index pada suatu nama variable. Contohnya, kita dapat menyimpan 5 nilai dengan tipe int tanpa harus mendeklarasikan 5 identifier variabel yang berbeda. Perhatikan contoh dibawah ini  :
Bagian kosong diatas merepresentasikan elemen  array, dalam kasus ini adalah nilai integer. Angka 0 - 4 merupakan index dan selalu dimulai dari 0. Seperti penggunaan variable pada umumnya, array harus dideklarasikan terlebih dahulu, dengan format sbb       :
type name [elements];
Maka contoh array diatas dideklarasikan sbb   :
int billy [5];

 

Inisialisasi array
Ketika mendeklarasikan array lokal (didalam fungsi), jika tidak diberikan nilai maka isi dari array tidak akan ditentukan (undetermined) sampai nilai diberikan. Jika mendeklarasikan array global array (diluar semua fungsi) maka isi dari array akan di-iniisialisasikan sebagai 0      :
int billy [5];
maka setiap elemen array billy akan di-inisialisasikan sebagai 0  :
Atau dideklarasikan dengan memberikan nilai array yang dituliskan dalam kurung kurawal :
int billy [5] = { 16, 2, 77, 40, 12071 };
Maka elemen array billy akan berisi      :

 

Access to the values of an Array.
Nilai array dapat diakses secara individual, dengan format      : 
name[index]
Maka dari contoh sebelumnya nama yang digunakan untuk mengakses masing-masing elemen:
Misalkan akan disimpan nilai 75 pada elemen ketiga, maka intruksinya  :
billy[2] = 75;
Dan jika nilai elemen ketiga tadi akan diberikan ke variable a, maka dapat dituliskan:
a = billy[2];

Contoh :                                                                                               Output :

// arrays example                                    12206
#include <iostream.h>
int billy [] = {16, 2, 77, 40, 12071};
int n, result=0;
 
int main ()
{
  for ( n=0 ; n<5 ; n++ )
  {
    result += billy[n];
  }
  cout << result;
  return 0;
}

Array Multidimensi
Array Multidimensi dapat dikatakan sebagai array dari array. Contoh dibawah ini adalah array berdimensi 2  : 
Maka pendeklarasiannya  :
int jimmy [3][5];

Contoh :


// multidimensional array
#include <iostream.h>
#define WIDTH 5
#define HEIGHT 3
 
int jimmy [HEIGHT][WIDTH];
int n,m;
int main ()
{
  for (n=0;n<HEIGHT;n++)
    for (m=0;m<WIDTH;m++)
    {
      jimmy[n][m]=(n+1)*(m+1);
    }
  return 0;
}

// pseudo-multidimensional array
#include <iostream.h>
#define WIDTH 5
#define HEIGHT 3
 
int jimmy [HEIGHT * WIDTH];
int n,m;
int main ()
{
  for (n=0;n<HEIGHT;n++)
    for (m=0;m<WIDTH;m++)
    {
      jimmy[n * WIDTH + m]=(n+1)*(m+1);
    }
  return 0;
}

Program diatas tidak akan menghasilkan tampilan, tetapi akan menyimpan nilai dalam memory seperti dibawah ini        :
Penggunaan konstanta defined (#define) untuk mempermudah jika akan melakukan perubahan.

Array sebagai parameter
Adakalanya array diberikan kedalam fungsi sebagai parameter. Dalam C++ tidak memungkinkan untuk pass by value satu blok memory sebagai parameter kedalam suatu fungsi. Untuk menggunakan array sebagai parameter maka yang harus dilakukan saat pendeklarasian fungsi adalah spesifikasi tipe array pada argumen, Contoh        :
void procedure (int arg[])
Contoh :                                                                                   Output :
// arrays as parameters                         5 10 15 
                                                2 4 6 8 10
#include <iostream.h>
void printarray (int arg[], int length) 
{
  for (int n=0; n<length; n++)
    cout << arg[n] << " ";
  cout << "\n";
}
 
int main ()
{
  int firstarray[] = {5, 10, 15};
  int secondarray[] = {2, 4, 6, 8, 10};
  printarray (firstarray,3);
  printarray (secondarray,5);
  return 0;
}

Dari contoh diatas, instruksi (int arg[]) menjelaskan bahwa semua array bertipe int, berapapun panjangnya. oleh sebab itu dideklarasikan parameter kedua dengan sifat yang sama seperti parameter pertama.

Function

lanjut lagi ke minggu ini lanjutan materi Pemprograman I kemaren



Function

Function adalah satu blok instruksi yang dieksekusi ketika dipanggil dari bagian lain dalam suatu program. Format dari function           :
type name ( argument1, argument2, ...) statement
Dimana :
  • type, adalah tipe dari data yang akan dikembalikan/dihasilkan oleh function.
  • name, adalah nama yang memungkinkan kita memanggil function.
  • arguments (dispesifikasikan sesuai kebutuhan). Setiap argumen terdiri dari tipe data diikuti identifier, seperti deklarasi variable (contoh, int x) dan berfungsi dalam function seperti variable lainnya. Juga dapat melakukan passing parameters ke function itu ketika dipanggil. Parameter yang berbeda dipisahkan dengan koma.
  • statement, merupakan bagian badan suatu function. Dapat berupa instruksi tunggal maupun satu blok instruksi yang dituliskan diantara kurung kurawal {}.

Contoh function 1       :                                                           Output :
// function example                       The result is 8
#include <iostream.h>
 
int addition (int a, int b)
{
  int r;
  r=a+b;
  return (r);
}
 
int main ()
{
  int z;
  z = addition (5,3);
  cout << "The result is " << z;
  return 0;
}
Program diatas, ketika dieksekusi akan mulai dari fungsi main. main function memulai dengan deklarasi variabel z dengan tipe int. Setelah itu instruksi pemanggilan fungsi addition. Jika diperhatikan, ada kesamaan antara sruktur pemanggilan dengan deklarasi fungsi itu sendiri, perhatikan contoh dibawah ini           :
Instruksi pemanggilan dalam fungsi main untuk fungsi addition, memberikan 2 nilai : 5 dan 3 mengacu ke parameter int a dan int b yang dideklarasikan untuk fungsi addition.

Saat fungsi dipanggil dari main, kontrol program beralih dari fungsi main ke fungsi addition. Nilai dari kedua parameter yang diberikan (5 dan 3) di-copy  ke variable local ; int a dan int b.
Fungsi addition mendeklarasikan variable baru (int r;), kemudian ekspresi r=a+b;, yang berarti r merupakan hasil penjumlahan dari a dan b, dimana a dan b bernilai 5 dan 3 sehingga hasil akhirnya 8. perintah selanjutnya adalah       :
return (r);

Merupakan akhir dari fungsi addition, dan mengembalikan kontrol pada fungsi main. Statement return dikuti dengan variabel r (return (r);), sehingga nilai dari r yaitu 8 akan dikembalikan :
Dengan kata lain pemanggilan fungsi (addition (5,3)) adalah menggantikan dengan nilai yang akan dikembalikan (8).

Contoh function 2        :

// function example
#include <iostream.h>
 
int subtraction (int a, int b)
{
  int r;
  r=a-b;
  return (r);
}
 
int main ()
{
  int x=5, y=3, z;
  z = subtraction (7,2);
  cout << "The first result is " << z << '\n';
  cout << "The second result is " << subtraction (7,2) << '\n';
  cout << "The third result is " << subtraction (x,y) << '\n';
  z= 4 + subtraction (x,y);
  cout << "The fourth result is " << z << '\n';
  return 0;
}

Output :
The first result is 5
The second result is 5
The third result is 2
The fourth result is 6

Fungsi diatas melakukan pengurangan dan mengembalikan hasilnya. Jika diperhatikan dalam fungsi main, dapat dilihat beberapa cara pemanggilan fungsi yang berbeda.


Perhatikan penulisan pemanggilan function, format penulisan pada dasarnya sama.
Contoh 1           :
z = subtraction (7,2);
cout << "The first result is " << z;

Contoh 2          :
cout << "The second result is " << subtraction (7,2);

Contoh 3          :
cout << "The third result is " << subtraction (x,y);

Hal lain dari contoh diatas, parameter yang digunakan adalah variable, bukan konstanta. Contoh diatas memberikan nilai dari x dan y, yaitu 5 dan 3, hasilnya 2.

contoh 4           :
z = 4 + subtraction (x,y);
Atau dapat dituliskan   :
z = subtraction (x,y) + 4;

Akan memberikan hasil akhir yang sama. Perhatikan, pada setiap akhir ekspresi selalu diberi tanda semicolon (;).

Function tanpa tipe (Kegunaan void)
Deklarasi fungsi akan selalu diawali dengan tipe dari fungsi, yang menyatakan tipe data apa yang akan dihasilkan dari fungsi tersebut. Jika tidak ada nilai yang akan dikembalikan, maka dapat digunakan tipe void, contoh            :

// void function example                Output     :
#include <iostream.h>                   I'm a function!
 
void dummyfunction (void)
{
  cout << "I'm a function!";
}
 
int main ()
{
  dummyfunction ();
  return 0;
}

Walaupun pada C++ tidak diperlukan men-spesifikasikan void, hal itu digunakan untuk mengetahui bahwa fungsi tersebut tidak mempunyai argumen, atau parameter dan lainnya. Maka dari itu pemanggilan terhadap fungsinya dituliskan        :
dummyfunction ();

Argument passed by value dan by reference.
Parameter yang diberikan ke fungsi masih merupakan passed by value. Berarti, ketika memanggil sebuah fungsi, yang diberikan ke fungsi adalah nilainya, tidak pernah men-spesifikasikan variablenya. Sebagai Contoh, pemanggilan fungsi addition, menggunakan perintah berikut    :
int x=5, y=3, z;
z = addition ( x , y );
Yang berarti memanggil fungsi addition dengan memberikan nilai dari x dan y, yaitu 5 dan 3, bukan variabelnya.

Tetapi, dapat juga memanipulasi dari dalam fungsi, nilai dari variable external. Untuk hal itu, digunakan argument passed by reference, Contoh   :

// passing parameters by reference
#include <iostream.h>
 
void duplicate (int& a, int& b, int& c)
{
  a*=2;
  b*=2;
  c*=2;
}
 
int main ()
{
  int x=1, y=3, z=7;
  duplicate (x, y, z);
  cout << "x=" << x << ", y=" << y << ", z=" << z;
  return 0;
}


Output :

x=2, y=6, z=14

Perhatikan deklarasi duplicate, tipe pada setiap argumen diakhiri dengan tanda ampersand (&), yang menandakan bahwa variable tersebut biasanya akan passed by reference dari pada by value.
Ketika mengirimkan variable by reference, yang dikirimkan adalah variabelnya dan perubahan apapun yang dilakukan dalam fungsi akan berpengaruh pada variable diluarnya.


Atau dengan kata lain, parameter yang telah ditetapkan adalah a, b dan c dan parameter yang digunakan saat pemanggilan adalah x, y dan z, maka perubahan pada a akan mempengaruhi nilai x, begitupun pada  b akan mempengaruhi y, dan  c mempengaruhi z.

Itu sebabnya mengapa hasil output dari program diatas adalah nilai variable dalam main dikalikan 2. jika deklarasi fungsi tidak diakhiri dengan tanda ampersand (&), maka variable tidak akan passed by reference, sehingga hasilnya akan tetap nilai dari  x, y dan z tanpa mengalami perubahan.

Passing by reference merupakan cara efektif yang memungkinkan sebuah fungsi mengembalikan lebih dari satu nilai. Contoh, fungsi ini akan mengembalikan nilai sebelum dan sesudahnya dari nilai awal parameter            :

// more than one returning value
#include <iostream.h>
 
void prevnext (int x, int& prev, int& next)
{
  prev = x-1;
  next = x+1;
}
 
int main ()
{
  int x=100, y, z;
  prevnext (x, y, z);
  cout << "Previous=" << y << ", Next=" << z;
  return 0;
}

Output :
Previous=99, Next=101


Nilai Default dalam argument
Ketika mendeklarasikan sebuah fungsi, dapat diberikan nilai default untuk setiap parameter. nilai ini akan digunakan ketika parameter pemanggil dikosongkan. Untuk itu cukup dideklarasikan pada saat deklarasi fungsi, Contoh   :



// default values in functions
#include <iostream.h>
 
int divide (int a, int b=2)
{
  int r;
  r=a/b;
  return (r);
}
 
int main ()
{
  cout << divide (12);
  cout << endl;
  cout << divide (20,4);
  return 0;
}


Output :
6
5

Dapat dilihat dalam fungsi divide. Instruksi 1:
divide (12)

Instruksi 2       :
divide (20,4)

 

Fungsi Overloaded function

Dua fungsi yang berbeda dapat memiliki nama yang sama jika prototype dari argumen mereka berbeda, baik jumlah argumennya maupun tipe argumennya, Contoh   :

// overloaded function
#include <iostream.h>
 
int divide (int a, int b)
{
  return (a/b);
}
 
float divide (float a, float b)
{
  return (a/b);
}
 
int main ()
{
  int x=5,y=2;
  float n=5.0,m=2.0;
  cout << divide (x,y);
  cout << "\n";
  cout << divide (n,m);
  cout << "\n";
  return 0;
}

Output :
2
2.5

Contoh diatas mempunyai nama fungsi yang sama, tetapi argumennya berbeda. Yang pertama bertipe int dan lainnya bertipe float. Kompiler mengetahuinya dengan memperhatikan tipe argumen pada saat pemanggilan fungsi.

inline Function
Directive inline dapat disertakan sebelum deklarasi fungsi, untuk menspesifikasikan  bahwa fungsi tersebut harus di-compile sebagai suatu kode saat dipanggil. Sama halnya dengan deklarasi macro. Keuntungannya  dapat terlihat pada fungsi sederhana yaitu hasil yang diberikan akan lebih cepat. (jika terjadi stacking of arguments) dapat dihindari.  Format deklarasi          :
inline type name ( arguments ... ) { instructions ... }

Pemanggilannya, sama dengan pemanggilan fungsi pada umumnya. Tidak diperlukan penulisan keyword
inline pada setiap pemanggilan.

Recursivity Function
Rekursif merupakan kemempuan sebuah fungsi untuk memanggil dirinya sendiri. Sangat berguna untuk pengerjaan sorting atau perhitungan factorial. Contoh, format perhitungan factorial        :

n! = n * (n-1) * (n-2) * (n-3) ... * 1

Misalkan, 5! ( 5 faktorial), akan menjadi :
5! = 5 * 4 * 3 * 2 * 1 = 120

Contoh :

// factorial calculator
#include <iostream.h>
 
long factorial (long a)
{
  if (a > 1)
   return (a * factorial (a-1));
  else
   return (1);
}
 
 
int main ()
{
  long l;
  cout << "Type a number: ";
  cin >> l;
  cout << "!" << l << " = " << factorial (l);
  return 0;
}

Output :
Type a number: 9
!9 = 362880

Prototyping function.
Format :
type name ( argument_type1, argument_type2, ...);

Hampir sama dengan deklarasi fungsi pada umumnya, kecuali    :
·         Tidak ada statement fungsi yang biasanya dituliskan dalam kurung kurawal { }.
·         Diakhiri dengan tanda semicolon  (;).
·         Dalam argumen dituliskan tipe argumen, bersifat optional.

 Contoh            :

// prototyping
#include <iostream.h>
 
void odd (int a);
void even (int a);
 
int main ()
{
  int i;
  do {
    cout << "Type a number: (0 to exit)";
    cin >> i;
    odd (i);
  } while (i!=0);
  return 0;
}
 
void odd (int a)
{
  if ((a%2)!=0) cout << "Number is odd.\n";
  else even (a);
}
 
void even (int a)
{
  if ((a%2)==0) cout << "Number is even.\n";
  else odd (a);
}
Output :
Type a number (0 to exit): 9
Number is odd.
Type a number (0 to exit): 6
Number is even.
Type a number (0 to exit): 1030
Number is even.
Type a number (0 to exit): 0
Number is even.

Contoh diatas tidak menjelaskan tentang efektivitas program tetapi bagaimana prototyping dilaksanakan. Perhatikan prototype dari fungsi odd dan even:
void odd (int a);
void even (int a);
Memungkinkan fungsi ini dipergunakan sebelum didefinisikan.  Hal lainnya mengapa program diatas harus memiliki sedikitnya 1 fungsi prototype, karena fungsi dalam odd terdapat pemanggilan fungsi even dan dalam even terdapat pemanggilan fungsi odd. Jika tidak satupun dari fungsi tersebut dideklarasikan sebelumnya, maka akan terjadi error.




























 
biz.