Minggu, 07 Desember 2014

Penjualan Kredit Mobil

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        kode.Items.Add("MB1")
        kode.Items.Add("MB2")
        kode.Items.Add("MB3")
        kode.Items.Add("MB4")
        kode.Items.Add("MB5")
        kode.Items.Add("MB6")
        kode.Items.Add("MB7")
        For i = 2012 To 2014
            tahun.Items.Add(i)
        Next
        status.Items.Add("Baru")
        status.Items.Add("Bekas")
        For x = 12 To 48
            lama_kredit.Items.Add(x)
        Next
        Call BuatTabel()
    End Sub
    Sub Bersih()
        kode.Text = ""
        mobil.Text = ""
        tahun.Text = ""
        status.Text = ""
        harga.Text = ""
        jumlah.Text = ""
        total_harga.Text = ""
        Uang_muka.Text = ""
        komisi_sales.Text = ""
        total_kredit.Text = ""
        lama_kredit.Text = ""
        angsuransi.Text = ""
        kode.Focus()
    End Sub
    Sub buatTabel()
        With LV

            .GridLines = True
            .View = View.Details
            .FullRowSelect = True
            .Columns.Add("Kode", 100)
            .Columns.Add("Nama Mobil", 130)
            .Columns.Add("Tahun", 100)
            .Columns.Add("Status", 100)
            .Columns.Add("Harga", 100)
            .Columns.Add("Jumlah", 100)
            .Columns.Add("Total Harga", 100)
            .Columns.Add("Uang Muka", 100)
            .Columns.Add("Komisi Sales", 100)
            .Columns.Add("Total Kredit", 100)
            .Columns.Add("Lama Kredit", 100)
            .Columns.Add("Angsuran / Bulan", 100)
        End With
    End Sub
    Sub isitabel()
        Dim lst As New ListViewItem
        With lst
            .Text = kode.Text
            .SubItems.Add(mobil.Text)
            .SubItems.Add(tahun.Text)
            .SubItems.Add(status.Text)
            .SubItems.Add(harga.Text)
            .SubItems.Add(jumlah.Text)
            .SubItems.Add(total_harga.Text)
            .SubItems.Add(Uang_muka.Text)
            .SubItems.Add(komisi_sales.Text)
            .SubItems.Add(total_kredit.Text)
            .SubItems.Add(lama_kredit.Text)
            .SubItems.Add(angsuransi.Text)
        End With
        LV.Items.Add(lst)
        Bersih()
    End Sub

    Private Sub kode_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles kode.SelectedIndexChanged
        Select kode.Text
            Case "MB1"
                mobil.Text = "Avanza Veloz"
            Case "MB2"
                mobil.Text = "Avanza G"
            Case "MB3"
                mobil.Text = "Zenia"
            Case "MB4"
                mobil.Text = "Yaris"
            Case "MB5"
                mobil.Text = "toyota"
            Case "MB6"
                mobil.Text = "kijang"
            Case "MB7"
                mobil.Text = "honda"
        End Select
    End Sub

    Private Sub status_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles status.SelectedIndexChanged
        If kode.Text = "MB1" And tahun.Text = "2012" And status.Text = "Baru" Then
            harga.Text = 175000000
        ElseIf kode.Text = "MB1" And tahun.Text = "2012" And status.Text = "Bekas" Then
            harga.Text = 120000000
        ElseIf kode.Text = "MB1" And tahun.Text = "2013" And status.Text = "Baru" Then
            harga.Text = 195000000
        ElseIf kode.Text = "MB1" And tahun.Text = "2013" And status.Text = "Bekas" Then
            harga.Text = 130000000
        ElseIf kode.Text = "MB1" And tahun.Text = "2014" And status.Text = "Baru" Then
            harga.Text = 208000000
        ElseIf kode.Text = "MB1" And tahun.Text = "2014" And status.Text = "Bekas" Then
            harga.Text = 170000000
        ElseIf kode.Text = "MB2" And tahun.Text = "2012" And status.Text = "Baru" Then
            harga.Text = 180000000
        ElseIf kode.Text = "MB2" And tahun.Text = "2012" And status.Text = "Bekas" Then
            harga.Text = 125000000
        ElseIf kode.Text = "MB2" And tahun.Text = "2013" And status.Text = "Baru" Then
            harga.Text = 200000000
        ElseIf kode.Text = "MB2" And tahun.Text = "2013" And status.Text = "Bekas" Then
            harga.Text = 135000000
        ElseIf kode.Text = "MB2" And tahun.Text = "2014" And status.Text = "Baru" Then
            harga.Text = 220000000
        ElseIf kode.Text = "MB2" And tahun.Text = "2014" And status.Text = "Bekas" Then
            harga.Text = 180000000
        ElseIf kode.Text = "MB3" And tahun.Text = "2012" And status.Text = "Baru" Then
            harga.Text = 160000000
        ElseIf kode.Text = "MB3" And tahun.Text = "2012" And status.Text = "Bekas" Then
            harga.Text = 115000000
        ElseIf kode.Text = "MB3" And tahun.Text = "2013" And status.Text = "Baru" Then
            harga.Text = 180000000
        ElseIf kode.Text = "MB3" And tahun.Text = "2013" And status.Text = "Bekas" Then
            harga.Text = 125000000
        ElseIf kode.Text = "MB3" And tahun.Text = "2014" And status.Text = "Baru" Then
            harga.Text = 200000000
        ElseIf kode.Text = "MB3" And tahun.Text = "2014" And status.Text = "Bekas" Then
            harga.Text = 160000000
        ElseIf kode.Text = "MB4" And tahun.Text = "2012" And status.Text = "Baru" Then
            harga.Text = 200000000
        ElseIf kode.Text = "MB4" And tahun.Text = "2012" And status.Text = "Bekas" Then
            harga.Text = 150000000
        ElseIf kode.Text = "MB4" And tahun.Text = "2013" And status.Text = "Baru" Then
            harga.Text = 230000000
        ElseIf kode.Text = "MB4" And tahun.Text = "2013" And status.Text = "Bekas" Then
            harga.Text = 135000000
        ElseIf kode.Text = "MB4" And tahun.Text = "2014" And status.Text = "Baru" Then
            harga.Text = 245000000
        ElseIf kode.Text = "MB4" And tahun.Text = "2014" And status.Text = "Bekas" Then
            harga.Text = 180000000
        End If
    End Sub

    Private Sub jumlah_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles jumlah.TextChanged
        If harga.Text = "" Then
            Exit Sub
            status.Focus()
        Else
            total_harga.Text = jumlah.Text * harga.Text
            Uang_muka.Text = 0.3 * total_harga.Text
            komisi_sales.Text = 0.02 * jumlah.Text * Uang_muka.Text
            total_kredit.Text = (total_harga.Text - Uang_muka.Text)
        End If

    End Sub

    Private Sub Btn_proses_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_proses.Click
        angsuransi.Text = (((total_kredit.Text) * (0.03 * lama_kredit.Text))) + Val(total_kredit.Text) / lama_kredit.Text
    End Sub

    Private Sub Btn_simpan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_simpan.Click
        Call isitabel()
    End Sub

    Private Sub batal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles batal.Click
        Bersih()
    End Sub

    Private Sub hapus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles hapus.Click
        LV.Items.Clear()
    End Sub

    Private Sub Hapus_list_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Hapus_list.Click
        LV.Items.Remove(LV.SelectedItems(0))
    End Sub

    Private Sub Keluar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Keluar.Click
        Me.Close()
    End Sub
End Class

Tampilan Form


By :
Nama : Derokh Mawati Baene
Kelas : TI-M1310
NPM : 13110073

 Semoga bermanfaat

Tugas penjualan Kredit Mobil

Sabtu, 06 Desember 2014

operasi dasar basisdata

Basis data (database) merupakan kumpulan dari data yang saling berhubungan satu dengan yang lainnya, tersimpan dalam perangkat keras komputer, dan digunakan oleh perangkat lunak untuk memanipulasinya. Basis data merupakan salah satu komponen utama dalam sistem informasi, karena merupakan basis dalam penyediaan informasi bagi para pemakai (Fathansyah, 1999; Post, 1999).

Jika dibayangkan, basis data mirip dengan lemari di ruang administrasi sekolah yang menyimpan berbagai arsip. Masing-masing jenis arsip dikelompokkan, diatur dan disimpan pada tempat yang telah ditentukan sehingga: akan ada kelompok arsip siswa, arsip guru, arsip mata pelajaran, arsip keuangan, dan lain-lain. Perbedaannya hanya pada media penyimpanannya saja. Kalau lemari arsip menggunakan lemari dari kayu, besi atau mungkin plastik, sedangkan basis data menggunakan media penyimpan elektronis seperti disk (hard disc, CD, atau tape). Gambar 10.2 memberikan ilustrasi tentang kesamaan lemari arsip dan basis data.


Satu hal penting yang harus diperhatikan, basis data bukan hanya sekedar penyimpanan data secara elektronis. Tidak semua penyimpanan data elektronis bisa disebut basis data. Apabila penyimpanan itu tidak menggunakan prinsip pengaturan, pemisahan atau pengorganisasian maka kita tidak dapat menyebut penyimpanan data tersebut sebagai basis data. Pada gambar 10.2 terlihat penerapan prinsip pengaturan, pengorganisasian atau pemisahan, baik pada lemari arsip atau pada basis data.

Prinsip utama dalam basis data adalah konsep independensi data yaitu: pemisahan data dari program aplikasinya (Lewis et al., 2002; Post, 1999). Sedangkan tujuan utama dalam basis data adalah membantu pengguna dalam abstraksi suatu sistem. Ada tiga level abstraksi yang biasanya digunakan, yaitu: physical level, conceptual level dan view level (gambar 10.3). Physical level, menunjukkan bagaimana data akan disimpan. Conceptual level, berkaitan dengan data apa yang akan disimpan dan bagaimana hubungan antar data tersebut. View level, merupakan level tertinggi yang menjelaskan bagian-bagian basis data pada pengguna tertentu (Ramakrishnan and Gehrke, 2000).


Basis data mempunyai beberapa kriteria penting, yaitu:
  1. Bersifat data oriented dan bukan program oriented.
  2. Dapat digunakan oleh beberapa program aplikasi tanpa perlu mengubah basis datanya.
  3. Dapat dikembangkan dengan mudah, baik volume maupun strukturnya.
  4. Dapat memenuhi kebutuhan sistem-sistem baru secara mudah
  5. Dapat digunakan dengan cara-cara yang berbeda.
Secara bertingkat, operasi dasar basis data dapat digambarkan dalam skema pada gambar 10.4. Operasi-operasi tersebut meliputi:
  • Pembuatan basis data baru (create database). Operasi ini sama dengan pembuatan atau pembelian lemari arsip yang baru.
  • Penghapusan basis data (drop database). Operasi ini sama dengan pengrusakan atau penghancuran lemari arsip.
  • Pembuatan tabel baru (create table). Operasi ini sama dengan penambahan kelompok arsip baru. Operasi ini baru bisa dijalankan jika basis data telah dibuat.
  • Penghapusan tabel (drop table). Operasi ini sama dengan pengrusakan kelompok arsip lama. Operasi ini baru bisa dijalankan jika tabel telah ada pada suatu basis data.


  • Pengisian atau penambahan data baru (insert data) pada suatu tabel. Operasi ini mirip dengan penambahan lembaran arsip baru pada kelompok arsip. Operasi ini baru bisa dijalankan jika tabel telah dibuat.
  • Pengambilan data dari suatu tabel (retrieve data). Operasi ini mirip dengan pencarian lembaran arsip yang tersimpan dalam kelompok arsip.
  • Pengubahan data dari suatu tabel (update data). Operasi ini mirip dengan perbaikan isi lembaran arsip dari suatu kelompok arsip
  • Penghapusan data dari suatu tabel (delete). Operasi ini mirip dengan penghapusan sebuah lembaran arsip dari suatu kelompok arsip.
Basis data dibangun untuk memenuhi tujuan dalam pengorganisasian data, yang antara lain sebagai berikut:
  1. Efisiensi meliputi kecepatan (speed), ruang simpan (space), dan keakuratan (accuracy).
  2. Menangani data dalam jumlah besar.
  3. Kebersamaan pemakaian (Shareability).
  4. Meniadakan duplikasi dan inkonsistensi data.

R, Bahasa Pemrograman untuk Analisis Data dan Statistik

13710345201737562874
GUI Standar R
Dosen, Peneliti atau Mahasiswa umumnya mengenal SPSS, SAS, atau MINITAB sebagai program paket (software) untuk mengolah data Statistik, dan Saya berani bertaruh bahwa  yang digunakan umumnya adalah versi bajakan.  Memang program-program tersebut harganya cukup mahal untuk ukuran Dosen, Peneliti apalagi Mahasiswa Indonesia, harganya bisa disandingkan dengan harga sebuah motor bebek.  Sebenarnya tidak perlu membajak atau membeli versi bajakan untuk program-program pengolahan data Statistik, karena kini tersedia program-program sumber terbuka (open source) yang dapat diunduh gratis, dengan kemampuan dan tampilan antar muka graphis (GUI – Graphic User Interface) yang tidak kalah dengan program-program komersial tersebut.
R adalah salah satu dari program sumber terbuka yang dapat diunduh gratis di http://cran.r-project.org/, yang mana situs resminya ada di http://www.r-project.org/.  R pertama kali diciptakan oleh Ross Ihaka dan Robert Gentleman (- nama R berasal dari huruf pertama nama depan kedua orang ini-), Mereka adalah Statistikawan asal Selandia Baru, sedangkan kini R dikembangkan sebagai upaya kolaborasi pakar-pakar Statistikawan dan komputer di seluruh dunia.  R diluncurkan pertama kali tahun 1997, dan versi terakhir ketika tulisan ini dibuat adalah 3.0.1.  Di Indonesia untuk mengunduh software ini dapat melalui server milik BPPT atau LIPI, biasanya pada saat kita mengunduh R, Kita diminta untuk memilih nama-nama negara terdekat sebagai server mirror agar proses pengunduhan dapat lebih cepat, maka disarankan Anda memilih Indonesia jika berada di Indonesia atau negara sekitarnya.
13710347401671729461
Tampilan GUI Tinn-R
Selain gratis tentunya ada banyak kelebihan R yang lain yaitu : - R tersedia  untuk berbagai sistem operasi selain Windows, seperti Macintosh, Linux dan UNIX; - memiliki kemampuan membuat graphik yang canggih; - sintaksnya mudah dipelajari dengan banyak fungsi-fungsi statistik yang terpasang; - R dapat dengan mudah diperluas dengan menciptakan fungsi-fungsi buatan pengguna sendiri disamping juga tersedia banyak program-program kecil sebagai tambahan (add in), yang disebut package yang juga dapat diunduh gratis; - R merupakan bahasa pemrograman komputer, sehingga bagi pemrogram menjadi lebih akrab, sedangkan bagi pemakai awal akan merupakan langkah yang mudah untuk memulai sebagai pemrogram komputer.  Bagi sebagian pengguna yang terbiasa mengguna GUI dengan sistem menu, R juga menyediakan banyak GUI yang berbasiskan sistem menu, antara lain R Studio, Tinn-R, R Commander dan bayak lagi yang lainnya, dan dapat diunduh gratis juga.  GUI standar R diperlihatkan oleh gambar di atas yang menyertai tulisan ini.  Walaupun R adalah gratis kemampuannya tidak kalah dengan program-program paket statistik yang komersial, bahkan dalam hal tertentu adalah lebih baik.  Penggunaan R tidak dibatasi, bahkan dapat digunakan untuk tujuan-tujuan komersial.  Kelebihan-kelebihan R inilah yang mungkin menyebabkan kembaran komersial R yaitu S-Plus menjadi mati suri.
13710348511169166403
Tampilan GUI R Studio
Disamping kelebihan yang disebutkan di atas, R juga memiliki kekurangan yaitu, - R tidak menyediakan dukungan komersial, walaupun mungkin ini dapat diatasi dengan mengikuti mailing list R, yang banyak membantu bila Kita menghadapi masalah tertentu; - oleh karena  sejatinya R merupakan bahasa pemrograman maka diperlukan waktu membiasakan dengan sintaks-sintaksnya, yang untuk sebagian orang mungkin merupakan hal yang menakutkan.  Walupun demikian, Anda dapat menggunakan GUI yang berbasiskan sistem menu dan itu sangat membantu.  Blog R yang dikelola dalam bahasa Indonesia beralamat di http://bahasa-r.blogspot.com/, webblog berbahasa Inggris banyak bertebaran di dunia maya, diantaranya ada di: http://www.r-bloggers.com/, http://digitheadslabnotebook.blogspot.com/ dan banyak lagi lainnya, coba saja di googling.  R juga hadir di wikipedia silakan Anda klik di alamat ini, http://en.wikipedia.org/wiki/R_(programming_language).
Jadi jika ada yang gratisan, mangapa Kita menggunakan program ilegal.

Menghitung Keliling dan Luas Lingkaran dengan vb 6.0

Pada tutorial VB (visual basic) 6.0 kali ini kita akan membuat sebuah program untuk menghitung keliling dan luas lingkaran. Sebelum membuat program yang paling awal dipahami adalah mengetahui rumus-umus yang digunakan untuk  menghitung keliling dan luas lingkaran tersebut. Karena mustahil kita membuat sebuah program tanpa mengetahui logika pemogramannya. Untuk mencari las lingkaran menggunakan rumus Phi x (jari.jari x jari.jari) sedangkan rumus untuk menghitung keliling lingkaran 2 x phi x jari.jari.

Toolbox yang digunakan ada tiga buah textbox untuk memasukan nilai jari-jari dan menampilkan hasil keliling serta luas lingkaran. Tiga buah CommandButton untuk melakukan proses perhitungan, melakukan pembersihan atau pengosongan textbox dan command close. Baca juga artikel saya tentang cara membuat kalkulator sederhana dengan VB.

Silahkan design program untuk menghitung keliling dan luas lingkaran seperti design gambar dibawah ini :

 program menghitung luas lingkaran


Selanjutnya masukan coding berikut :

Private Sub Command1_Click()
Dim phi, luas, Keliling As Double

phi = 22 / 7

luas = phi * (Text1.Text * Text1.Text)
Keliling = 2 * phi * Text1.Text

Text2.Text = luas
Text3.Text = Keliling
Text1.SetFocus
MsgBox "luas lingkaran : " & luas & vbCrLf & "Keliling : " & Keliling, vbInformation, "hasil"
End Sub

Private Sub Command2_Click()
End
End Sub

Private Sub Command3_Click()
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text1.SetFocus
End Sub

Maka hasil akhirnya seperti gambar dibawah ini :
program menghitung keliling lingkaran












Demikian tutoial dasar VB 6.0  kali ini, selanjutnya silahkan baca Program menghitung umur dengan VB 6.0. Selamat belajar brother !.

Program Menghitung Gaji Karyawan dengan VB 6.0

Tutorial visual basic 6.0 kali ini tentang cara membuat program gaji karyawan dengan visual basic. Sebelum kita melangkah pada pembuatan program gaji karawan ini, mari kita pahami terlebih dahulu alur logika pemogramannya karena ini merupakan point penting sebelum menterjemahkan sebuah program dalam bahasa pemograman. Oh ya.. program hitung gaji karyawan ini belum dilengkapi dengan database, silahkan sobat lengkapi sendiri karena kalau dibahas dalam satu postingan ini tentu akan panjang sekali. Untuk panduan membuat database sobat bisa baca cara membuat database pada pemograman visual basic 6.0 dan untuk penerapannya silahkan baca juga membuat program simpan edit dan hapus pada VB 6.0. Untuk melengkapi program dengan messagebox baca cara membuat messagebox di VB 6.0. Ingin membuat tulisan berjalan pada judul form sobat bisa pelajari disini cara membuat tulisan berjalan pada judul form VB.6.0. Mau tambah lagi silahkan baca ebook gratis tutorial VB. Nahhhh.... cukup lengkap bukan.

Program menghitung gaji karyawan dengan VB.6.0 ini dengan ketetapan-ketetapan jumlah gaji karyawan sesuai dengan jabatan masing-masing. Untuk karyawan yang telah menikah ada tunjangan sebesar 0,1 x gaji. Pajak dikenakan pada masing-masing karyawan dengan hitungan 0,15 x gaji. Nama karyawan, gaji dan tunjangan sudah dibuat otomatis berdasarkan pemilihan combobox.

Oke sob Pertama berdo'a dulu panjatkan puji syukur pada ilahi karena yang menciptakan bahasa pemograman itu hakikatnya Allah SWT dan ini merupakan point penting yang jarang kita pahami loh sob. Siapkan cemilan murah aja seperti kacang sukro, kalau ada roti pandan lebih baik. Untuk minuman saya sarankan teh gelas aja supaya kesannya tampak lebih ekonomis, kalau ada uang berlebih boleh lah sesekali minum proman, hehe.

Desain tampilan sesuai gambar, untuk masalah style silahkan sesuaikan dengan selera masing-masing ya Sob.


program hitung gaji karyawan dengan VB 6.0













Silahkan copy paste mantra-mantra dibawah ini.

Private Sub Form_Load()
    Combo1.AddItem "001"
    Combo1.AddItem "002"
    Combo1.AddItem "003"
    Combo2.AddItem "Hacker"
    Combo2.AddItem "Blogger"
    Combo2.AddItem "Pheaker"
    Combo3.AddItem "Menikah"
    Combo3.AddItem "Tidak Menikah"
End Sub

Private Sub combo2_Click()
    Select Case Combo2.Text
    Case "Hacker": Text2.Text = 1750000
    Case "Blogger": Text2.Text = 2500000
    Case "Pheaker": Text2.Text = 1250000
    End Select
    Text4.Text = 0.15 * Text2.Text
End Sub

Private Sub combo1_Click()
    Select Case Combo1.Text
    Case "001": Text1.Text = "Mastah"
    Case "002": Text1.Text = "Sistah"
    Case "003": Text1.Text = "Nubi"
    End Select
End Sub

Private Sub combo3_Click()
    Select Case Combo3.Text
    Case "Menikah": Text3.Text = 0.1 * Text2.Text
    Case "Tidak Menikah": Text3.Text = 0
    End Select
End Sub

Private Sub Command2_Click()
    Combo1.Text = ""
    Combo2.Text = ""
    Combo3.Text = ""
    Text1.Text = ""
    Text2.Text = ""
    Text3.Text = ""
    Text4.Text = ""
    Combo1.SetFocus
End Sub

Private Sub Command1_Click()
    Text5.Text = Val(Text2.Text) + Val(Text3.Text) - Val(Text4.Text)
End Sub

Private Sub Command3_Click()
End
End Sub

Dan ini penampakan program yang menghitung gaji karyawan setelah dijalankan.
membuat aplikasi gaji dengan VB.60



Sekian Tutorial membuat aplikasi gaji karyawan menggunakan bahasa pemograman VB 6.0 kali ini moga bermanfaat bagi kita semua. Selanjutnya pahami juga tipe data pada visual basic. Kritik dan saran yang bersifat membangun sangat kami harapkan dari sahabat sekalian. Selamat belajar Brother!

Matriks (matematika)

Dalam matematika, matriks adalah kumpulan bilangan, simbol, atau ekspresi, berbentuk persegi panjang yang disusun menurut baris dan kolom. Bilangan-bilangan yang terdapat di suatu matriks disebut dengan elemen atau anggota matriks. Contoh matriks dengan 2 baris dan 3 kolom yaitu
\begin{bmatrix}1 & 9 & -13 \\20 & 5 & -6 \end{bmatrix}.
Pemanfaatan matriks misalnya dalam menemukan solusi sistem persamaan linear. Penerapan lainnya adalah dalam transformasi linear, yaitu bentuk umum dari fungsi linear, misalnya rotasi dalam 3 dimensi.
Matriks seperti halnya variabel biasa dapat dimanipulasi, seperti dikalikan, dijumlah, dikurangkan dan didekomposisikan. Dengan representasi matriks, perhitungan dapat dilakukan dengan lebih terstruktur.
A =
\begin{bmatrix}
a_{11} & a_{12} & a_{13} \\
a_{21} & a_{22} & a_{23} \\
a_{31} & a_{32} & a_{33} \\
\end{bmatrix}
\!

Notasi

Matriks pada umumnya ditulis dalam tanda kurung siku/kurung kurawal:
 \mathbf{A} = 
 \begin{bmatrix}
 a_{11} & a_{12} & \cdots & a_{1n} \\
 a_{21} & a_{22} & \cdots & a_{2n} \\
 \vdots & \vdots & \ddots & \vdots \\
 a_{m1} & a_{m2} & \cdots & a_{mn}
 \end{bmatrix}.

Operasi dasar

Penjumlahan dan pengurangan matriks

Penjumlahan dan pengurangan matriks hanya dapat dilakukan apabila kedua matriks memiliki ukuran atau tipe yang sama. Elemen-elemen yang dijumlahkan atau dikurangi adalah elemen yang posisi atau letaknya sama.
a_{ij} \pm b_{ij} = c_{ij}\!
atau dalam representasi dekoratfinya

\begin{bmatrix}
{3} & {4} \\
{6} & {5} \\

\end{bmatrix}
\!

\begin{bmatrix}
(a_{11} \pm b_{11}) & (a_{12} \pm b_{12}) & (a_{13} \pm b_{13}) \\
(a_{21} \pm b_{21}) & (a_{22} \pm b_{22}) & (a_{23} \pm b_{23}) \\
\end{bmatrix}
=
\begin{bmatrix}
c_{11} & c_{12} & c_{13} \\
c_{21} & c_{22} & c_{23} \\
\end{bmatrix}
\!

Perkalian skalar

Matriks dapat dikalikan dengan sebuah skalar.
\lambda\cdot A := (\lambda\cdot a_{ij})_{i=1, \ldots , m; \ j=1, \ldots , n}
Contoh perhitungan :
5 \cdot
  \begin{pmatrix}
    1 & -3 & 2 \\
    1 &  2 & 7
  \end{pmatrix}
  =
  \begin{pmatrix}
   5 \cdot 1 & 5 \cdot (-3) & 5 \cdot 2 \\
   5 \cdot 1 & 5 \cdot   2  & 5 \cdot 7
  \end{pmatrix}
  =
  \begin{pmatrix}
    5 & -15 & 10 \\
    5 & 10  & 35
  \end{pmatrix}

Perkalian Matriks

Matriks dapat dikalikan, dengan cara tiap baris dikalikan dengan tiap kolom, lalu dijumlahkan pada baris yang sama.
 c_{ij}=\sum_{k=1}^m a_{ik}\cdot b_{kj}
Contoh perhitungan :

  \begin{pmatrix}
    1 & 2 & 3 \\
    4 & 5 & 6 \\
  \end{pmatrix}
  \cdot
  \begin{pmatrix}
    6 & -1 \\
    3 & 2 \\
    0 & -3
  \end{pmatrix}
  =
  \begin{pmatrix}
     1 \cdot 6  +  2 \cdot 3  +  3 \cdot 0 &
     1 \cdot (-1) +  2 \cdot 2 +  3 \cdot (-3) \\
     4 \cdot 6  +  5 \cdot 3  +  6 \cdot 0 &
     4 \cdot (-1) +  5 \cdot 2 +  6 \cdot (-3) \\
  \end{pmatrix}
  =
  \begin{pmatrix}
    12 & -6 \\
    39 & -12
  \end{pmatrix}

Struktur Data


Dalam istilah ilmu komputer, sebuah struktur data adalah cara penyimpanan, penyusunan dan pengaturan data di dalam media penyimpanan komputer sehingga data tersebut dapat digunakan secara efisien.
Dalam teknik pemrograman, struktur data berarti tata letak data yang berisi kolom-kolom data, baik itu kolom yang tampak oleh pengguna (user) atau pun kolom yang hanya digunakan untuk keperluan pemrograman yang tidak tampak oleh pengguna. Setiap baris dari kumpulan kolom-kolom tersebut dinamakan catatan (record). Lebar kolom untuk data dapat berubah dan bervariasi. Ada kolom yang lebarnya berubah secara dinamis sesuai masukan dari pengguna, dan juga ada kolom yang lebarnya tetap. Dengan sifatnya ini, sebuah struktur data dapat diterapkan untuk pengolahan database (misalnya untuk keperluan data keuangan) atau untuk pengolah kata (word processor) yang kolomnya berubah secara dinamis. Contoh struktur data dapat dilihat pada berkas-berkas lembar-sebar (spreadsheet), pangkal-data (database), pengolahan kata, citra yang dipampat (dikompres), juga pemampatan berkas dengan teknik tertentu yang memanfaatkan struktur data.
1. Larik (Array)

Larik (Bahasa Inggris: array), dalam ilmu komputer, adalah suatu tipe data terstruktur yang dapat menyimpan banyak data dengan suatu nama yang sama dan menempati tempat di memori yang berurutan (kontinu) serta bertipe data sama pula.
Larik dapat diakses berdasarkan indeksnya. Indeks larik umumnya dimulai dari 0 dan ada pula yang dimulai dari angka bukan 0. Pengaksesan larik biasanya dibuat dengan menggunakan perulangan (looping).
  • Larik Satu Dimensi
Larik satu dimensi merupakan jenis larik dasar dan jenis larik yang paling sering digunakan, pemakaian larik satu dimensi terutama dipakai dalam tipe data string (terutama dalam bahasa Bahasa pemrograman C).
  • Larik Dua Dimensi
Larik dua dimensi merupakan tipe larik yang lain. Larik dua dimensi sering dipakai untuk merepresentasikan tabel dan matriks dalam pemrograman.
Larik dalam beberapa bahasa pemrograman
  • Bahasa Pascal
Larik dalam bahasa Pascal dapat didefinisikan dengan indeks awal dan indeks akhirnya.
Contoh:
program larik;
var arr: array[1..10] of integer;  //larik dengan indeks awal 1 dan indeks akhir 10
begin
arr[1] := 5; //memasukkan nilai ke indeks 1
writeln(arr[i]); //mencetak angka 5
end.

  • Bahasa C
Larik dalam bahasa C selalu dimulai dari indeks 0. Larik dapat didefinisikan secara statik atau dinamik. Jika didefinisikan statik, ukuran larik akan tetap dari awal program hingga akhir program. Jika didefinisikan dinamik, ukuran larik dapat berubah selama program berjalan karena memesan tempat pada memori heap. Proses pemesanan tempat pada memori disebut dengan alokasi. Sedangkan proses pembebasan memori yang sudah dipesan disebut dengan dealokasi.
Contoh larik statik:
#include <stdio.h>
int main(){
int arr[10]; //indeks awal 0 dan indeks akhir 9
arr[0] = 5;
printf(“%d\n”, arr[0]);
}

Contoh larik dinamik:

#include <malloc.h>
int main(){
int * arr;
arr = (int *) malloc(10 * sizeof(int)); //memesan 10 tempat pada memori
arr[0] = 5;
free(arr);                              //menghancurkan larik. Memori pada heap dibebaskan
arr = (int *) malloc(5 * sizeof(int));  //memesan 5 tempat baru pada memori
free(arr);                              //di akhir program jangan lupa untuk menghancurkan larik dinamik
}

  • Bahasa Java
Dalam bahasa Java tipe data larik direpresentasikan sebagai sebuah objek khusus. Karena itu pada bahasa Java larik yang dibuat selalu bersifat dinamik. Namun walaupun bersifat dinamik, larik pada bahasa Java tidak perlu dihancurkan karena proes penghancuran dilakukan secara otomatis melalui suatu prosedur yang disebut dengan Pengumpulan sampah (Inggris: Garbage Collecting). Sama seperti bahasa C, indeks larik selalu dimulai dari 0.
Contoh:
public class larik {
public static void main(String args[]) {
int[] arr = new arr[10];
arr[0] = 5;
System.out.println(arr[0]);
}
}

  • PHP
Sama seperti di JAVA larik di PHP juga merupakan sebuah object lebih tepatnya lagi map terorder. Ada dua tipe larik di PHP, indexed array (simple array) dan associated array (value array). Di PHP, element larik bisa berupa string, Bilangan, boolean, dan semua tipe data primitif lainnya, termasuk larik juga bisa menjadi element larik lainnya.

Cara medefinisikan larik:

#mendefinisikan array kosong
$larik = array();

Contoh indexed array (simple array):
$jam = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12);
$hari = array(‘senin’, ‘selasa’, ‘selasa’, ‘rabu’, ‘kamis’, ‘jumat’, ‘sabtu’);

Contoh associated array:
$bulan = array(‘1’=>’January’, ‘2’=>’February’, ‘3’=>’Maret’, ‘4’=>’April’);
$komponenKalender = array(
‘bulan’=> array(1, 2, 3, 4, 5, 6, 7, 8, 9 ,10 , 11, 12),
‘hari’ => array(‘senin’, ‘selasa’, ‘selasa’, ‘rabu’, ‘kamis’, ‘jumat’, ‘sabtu’)
);

2. Stack (Tumpukan)
Dalam ilmu komputer, stack atau tumpukan merupakan sebuah koleksi objek yang menggunakan prinsip LIFO (Last In First Out), yaitu data yang terakhr kali dimasukkan akan pertama kali keluar dari stack tersebut. Stack dapat diimplementasikan sebagai representasi berkait atau kontigu (dengan tabel fix). Ciri Stack :
* Elemen TOP (puncak) diketahui
* penisipan dan penghapusan elemen selalu dilakukan di TOP
* LIFO

Pemanfaatan Stack :

* Perhitungan ekspresi aritmatika (posfix)
* algoritma backtraking (runut balik)
* algoritma rekursif

Operasi Stack yang biasanya :

a. Push (input E : typeelmt, input/output data : stack): menambahkan sebuah elemen ke stack
b. Pop (input/output data : stack, output E : typeelmt ) : menghapus sebuah elemen stack
c. IsEmpty ()
d. IsFull ()
e. dan beberapas selektor yang lain
3. Pohon (Tree)

Dalam ilmu komputer, sebuahPohon adalah suatu struktur data yang digunakan secara luas yang menyerupai struktur pohon dengan sejumlah simpul yang terhubung.

  • Simpul (node)
Sebuah Simpul dapat mengandung sebuah nilai atau suatu kondisi atau menggambarkan sebuah struktur data terpisah atau sebuah bagian pohon itu sendiri. Setiap simpul dalam sebuah pohon memiliki nol atau lebih simpul anak (child nodes), yang berada dibawahnya dalam pohon (menurut perjanjian, pohon berkembang ke bawah, tidak seperti yang dilakukannya di alam). Sebuah simpul yang memiliki anak dinamakan simpul ayah (parent node) atau simpul leluhur (ancestor node) atau superior. Sebuah simpul paling banyak memiliki satu ayah. Tinggi dari pohon adalah panjang maksimal jalan ke sebuah daun dari simpul tersebut. Tinggi dari akar adalah tinggi dari pohon. Kedalaman dari sebuah simpul adalah panjang jalan ke akarnya dari simpul tersebut.
  • Akar (Root nodes)
Simpul yang paling atas dalam pohon adalah akar (root node). Menjadi simpul teratas, simpul akar tidak akan memiliki orang tua. Ini merupakan simpul di mana biasanya merupakan tempat untuk memulai operasi dalam pohon (walaupun beberapa algoritma dimulai dengan daun dan berakhir pada akar). Semua simpul yang lain dapat dicapai dari akar dengan menelusuri pinggiran atau pranala. (Dalam definisi resmi, setiap jalan adalah khas). Dalam diagram, ini secara khusus di gambar paling atas. Di beberapa pohon, seperti heap, akar memiliki sifat khusus. Setiap simpul dalam sebuah pohon dapat dilihat sebagai akar dari sub pohon yang berakar pada simpul tersebut.
  • Daun (Leaf nodes)
Semua simpul yang berada pada tingkat terendah dari pohon dinamakan daun (leaf node). Sejak mereka terletak pada tingkat paling bawah, mereka tidak memiliki anak satupun. Seringkali, daun merupakan simpul terjauh dari akar. Dalam teori grafik, sebuah daun adalah sebuah sudut dengan tingkat 1 selain akar (kecuali jika pohonnya hanya memiliki satu sudut; maka akarnya adalah daunnya juga). Setiap pohon memiliki setidaknya satu daun. Dalam pohon berdasarkan genetic programming sebuah daun (juga dibilang terminal) adalah bagian terluar dari sebuah program pohon. Jika dibandingkan dengan fungsinya atau simpul dalam, daun tidak memiliki argumen. Di banyak kasus dalam daun-GP input ke programnya.

  • Simpul dalam (Internal nodes)
Sebuah simpul dalam adalah semua simpul dari pohon yang memiliki anak dan bukan merupakan daun. Beberapa pohon hanya menyimpan data didalam simpul dalam, meskipun ini mempengaruhi dinamika penyimpanan data dalam pohon. Sebegai contoh, dengan daun yang kosong, seseorang dapat menyimpan sebuah pohon kosong dengan satu daun. Bagaimanapun juga dengan daun yang dapat menyimpan data, tidak dimungkinkan untuk menyimpan pohon kosong kecuali jika seseorang memberikan beberapa jenis penanda data di daun yang menandakan bahwa daun tersebut seharusnya kosong (dengan demikian pohon itu seharusnya kosong juga). Sebaliknya, beberapa pohon hanya menyimpan data dalam daun, dan menggunakan simpul dalam untuk menampung metadata yang lain, seperti jarak nilai dalam sub pohon yang berakar pada simpul tersebut. Jenis pohon ini berguna untuk jarak yang meragukan.
  • Sub pohon (Subtrees)
Sebuah sub pohon adalah suatu bagian dari pohon struktur data yang dapat dilihat sebagai sebuah pohon lain yang berdiri sendiri. Simpul apapun dalam pohon P, bersama dengan seluruh simpul dibawahnya, membentuk sebuah sub pohon dari P. Sub pohon yang terhubung dengan akar merupakan keseluruhan pohon tersebut. Sub pohon yang terhubung dengan simpul lain manapun dinamakan sub pohon asli (proper subtree).
  • Penyusunan pohon
Terdapat dua jenis pohon. Sebuah pohon tidak terurut (unordered tree) adalah sebuah pohon dalam arti struktural semata-mata, yang dapat dikatakan memberikan sebuah simpul yang tidak memiliki susunan untuk anak dari simpul tersebut. Sebuah pohon dengan suatu susunan ditentukan, sebagai contoh dengan mengisi bilangan asli berbeda ke setiap anak dari simpul tersebut, dinamakan sebuah pohon terurut (ordered tree), dan struktur data yang dibangun didalamnya dinamakan pohon terurut struktur data (ordered tree data structures). Sejauh ini pohon terurut merupakan bentuk umum dari pohon struktur data. Pohon biner terurut merupakan suatu jenis dari pohon terurut.
  • Hutan
Sebuah hutan adalah sebuah himpunan yang terdiri dari pohon terurut. Lintasan inorder, preorder, dan postorder didefinisikan secara rekursif untuk hutan.
- inorder
1. lewati inorder hutan yang dibentuk oleh sub pohon yang pertama dalam hutan, jika ada
2. kunjungi akar dari pohon pertama.
3. lewati inorder hutan yang dibentuk oleh sisa pohon dalam hutan, jika ada.
- preorder
1. kunjungi akar dari pohon pertama.
2. lewati preorder hutan yang dibentuk oleh sub pohon yang pertama dalam hutan, jika ada
3. lewati preorder hutan yang dibentuk oleh sisa pohon dalam hutan, jika ada.
- postorder
1. lewati postorder hutan yang dibentuk oleh sub pohon yang pertama dalam hutan, jika ada
2. lewati postorder hutan yang dibentuk oleh sisa pohon dalam hutan, jika ada.
3. kunjungi akar dari pohon pertama.
  • Penggambaran pohon
Ada banyak cara untuk menggambarkan pohon; pada umumnya penggambaran mewakili simpul sebagai rekor yang dialokasikan pada heap (bedakan dengan heap struktur data) yang mengacu pada anaknya, ayahnya, atau keduanya, atau seperti data materi dalam array, dengan hubungan diantaranya ditentukan oleh posisi mereka dalam array (contoh binary heap).
  • Pohon sebagai grafik
Dalam teori grafik, sebuah pohon adalah sebuah grafik asiklis yang terhubung. Pohon yang berakar merupakan sebuah grafik dengan sudut tunggal diluar sebagai akar. Dalam kasus ini, dua sudut apapun yang terhubung dengan sebuah sisi mewarisi hubungan orang tua dan anak. Sebuah grafik asiklis dengan bermacam-macam komponen yang terhubung atau himpunan dari pohon-pohon yang berakar kadang-kadang dipanggil hutan.
  • Metode traversal
Melangkah melalui materi dari pohon, dengan arti dari hubungan antara orang tua dan anak, dinamakan menelusuri pohon, dan tindakannya adalah sebuah jalan dari pohon. Seringkali, sebuah operasi mungkin dapat dilakukan sebagai penunjuk ysng mengacu pada simpul khusus. Sebuah penelusuran dimana setiap simpul ayah dikunjungi sebelum anaknya dinamakan pre-order walk, yaitu sebuah penelusuran dimana anaknya dikunjungi sebelum ayahnya masing-masing dinamakan post-order walk.
  • Operasi umum
* Menghitung seluruh materi (item)
* Pencarian untuk sebuah materi
* Menambahkan sebuah materi pada sebuah posisi tertentu dalam pohon
* Menghapus sebuah materi
* Mengeluarkan seluruh bagian dari sebuah pohon pruning
* Menambahkan seluruh bagian ke sebuah pohon grafting
* Menemukan akar untuk simpul apapun
  • Penggunaan umum
* Memanipulasi data secara hierarki
* Membuat informasi mudah untuk dicari
* Memanipulasi data sorted lists