Laporan hasil praktikum alpro II Mdl VI

LAPORAN HASIL PRAKTIKUM
ALGORITMA DAN PEMROGRAMAN II



NAMA                                                 : GIANTO
NIM                                                     : DBC 114 043
KELAS                                                : D
MODUL                                              : VI ( TEMPLATE CLASS )








PROGRAM STUDI / JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS  PALANGKA RAYA
2015


BAB I
TUJUAN DAN LANDASAN TEORI



I.1.    TUJUAN
Setelah  menyelesaikan  modul  ini,  mahasiswa  diharapkan  mampu 
mengimplementasikannya template fungsi dan kelas. 
I.2.    LANDASAN TEORI 
Template  merupakan  cara  untuk  mendefinisikan  fungsionalitas  generik  pada  parameter  tanpa  perlu  mendeklarasikan tipenya.  Abstraksi  definisi  fungsi  dalam  bentuk  pseudo  code  sehingga  tipe  yang  digunakan  dapat  diganti  merupakan  konsep  dari  template. Penerapan template pada fungsi akan menghasilkan definisi fungsi.  Berikut ini  merupakan langkah-langkah untuk mendefinisikan fungsi, yaitu: 
1.       Mulai dengan keyword template 
2.       Nyatakan dalam kurung segitiga, nama placeholder untuk tipe yang akan digunakan.  
3.       Ikuti dengan nama fungsi  
4.       Ikuti nama fungsi dengan daftar parameter. 
Pernyataan atau statement yang digunakan dalam template class adalah sebagai berikut.
a.       Increase dan Decrease
Dalam program atau aplikasi pemrograman C++ kita dapat memperpendek operasi :
Increase (++)
a++;
a+=1;
a=a+1;
Decrease (--)
a--;
a-=1;
a=a-1;
Misalnya a=3; a++; maka nilai a yang baru adalah 4.
Operator Increase (++) dan Decrease (--) dapat digunakan sebagai prefix[sic!] atau suffix[sic!]. Dengan kata lain dapat dituliskan sebelum identifier variabel (++a) atau sesudahnya (a++). Operator increase yang digunakan sebagai prefix[sic!] (++a), begini perbedaannya:
Pada contoh 1, B ditambahkan sebelum nilainya diberikan ke A. Sedangkan contoh 2, Nilai B diberikan terlebih dahulu ke A dan B ditambahkan kemudian.
b.      Statement Void
Void  merupakan tipe data yang menyatakan tipe kosong untuk :
·                Mendeklarasikan fungsi yang tidak mengembalikan nilai apapun.
·                Mendeklarasikan fungsi yang tidak menerima parameter apapun.
·                Bila diawali dengan operator *, menyatakan penunjuk terhadap sembarang tipe data.
c.       Operator penugasan
Operasi penugasan adalah satu tanda dengan (=). Operator ini bekerja karena “=” adalah operator yang menghasilkan nilai dari ekspresi tangan kanan.
Contoh :
Int a, b, c;
a= b=c= 100;
maka : nilai a, b, dan c = 100
d.      Tipe Data
·                Float merupakan salah satu tipe data bilangan bercacah yang ada pada C++ selain dari double dan long double.
·                Char dan int merupakan salah satu tipe data bilangan bulat yang ada pada C++ selain.
e.       Fungsi
Program C++ tidak terlepas dari fungsi. Sebab fungsi adalah salah satu dasar penyusunan blok pada C++. Sebuah program C++ minimal mengandung sebuah fungsi main(). Fungsi ini menjadi awal dan akhir eksekusi program C++. main adalah nama judul fungsi.
Sedangkan yang dimulai dari tanda { hingga tanda } disebut tubuh fungsi. Semua yang terletak di dalam tanda {} disebut blok. Tanda () digunakan untuk mengapit argumen fungsi, yaitu nilai yang akan dilewatkan ke fungsi. Kata void yang mendahului main() dipakai untuk menyertakan bahwa fungsi ini tidak memiliki nilai balik. Di program C++ juga ada yang dinamakan fungsi konstriktor.
Fungsi Constructor merupakan member function khusus yang menginisialisasi data members dan memiliki nama yang sama dengan nama kelas. Fungsi Constructor dipanggil saat membuat objek dari kelas dan tidak memiliki tipe balikan.Konstruktor dipakai untuk menggantikan fungsi inisialisasi( ).
Ketentuan sebuah konstruktor :
·         Nama konstruktor sama dengan nama kelas
·         Konstruktor tidak memiliki nilai balik
·         Konstruktor harus diletakkan pada bagian public[sic!]
Adapaun jenis-jenis kontruktor adalah sebagai berikut:
·         Konstruktor[sic!] default : tidak dapat menerima argumen, anggota data diberi nilai awal tertentu.
·         Konstruktor[sic!] penyalinan[sic!] dengan[sic!] parameter[sic!] : anggota data diberi nilai awal berasal dari parameter.
·         Konstruktor[sic!] penyalinan[sic!] objek[sic!] lain[sic!] : parameter berupa objek lain, anggota data diberi nilai awal dari objek lain.
Dengan penggunaan template kita bisa membuat sebuah fungsi yang bisa mendukung segala macam tipe variabel. Penggunaan template tidak terbatas hanya pada fungsi tapi juga mencakup class( termasuk juga struct,union).Secara garis besar penggunaan template dapat dibagi 2 yaitu template pada fungsi(function template)dan template pada Class (class template).
Cetakan (template) adalah metode yang memberitahukan kepada kompiler tentang algoritma mana yang digunakan untuk membentuk suatu fungsi. Dengan cetakan kita dapat membuat suatu fungsi tertentu tetapi bisa untuk tipe data berbeda. Kompiler menanganni detil fungsi untuk suatu tipe data yang sedang digunakan. Baik fungsi global maupun kelas dapat diprogram sebagai cetakan. Kemudahan template adalah penyesuaian tipe data yang kita input, dengan adanya penyesuaian tipe data. Dengan satu fungsi bisa diinput dengan beberapa jenis data, sehingga menghemat code program.
Dalam penggunaanya template ada 2 macam yaitu fungsi template dan class template. Fungsi template adalah template yang diterapkan untuk fungsi, dimana kode kode fungsi digunkan untuk beberapa tipe data yang berbeda.
Template fungsi menggambarkan sebuah kumpulan fungsi sejenis yang hanya dibedakan oleh tiap argument dan nilai balik.
Definisi fungsi template mirip dengan definisi fungsi biasa, hanya saja tipe parameter diberi nama secara simbolik.
Berikut implementasi pada praktikum. Sedangkan Class template adalah template yang diterapkan pada kelas dimana kumpulan class yang hanya dibedakan oleh tipenya seperti tipe numeris dan char, pointer dan kombinasinya Sebagai contoh, untuk membuat template fungsi yang mengembalikan nilai terbesar dari 2 buah nilai bisa digunakan kode dibawah ini :
template <class myType>
myType GetMax (myType a, myType b)
{
 return (a>b?a:b);
}
Disini digunakan template fungsi dengan myType sebagai parameter template. Parameter template ini mewakili type data yang belum didefinisikan, tetapi tetap bisa digunakan di template fungsi sebagai tipe data yang biasa digunakan. Seperti yang terlihat template fungsi GetMax mengembalikan nilai 2 parameter yang masih belum didefinisikan.
Fungsi template adalah fungsi khusus yang dapat beroperasi dengan tipe generik. Hal ini memungkinkan kita untuk membuat sebuah template fungsi fungsi yang dapat disesuaikan dengan lebih dari satu jenis atau kelas tanpa mengulangi seluruh kode untuk tiap tipe.
Dalam C++ ini dapat dicapai dengan menggunakan parameter template.Sebuah parameter template adalah jenis khusus dari parameter yang dapat digunakan untuk melewati sebuah tipe sebagai argumen: parameter fungsi seperti biasa dapat digunakan untuk melewatkan nilai ke fungsi, parameter template memungkinkan untuk lulus juga jenis untuk fungsi.
Fungsi ini template dapat menggunakan parameter seolah-olah mereka semua jenis biasa lainnya. Format untuk mendeklarasikan fungsi dengan parameter jenis template adalah:
template <class function_declaration identifier>;
template <typename identifier> function_declaration;
Keyword Template mengindikasikan bahwa deklarasi fungsi tersebut merupakan definisi suatu template. Sedangkan keyword class mengindikasikan bahwa T merupakan salah satu type parameter. Dan keyword class dapat diganti dengan parameter typename.
            Kemudian  ini adalah sintaks yang digunakan dalam template kelas spesialisasi :
template<>class mycontainer <char> { ... };
Pertama-tama, perhatikan bahwa kita mendahului nama template kelas dengan daftar parameter EmptyTemplate < >. Hal ini untuk secara eksplisit menyatakan sebagai spesialisasi template.Tapi yang lebih penting dari prefiks ini, adalah parameter spesialisasi <char> setelah nama template kelas.
Parameter ini spesialisasi sendiri mengidentifikasi jenis yang kita akan mendeklarasikan spesialisasi template kelas (char). Perhatikan perbedaan antara template kelas generik dan spesialisasi :
template<class T>class mycontainer { ... };
template<>class mycontainer <char> { ... };
Keterangan baris pertama adalah template generik, dan yang  kedua adalah spesialisasi.






BAB II
LANGKAH KERJA




II.      LANGKAH KERJA
1.       Buatlah program seperti di bawah ini!  
#include <iostream.h> 
template <class T> 
void CetakArray(T *array, const int count) 
for (int i=0; i<count; i++) 
  cout << array[i] << " "; 
cout<< endl; 
Main ( ) 
const int aCount=5, bCount=4, 
  cCount=6; 
int a[aCount] = { 1, 2, 3, 4, 5 }; 
float b[bCount] = { 1.1, 2.2, 3.3, 4.4 }; 
char c[cCount] = "hello"; 
cout<< "Array a berisi : " << endl; 
CetakArray(a, aCount); 
cout<< "Array b berisi : " << endl; 
CetakArray(b, bCount); 
cout<< "Array c berisi : " << endl; 
    CetakArray(c, cCount); 
return 0; 
}

2.       Buatlah  template  untuk  melakukan  insertion  sort  sehingga  dapat  digunakan  untuk masukan dengan tipe data integer, float, dan double! 
Algoritma insertion sort adalah sebagai berikut : 
DEKLARASI   
Var 
  I, J, N     : integer 
  X            : integer 
DESKRIPSI 
For  I         2 to N Do 
  X        Larik [ I ] 
  Larik [0]         X   
  J            I –  1 
  While X <Larik [ J ] Do   
    Larik [ J+1]         Larik [ J ] 
    J             J-1 
  EndWhile 
  Larik [ J+1 ]           X 
EndFor 














BAB III
PEMBAHASAN


a.       Tujuan program
Program ini bertujuan untuk membuat sebuah template class yang nilai inputannya sudah ada didalam program. Kemudian program template class ini untuk membuatnya menggunakan aplikasi c++.
b.      Coding program pertama
c.       Penjelasan coding
#include<iostream.h>
Perintah #include<iostream.h> ini  disertakan  diprogram ini karena melibatkan perintah “cout”.
Tempalte <class T >
Template yang pertama adalah template untuk class dengan nama kelas yaitu class T.
Void  CetakArray ( T *array, const int count )
Kemudian setelah penulisan void tidak boleh menggunakan space karena bagian dari fungsi. Nama fungsi void yaitu CetakArray. Sedangkan T*array merupakan tipe data dari data yang ditunjuk bukan merupakan tipe data dari pointernya dan array disini sebagai variabel pointer. Lalu ada konstanta yaitu count dengan tipe data yaitu int ( integer ).
{
Tanda kurung kurawal buka merupakan tanda untuk mengawali pendefinisian fungsi void.
for ( int i = 0; i < count; i++ )
Kemudian dibaris program ini dilakukan perintah perulangan yaitu for. Di dalam perulangan ini terdapat perintah  variabel i bernilai 0  dengan tipe data yaitu  int ( integer ) , lalu variabel i lebih kecil dari konstanta yaitu count dan variabel i di increase ( i ++ ).
Cout << array [i] << " ";
Pada  baris program ini perintah cout digunakan untuk mencetak array yang mempunyai indeks yaitu  i.
Cout << endl ;
Pada  baris program ini perintah cout hanya digunakan untuk ganti baris pada program .
}
Kemudian tanda kurung kurawal tutup merupakan akhir dari pendefinisian fungsi void.
Main ( )
Kemudian perintah “int main ( )”, baris ini akan menginformasikan kompiler bahwa pada program tersebut terdapat sebuah fungsi bernama “main” yang mengembalikan sebuah nilai integer (int).
{
Pada baris program ini digunakan tanda  kurung kurawal  mengawali program main.
const int aCount=5, bCount=4,cCount=6;
Kemudian pada  baris program ini ditentukan bahwa jumlah karakter pada masing-masing konstanta Count adalah berbeda. Pada variabel a hanya memuat karakter sebanyak 5 buah karakter saja, variabel b memuat karakter sebanyak 4 buah karakter dan untuk variabel c memuat jumlah muatan karakter adalah sebanyak 6 karakter.
int  a[aCount] = { 1, 2, 3, 4, 5 } ;
Pada baris program ini, di dalam fungsi main ( ) tipe data yang akan digunakan ditentukan kembali yaitu untuk variable a adalah menggunakan tipe data int yang menunjukan konstanta aCount yang mempunyai ketentuan jumlah karakter yaitu 5 dan nilai dari 5 karakter itu adalah 1, 2, 3, 4, 5.
float b(bCount = { 1.1, 2.2, 3.3, 4.4 };
Pada baris program ini, di dalam fungsi main ( ) tipe data yang akan digunakan ditentukan kembali yaitu untuk variable b adalah menggunakan tipe data float yang menunjukan konstanta bCount yang mempunyai ketentuan jumlah karakter yaitu 4 dan nilai dari 4 karakter itu adalah 1.1, 2.2, 3.3, 4.4, 5.5.
char c[cCount] = "hello";
Pada baris program ini, di dalam fungsi main ( ) tipe data yang akan digunakan ditentukan kembali yaitu untuk variable c adalah menggunakan tipe char ( character ) yang menunjukan konstanta cCount yang mempunyai ketentuan jumlah karakter yaitu 6 dan nilai dari 6 karakter kalimat itu adalah hello.
Cout << "Array a berisi : " << endl;
Kemudian perintah cout disini digunakan untuk mencetak kalimat yaitu Array a berisi : dan diakhiri dengan  perintah endl;.
CetakArray (a, aCount);
Di baris program ini dilakukan pemanggilan fungsi yaitu CetakArray dengan parameter aktual yaitu a yang akan memanggil nilai dari parameter T* array dan untuk parameter aktual yaitu aCount yang akan memanggil nilai dari parameter const int count.
Cout << "Array b brisi : " << endl;
Perintah cout disini digunakan untuk mencetak kalimat yaitu Array b berisi :  dan diakhiri dengan endl; .
CetakArray  ( b, bCount ) ;
Di baris program ini dilakukan pemanggilan fungsi yaitu CetakArray dengan parameter aktual yaitu b yang akan memanggil nilai dari parameter  T* array dan untuk parameter aktual yaitu bCount yang akan memanggil nilai dari parameter  const int count.
Cout << "Array c brisi : " << endl;
Perintah cout disini digunakan untuk mencetak kalimat yaitu Array c berisi :  dan diakhiri dengan endl ; .
CetakArray (c, cCount);
Kemudian dibaris program ini dilakukan pemanggilan fungsi yaitu CetakArray dengan parameter aktual yaitu c yang akan memanggil nilai dari parameter T* array dan untuk parameter aktual yaitu cCount yang akan memanggil nilai dari parameter  const int count.
Return  0 ;
Kemudian perintah return 0;  dalam main ( ) menyatakan bahwa program berakhir dengan normal.
}
Kemudian tanda } kurung kurawal tutup digunakan untuk  menandakan akhir sebuah program.

Program tugas praktikum
a.       Tujuan
Program tugas ini bertujuan untuk membuat atau melakukan insertion sort ( pengurutan penyisipan ) dengan menggunakan tipe data integer ( int ), float dan double.
b.      Coding program tugas

c.       Penjelasan coding tugas
#include <iostream.h>
#include <conio.h>
Pada program awal terdapat perintah diatas yaitu #include <iostream.h> dan #include <conio.h> , ini merupakan bagian dari compilator. Kompilator dari c++ menjalankan program ini dinamakan praprosessor ( # ).
Template < class T >
Kemudian template yang pertama adalah template untuk class dengan nama kelas yaitu class T.
Void tukar ( T *array, const int count, int count2 )
Setelah penulisan void tidak boleh menggunakan space karena bagian dari fungsi. Nama fungsi void yaitu  tukar. Void di ikuti sepasang tanda kurung “( )” karena void merupakan fungsi. Setiap fungsi di C++ selalu di ikuti sepasang tanda kurung “( )” yang di dalamnya terdapat ctuale yang merupakan parameter yaitu T , sedangkan array merupakan tipe data dari data yang ditunjuk bukan merupakan tipe data dari pointernya dan array disini sebagai variabel pointer. Lalu ada konstanta yaitu count dengan tipe data int dan count2 yang bertipe data int ( integer ).
{
Tanda kurung kurawal buka merupakan awal dari pendefinisian fungsi void.
T t ;
Pada baris program ini di buat konstruktor yang sama dengan nama class yaitu T dan nama konstruktor yaitu t.
t = array [count]
Pada baris program ini nama konstruktor t di isikan nilai array yaitu count.
Array[count] = array[count2];
Pada baris program ini nilai dari array yaitu count di isikan nilai dari array yaitu count2.
Array[count2] = t;
Pada baris program ini nilai dari array yaitu count2 di isikan nilai dari nama konsruktor yaitu t.
}
Tanda kurung kurawal tutup merupakan akhir dari pendefinisian fungsi void tukar.
Template <class T>
Template yang kedua adalah template untuk class dengan nama kelas yaitu class T.
Void insertion_sort ( T *array, const int count )
Setelah penulisan void tidak boleh menggunakan space karena bagian dari fungsi. Kemudian nama fungsi void yaitu insertion_sort. Void di ikuti sepasang tanda kurung “( )” karena void merupakan fungsi. Setiap fungsi di C++ selalu di ikuti sepasang tanda kurung “( )” yang di dalamnya terdapat ctuale yang merupakan parameter yaitu T , sedangkan array merupakan tipe data dari data yang ditunjuk bukan merupakan tipe data dari pointernya dan array disini sebagai variabel pointer. Lalu ada konstanta yaitu count dengan tipe data int ( integer ).
T x ;
Pada baris program ini di buat konstruktor yang sama dengan nama class yaitu class T dan nama konstruktor yaitu x.
int i, j;
Pada baris program di buat suatu  objek yaitu i dan j dengan tipe data yaitu int ( integer ).
For ( i = 1; i <= count; i++ )
Pada  baris program ini dilakukan perintah perulangan yaitu for. Di dalam perulangan terdapat perintah  ctuale i bernilai satu dengan tipe data yaitu  int ( integer ), lalu ctuale i lebih kecil atau sama dengan dari konstanta yaitu count dan ctuale i di increase (++) .
{
Pada baris program ini kurung kurawal buka merupakan awal pendefinisian untuk perintah for.
X = array[i];
Kemudian pada baris program ini nilai dari array dengan indeks yaitu  i diisikan ke objek yaitu x.
j= i -1;
Pada baris program ini nilai dari ctuale i di kurang dengan 1 di isikan ke objek yaitu  j.
While ( array[j] < x && j >= 0 )
Kemudian pada baris program ini dilakukan perintah perulangan lagi yaitu while.
{
Pada baris program ini tanda kurung kurawal buka merupakan awal dari perulangan while.
Array[j+1] = array [j] ;
Pada baris program ini, array dengan indeks j di isikan ke array dengan indeks j di tambah 1.
}
Pada baris program ini tanda kurung kurawal tutup merupakan akhir dari perulangan while.
Array[j+1] = x;
Pada baris program ini nilai dari objek x di isikan ke array dengan indeks j ditambah 1.
Template <class T>
Template yang ketiga adalah template untuk class dengan nama kelas yaitu class T.
Void Cetak ( T *array, const int count )
Setelah penulisan void tidak boleh menggunakan space karena bagian dari fungsi. Kemudian nama fungsi void yaitu Cetak. Void di ikuti sepasang tanda kurung “( )” karena void merupakan fungsi. Setiap fungsi di C++ selalu diikuti sepasang tanda kurung “( )” yang di dalamnya terdapat ctuale yang merupakan parameter yaitu T , sedangkan array merupakan tipe data dari data yang ditunjuk bukan merupakan tipe data dari pointernya dan array disini sebagai variabel pointer. Lalu ada konstanta yaitu count dengan tipe data int ( integer ).
{
Pada baris program ini kurung kurawal buka menandakan awal dari pendefinisian fungsi void Cetak.
Int i ;
Kemudian pada baris program ini di buat objek dengan nama i dengan tipe data yaitu int.
For ( i = 1; i<= count; i++ )
Dibaris program ini dilakukan perintah perulangan yaitu for. Didalam perulangan terdapat perintah  ctuale i bernilai satu dengan tipe data int, lalu ctuale i lebih kecil atau sama dengan dari konstanta yaitu count dan ctuale i di increase (++) .
Cout <<” “<< array[i]  << “ “;
Pada baris program ini perintah cout digunakan untuk mencetak array[i].
Cout <<endl;
Pada baris program perintah cout digunakan hanya untuk berganti baris.
}
Pada baris program ini tanda kurung kurawal tutup menandakan akhir dari pendefinisian fungsi void Cetak.
Template <class T>    
Template yang keempat adalah template untuk class dengan nama kelas yaitu class T.
Void CetakArray ( T *array, const int count )
Setelah penulisan void tidak boleh menggunakan space karena bagian dari fungsi. Nama fungsi void yaitu CetakArray. Void di ikuti sepasang tanda kurung “( )” karena void merupakan fungsi. Setiap fungsi di C++ selalu di ikuti sepasang tanda kurung “( )” yang di dalamnya terdapat ctuale yang merupakan parameter yaitu T , sedangkan array merupakan tipe data dari data yang ditunjuk bukan merupakan tipe data dari pointernya dan array disini sebagai variabel pointer. Lalu ada konstanta yaitu count dengan tipe data int ( integer ).
{
Pada baris program ini tanda kurung kurawal buka merupakan awal dari pendefinisian fungsi void CetakArray.
For (int i=0; i<count; i++)
Dibaris program ini dilakukan perintah perulangan yaitu for. Didalam perulangan terdapat perintah  ctuale i bernilai 0 dengan tipe data int, lalu ctuale i lebih kecil dari konstanta yaitu count dan ctuale i di increase (++).
Cout << array[i] <<” “;
Pada baris program ini perintah cout digunakan untuk mencetak array[i].
Cout << endl;
Pada baris program ini perintah cout hanya digunakan untuk berganti baris.
}
Pada baris program ini kurung kurawal tutup menandakan akhir dari program pendefinisian fungsi void CetakArray.
Main ( )
Kemudian kode “int main ( )”, baris ini akan menginformasikan kompiler bahwa pada program tersebut terdapat sebuah fungsi bernama “main” yang mengembalikan sebuah nilai integer (int).
{
Pada baris program ini digunakan tanda kurung kurawal buka digunakan untuk mengawali program main.
Const int aCount=4, bCount=4, cCount=4;
Dibaris program ini ditentukan bahwa jumlah karakter pada masing-masing konstanta Count adalah sama. Kemudian  pada variabel a hanya memuat karakter sebanyak 4 buah karakter saja, variabel  b memuat karakter sebanyak 4 buah karakter dan untuk variabel c memuat jumlah muatan karakter adalah sebanyak 4 karakter .
int a[aCount] = { 2, 4, 6, 8 } ;
Pada baris program ini, di dalam fungsi main ( ) tipe data yang akan digunakan ditentukan kembali yaitu untuk variabel a adalah menggunakan tipe data int yang menunjukan konstanta aCount yang mempunyai ketentuan jumlah karakter yaitu 4 dan nilai dari 4 karakter itu adalah 2, 4, 6, 8.
Double  b[bCount] = { 3.3, 4.4, 2.2, 9.9 };
Pada baris program ini, di dalam fungsi main ( ) tipe data yang akan digunakan ditentukan kembali yaitu untuk variable b adalah menggunakan tipe data yaitu double yang menunjukan konstanta bCount yang mempunyai ketentuan jumlah karakter yaitu 4 dan nilai dari 4 karakter itu adalah 3.3, 4.4, 2.2, 9.9.
Double  c[cCount] =  { 1.0, 3.5, 6.3, 5.1 } ;
Pada baris program ini, di dalam fungsi main ( ) tipe data yang akan digunakan ditentukan kembali yaitu untuk variable c adalah menggunakan tipe data yaitu double yang menunjukan konstanta cCount yang mempunyai ketentuan jumlah karakter yaitu 4 dan nilai dari 4 karakter itu adalah 1.0, 3.5, 6.3, 5.1.
Cout <<”Array a berisi : “<<endl ;
Kemudian perintah cout disini digunakan untuk mencetak kalimat yaitu Array a berisi : dan akan berganti baris.
CetakArray ( a, aCount ) ;
Dibaris program ini dilakukan pemanggilan fungsi yaitu CetakArray dengan parameter ctual yaitu a yang akan memanggil nilai dari parameter  T* array dan untuk parameter ctual yaitu aCount yang akan memanggil nilai dari parameter  const int count.
Cout <<”Array  a setelah di urutkan : “<<endl;
Kemudian perintah cout disini digunakan untuk mencetak kalimat yaitu Array a setelah di urutkan : dan akan berganti baris.
Insertion_sort ( a, aCount ) ;
Dibaris program ini dilakukan pemanggilan fungsi yaitu insertion_sort dengan parameter ctual yaitu a yang akan memanggil nilai dari parameter  T* array dan untuk parameter ctual yaitu aCount yang akan memanggil nilai dari parameter  const int count.
Cetak (a, aCount);
Dibaris program ini dilakukan pemanggilan fungsi yaitu Cetak dengan parameter ctual yaitu a yang akan memanggil nilai dari parameter  T* array dan untuk parameter ctual yaitu aCount yang akan memanggil nilai dari parameter const int count.
Cout <<endl;
Perintah cout disini digunakan hanya untuk berganti baris pada program.
Cout <<”Array b berisi : “<<endl;
Kemudian perintah cout disini digunakan untuk mencetak kalimat yaitu Array b berisi :  dan akan berganti baris.
CetakArray ( b, bCount ) ;
Dibaris program ini dilakukan pemanggilan fungsi yaitu CetakArray dengan parameter ctual yaitu b yang akan memanggil nilai dari parameter T* array dan untuk parameter ctual yaitu bCount yang akan memanggil nilai dari parameter  const int count.
Cout <<”Array b setelah di urutkan : “<<endl;
Perintah cout disini digunakan untuk mencetak kalimat yaitu Array b setelah di urutkan : dan akan berganti baris.
Insertion_sort ( b, bCount ) ;
Pada baris program ini dilakukan pemanggilan fungsi yaitu insertion_sort dengan parameter ctual yaitu b yang akan memanggil nilai dari parameter T* array dan untuk parameter ctual yaitu bCount yang akan memanggil nilai dari parameter const int count.
Cetak  ( b, bCount ) ;
Dibaris program ini dilakukan pemanggilan fungsi yaitu Cetak dengan parameter ctual yaitu a yang akan memanggil nilai dari parameter T* array dan untuk parameter ctual yaitu aCount yang akan memanggil nilai dari parameter const int count.
Cout <<endl;
Perintah cout disini hanya digunakan untuk ganti baris pada program.
Cout <<”Array c berisi :  “<< endl ;
Perintah cout disini digunakan untuk mencetak kalimat yaitu Array c berisi : dan akan berganti baris.
CetakArray ( c, cCount );
Dibaris program ini dilakukan pemanggilan fungsi yaitu CetakArray dengan parameter ctual yaitu c yang akan memanggil nilai dari parameter  T* array dan untuk parameter ctual yaitu cCount yang akan memanggil nilai dari parameter  const int count.
Cout <<”Array c setelah di urutkan : “<<endl;
Perintah cout disini digunakan untuk mencetak kalimat yaitu Array c setelah di urutkan : dan akan berganti baris.
Insertion_sort ( c, cCount ) ;
Dibaris program ini dilakukan pemanggilan fungsi yaitu insertion_sort dengan parameter ctual yaitu c yang akan memanggil nilai dari parameter formal T* array dan untuk parameter ctual yaitu cCount yang akan memanggil nilai dari parameter formal const int count.
Cetak (c, cCount) ;
Dibaris program ini dilakukan pemanggilan fungsi yaitu Cetak dengan parameter ctual yaitu c yang akan memanggil nilai dari parameter formal T* array dan untuk parameter ctual yaitu cCount yang akan memanggil nilai dari parameter formal const int count.
Cout <<endl;
Perintah cout disini digunakan hanya untuk berganti baris pada program .
getch  ( ) ;
Fungsi getch( ) merupakan singkatan dari get character artinya baca karakter tetapi isian data yang dimasukkan tidak akan ditampilkan di layar.
Return 0 ;
Perintah return 0 dalam main ( ) menyatakan bahwa program berakhir dengan normal.  Kemudian  tanda } Kurung kurawal tutup menandakan akhir program.


BAB IV
KESIMPULAN



Pada praktikum keenam Algortima dan Pemprograman II yaitu Modul VI Template Class. Disini akan menarik kesimpulan tentang pengimplementasian template fungsi dan kelas. Kesimpulan dari praktikum diatas adalah sebagai berikut.

Ø  Dengan penggunaan template kita bisa membuat sebuah fungsi yang bisa mendukung segala macam tipe variabel atau dengan satu fungsi bisa diinput dengan beberapa jenis data, sehingga menghemat code program. Penggunaan template tidak terbatas hanya pada fungsi tapi juga mencakup class ( termasuk juga struct,union ). Secara garis besar penggunaan template dapat dibagi 2 yaitu template pada fungsi ( function template)  dan template pada Class ( class template ).
Ø  Fungsi template adalah template yang diterapkan untuk fungsi, dimana kode kode fungsi digunakan untuk beberapa tipe data yang berbeda. Template fungsi menggambarkan sebuah kumpulan fungsi sejenis yang hanya dibedakan oleh tiap argument dan nilai balik.Definisi fungsi template mirip dengan definisi fungsi biasa, hanya saja tipe parameter diberi nama secara simbolik. Sedangkan Class template adalah template yang diterapkan pada kelas dimana kumpulan class yang hanya dibedakan oleh tipenya seperti tipe numeris dan char, pointer dan kombinasinya.
Ø  Pada program pertama dibuat template kelas dengan parameter T.  Sedangkan pada program kedua dibuat sebanyak 4 template kelas dengan parameter T.




BAB V
DAFTAR PUSTAKA





( Diakses pada Minggu, 24 Mei 2015 jam 20:03 WIB )
( Diakses pada Minggu, 24 Mei 2015 jam 22:12 WIB )
( Diakses pada Minggu, 24 Mei 2015 jam 23:14 WIB )
http://sipemalas.wordpress.com/2009/05/16/sedikit-tentang-template-c/.
( Diakses pada Minggu, 24 Mei 2014. Jam 19.05 WIB )

















BAB VI
LAMPIRAN

a.       Coding program pertama
b.      Output program pertama




a.       Coding program tugas
b.      Output program tugas


















Komentar

Postingan populer dari blog ini

Terong Sambal Pete Teri

Laporan Hasil Praktikum Modul IV Pemrograman Berorientasi Objek

Laporan Akhir Pemrograman Berorientasi Objek Lengkap