Basis Data (soal beserta jawaban "select di dalam select")

TABEL DAFTAR PENYEWA:







TABEL TIPE KOMIK:













TABEL TRANSAKSI:







BASISDATA
SOAL DAN JAWABAN

1. Tampilkan ID komik yg harganya sama dengan GOTH
Jwb :
SELECT id_komik FROM ttipekomik WHERE harga_komik = ANY (SELECT harga_komik FROM ttipekomik WHERE judul_komik = 'goth');
Output:







2. Tampilkan harga komik yg judulnya NARUTO
Jwb:
SELECT harga_komik FROM ttipekomik WHERE id_komik = ANY (SELECT id_komik FROM ttipekomik WHERE judul_komik = 'naruto');
Output:





3. Tampilkan judul komik yg harganya 5000
Jwb:
SELECT judul_komik FROM ttipekomik WHERE id_komik = ANY (SELECT id_komik FROM ttipekomik WHERE harga_komik = '5000');
Output:







4. Tampilkan ID yang jumlah buku yang disewa 5
SELECT id FROM ttransaksi WHERE id_komik = ANY (SELECT id_komik FROM ttransaksi WHERE jumlah_buku = '5');
Output:




5. Tampilkan jumlah buku yang id komik disewa adalah 4
Jwb:
SELECT jumlah_buku FROM ttransaksi WHERE id = ANY (SELECT id FROM ttransaksi WHERE id_komik = '4');
Output:




6. Tampilkan tanggal penyewaan buku dari SULE
Jwb:
SELECT tanggal_penyewaan FROM ttransaksi WHERE id = ANY (SELECT id FROM ttransaksi WHERE id = '11112233');
Output:





7. Tampilkan tanggal penyewaan buku dari AGUS
Jwb:
SELECT tanggal_penyewaan FROM ttransaksi WHERE id = ANY (SELECT id FROM ttransaksi WHERE id = '11222233');
Output:




8. Tampilkan tanggal penyewaan buku dari Adi
Jwb:
SELECT tanggal_penyewaan FROM ttransaksi WHERE id = ANY (SELECT id FROM ttransaksi WHERE id = '11223344');
Output:




9. Tampilkan nama yg alamatnya pondok cabe
Jwb:
SELECT nama FROM tdaftarpenyewa WHERE id = ANY (SELECT id FROM tdaftarpenyewa WHERE alamat = 'pondok cabe');
Output:





10. Tampilkan alamat dari AGUS
Jwb:
SELECT alamat FROM tdaftarpenyewa WHERE id = ANY (SELECT id FROM tdaftarpenyewa WHERE nama = 'agus');
Output:

UNIFIED MODELING LANGUAGE

Unified Modeling Language (UML) adalah notasi yang lengkap untuk membuat visualisasi model suatu sistem. Sistem berisi informasi dan fungsi, tetapi secara normal digunakan untuk memodelkan sistem komputer. Di dalam pemodelan obyek guna menyajikan sistem yang berorientasi pada objek pada orang lain, akan sangat sulit dilakukan jika pemodelan tersebut dilakukan dalam bentuk kode bahasa pemrograman. Kesulitan yang muncul adalah timbulnya ketidak jelasan dan salah interpretasi di dalam pembacaan kode pemrograman untuk pemodelan objek tersebut.

Dimulai tahun 1994, Booch, Runbaugh dan Jacobson merupakan tiga tokoh yang metodelogi-nya paling banyak dipakai mempelopori organisasi yang bertujuan menyatukan metodelogi-metodelogi berorientasi objek, organisasi tersebut dinamakan OMG (Object Modelling Group). Pada tahun 1995 OMG merealisasi draf pertama dari UML (versi 0.8) dan pada tahun 1997 UML versi 1.1 muncul dan sekarang versi terbaru dari UML adalah versi 2.0. Pada tahun 1997 Booch, Runbaugh dan Jacobson menyusun tiga buku tentang UML. Sejak saat itulah UML telah menjelma menjadi standar bahasa pemodelan untuk aplikasi berorientasi objek.
Diagram UML

UML merupakan sintak umum untuk membuat model logika dari suatu sistem dan digunakan untuk menggambarkan sistem agar dapat dipahami selama fase analisis dan desain. UML biasanya disajikan dalam bentuk diagram/gambar yang meliputi class beserta atribut dan operasinya, serta hubungan antar class yang meliputi inheritance, association dan komposisi.

Contoh diagram UML versi 2.0


Use Case Diagram

Use case diagram menggambarkan fungsionalitas yang diharapkan dari sebuah sistem, yang ditekankan adalah “apa” yang diperbuat sistem, dan bukan “bagaimana”. Sebuah use case mempresentasikan sebuah interaksi antara actor dengan sistem. Use case menggambarkan kata kerja seperti Login ke sistem, maintenance user dan sebagainya.

Class Diagram

Class adalah sebuah spesifikasi yang jika di-instansiasi akan menghasilkan sebuah objek dan merupakan inti dari pengembangan berorientasi objek. Class menggambarkan keadaan (attribute/property) suatu sistem, sekaligus menawarkan layanan untuk memanipulasi keadaan tersebut (metode/fungsi). Class diagram menggambarkan struktur dan deskripsi class, packed dan objek beserta hubungan satu sama lain seperti containment, pewarisan, asosiasi dan lainnya.

Activity Diagram

Activity diagram menggambarkan berbagai alir aktifitas dalam sebuah sistem yang sedang dirancang, bagaimana masing-masing alir berawal, decision yang mungkin terjadi dan bagaimana mereka berakhir. Activity diagram juga dapat menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi. Activity diagram tidak menggambarkan sifat internal dari sebuah sistem dan interaksi antara beberapa sub sistem secara eksak, tetapi lebih menggambarkan proses-proses dan jalur-jalur aktivitas dari level atas secara umum.

Sequence Diagram

Sequence diagram menggambarkan interaksi antar objek di dalam dan di sekitar sistem (termasuk pengguna, display dan sebagainya) berupa message yang digambarkan terhadap waktu. Sequence diagram terdiri atas waktu dan obyek-obyek yang terkait. Sequence diagram biasa digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah yang dilakukan sebagai respons dari sebuah event untuk menghasilkan output tertentu, proses dan perubahan apa saja yang terjadi secara internal dan output apa yang dihasilkan.

Deployment Diagram

Deployment diagram menunjukan tata letak sebuah system secara fisik, menampakkan bagian-bagian software yang berjalan pada bagian-bagian hardware. Bagian utama hardware/perangkat keras adalah node; yaitu nama umum untuk semuah jenis sumber komputasi. Ada 2 tipe node yang mungkin. Processor adalah node yang bisa mengeksekusi sebuah component, sedangakan device tidak.

ISTILAH DALAM BASIS DATA

ENTITAS
Entitas adalah merupakan obyek yang mewakili sesuatu dalam dunia nyata dan dapat dibedakan antara satu dengan lainnya (unique)

ATTRIBUT
Attribut adalah merupakan sifat, ciri atau karakteristik dari suatu obyek atau entitas. atribut ini identik dengan field atau kolom pada suatu tabel.

RELASI
Relasi atau dikenal sebagai relationship dalam sistem basis data adalah merupakan suatu hubungan antara entitas satu dengan entitas yang lain. Ragam relasi dalam dua sisi. Dilihat dari kedudukan dalam sistem data base dikenal sebagai relasi kuat dan relasi lemah

CARDINALITY
Kardinalitas Relasi menunjukkan jumlah maksimum entitas yang dapat berelasi dengan entitas pada himpunan entitas yang lain. Kardinalitas relasi merujuk kepada hubungan maksimum yang terjadi dari himpunan entitas yang satu ke himpunan entitas yang lain dan begitu juga sebaliknya


TUPLE
Tuple adalah Kumpulan elemen-elemen yang saling berkaitan menginformasikan tentang suatu entitas secara lengkap. Satu record mewakili satu data atau informasi.

DOMAIN
Domain adalah sekumpulan nilai yang diijinkan untuk satu atau lebih atribut.

DERAJAT
Derajat adalah Jumlah atribut dalam sebuah relasi

BASIS DATA

DDL atau Data Definiton Language adalah sebuah bahasa yang digunakan untuk mendefinisikan pendefinisian data. Terdiri dari perintah-perintah untuk membentuk, mengubah atau menghapus tabel beserta kolom-kolom dan type data penyusunnya, serta perintah-perintah untuk menetapkan hubungan dan batasan-batasan data.

5 Macam perintah DDL yang ada di Oracle :
- CREATE TABLE
Digunakan untuk membuat tabel. Syntax umumnya sebagai berikut :

CREATE TABLE [schema, ] table ( column datatype [DEFAULT expr][,...]);

Contoh pembuatan sebuah tabel adalah :

CREATE TABLE dept  (deptno NUMBER(2),  dname VARCHAR2(14),  loc    VARCHAR2(13));

- ALTER TABLE
Statemen ALTER TABLE digunakan untuk :
~ Menambahkan kolom baru
Untuk menambah kolom baru, syntax umumnya sebagai berikut :

ALTER TABLE table ADD         (column datatype [DEFAULT expr]  [, column datatype]...);

Contoh penambahan kolom pada tabel dept yang dibuat di atas adalah :

ALTER TABLE dept ADD         (job_id VARCHAR2(9));

~ Memodifikasi kolom yang sudah ada
Kita dapat memodifikasi kolom dengan mengubah tipe datanya, ukuran dan nilai defaultnya.
Sintaks dari perintah ALTER TABLE untuk memodifikasi kolom sebagai berikut :

ALTER TABLE table MODIFY      (column datatype [DEFAULT expr]  [, column datatype] ... );

Contoh :

ALTER TABLE dept MODIFY       (dname VARCHAR2(30));

Table altered.

~ Menghapus kolom
Klausa DROP COLUMN digunakan untuk menghapus kolom yang tidak diperlukan lagi pada table. Sebagai contoh untuk menghapus kolom job_id pada pada tabel dept di atas.

ALTER TABLE dept DROP COLUMN job_id;

- DROP TABLE
Digunakan untuk melakukan penghapusan tabel. Melakukan penghapusan table dengan perintah DROP, berarti mengerjakan hal berikut :
Semua data dan struktur dari table akan dihapus
Semua transaksi pending akan di-commit
Semua indeks akan dihapus
Perintah drop ini tidak bisa di-rollback
Sebagai contoh, jika kita ingin menghapus tabel dept, maka yang harus dilakukan adalah :

DROP TABLE dept;

- RENAME
Digunakan untuk merubaha nama dari suatu object (table,view,sequence atau synonim). Sebagai contoh, jika kita ingin menghapus tabel dept,maka perintah yang harus dilakukan adalah :

RENAME dept TO detail_dept;

- CREATE VIEW
View adalah tabel bayangan. Tidak menyimpan data secara fisik. Biasanya berupa hasil query dari tabel-tabel dalam sebuah database. Syntax untuk melakuakn VIEW adalah :

CREATE VIEW  AS  

Contoh : view MahasiswaPria yang diambil dari tabel Mahasiswa di mana field JenisKel = “L”. Syntax dari contoh tersebut adalah :

CREATE VIEW MahasiswaPria AS SELECT * FROM Mahasiswa WHERE jeniskel=”L”

- CREATE TRIGGER
Trigger adalah sebuah obyek dalam database yang berupa prosedur yang merespon setiap kali terdapat proses modifikasi pada tabel. Proses modifikasi berupa: Insert, Update dan delete. Syntax pembuatan Trigger:

CREATE TRIGGER  ON TABLE  FOR [DELETE] [,] [INSERT] [,] [UPDATE] AS 

Sebagai contoh adalah membuat trigger dg nama tLogUbahNilai untuk setiap penambahan / update data pada tabel Pesertakul, dilakukan penambahan data pada tabel LogHistoris.
Syntax dari contoh tersebut adalah :

CREATE TRIGGER tLogUbahNilai ON TABLE pesertakul FOR UPDATE, INSERT AS INSERT INTO LogHistoris (tanggal, proses) VALUES (getDate(), ‘Terjadi proses perubahan data nilai’)

Data Manipulation Language (DML) merupakan bahasa basis data yang berguna untuk melakukan modifikasi dan pengambilan data pada suatu basis data.

A. Penambahan data (Insert) pada sebuah tabel :
Syntax:

INSERT INTO nama_tabel(field ke-1, ….. field ke-n) VALUES(nilai_field_ke-1, …. nilai_field_ke-n);

Contoh :

INSERT INTO Mahasiswa VALUES ('5107100029','Jeffrey Hermanto','RSMJ 12','0811232425')


B. Pembaruan data (Update) pada sebuah tabel :

Syntax:

UPDATE nama_tabel SET nama_field = data_baru WHERE nama_field = data_lama;

Contoh :

 UPDATE Mahasiswa SET Telp = '7312345' WHERE Nama = 'Jeffrey Hermanto Halimsetiawan'

C. Penghapusan data (Delete) pada sebuah tabel :
Syntax:

DELETE FROM nama_tabel [ WHERE kondisi];

Contoh :

DELETE FROM Mahasiswa WHERE Nama = 'Jeffrey Hermanto'

D. Pemilihan data dari satu atau beberapa tabel :
Syntax :

SELECT [DISTINCT] select_list FROM table_source [WHERE search_condition] [GROUP BY group_by_expression] [HAVING search_condition] [ORDER BY order_expression [ASC | DESC] ]

Contoh :

SELECT * FROM Mahasiswa; SELECT * FROM Mahasiswa WHERE Nama LIKE "%rey" ORDER BY Nama DESC; SELECT Nama, Nilai, AVG(Nilai) FROM Mahasiswa GROUP BY Nama, Nilai;

Key

Key dalam Bahasa Indonesia berarti kunci, maka semakna dengan itu fungsi dari key-key yang berada pada sebuah database. Artinya setiap pintu pasti mempunyai kunci khusus untuk membukanya, begitu pula tabel dalam database. Key-key inilah yang membantu dalam pengolahan data pada sebuah tabel (insert, update, delete).

Secara global key-key dalam Oracle dapat dibagi sebagai berikut :

Primary Key



:Key yang mengindentifikasikan bahwa setiap record pastiunique. Dalam sebuah tabel hanya diperbolehkan satuprimary key, tidak lebih. Misalnya adalah tabel MURID, tidak ada murid yang memiliki NIS (Nomor Induk Siswa) yang sama dalam keadaan real, kemudian diimplementasikan dalam bentuk tabel dengan diberikanprimary key pada kolom NIS.

Foreign Key:Key yang dihasilkan dari primary key dari tabel lain sebagai bentuk referensi dari tabel lain tersebut. Misalnya adalah tabel BELAJAR, dalam proses pembelajaran dibutuhkan kelas, guru dan apa yang dipelajari alias mata pelajaran, maka diimplementasikan dalam sebuah tabel bahwa dalam tabel BELAJAR terdapatforeign key (key asing) dari tabel KELAS, GURU dan MATA_PELAJARAN. Dari definisi key ini kita dapat mengetahui istilah MASTER-DETAIL.
Alternate Key (Unique Key):Key ini sebenarnya hampir sama dengan fungsi primary key yaitu berjenis unique key. Maksudnya adalah mungkin saja primary key yang kita buat pada suatu tabel adalah merupakan autonumber (angka yang bertambah terus-menerus ketika proses insert data, sehingga tidak dimungkinkan terdapat nilai yang sama), dikarenakan tidak diperbolehkan ada dua primary keymaka dapat dibantu oleh alternate key ini sebagai penanda unique-nya sebuah record dengan record lain. Dalam sebuah tabel diperbolehkan lebih dari satu alternate key.
Non Unique Key:Key yang bisa lebih dari satu dalam sebuah tabel dan tidak mendefinisikan unique antar record di dalam table tersabut. Key ini biasa digunakan untuk membantu proses pencarian (select) data pada sebuah kolom yang sering digunakan untuk proses tersebut.Setelah mengetahui definisi “mudah” dari setiap key maka ada beberapa tips yang harus diperhatikan dalam pemberian key pada kolom-kolom dalam sebuah tabel :
  1. Pastikan sebuah tabel mempunyai primary key.
  2. Pastikan primary key tersebut mewakili unique-nya sebuah record.
  3. Ada baiknya menjadikan satu kolom saja untuk sebuah primary key sebagai autonumber mewakili beberapa kolom yang merupakan unique-nya record. Mis : tabel BELAJAR mempunyai tiga kolom sebagai primary key, yaitu : NIG, Kode_MP, dan Kelas_ID, maka ketiga kolom tersebut dapat dijadikanalternate key, dan untuk primary key-nya dibuatkan satu kolom lagi, yaitu Belajar_ID. Ini akan mempermudah jika ada tabel yang mengambil primary key pada tabel BELAJAR sebagai foreign key tabel tersebut.
  4. Jangan terlalu banyak dalam pembuatan alternate key, karena key ini akan memperlambat proses insert dan update pada tabel tersebut. Secara logika alternate key akan mengecek ke-unique-kan seluruh record dari setiap record baru yang di-insert atau perubahan data pada record. Bayangkan jika datanya cukup besar… dan banyak alternate key… !!
  5. Pilihlah dengan baik alternate key karena alternate key akan mempermudah dan mempercepat proses select jika digunakan. Maksudnyanya adalah KOLOM-KOLOM dalam alternate keytersebut yang digunakan.
  6. Gunakan Non-unique key untuk kolom yang sering digunakan dalam proses select.
  7. Gunakan penamaan key-key tersebut dengan penamaan yang baik dan mudah diidentifikasikan, seperti BELAJAR_PK (primary key tabel BELAJAR), BELAJAR#GURU_FK (foreign key pada tabel BELAJAR dari tabel GURU), dan BELAJAR_AK (alternate key tabel BELAJAR)

Kunci kandidat adalah satu attribute atau satu set minimal attribute yang mengidentifikasi secara unik suatu kejadian specific dari entity.

Satu minimal set dari attribute menyatakan secara tak langsung dimana anda tidak dapat membuang beberapa attribute dalam set tanpa merusak kepemilikan yang unik.

Jika satu kunci kandidat berisi lebih dari satu attribute maka biasanya disebut sebagai composite key (kunci campuran/gabungan).

Contoh :

File Pegawai berisi attribute seperti :

*No Induk
*No KTP
*Nama
*Tempat Lahir
*Tanggal Lahir
*Alamat
*Kota

Kunci kandidat disini adalah :

*No Induk, karena unik tidak mungkin ganda
*No KTP, karena unik juga tidak mungkin ganda
*Nama, sering dipakai sebagai kunci pencarian namun tidak dapat dikatakan kunci karena sering seseorang punya nama yang sama.
*Nama + tempat lahir + tanggal lahir, dapat dipakai sebagai kunci
*Alamat, kota (bukan kunci).

QUICKSORT

Quicksort

RONALD GEMMY DWIPUTRA, M.ARASY.MUFAKKIR, RAHMAT YULI PURWANTO

Program Studi Sarjana Teknik Informatika
Fakultas Ilmu Komputer, Universitas Pembangunan Nasional “Veteran” Jakarta
2010

Introduction
Algoritma Quick Sort
Pengenalan
Algoritma quick sort diperkenalkan pertama kali oleh C.A.R. Hoare pada tahun 1960, dan dimuat sebagai artikel di “Computer Journal 5” pada April 1962. Quick sort adalah algoritma sorting yang berdasarkan pembandingan dengan metoda divide-and-conqueror. Disebut Quick Sort, karena Algoritma quick sort mengurutkan dengan sangat cepat. Quick sort disebut juga dengan partition exchange sort, karena konsepnya membuat partisi-partisi, dan sort dilakukan per partisi.
(i) pilih x ϵ {a1, a2, …, an} sebagai elemen pivot.
(ii) pindai (scan) tabel dari kiri sampai ditemukan elemen ap ≥ x.
(iii) pindai tabel dari kanan sampai ditemukan elemen aq ≤ x
(iv) pertukarkan ap <-> aq
(v) ulangi (ii) dari posisi p + 1, dan (iii) dari posisi q – 1, sampai kedua pemindaian bertemu di tengah tabel.
Algoritma quick sort mengurutkan dengan sangat cepat, namun algoritma ini sangat komplex dan diproses secara rekursif. Sangat memungkinkan untuk menulis algoritma yang lebih cepat untuk beberapa kasus khusus, namun untuk kasus umum, sampai saat ini tidak ada yang lebih cepat dibandingkan algoritma quick sort.
Walaupun begitu algoritma quick sort tidak selalu merupakan pilihan yang terbaik. Seperti yang telah disebutkan sebelumnya, algoritma ini dilakukan secara rekursif yang berarti jika dilakukan untuk tabel yang berukuran sangat besar, walaupun cepat, dapat menghabiskan memori yang besar pula. Selain itu, algoritma ini adalah algoritma yang terlalu komplex untuk mengurutkan tabel yang berukuran kecil (hanya puluhan elemen misalnya). Selain itu algoritma quick sort mempunyai tingkat efisiensi yang buruk ketika dioperasikan pada tabel yang hampir terurut atau pada tabel yang terurut menurun.

Algoritma :
Pivot <- A[(i+j) div 2] { pivot = elemen tengah } p <- i q <- j repeat while a[p] <>= pivot }
while a[q] > pivot do
q <- q – 1 endwhile { Aq >= pivot }
if (p _ q) then
{ pertukarkan a[p] dengan a[q]}
temp <- a[p] a[p] <- a[q] a[q] <- temp { tentukan awal pemindaian berikutnya} p <- p+ 1 q <- q – 1 endif until p > q

Deklarasi :
k : integer;
Algoritma :
if (i
Partisi(a,i,j,k) { Ukuran (a) > 1}
QuickSort(a,i,k)
QuickSort(a,k+1, j)
Endif
Procedure Partisi (input/output: a : array[1..n] of integer, input i , j : integer, output q : integer)
{Membagi tabel a[i..j] menjadi subtabel a[i..q] dan a[q+1..j]. Keluaran upatabel a[i..q] dan subtabel a[q+1..j]. Sedemikian sehingga elemen tabel a[i..q] lebih kecil dari elemen tabel a[q+1..j]}
Deklarasi :
Pivot, temp : integer
Algoritma :
if (i
Partisi(a,i,j,k) { Ukuran (a) > 1}
QuickSort(a,i,k)
QuickSort(a,k+1, j)
Endif
Procedure Partisi (input/output: a : array[1..n] of integer, input i , j : integer, output q : integer)
{Membagi tabel a[i..j] menjadi subtabel a[i..q] dan a[q+1..j]. Keluaran upatabel a[i..q] dan subtabel a[q+1..j]. Sedemikian sehingga elemen tabel a[i..q] lebih kecil dari elemen tabel a[q+1..j]}
Deklarasi :
Pivot, temp : integer

Kompleksitas Algoritma Quick Sort
Kebutuhan waktu dari quicksort bergantung pada pembuatan partisi, seimbang atau tidak, yang bergantung juga pada elemen yang digunakan sebagai pivot. Dalam menghitung kompleksitas ini, perlu dilihat pula perhitungan recurrence, karena terdapat fungsi rekursif untuk penyelesaian sub-masalah.
Terdapat 3 jenis kompleksitas waktu dari quicksort:
1. Kasus terburuk (worst case), yaitu terjadi bila terbentuk partisi dengan komposisi sub-masalah antara n – 1 elemen dan 0 elemen. Dengan demikian pemanggilan fungsi secara rekursif dengan array berukuran 0 akan langsung kembali, T(0) = Θ(1), sehingga berlaku: T(n) = T(n – 1) + cn = O(n2).
2. Kasus terbaik (best case), yaitu terjadi bila terbentuk partisi dengan dengan komposisi seimbang, dengan ukuran masing-masing tidak lebih dari n/2. Sehingga didapat: T(n) = 2T(n/2) + cn = na + cn log n = O(n log n).
3. Kasus rata-rata (average case), yaitu terjadi dari perimbangan pivot antara terbaik dan terburuk, yang dalam prakteknya lebih mendekati kasus terbaik ketimbang terburuk. Sehingga didapat: Tavg(n) = O(n log n).

pivIndex = partition(x,first, last);
quicksort(x,first,(pivIndex-1));
quicksort(x,(pivIndex+1),last);
}
}
int partition(int y[], int f, int l) {
int up,down,temp;
int piv = y[f];
up = f;
down = l;
goto partLS;
do {
temp = y[up];
y[up] = y[down];
y[down] = temp;
partLS:
while (y[up] <= piv && up <> piv && down > f ) {
down–;
}
} while (down > up);
y[f] = y[down];
y[down] = piv;
return down;}


Program C++ Quicksort

#include
void tampilkan_larik(int data[], int n)
{
int i;
for (i=0;i
cout << x="data[a];" i="a;" j="c;"> x)
j=j-1;
while (data[i] < i="i+1;" tmp="data[i];" b="partisi(data," jum_data="8;">

MATRIKS

· Matriks adalah susunan bilangan dalam suatu persegi panjang yang diatur berdasarkan baris dan kolom.

· Ordo atau ukuran dari suatu matriks adalah banyak baris dan kolom dari suatu matriks

· Susunan horizontal disebut dengan baris

· Susunan vertical disebut dengan kolom

TRANSPOSE (Baris à Kolom)

Transpose Matriks A adalah sebuah matriks baru yang disusun dengan cara menuliskan baris pertama matriks A menjadi kolom pertama matriks baru, baris kedua matriks A menjadi kolom kedua matriks baru, dan seterusnya. Transpose matriks A dinotasikan dengan AT. Jika matriks A berordo m x n, maka AT berordo n x m.

KESAMAAN DUA MATRIKS

Matriks A dan matrik B dikatakan sama (A = B), jika dan hanya jika :

  1. Ordo kedua matriks sama
  2. Semua elemen yang seletak (bersesuaian) mempunyai nilai yang sama

PENJUMLAHAN DAN PENGURANGAN DUA MATRIKS

Jika matriks A dan matriks B berordo sama, maka penjumlahan (atau pengurangan) matriks A dengan matrik B adalah sebuah matriks baru yang diperoleh dengan cara menjumlahkan setiap elemen matriks A dengan elemen matriks B yang seletak (bersesuaian).

Sifat Penjumlahan matrik

  1. Dua matriks dapat dijumlahkan jika ordonya sama
  2. Penjumlahan matriks bersifat komutatif, yakni A + B = B + A
  3. Penjumlahan matriks bersifat asosiatif, yakni (A + B) + C = A + (B + C)
  4. Ada unsur identitas, yakni matriks O (matriks yang semua elemennya nol), yang bersifat A + O = O + A = A
  5. Semua matriks A mempunyai lawan atau negatif (invers penjumlahan), yaitu – A yang bersifat A + ( - A ) = O

Jika matriks A dan matriks B berordo sama, maka pengurangan matriks A dengan matriks B adalah sebuah matrik baru yang diperoleh dengan cara mengurangkan setiap elemen matriks A dengan elemen matriks B yang seletak


PERKALIAN MATRIK

Perkalian Matrik dengan Skalar

Apabila A adalah sebuah matriks berordo m x n dan k adalah suatu bilangan real, maka kA adalah matriks baru berordo m x n yang diperoleh dari hasil perkalian k dengan elemen elemen matriks A

Perkalian Dua Matriks

Matriks A dapat dikalian dengan matriks B jika banyak kolom matriks A sama dengan banyak baris matriks B. Dengan kata lain Apabila A adalah matriks berordo m x n dan matriks B berordo n x p, hasil perkalian matriks A dengan matriks B adalah matriks baru (missal matriks C) yang berordo m x p. Hasil perkalian matriks A dengan matriks B yang sepadan diperoleh dengan cara mengalikan masing masing baris matriks A dengan masing masing kolom matriks B, kemudian menjumlahkannya.


Sifat Perkalian dua Matriks atau lebih yang sepadan

  1. Perkalian matriks pada umumnya tidak komutatif

A. B ≠ B. A (kecuali untuk matrik matrik khusus)

  1. Perkalian matriks bersifat asosiatif

(A. B) C = A. (B. C)

  1. Perkalian matriks bersifat distributif

Distributif Kiri : A. (B + C) = A.B + A. C

Distributif Kanan : (B + C). A = B. A + C. A

  1. Dalam perkalian matriks yang hanya memuat matriks-matriks persegi dengan ordo yang sama, terdapat sebuah matrik identitas, yaitu matrik satuan I, yang bersifat : I . A = A . I
  2. Jika A . B = O, belum tentu A = O atau B = O

Jika A. B = A. C, belum tentu B = C

  1. Jika p dan q adalah bilangan bilangan real, serta A dan B adalah matrik matriks, maka berlaku hubungan

(pA) (qB) = (pq) (A.B)

  1. Jika At dan Bt berturut-turut adalah transpose dari matriks A dan matriks B maka :

(A. B)t = Bt. At

INVERS MATRIKS

Apabila A dan B masing-masing adalah matriks persegi berordo sama dan berlaku hubungan :



Text Box: A. B = B. A = I


Maka A adalah invers B atau B adalah invers A atau A dan B merupakan dua matriks yang saling invers.

Matriks A adalah invers matrik B ditulis A = B-1 dan matrik B adalah invers matriks A ditulis B= A-1


Invers Matrik ordo 2 x 2

Misal A = dengan Determinan matriks A = det A = ad – bc, maka invers matrik A diperoleh dengan






Text Box: A-1 =


Text Box: ( A. B) -1 = B-1 . A-1


Dengan sifat


Penyelesaian Persamaan Matriks

Apabila A, B, dan X adalah matriks-matriks persegi berodo 2 dan A memiliki invers, maka

a. Penyelesaian persamaan matriks AX = B ditentukan oleh : X = A-1 B

b. Sistem Persamaan liniear dua peubah :

dapat dinyatakan dalam bentuk matrik :

Himpunan penyelesaiannya dapat ditentukan oleh :

Invers Matriks ordo 3 x 3

Misalkan matriks A adalah matriks persegi berodo 3 yang berbentuk A =

Berdasarkan kaidah Sarrus, nilai determinan matriks A ditentukan oleh :

Det A =


Penyelesaian Sistem Persamaan Liniear Tiga Variabel (Aturan Cramer)

Text Box: ditentukan oleh untuk D ≠ 0, dengan

Text Box: , , ,



Algoritma

Diagram Alur sering digunakan untuk menggambarkan sebuah algoritma.

Dalam matematika dan komputasi, algoritma merupakan kumpulan perintah untuk menyelesaikan suatu masalah. Perintah-perintah ini dapat diterjemahkan secara bertahap dari awal hingga akhir. Masalah tersebut dapat berupa apa saja, dengan catatan untuk setiap masalah, ada kriteria kondisi awal yang harus dipenuhi sebelum menjalankan algoritma. Algoritma akan dapat selalu berakhir untuk semua kondisi awal yang memenuhi kriteria, dalam hal ini berbeda dengan heuristik. Algoritma sering mempunyai langkah pengulangan (iterasi) atau memerlukan keputusan (logika Boolean dan perbandingan) sampai tugasnya selesai.

Desain dan analisis algoritma adalah suatu cabang khusus dalam ilmu komputer yang mempelajari karakteristik dan performa dari suatu algoritma dalam menyelesaikan masalah, terlepas dari implementasi algoritma tersebut. Dalam cabang disiplin ini algoritma dipelajari secara abstrak, terlepas dari sistem komputer atau bahasa pemrograman yang digunakan. Algoritma yang berbeda dapat diterapkan pada suatu masalah dengan kriteria yang sama.

Kompleksitas dari suatu algoritma merupakan ukuran seberapa banyak komputasi yang dibutuhkan algoritma tersebut untuk menyelesaikan masalah. Secara informal, algoritma yang dapat menyelesaikan suatu permasalahan dalam waktu yang singkat memiliki kompleksitas yang rendah, sementara algoritma yang membutuhkan waktu lama untuk menyelesaikan masalahnya mempunyai kompleksitas yang tinggi.

Sejarah istilah "algoritma"

Kata algoritma berasal dari latinisasi nama seorang ahli matematika dari Uzbekistan Al Khawārizmi (hidup sekitar abad ke-9), sebagaimana tercantum pada terjemahan karyanya dalam bahasa latin dari abad ke-12 "Algorithmi de numero Indorum". Pada awalnya kata algorisma adalah istilah yang merujuk kepada aturan-aturan aritmetis untuk menyelesaikan persoalan dengan menggunakan bilangan numerik arab (sebenarnya dari India, seperti tertulis pada judul di atas). Pada abad ke-18, istilah ini berkembang menjadi algoritma, yang mencakup semua prosedur atau urutan langkah yang jelas dan diperlukan untuk menyelesaikan suatu permasalahan.

Algortima adalah jantung ilmu computer atau informatika. Banyak cabang dari ilmu komputer yang diacu dalan terminologi algoritma,misalnya algoritma perutean (routing) pesan di dalam jaringan komputer, algoritma berensenham untuk menggambar garis lurus (bidang grafik kumputer), algoritma Knuth-Morris-Pratt untuk mencari suatu pola di dalam teks (bidang information retrievel), dan sebagainya.

Ditinjau dari asal usul kata, kata “algoritma” sendiri mempunyai sejarah yang cukup aneh. Kata ini tidak muncul di dalam kamus Webster sampai akhir tahun 1957. Orang hanya menemukan kata algorism yang berarti proses menghitung dengan angka Arab. Anda dikatakan algorist jika Anda menggunakan angka Arab. Para ahli bahasa berusaha menemukan asal kata algorism ini, namun hasilnya kurang memuaskan. Akhirnya para ahli sejarah matematika menemukan asal mula kata tersebut. Kata algorism berasal dari nama penulis buku arab yang terkenal, yaitu Abu Ja’afarMuhammad Ibnu Musa al-Khuwarizmi (al-Khuwarizmi dibaca orang barat menjadi algorism).Al-Khuwarizmi menulis buku yang berjudul Kital al jabar wal-muqabala, yang artinya “Buku pemugaran dan pengurangan” (The book of restoration and reduction). Dari judul buku ini kita juga memperoleh akar kata “aljabar” (algebra). Perubahan dari kata algorism menjadi algoritm muncul karena kata algorism sering dikelirukan dengan arithmetic, sehingga akhiran –sm beubah menjadi –thm. Karena perhitungan dengan angka Arab sudah menjadi hal yang biasa/lumrah, maka lambat laun kata algorithm berangsur-angsur dipakai sebagai metode perhitungan (komputasi) secara umum, sehingga kehilangan makna aslinya. Dalam bahasa Indonesia, kata algorithm diserap menjadi “algoritma”.

Pada tahun 1950, kata algoritma perama kali digunakan pada “algoritma Euclidean” (Euclid’s algorithm). Euclid, seorang matematikawan Yunani (lahir pada tahun 350 M), dalam bukunya yang berjudul Element menuliskan langkah-langkah untuk menemukan pembagi bersama terbesar (common greatest divisor atau gcd), dari dua buah bilangan bulat, m dan n (tapi Euclid tidak menyebut metodenya itu sebagai algoritma, baru abad modernlah ornag-orang menybut metodenya itu sebagai “algoritma Euclidean”), Pembagi terbesar dari dua buah bilangan bulat tak-negatif adalah bilangan bulat positif terbesar yang habis membagi kedua bilangan tersebut.
Misalnya, m=80 dan n=12.
Semua factor pembagi adalah
1, 2, 4, 5, 8, 10, 16, 20, 40, 80
Dan semua factor pembagi 12 adalah
1, 2, 3, 4, 6, 12
Maka gcd(80,12)=4
Langkah-langkah mencari gcd(80,12) dengan algoritma Euclidean sebagai berikut :
80 dibagi 12 hasilnya = 6, sisa = 8 (atau: 80 = 6.12 + 8)
12 dibagi 8 hasilnya = 1, sisa = 4 (atau: 12 = 1.8 + 4)
8 dibagi 4 hasilnya = 2, sisa = 0 (atau: 8 = 4.2 + 0)

Karena pembagian yang terakhir menghasilkan 0, maka sisa pembagian terakhir sebelum 0, yaitu 4, menjadi gcd(80,12). Jadi, gcd(80,12) = gcd(12,8) = gcd(4,0) = 4.

Contoh-contoh algoritma yang sudah dijelaskan di atas memberi dua pesan penting. Pertama, sebuah algoritma harus benar. Kedua, algoritma harus berhenti, dan setelah berhenti,algoritma membri hasil yang benar. Menurut Donald E. Knuth dalam bukunya yang berjudul The art of Computer Programming, sebuah algoritma harus mempunyai lima ciri penting:
1. Algoritma harus berhenti setelah mengerjakan sejumlah langkah trbatas.
2. Setiap langkah harus didefinisikan dengan tepat dan tidak brarti-dua (ambiguous). Misalnya, pernyataan “bagilah p dengan sejumlah beberapa bilangan bulat positif”,pernyataan ini dapat bermakna ganda. Berapakah yang dimaksud dengan “beberapa”? Algoritma menjadi jelas jika langkah tersebut ditulis “bagilah p dengan 10 buah bilangan bulat positif”.
3. Algoritma memiliki nol atau lebih masukan (input). Maukan ialah besaran yang diberikan kepada algoritma untuk diproses. Algoritma Euclidean mempunyai dua buah masukan, m dan n.
4. Algortima mempunyai nol atau lebih keluaran (output). Keluaran dapat berupa pesan atau besaran yang memiliki hubungan dengan masukan.
5. Algoritma harus sangkil (effective). Setiap langkah harus sederhana shingga dapat dikerjakan dalam sejumlah waktu yang masuk akal.

Jenis-jenis Algoritma

Terdapat beragam klasifikasi algoritma dan setiap klasifikasi mempunyai alasan tersendiri. Salah satu cara untuk melakukan klasifikasi jenis-jenis algoritma adalah dengan memperhatikan paradigma dan metode yang digunakan untuk mendesain algoritma tersebut. Beberapa paradigma yang digunakan dalam menyusun suatu algoritma akan dipaparkan dibagian ini. Masing-masing paradigma dapat digunakan dalam banyak algoritma yang berbeda.

  • Divide and Conquer, paradigma untuk membagi suatu permasalahan besar menjadi permasalahan-permasalahan yang lebih kecil. Pembagian masalah ini dilakukan terus menerus sampai ditemukan bagian masalah kecil yang mudah untuk dipecahkan. Singkatnya menyelesaikan keseluruhan masalah dengan membagi masalah besar dan kemudian memecahkan permasalahan-permasalahan kecil yang terbentuk.
  • Metode serakah. Sebuah algoritma serakah mirip dengan sebuah Pemrograman dinamik, bedanya jawaban dari submasalah tidak perlu diketahui dalam setiap tahap; dan menggunakan pilihan "serakah" apa yang dilihat terbaik pada saat itu.

Digital Clock


ShoutMix chat widget

Followers