TUGAS kOMPUTASI MATEMATIKA -- TRANSFORMASI WAFELET -- DARUL Y(123214015) & FEBBY SINTA N (123214212

Tugas Komputasi Matematika- Darul Yuliana (123214015) & Febby Sinta N(123214212)

Tugas Struktur Data dan Algoritma


1. Class, Attribute, dan Method
·         Class : model yang berisi kumpulan attribute dan method dalam suatu unit untuk suatu tujuan tertentu. Sebuah class merupakan dasar dari modularitas dan struktur dalam pemrograman berorientasi object.
contoh :
Class Person, Vehicle, Tree, Fruit dan lain-lain.
·         Attribute : nilai data yang terdapat pada suatu object yang berasal dari class. Attribute merepresentasikan karakteristik dari suatu object.
contoh :
Class Fruit terdapat attribute warna, berat
·         Methode : suatu operasi berupa fungsi-fungsi yang dapat dikerjakan oleh suatu object. Method didefinisikan pada class akan tetapi dipanggil melalui object.
Contoh :
pada object mangga terdapat method ambilRasa , kupasKulit dan lain-lain.
2.    Object
·         Object : perwujudan dari class, setiap object akan mempunyai attribute dan method yang dimiliki oleh class-nya. Setiap object dapat berinteraksi dengan object lainnya meskipun berasal dari class yang berbeda
Contoh :
Dari class Fruit kita dapat membuat object Mangga, Pisang, Apel dan lain-lain.
3.    Cara Membuat Object
Untuk membuat object, kita menggunakan perintah new dengan sebuah nama class yang akan dibuat sebagai instance dari class tersebut.
                Contoh :
class Date
                {
Date hari = new Date();
                }
hari adalah object reference dari class Date yang akan digunakan untuk mengakses class Date. Sedangkan operator new adalah operator yang akan menghasilkan hari sebagai reference ke instance dari class Date().
4.    Konstruktor
·         Konstruktor : suatu method yang akan memberikan nilai awal pada saat suatu objek dibuat. Pada saat program dijalankan, constructor akan langsung memberikan nilai awal pada saat perintah new, membuat suatu objek
Pada saat kita bekerja dengan constructor, hal mendasar yang perlu diperhatikan, yaitu :
1.    Nama Constructor sama dengan nama Class.
2.    Tidak ada return type yang diberikan kedalam Constructor   Signature.
3.    Tidak ada return stetement, didalam tubuh constructor.

5.    Private, Protected, dan Public
·         Private : Menyatakan bahwa kelas tersebut tidak dapat diakses sama sekali oleh kelas lain bahkan juga tidak dapat diturunkan. Berarti attribute-attribute yang private hanya dapat diakses oleh method-method dalam kelas yang sama, kelas lain masih dapat mengakses melalui method-method tersebut asal modifiernya public.
·         Protected : Menyatakan bahwa kelas/method/attribute tersebut dapat diakses oleh kelas lain yang berada dalam satu package atau kelas lain tersebut merupakan turunannya.
·         Public : Menyatakan bahwa kelas/method/attribute tersebut dapat diakses oleh kelas lain dimanapun.
6.    Karakteristik OOP
·         Inherintence (pewarisan): merupakan konsep dimana suatu object memiliki sejumlah perilaku yang dimiliki oleh object lain dalam suatu hirarki tertentu.
Penulisan inheritance di C# sebagai berikut
public class ListBox : Window
Kode diatas berarti class ListBox adalah turunan dari class Window.
       Contoh Inherintence :
1: public class Window {
2:         //variabel dideklarasikan private
                sehingga tidak bisa diakses oleh kelas
3:         //turunannya
 4:         private int top;
 5:         private int left;
6: 
7:         //objek konstruktor
 8:         public Window(int top, int left) {
9:             this.top = top;
10:             this.left = left;
11:         }
12: 
13:         public void DrawWindow() {
14:             Console.WriteLine(“Draw window pada ({0},{1})”,
15:                 top, left); 
                16:         }
                17: }
                 18: 
                 19:     public class ListBox : Window {
                20:         //member variable baru pada class anak
                21:         private string listBoxContent;
                22:         public ListBox(int top, int left, string contents):base(top,left) {
                23:             this.listBoxContent = contents;
                24:         }
                25: 
                26:         //versi baru karena override dari base classnya
                27:         public new void DrawWindow() {
                 28:             base.DrawWindow();
                29:             Console.WriteLine(“Menuliskan string pada listbox: {0}”,
                30:             listBoxContent);
                31:         }
                32:     }
                33: 
                34:     class LatInheritance {
                35:         public static void Main(string[] args) {
                36:             Window objWindow = new Window(10, 15);
                37:             objWindow.DrawWindow();
                38: 
                39:             ListBox objList = new ListBox(15, 20, “Hello ListBox”);
                40:             objList.DrawWindow();
                41:         }
                42:     }
·         Polymorphism : konsep dimana beberapa object dapat memiliki metode yang sama dengan aksi yang berbeda. mengakibatkan adanya kemampuan untuk sebuah objek untuk mengubah perilakunya sesuai dengan bagaimana itu digunakan.
·         ilustrasi polymorphism :
Misalkan kita punya satu class hewan dan diturunkan menjadi dua class hewan berkaki dua dan hewan berkaki empat. Ketika hewan berkaki dua melakukan method makan maka yang dilakukan adalah makan dengan paruhnya, dan ketika hewan berkaki empat juga makan maka dia akan menggunakan mulutnya. Keduanya melakukan aksi yang sama yaitu makan akan tetapi perlakuannya lain.
       Contoh polymorphism:
class Binatang
{
public void info()
{
System.out.println(” Info tentang Hewan : “);
}
}
class Herbivora extends Binatang
{
public void info()
{
System.out.println (“Info pada herbivora: Memakan makanan berupa tumbuh – tumbuhan”);
}
}
class Kelinci extends Herbivora
{
public void info()
{
System.out.println(“Info pada Kelinci: Memakan makanan berupa wortel”);
}
}
public class Polimorfisme
{
public static void main(String[] args)
{
Herbivora herbivora;
Kelinci kelinciku;
Binatang hewan; herbivora=new Herbivora();
kelinciku=new Kelinci();
hewan=herbivora;
hewan.info();
hewan=kelinciku;
hewan.info();
}
}
·      Encapsulation : penyatuan antara proses-proses yang terjadi dan sejumlah data yang dikelola kedalam suatu bentuk kelompok tertentu (dibentuknya suatu object secara abstrak (abstraction)). Akibatnya, obyek dapat bekerja sama dalam banyak hal dalam sistem.
Contoh :
class Siswa
{
String nama;
String nim;
void isiData ( String namaku,String nimku )
{
nama = namaku;
nim = nimku;
}
String ambilNama()
{
return nama;
}
String ambilNim()
{
return nim;
}
}
public class Mahasiswa
{
public static void main ( String [] args)
{
Siswa mahasiswa_itn = new Siswa(); //membuat variable instant
mahasiswa_itn.isiData(“Dina Damayanti”,”0412585″);
System.out.println( “Nama : ” + mahasiswa_itn.ambilNama());
System.out.println( “Nim : ” + mahasiswa_itn.ambilNim());
}
}

Abstraction : proses yang mewakili versi yang disederhanakan dari objek dunia nyata dalam kelas dan objek.
Contoh :
Jika kita membangun aplikasi shipping, kita harus membangun object produk dengan atribut seperti ukuran dan berat. Warna adalah contoh informasi yang tidak ada hubungannya dan harus dibuang. Tetapi ketika kita membangun order- entry application, warna menjadi penting dan harus termasuk atribut object produk.

·   Aggregation : kondisi ketika object berisi gabungan dari object-object yang berbeda dan bekerja bersama.
Contoh :
mesin pemotong rumput terdiri dari object roda, objects mesin, object pisau dan  lain-lain. Object mesinpun merupakan gabungan dari berbagai object.
Kemampuan untuk menggunakan aggregation dalam OOP adalah satu feature yang powerful yang memungkinkan model menjadi akurat.
7.    Overloading
·               Overloading : dua atau lebih method di dalam satu kelas yang sama, dengan nama yang sama, namun dengan deklarasi parameter yang membedakan.

syarat untuk membuat method Overloading adalah :
1.jumlah tipe dalam parameter nya harus berbeda.
2.tipe di parameter harus berbeda.
3.urutan tipe di dalam parameter harus berbeda.







Tugas Bahasa Pemrograman


FUNGSI REKURSIF DALAM BAHASA C#
Fungsi rekursif adalah suatu fungsi yang memanggil dirinya sendiri. Pada beberapa persoalan, fungsi rekursif sangat berguna karena mempermudah solusi. Namun demikian, fungsi rekursif juga memiliki kelemahan, yakni memungkinkan terjadinya overflow pada stack, yang berarti stack tidak lagi mampu menangani permintaan pemanggilan fungsi karena kehabisan memori( stack adalah area memori yang dipakai untuk variable lokal untuk mengalokasikan memori ketika suatu fungsi dipanggil. Oleh karena itu, jika bisa diselesaikan dengan metode iteratif.
Bentuk umum fungsi rekursif.
 return_data_type function_name(parameter_list)
  {
     ...
     function_name(...);
     ...
  }
Contoh Algoritma program rekursif : Faktorial
Fungsi rekursif dapat digunakan untuk menghitung faktorial. Berikut penjelasan beserta dengan contoh listing programnya.
Fungsi faktorial dapat dinyatakan dalam bentuk rekursif seperti berikut:
fak(n) = 1, untuk n = 0 atau n = 1
fak(n) = n x (n-1)!, untuk n > 0
   faktorial(4)
 4 * faktorial(3)
3 * faktorial(2)
2 * faktorial(1)
   faktorial(1)
 hasilnya: 24

Misalkan kita membuat project baru, klik file new project, pada kotak project name silahkan isi nama project sesuai dengan keinginan, tidak ada aturan khusus dalam penamaan project. untuk langkah-langkah selanjutnya silahkan ikuti intruksi dibawah ini

Langkah 1 : tambahkan satu button dan satu datagridview padam form1. atur dan tata sedemikian rupa sehingga tampilannya seperti pada gambar dibawah ini khusus untuk datagridView tambahkan 2 kolom dengan cara klik kana pada datagridview dan klik add colomn


Langkah 2. Pada button satu tambahkan source code berikut ini
      dataGridView1.Rows.Add(1000);
            for (int i = 0; i < 1000; i++)
            {
                Thread.Sleep(3);
                dataGridView1.Rows[i].Cells[0].Value =      
                acak(10).ToString();        
            }
            for (int i = 0; i < 1000; i++)
            {
                Thread.Sleep(2);                
                dataGridView1.Rows[i].Cells[1].Value = 
                acak(10).ToString();                
            }
            for (int i = 0; i < 1000; i++)
            {
                Thread.Sleep(1);
                dataGridView1.Rows[i].Cells[2].Value = 
                acak(10).ToString();
            }

jangan lupa tambahkan library thread pada header program dengan using system.thread 

langkah 3: kita tambahkan fungsi rekursif, fungsi rekursif telah disiapkan, tinggal copy paste ke form. berikut ini fungsi rekursif tersebut. fungsi rekursif tersebut bernama acak.


private int acak(int data)
        {
            int temp = 0;
            Random acakku = new Random();            
            temp=acakku.Next(0, data);
            if (temp == 8)
            {
                temp = acakku.Next(0, data);
                return acak(6);                
            }
            return temp;           
        }

pada source function diatas, sebenarnya mirip dengan fungsi biasa seperti dengan fungsi lain yang dibuat dengan C#, akan tetapi jika dilihat lebih cermat akan ada sedikit perbedaan, pada fungsi diatas fungsi acak melakukan pemanggilan terhadap dirinya sendiri, padahal pemanggilan itu terjadi di block statement fungsi acak. inilah yang dimaksud dengan rekursif fungsi, yaitu fungsi yang mengizinkan dirinya memanggil dirinya sendiri. 

langkah 4 : Done, jalankan program. 
jika langkah-langkah diatas dilakukan dengang benar, sewaktu program dijalankan program akan menampilkan bilangan random pada datagrid. perhatikan seksama pada dataGridview1.

Tapi setiap kali running hasilnya akan berbeda, tidak harus sama seperti pada gambar diatas, karena kita menggunakan konsep random. pada datagridView1 perhatikan dengan seksama, pada dataGridView1 angka-angka yang dihasilkan adalah angka antara 0 sampai 9, dan pada datagridVew1 tidak pernah ada nilai 8. ini dikarenakan pada fungsi acak setiap kali function tersebut menghasilkan nilai 8 fungsi tersebut memanggil ulang dirinya sebelum sempat me return nilainya ke fungsi. sehingga angka 8 tidak pernah di return kan ke fungsi. inilah yang dinamakan dengan fungsi rekursif.

  
Contoh fungsi rekursif tidak pada windows form application:
 1.
{
Static int factorial (int n)
{
int temp=1,fak;
for (int i=1;i<=n;i++)
{
fak=i*temp;
temp=fak;
}
return temp;
}
Static int rekfaktorial (int n)
{
if(n==0)
{
return 1;
}
else
{
return n*refaktorial(n-1);
}

2. 
Static void Main (string[] args)
{
int n;
Console.Write(“Jumlah n factorial=”);
n=int.Parse(Console.ReadLine());
Console.Write(n+”Faktorial=”+factorial(n).Tostring());
Console.Readkey();
}
Download Materi di 4shared   klik disini
Download Materi di Dropbox  klik disini
Download Materi di Mediafire klik disini 

Daftar pustaka : www.csharp-indonesia.com