Jumat, 08 April 2011

ARRAY,REKURSIF DAN ITERATIF



ARRAY , REKURSIF DAN ITERATIF
A.    ARRAY
a.Pengertian Array

Array merupakan Tipe data terstruktur yang berguna untuk menyimpan sejumlah data yang bertipe sama. Bagian yang menyusun array disebut elemen array, yang masing-masing elemen dapat diakses tersendiri melalui indeks array.
“Elektronika”
“Telekomunikasi”
“Elektro Industri”
“Teknologi Informasi”
“Teknik Kimia”
                        b. Jenis-jenis Array
v  Array satu dimensi

Adalah sebuah variabel yang menyimpan sekumpulan data yang memiliki tipe sama dan elemen yang akan diakses hanya melalui 1 indeks atau subskrip.
                            Bentuk umum pendeklarasian
                       ”Nama_array[jumlah_eleman]”

v  Array dua dimensi
Adalah sebuah variabel yang menyimpan sekumpulan data yang memiliki tipe sama dan elemen yang akan diakses melalui 2 indeks atau subskrip yaitu indeks baris dan indeks kolom.
                            Bentuk umum pendeklarasian:
                     ”Nama_array[jumlah_eleman_baris][jumah_elemen_kolom]”

v  Array multidimensi
Adalah sebuah variabel yang menyimpan sekumpulan data yang memiliki tipe sama dan elemen yang akan diakses melalui banyak indeks atau subskrip. Array seperti ini biasa digunakan untuk matik, array 2 dimensi juga termasuk kedalam array multidimensi.





REKURSIF
1.Pengertian Rekursif

Rekursif berarti bahwa suatu proses bisa memanggil dirinya sendiri. Menurut definisi dalam Microsoft Bookshelf, Rekursif adalah kemampuan suatu rutin untuk memanggil dirinya sendiri. Dalam Rekursif sebenarnya terkandung pengertian prosedur dan fungsi. Perbedaannya adalah bahwa rekursif bisa memanggil ke dirinya sendiri, tetapi prosedur dan fungsi harus dipanggil lewat pemanggil prosedur dan fungsi. Rekursif merupakan teknik pemrograman yang penting dan beberapa bahasa pemrograman mendukung keberadaan proses rekursif ini. Dalam prosedur dan fungsi, pemanggilan ke dirinya sendiri bisa berarti proses berulang yang tidak bisa diketahui kapan akan berakhir.
            Contoh paling sederhana dari proses rekursif ini adalah proses menghitung nilai factorial dari suatu bilangan bulat positif dan mencari deret Fibbonacci dari suatu bilangan bulat.
  1. Nilai factorial secara rekursif dapat ditulis sebagai
0 ! = 1
N ! = N x (N-1) !

yang secara pemrograman dapat ditulis sebagai
Faktorial(0)  = 1                                                                                 (1)
Faktorial(N) = N*Faktorial(N-1)                                                     (2)

Persamaan (2) di atas adalah contoh hubungan rekurens (recurrence relation), yang berarti bahwa nilai suatu fungsi dengan argumen tertentu bisa dihitung dari fungsi yang sama dengan argumen yang lebih kecil. Persamaan (1) tidak bersifat rekursif, disebut nilai awal atau basis. Setiap fungsi rekursif paling sedikit  mempunyai satu nilai awal, jika tidak fungsi tersebut tidak bisa dihitung secara eksplisit.

  1. Bilangan Fibbonacci didefinisikan sebagai berikut
                 1    1    2    3    5    8    13    21    34    55    89   …


2.Rekursif  Versus Iteratif

            Dalam beberapa situasi, pemecahan secara rekursif maupun secara iteratif mempunyai keuntungan dan kekurangan yang bisa saling diperbandingkan. Adalah cukup sulit untuk menentukan mana yang paling sederhana, paling jelas, paling efisien dan paling mudah disbanding yang lain. Boleh dikatakan pemilihan cara iterative maupun rekursif merupakan kesenangan seorang programmer dan tergantung konteks permasalahan yang akan dipecahkan sesuai dengan kesanggupan yang bersangkutan.

Perhatikanlah contoh berikut :
Contoh 1.
function FACT(N : integer) ® integer
{mengirimkan bilangan factorial dengan cara rekursif}

 Deklarasi
 Deskripsi
      if (N=0) then
          return 1                {Basis}
      else
          return(N*FACT(N-1)) {Rekurens}
      endif
Contoh 2.
function FIBO(N : integer) ® integer
{mengirimkan bilangan fibbonacci dengan cara rekursif}

Deklarasi
Deskripsi
     if ((N=1) or (N=2)) then
          return 1                {Basis}
     else
          return(FIBO(N-1)+ FIBO(N-2))      {Rekurens}
     endif

Contoh 3.
function FACT(N : integer) ® integer
{mengirimkan bilangan factorial dengan cara iteratif}

Deklarasi
          x,i : integer
Deskripsi
          x ¬ 1
                        for  i = 1 to N do
                                    x ¬ i*x
                        endfor
                         return x







Contoh 4.
function FIBO(N : integer) ® integer
{mengirimkan bilangan fibbonacci dengan cara iteratif}

Deklarasi
          Fibbonacci, Akhir, Bantu, i : integer
Deskripsi
If N=0 then
              return 0
          else
            i¬1
  Fibbonacci ¬1
  Akhir ¬0
  while (i¹N)do
               Bantu ¬ Fibbonacci
              i ¬ i + 1
              Fibbonacci ¬ Fibbonacci + Akhir
              Akhir ¬ Bantu
   Endwhile
        return Fibbonacci
      endif



3.Fungsi Rekursif


            Fungsi rekursif adalah fungsi yang memanggil dirinya sendiri.  Fungsi ini akan terus berjalan sampai kondisi berhenti terpenuhi, oleh karena itu dalam sebuah fungsi rekursif perlu terdapat 2 blok penting, yaitu blok yang menjadi titik berhenti dari sebuah proses rekursi dan blok yang memanggil dirinya sendiri.

Contoh – contoh penerapan rekursif:
1.      Fungsi cetak ke layar
Fungsi ini mencetak  nilai dari paremeter yang dilempar kepadanya.  Jika nilai dari parameter tersebut  > 0, fungsi akan mencetak nilai dari parameter tersebut dan kemudian memanggil dirinya lagi, jika tidak, program berhenti.


Untuk melihat lebih jelas, terapkan fungsi di atas dalam sebuah program.

2.      Fungsi pangkat
Fungsi ini digunakan untuk menghitung nilai: Xn dengan n berupa bilangan bulat positif.  Solusi dari persoalan ini:
JIKA n = 1 MAKA Xn = X
SELAIN ITU: Xn = X * Xn-1
Sebagai contoh diambil nilai X=5 dengan n=3, pelukisan proses pemecahannya:
Berikut adalah fungsi pangkat dengan menggunakan solusi di atas:
a adalah bilangan yang dipangkatkan, sedangkan b adalah bilangan pemangkatnya.  Jika nilai dari b adalah 1, return a, lainnya return a dikali dengan fungsi pangkat dengan parameter a dan b-1.  Untuk lebih jelas, terapkan dalam program.

3.      Fungsi faktorial
Faktorial dapat dibuat dengan menerapkan rekursi.  Berikut ini adalah fungsi faktorial rekursif dari sebuah program.



Fungsi faktorial diatas akan melakukan rekursi selama nilainya > 1.  Sebagai contoh:
4!, pelukisan penyelesaiannya:



Untuk lebih jelas, terapkan fungsi di atas dalam sebuah program.

Latihan
Buatlah program untuk menghitung FPB (faktor persekutuan terbesar) dari dua bilangan dengan menggunakan metode rekursif.  Untuk membantu, berikut diberikan penyelesaian secara rekursif dari FPB:
fpb(x,y) = y jika y <= x dan sisa_pembagian(x,y) = 0
fpb(x,y) = fpb(y,x) jika x < y
fpb(x,y) = fpb(y, sisa_pembagian(x,y)) untuk keadaan yang lain
Buatlah fungsi untuk membalik suatu bilangan dengan cara rekursif.  Sebagai contoh, bilangan 1234 ditampilkan menjadi 4321!
Buatlah deret fibonaci dengan menerapkan rekursi!

UNGUIDED
1.Buat lah func rekursif untuk menghitung :
a.      Deret = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + … + n
Contoh inputan
n = 3 maka output = 6        (1+2+3)
n = 4 maka output = 10      (1+2+3+4)
b.      Deret = 2 + 4 + 6 + 8 + 10 + 12 + 14 + … + n
Contoh inputan
n = 3 maka output = 12        (2+4+6)
n = 4 maka output = 20       (2+4+6+8)



2.Buat func rekursif untuk Tribollaci
            bilangan ke N dari tribollaci adalah jumlah dari bilangan ke n-3 ditambah bilangan ke n-2 ditambah bilangan ke n-1.

                        F(n) = f(n-3) + f(n-2) + f(n-1)
           
1   1   1   3   5   9   17   31   57   105

TAKE HOME
1.Buat lah func rekursif untuk menentukan combination dari 2 bilangan dengan bantuan segitiga pascal
Misal
inputan = 1 1. Output = 1 (baris 1 kolom 1)
inputan = 2 2. Output = 2 (baris 2 kolom 2)
inputan = 3 2. Output = 3 (baris 3 kolom 2)
inputan = 4 3. Output = 6 (baris 4 kolom 3)


Tree..

Tree merupakan struktur hirarkis dari sebuah susunan data. Dalam tree,kita mempunyai sebuah Root yang nantinya akan menjadi awal dari tree tersebut. Untuk tree, kita juga membutuhkan struct. Ada banyak jenis-jenis Tree, tapi yang akan kita pelajari saat ini adalah implementasi dari Binary Tree, yaitu Tree yang hanya memiliki 2 tangan.
Langkah awal membuat Binary Tree adalah membuat struct seperti pada inisialisasi double linked list.

Setelah kita membuat struct, kita membuat void main yang di dalamnya kita deklarasikan sebuah variable yang bertipe data Node (struct yang telah kita buat) untuk nantinya digunakan sebagai root.
Setelah itu kita memanggil fungsi untuk tambah data.
Dalam fungsi tambah, parameter yang dikirim adalah “alamat dari Node root” dan data. Karena itu kita harus membuat parameter pada fungsi  tambah yang dapat menyimpan alamat dan data.
Jika ada masukkan data, fungsi yang kita buat harus selalu mengecek dari root, karena itu void main selalu mengirim alamat dari root. Mengapa bukan mengirim rootnya tetapi mengiri alamat root? Sebab root bukan variable global, sehingga kita harus mengakses alamatnya langsung. Setelah alamat dari root dikirim maka kita simpan alamat root tersebut dalam Node lain (sebut saja pohon). Ada 3 kondisi dalam memasukkan data:
1.      Jika nilai dari pohon adalah NULL. Maka kita buat Node baru untuk menampung nilai dan kemudian kita  copy Node baru ke Node pohon.
2.      Jika nilai dari pohon->data kurang dari databaru. Maka dia akan memanggil dirinya sendiri dengan parameter alamat dari (*pohon)->kiri dan databaru.








TEKNIK ITERATIF

Teknik Iteratif merupakan suatu teknik pembuatan algoritma dengan pemanggilan procedure beberapa kali atau hingga suatu kondisi tertentu terpenuhi
Contoh :
Teknik Iteratif pada algoritma untuk menghitung faktorial dari bilangan bulat positif n, adalah sebagai berikut :
Function FAK (n : integer) : integer
FAK=1
For i = 1 TO n
FAK = FAK * i
NEXT i
END FAK
Gambaran jalannya proses algoritma tersebut adalah sebagai berikut :
Misal n = 5, maka : FAK = 1, kemudian i
FAK
1
1 * 1 = 1
2
1 * 2 = 2
3
2 * 3 = 6
4
6 * 4 = 24
5
24 * 5 = 120

 Contoh :
BARISAN BILANGAN FIBBONACI → 1, 1, 2, 3, 5, 8, 13, 21, . . .
Teknik Iteratif pada algoritma untuk menentukan suku ke-n dari barisan bilangan Fibbonaci, adalah sebagai berikut :



1. Set x, y, n, i, f : integer
2. x ← 1 ; y ← 1
3. If n 2 then
begin
4. for i ← 3 to n do
begin
5. F ← x + y
6. x ← y
7. y ← F
end
else
8. F ← x
9. Write(F)
End
Gambaran jalannya proses algoritma tersebut adalah sebagai berikut :
Misal n = 5, maka :
x=1, y=1, kemudian i
F
x
y
3
1 + 1 = 2
1
2
4
1 + 2 = 3
2
3
5
2 + 3 = 5
3
5


 Model Iteratif
Model Interative
Perbedaan yang paling terlihat antara model waterfall dengan model intertif ini adalah proses kerja pengembangan sistem tersebut. Jika pada waterfall satu arah, sedangkan pada iteratif terdapat testing dan evaluasi yang menguji apakah aplikasi tersebut masih dapat digunakan atau tidak. Jika system tersebut ternyata tidak baik untuk digunakan lagi maka akan dilakukan identifikasi masalah lagi dan kembali untuk dikembangkan.

SISTEM BASIS DATA

SISTEM BASIS DATA


SISTEM BASIS DATA

Pengertian Sistem Basis Data


Basis data (database) adalah kumpulan dari berbagai data yang saling berhubungan satu dengan yang lainnya. Basis data tersimpan di perangkat keras, serta dimanipulasi dengan menggunakan perangkat lunak. Pendefinisian basis data meliputi spesifikasi dari tipe data, struktur dan batasan dari data atau informasi yang akan disimpan. Database merupakan salah satu komponen yang penting dalam sistem informasi, karena merupakan basis dalam menyediakan informasi pada para pengguna atau user. • Penyusunan basis data meliputi proses memasukkan data kedalam media penyimpanan data dan diatur dengan menggunakan perangkat Sistem Manajemen Basis Data (Database Management System DBMS). Manipulasi basis data meliputi pembuatan pernyataan (query) untuk mendapatkan informasi tertentu, melakukan pembaharuan atau penggantian (update) data, serta pembuatan report data. • Tujuan utama DBMS adalah untuk menyediakan tinjauan abstrak dari data bagi user. Jadi sistem menyembunyikan informasi mengenai bagaimana data disimpan dan dirawat, tetapi data tetap dapat diambil dengan efisien. Pertimbangan efisien yang digunakan adalah bagaimana merancang struktur data yang kompleks, tetapi tetap dapat digunakan oleh pengguna yang masih awam, tanpa mengetahui kompleksitas struktur data. Basis data menjadi penting karena munculnya beberapa masalah bila tidak menggunakan data yang terpusat, seperti adanya duplikasi data, hubungan antar data tidak jelas, organisasi data dan update menjadi rumit. Jadi tujuan dari pengaturan data dengan menggunakan basis data adalah : • Menyediakan penyimpanan data untuk dapat digunakan oleh organisasi saat sekarang dan masa yang akan datang. • Kemudahan pemasukan data, sehingga meringankan tugas operator dan menyangkut pula waktu yang diperlukan oleh pemakai untuk mendapatkan data serta hak-hak yang dimiliki terhadap data yang ditangani. • Pengendalian data untuk setiap siklus agar data selalu up-to-date dan dapat mencerminkan perubahan spesifik yang terjadi di setiap sistem. • Pengamanan data terhadap kemungkinan penambahan, pengubahan, pengerusakan dan gangguan-gangguan lain.

Konsep Basis Data Terdistribusi

v           Sistem Komputasi Terdistribusi adalah sejumlah elemen proses yang terkoneksi melalui jaringan komputer dan saling bekerjasama dalam melakukan suatu tugas
v           Basis Data Teridistribusi adalah kumpulan basis-basis data yang saling berhubungan secara logika dan tersebar pada sebuah jaringan komputer
v           Sistem Manajemen Basis Data adalah sebuah sistem software yang mengelola basis data terdistribusi

Keuntungan Basis Data Terdistribusi

v           Manajemen data terdistribusi dengan tingkat transparansi yang berbeda
v           Keandalan dan ketersediaan
v           Peningkatan performa
v           Ekspansi yang lebih mudah

Teknik Memecah Basis Data

v           Memecah basis data menjadi unit-unit logika yang disebut fragmen-fragmen yang bisa diassign untuk disimpan di berbagai site
v           Penggunaan replikasi data yang memungkinkan data tertentu untuk disimpan di lebih dari satu site
v           Proses alokasi fragmen –atau replika fragmen- untuk penyimpanan di berbagai site


Replikasi dan Alokasi Data (2)

v           Kasus khusus replikasi partial untuk pekerja yang mobile –seperti sales rep, financial planners dan claim adjustors- mereka membawa basis data replikasi dalam laptop atau PDA dan melakukan sinkronisasi secara periodik dengan server basis data


SISTEM BASIS DATA
LATIHAN QUERY MENGGUNAKAN SQL MS Acces

Latihan Query Mengggunakan SELECT pada SQL Microscof Acces ikutilah langkah sebagai berikut :

Ø            Buat Data Base dengan Nama Akademik
Ø            Buat Tabel Fakultas dengan struktur sebagai berikut :

         Struktur Tabel Fakultas

Field
Nama Field
Tipe
Size
1
Kode Fakultas
Number
Integer
2
Nama Fakultas
Text
30
3
Nama Depan
Text
30


Ø            Buat Tabel Prodi sebagai berikut :
         Struktur Tabel Prodi
Field
Nama Field
Tipe
Size
1
Kode Prodi
Number
Integer
2
Kode Fakultas
Number
Integer
3
Nama Prodi
Text
30
4
Nama ketua Prodi
Text
50








Ø            Buat Tabel Mahasiswa dengan Struktur Sebagai berikut :
         Struktur Tabel Mahasiswa
Field
Nama Field
Tipe
Size
1
NPM
Text
8
2
Kode Prodi
Number
Integer
3
Nama Mahasiswa
Text
50
4
Tempat lahir
Text
30
5
Tanggal Lahir
Date/Time
N/A
6
Alamat
Text
100











MENAMPILAKAN QUERY DENGAN TAMPILAN SQL

SQL Query adalah Query yang disusun menggunakan perintah SQL yang dikendalikan MIcroscof Jet database engine. Pada dasarnya setiap setiap anda membuat query maka secara otomatis di balik layar Acces terbentuk perintah SQL.

Untuk melihat perintah SQL Tersebut gunakan cara sebagai berikut :
a)            Aktifkan Database yang anda buat
b)            Klik Quaries yang ada dibawah Object atau klik menu View Kemudain arahkan pada pilihan Database Object dan klik Pilihan Quaries
c)            Klik nama Query yang pernah anda buat sebelumnya
d)            Klik Icon Design sehingga di layar terliahat Query Designer.
e)            Klik kanan pada jendela Query Designer. Kemudian klik pilihan SQL View atau klik icon SQL View pada toolbar Query Design atau klik menu View kemudian klik piliahan SQL View.
f)              Tampilan perintah SQL akan terlihat sebagai berikut :


 













g)            Klik tombol Close untuk menutup jendela SQL View  
 




SISTEM BASIS DATA
ENTITY RELATIONSHIP DIAGRAM (ERD)

Bahasan Sistem Basis Data kali ini tentang Entity Relationship Diagram (ERD) salah satu bentuk pemodelan basis data yang sering digunakan dalam pengembangan sistem informasi. Bahasan meliputi: Pengertian ERD, Notasi ERD, Metode ERD, Tahap ERD, Kardinalitas, dan Contoh kasus ERD
PENGERTIAN ERD
Dalam rekayasa perangkat lunak, sebuah Entity-Relationship Model (ERM) merupakan abstrak dan konseptual representasi data. Entity-Relationship adalah salah satu metode pemodelan basis data yang digunakan untuk menghasilkan skema konseptual untuk jenis/model data semantik sistem. Dimana sistem  seringkali memiliki basis data relasional, dan ketentuannya bersifat top-down. Diagram untuk menggambarkan model Entitiy-Relationship ini disebut Entitiy-Relationship diagram, ER diagram, atau ERD



NOTASI ERD