Double Linked List Non Circular

Double Linked List Non Circular adalah linked list dengan menggunakan pointer, dimana setiap node memiliki 3 field, yaitu 1 field pointer yang menunjuk pointer berikutnya (next), 1 field menunjuk pointer sebelumnya (prev), serta sebuah field yang berisi data untuk node tersebut. Double Linked List Non Circular pointer next dan prev nya menunjuk ke NULL. Dengan adanya 2 pointer penunjuk, next dan prev, DLLNC sangat flexible dibandingkan dengan SLLNC.

BENTUK NODE DLLNC


Pengertian:
Double : artinya field pointer-nya terdiri dari dua buah dan dua arah, yaitu prev dan next
Linked List : artinya node-node tersebut saling terhubung satu sama lain.
Non-Circular : artinya pointer next dan prev-nya menunjuk ke NULL.


PEMBUATAN DOUBLE LINKED LIST NON CIRCULAR

Deklarasi node
Dibuat dari struct berikut ini:
typedef struct TNode
{
int data;
TNode *next;
Tnode *prev;
};
Penjelasan:
- Pembuatan struct bernama TNode yang berisi 3 field, yaitu field data bertipe integer dan field next & prev yang bertipe pointer dari TNode
- Setelah pembuatan struct, buat variabel haed yang bertipe pointer dari TNode yang berguna sebagai kepala linked list.

Pembentukan node baru
Digunakan keyword new yang berarti mempersiapkan sebuah node baru berserta alokasi memorinya.
TNode *baru;
baru = new TNode;
baru->data = databaru;
baru->next = NULL;
baru->prev = NULL;

- Untuk data pertama, pointer node baru yang prev dan next harus
menunjuk ke NULL

DOUBLE LINKED LIST NON CIRCULAR MENGGUNAKAN HEAD

- Menggunakan 1 pointer head
- Head selalu menunjuk node pertama


Deklarasi Pointer Head
Manipulasi linked list tidak bisa dilakukan langsung ke node yang dituju, melainkan harus melalui node pertama dalam linked list. Deklarasinya sebagai berikut:
TNode *head;

Fungsi Inisialisasi LinkedList
void init()
{
head = NULL;
}

Function untuk mengetahui kosong tidaknya LinkedList
int isEmpty()
{
if(head == NULL) return 1;
else return 0;
}PENAMBAHAN DATA

Penambahan data di depan
- Penambahan node baru akan dikaitan di node paling depan, namun pada saat pertama kali (data masih kosong), maka penambahan data dilakukan pada head nya.
- Pada prinsipnya adalah mengkaitkan data baru dengan head, kemudian head akan menunjuk pada data baru tersebut sehingga head akan tetap selalu menjadi data terdepan.
-
void insertDepan(int databaru)
{
TNode *baru;
baru = new TNode;
baru->data = databaru;
baru->next = NULL;
baru->prev = NULL;
if(isEmpty()==1){
head=baru;
head->next = NULL;
head->prev = NULL;
}
else
{
baru->next = head;
head->prev = baru;
head = baru;
}
cout<<”Data masuk\n”;
}


Penambahan data di belakang
- Penambahan data dilakukan di belakang, namun pada saat pertama kali data langsung ditunjuk pada head-nya.
- Penambahan di belakang lebih sulit karena kita membutuhkan pointer bantu untuk mengetahui data terbelakang, kemudian dikaitkan dengan data baru. Untuk mengetahui data terbelakang perlu digunakan perulangan.

void insertBelakang (int databaru)
{
TNode *baru,*bantu;
baru = new TNode;
baru->data = databaru;
baru->next = NULL;
baru->prev = NULL;
if(isEmpty()==1)
{
head=baru;
head->next = NULL;
head->prev = NULL;
}
else
{
bantu=head;
while(bantu->next!=NULL)
{
bantu=bantu->next;
}
bantu->next = baru;
baru->prev = bantu;
}
cout<<"Data masuk\n";
}

Function untuk menampilkan isi linked list
void tampil()
{
TNode *bantu;
bantu = head;
if(isEmpty()==0)
{
while(bantu!=NULL)
{
cout<data<<" ";
bantu=bantu->next;
}
cout<
}
else
cout<<"Masih kosong\n";
}
- Function di atas digunakan untuk menampilkan semua isi list, di mana linked list ditelusuri satu-persatu dari awal node sampai akhir node. Penelusuran ini dilakukan dengan menggunakan suatu variabel node bantu, karena pada prinsipnya variabel node head yang menjadi tanda awal list tidak boleh berubah/berganti posisi.
- Penelusuran dilakukan terus sampai node terakhir ditemukan menunjuk NULL. Jika belum NULL, maka node bantu akan berpindah ke node selanjutnya dan membaca isi datanya dengan menggunakan field next sehingga dapat saling berkait.
- Jika head masih NULL berarti data masih kosong!

PENGHAPUSAN DATA
Function untuk menghapus data di depan:
void hapusDepan ()
{
TNode *hapus;
int d;
if (isEmpty()==0)
{
if(head->next != NULL)
{
hapus = head;
d = hapus->data;
head = head->next;
head->prev = NULL;
delete hapus;
}
else
{
d = head->data;
head = NULL;
}
cout<<<" terhapus\n";
}
else
cout<<"Masih kosong\n";
}


- Function di atas akan menghapus data teratas (pertama) yang ditunjuk oleh head pada linked list
- Penghapusan node tidak boleh dilakukan jika keadaan node sedang ditunjuk oleh pointer, maka harus ditampung dahulu pada pointer hapus dan barulah kemudian menghapus pointer hapus dengan menggunakan perintah delete. Namun sebelumnya pointer head harus menunjuk terlebih dahulu ke node selanjutnya.
- Jika head masih NULL maka berarti data masih kosong!

Function untuk menghapus node terbelakang
void hapusBelakang()
{
TNode *hapus;
int d;
if (isEmpty()==0)
{
if(head->next != NULL)
{
hapus = head;
while(hapus->next!=NULL)
{
hapus = hapus->next;
}
d = hapus->data;
hapus->prev->next = NULL;
delete hapus;
}
else
{
d = head->data;
head = NULL;
}
}
cout<<<" terhapus\n";
}
else cout<<"Masih kosong\n";
}
- Tidak diperlukan pointer bantu yang mengikuti pointer hapus yang berguna untuk menunjuk ke NULL
- Karena pointer hapus sudah bisa menunjuk ke pointer sebelumnya dengan menggunakan elemen prev ke node sebelumnya, yang akan diset agar menunjuk ke NULL setelah penghapusan dilakukan.


Function untuk menghapus semua elemen
void clear()
{
TNode *bantu,*hapus;
bantu = head;
while(bantu!=NULL)
{
hapus = bantu;
bantu = bantu->next;
delete hapus;
}
head = NULL;
}

DOUBLE LINKED LIST NON CIRCULAR MENGGUNAKAN HEAD dan TAIL

- Dibutuhkan dua buah variabel pointer: head dan tail
- Head akan selalu menunjuk pada node pertama, sedangkan tail akan selalu menunjuk pada node terakhir.
-

Inisialisasi DLLNC
TNode *head, *tail;

Fungsi Inisialisasi DLLNC
void init()
{
head = NULL;
tail = NULL;
}

Function untuk mengetahui kosong tidaknya LinkedList
int isEmpty()
{
if(tail == NULL) return 1;
else return 0;
}

Pengkaitan node baru ke linked list di depan
Penambahan node baru akan selalu dikaitan di node paling depan, namun pada saat pertama kali (data masih kosong), maka penambahan data dilakukan pada tail/head nya. Sedangkan jika tidak kosong, data akan ditambahkan didepan head, kemudian node baru akan berubah menjadi head.
void insertDepan (int databaru)
{
TNode *baru;
baru = new TNode;
baru->data = databaru;
baru->next = NULL;
baru->prev = NULL;
if(isEmpty()==1)
{
head=baru;
tail=head;
head->next = NULL;
head->prev = NULL;
tail->prev = NULL;
tail->next = NULL;
}
else
{
baru->next = head;
head->prev = baru;
head = baru;
}
cout<<"Data masuk\n";
}


Penambahan node di belakang
Penambahan node di belakang akan selalu dikaitkan dengan tail dan kemudian node baru tersebut akan menjadi tail

void insertBelakang(int databaru)
{
TNode *baru;
baru = new TNode;
baru->data = databaru;
baru->next = NULL;
baru->prev = NULL;
if(isEmpty()==1)
{
head=baru;
tail=head;
head->next = NULL;
head->prev = NULL;
tail->prev = NULL;
tail->next = NULL;
}
else
{
tail->next = baru;
baru->prev = tail;
tail = baru;
tail->next = NULL;
}
cout<<"Data masuk\n";
}

Function untuk menampilkan isi linked list
void tampil()
{
TNode *bantu;
bantu = head;
if(isEmpty()==0)
{
while(bantu!=tail->next)
{
cout<data<<" ";
bantu=bantu->next;
}
cout<
} else
cout<<"Masih kosong\n";
}


Perulangan dilakukan sampai dengan node terakhir (node tail)

Function untuk menghapus data di data terdepan
void hapusDepan()
{
TNode *hapus;
int d;
if (isEmpty()==0)
{
if(head->next != NULL)
{
hapus = head;
d = hapus->data;
head = head->next;
head->prev = NULL;
delete hapus;
}
else
{
d = head->data;
head = NULL;
tail = NULL;
}
cout<<<" terhapus\n";
}
else cout<<"Masih kosong\n";
}

- Function di atas akan menghapus data teratas (pertama) yang ditunjuk oleh head pada linked list
- Penghapusan node tidak boleh dilakukan jika keadaan node sedang ditunjuk oleh pointer, maka harus ditampung dahulu pada pointer hapus dan barulah kemudian menghapus pointer hapus dengan menggunakan perintah delete. Namun sebelumnya pointer head harus ditunjuk lebih dahulu ke node sesudahnya agar tetap menunjuk ke node terdepan.
- Jika tail masih NULL maka berarti data masih kosong!


Function untuk menghapus node terbelakang
void hapusBelakang()
{
TNode *hapus;
int d;
if (isEmpty()==0)
{
if(head->next != NULL)
{
hapus = tail;
d = tail->data;
tail = tail->prev;
tail->next = NULL;
delete hapus;
} else
{
d = head->data;
head = NULL;
tail = NULL;
}
cout<<<" terhapus\n";
}
else cout<<"Masih kosong\n";
}



- Pointer hapus tidak perlu di loop untuk mencari node terakhir. Pointer hapus hanya perlu menunjuk pada pointer tail saja.
- Karena pointer hapus sudah bisa menunjuk ke pointer sebelumnya dengan menggunakan elemen prev, maka pointer prev hanya perlu diset agar menunjuk ke NULL. Lalu pointer hapus didelete.


Function untuk menghapus semua elemen LinkedList
void clear()
{
TNode *bantu,*hapus;
bantu = head;
while(bantu!=NULL)
{
hapus = bantu;
bantu = bantu->next;
delete hapus;
}
head = NULL;
tail = NULL;
}

Memodelkan Matematika

Matematika sebagai salah satu ilmu dasar, dewasa ini semakin dirasakan interaksinya dengan bidang-bidang ilmu lain seperti ekonomi, teknologi dan rekayasa. Peran matematika dalam interaksi ini terletak pada strukur ilmu dan penalaran yang digunakan.

Sekarang ini ilmu matematika makin banyak digunakan dalam berbagai bidang kehidupan seperti di bidang industri, asuransi, keuangan, pertanian, dan banyak digunakan di banyak bidang sosial maupun teknik.

Pada abad informasi sekarang dan masa mendatang peranan matematika akan semakin dirasakan terutama dalam menganalisis dan menginterpretasikan data dari pengamatan untuk diolah menjadi informasi yang berguna bagi pengambilan keputusan.

Kemudian untuk memodelkan masalah-masalah nyata yang dihadapi masyarakat juga memerlukan pengetahuan matematika, terutama untuk memodelkan masalah tersebut secara matematis untuk kemudian ditentukan penyelesaiannya.

Mengingat peranan matematika yang semakin besar dalam tahun-tahun mendatang, tentunya dibutuhkan banyak sarjana matematika yang terampil, andal, kompeten, dan berwawasan luas dalam disiplin ilmu yang lain yang saling menunjang.
Untuk menjawab kebutuhan akan tenaga kerja yang siap berkembang dalam bidang matematika, kurikulum Program Studi Matematika Unpar diarahkan ke Matematika Terapan dengan fokus penerapan pada bidang Keuangan, Asuransi dan Industri. Program studi menyediakan beberapan mata kuliah untuk menunjang dan mengembangkan kemampuan para lulusan yang dapat langsung diterapkan dalam bidang-bidang terkait.
I. MATEMATIKA KEUANGAN

Salah satu penerapan matematika yang sedang berkembang pesat saat ini adalah di bidang keuangan dan pasar modal. Selama 20 tahun terakhir ini, produk-produk keuangan seperti : option, future, forward contract, swap; diperdagangkan secara luas pada pasar yang terorganisir. Matematika keuangan akan mempelajari mangenai model-model pergerakan aset; dasar teori, penentuan harga dan aplikasi produk-produk keuangan; manajemen portofolio dan resiko dan lain-lain; yang didukung oleh pemanfaatan teknologi komputerisasi dalam menyelesaikan permasalahan dan membangun pemahaman.
II. MATEMATIKA ASURANSI

Penerapan matematika di bidang asuransi antara lain untuk memperkirakan besar santunan yang disediakan oleh perusahaan asuransi, besarnya premi yang harus dibayar pemegang polis dan juga jenis investasi yang digunakan untuk mengembangkan aset yang dimiliki oleh perusahaan asuransi. Karena itu, tenaga ahli matematika yang memiliki kemampuan akademis dan pengembangan diri yang baik dibutuhkan oleh perusahaan asuransi. Program studi menyediakan mata kuliah yang menunjang, antara lain : Matematika Asuransi, Teori Investasi, Ekonometrika, Teori Pensiun dan lain sebagainya.
III. MATEMATIKA INDUSTRI

Matematika saat ini banyak digunakan di bidang industri untuk membantu dalam pengambilan keputusan yang lebih efektif dan membangun sistem yang lebih produktif, diantaranya untuk optimasi proses dan pengendalian kualitas. Program Studi Matematika menyediakan beberapa mata kuliah yang membahas penerapan matematika antara lain : Statistika, Kontrol Optimum, Pengendalian Mutu dan Perancangan Percobaan.

aplikasi kalkulus dalam bidang ekonomi

Kalkulus (dari Bahasa Latin calculus yang artinya "batu kecil") adalah cabang ilmu matematika yang mencakup limit, turunan, integral, dan deret takterhingga. Kalkulus, yang mempunyai aplikasi luas dalam bidang sains dan teknik, digunakan untuk memecahkan masalah kompleks yang tidak cukup diselesaikan dengan menggunakan teknik aljabar elementer. Kalkulus memiliki dua cabang utama, kalkulus diferensial dan kalkulus integral yang saling berhubungan melalui teorema dasar kalkulus.
Sejarah perkembangan kalkulus bisa ditilik pada beberapa periode zaman, yaitu zaman kuno, zaman pertengahan, dan zaman modern. Pada periode zaman kuno, beberapa pemikiran tentang kalkulus integral telah muncul, tetapi tidak dikembangkan dengan baik dan sistematis. Perhitungan volume dan luas yang merupakan fungsi utama dari kalkulus integral bisa ditelusuri kembali pada Papirus Moskow Mesir (c. 1800 SM) di mana orang Mesir menghitung volume dari frustrum piramid[1]. Archimedes mengembangkan pemikiran ini lebih jauh dan menciptakan heuristik yang menyerupai kalkulus integral.[2]

Pada zaman pertengahan, matematikawan India, Aryabhata, menggunakan konsep kecil takterhingga pada tahun 499 dan mengekspresikan masalah astronomi dalam bentuk persamaan diferensial dasar.[3] Persamaan ini kemudian mengantar Bhāskara II pada abad ke-12 untuk mengembangkan bentuk awal turunan yang mewakili perubahan yang sangat kecil takterhingga dan menjelaskan bentuk awal dari "Teorema Rolle".[4] Sekitar tahun 1000, matematikawan Irak Ibn al-Haytham (Alhazen) menjadi orang pertama yang menurunkan rumus perhitungan hasil jumlah pangkat empat, dan dengan menggunakan induksi matematika, dia mengembangkan suatu metode untuk menurunkan rumus umum dari hasil pangkat integral yang sangat penting terhadap perkembangan kalkulus integral.[5] Pada abad ke-12, seorang Persia Sharaf al-Din al-Tusi menemukan turunan dari fungsi kubik, sebuah hasil yang penting dalam kalkulus diferensial. [6] Pada abad ke-14, Madhava, bersama dengan matematikawan-astronom dari Mazhab astronomi dan matematika Kerala, menjelaskan kasus khusus dari deret Taylor[7], yang dituliskan dalam teks Yuktibhasa.[8][9][10]

Pada zaman modern, penemuan independen terjadi pada awal abad ke-17 di Jepang oleh matematikawan seperti Seki Kowa. Di Eropa, beberapa matematikawan seperti John Wallis dan Isaac Barrow memberikan terobosan dalam kalkulus. James Gregory membuktikan sebuah kasus khusus dari teorema dasar kalkulus pada tahun 1668.
Gottfried Wilhelm Leibniz pada awalnya dituduh menjiplak dari hasil kerja Sir Isaac Newton yang tidak dipublikasikan, namun sekarang dianggap sebagai kontributor kalkulus yang hasil kerjanya dilakukan secara terpisah.

Leibniz dan Newton mendorong pemikiran-pemikiran ini bersama sebagai sebuah kesatuan dan kedua orang ilmuwan tersebut dianggap sebagai penemu kalkulus secara terpisah dalam waktu yang hampir bersamaan. Newton mengaplikasikan kalkulus secara umum ke bidang fisika sementara Leibniz mengembangkan notasi-notasi kalkulus yang banyak digunakan sekarang.

Ketika Newton dan Leibniz mempublikasikan hasil mereka untuk pertama kali, timbul kontroversi di antara matematikawan tentang mana yang lebih pantas untuk menerima penghargaan terhadap kerja mereka. Newton menurunkan hasil kerjanya terlebih dahulu, tetapi Leibniz yang pertama kali mempublikasikannya. Newton menuduh Leibniz mencuri pemikirannya dari catatan-catatan yang tidak dipublikasikan, yang sering dipinjamkan Newton kepada beberapa anggota dari Royal Society.

Pemeriksaan secara terperinci menunjukkan bahwa keduanya bekerja secara terpisah, dengan Leibniz memulai dari integral dan Newton dari turunan. Sekarang, baik Newton dan Leibniz diberikan penghargaan dalam mengembangkan kalkulus secara terpisah. Adalah Leibniz yang memberikan nama kepada ilmu cabang matematika ini sebagai kalkulus, sedangkan Newton menamakannya "The science of fluxions".

Sejak itu, banyak matematikawan yang memberikan kontribusi terhadap pengembangan lebih lanjut dari kalkulus.

Kalkulus menjadi topik yang sangat umum di SMA dan universitas zaman modern. Matematikawan seluruh dunia terus memberikan kontribusi terhadap perkembangan kalkulus.[11]

Pengaruh penting

Walau beberapa konsep kalkulus telah dikembangkan terlebih dahulu di Mesir, Yunani, Tiongkok, India, Iraq, Persia, dan Jepang, penggunaaan kalkulus modern dimulai di Eropa pada abad ke-17 sewaktu Isaac Newton dan Gottfried Wilhelm Leibniz mengembangkan prinsip dasar kalkulus. Hasil kerja mereka kemudian memberikan pengaruh yang kuat terhadap perkembangan fisika.

Aplikasi kalkulus diferensial meliputi perhitungan kecepatan dan percepatan, kemiringan suatu kurva, dan optimalisasi. Aplikasi dari kalkulus integral meliputi perhitungan luas, volume, panjang busur, pusat massa, kerja, dan tekanan. Aplikasi lebih jauh meliputi deret pangkat dan deret Fourier.

Kalkulus juga digunakan untuk mendapatkan pemahaman yang lebih rinci mengenai ruang, waktu, dan gerak. Selama berabad-abad, para matematikawan dan filsuf berusaha memecahkan paradoks yang meliputi pembagian bilangan dengan nol ataupun jumlah dari deret takterhingga. Seorang filsuf Yunani kuno memberikan beberapa contoh terkenal seperti paradoks Zeno. Kalkulus memberikan solusi, terutama di bidang limit dan deret takterhingga, yang kemudian berhasil memecahkan paradoks tersebut.

Sejarah Kalkulus

Kalkulus (dari Bahasa Latin calculus yang artinya "batu kecil") adalah cabang ilmu matematika yang mencakup limit, turunan, integral, dan deret takterhingga. Kalkulus, yang mempunyai aplikasi luas dalam bidang sains dan teknik, digunakan untuk memecahkan masalah kompleks yang tidak cukup diselesaikan dengan menggunakan teknik aljabar elementer. Kalkulus memiliki dua cabang utama, kalkulus diferensial dan kalkulus integral yang saling berhubungan melalui teorema dasar kalkulus.
Sejarah perkembangan kalkulus bisa ditilik pada beberapa periode zaman, yaitu zaman kuno, zaman pertengahan, dan zaman modern. Pada periode zaman kuno, beberapa pemikiran tentang kalkulus integral telah muncul, tetapi tidak dikembangkan dengan baik dan sistematis. Perhitungan volume dan luas yang merupakan fungsi utama dari kalkulus integral bisa ditelusuri kembali pada Papirus Moskow Mesir (c. 1800 SM) di mana orang Mesir menghitung volume dari frustrum piramid[1]. Archimedes mengembangkan pemikiran ini lebih jauh dan menciptakan heuristik yang menyerupai kalkulus integral.[2]

Pada zaman pertengahan, matematikawan India, Aryabhata, menggunakan konsep kecil takterhingga pada tahun 499 dan mengekspresikan masalah astronomi dalam bentuk persamaan diferensial dasar.[3] Persamaan ini kemudian mengantar Bhāskara II pada abad ke-12 untuk mengembangkan bentuk awal turunan yang mewakili perubahan yang sangat kecil takterhingga dan menjelaskan bentuk awal dari "Teorema Rolle".[4] Sekitar tahun 1000, matematikawan Irak Ibn al-Haytham (Alhazen) menjadi orang pertama yang menurunkan rumus perhitungan hasil jumlah pangkat empat, dan dengan menggunakan induksi matematika, dia mengembangkan suatu metode untuk menurunkan rumus umum dari hasil pangkat integral yang sangat penting terhadap perkembangan kalkulus integral.[5] Pada abad ke-12, seorang Persia Sharaf al-Din al-Tusi menemukan turunan dari fungsi kubik, sebuah hasil yang penting dalam kalkulus diferensial. [6] Pada abad ke-14, Madhava, bersama dengan matematikawan-astronom dari Mazhab astronomi dan matematika Kerala, menjelaskan kasus khusus dari deret Taylor[7], yang dituliskan dalam teks Yuktibhasa.[8][9][10]

Pada zaman modern, penemuan independen terjadi pada awal abad ke-17 di Jepang oleh matematikawan seperti Seki Kowa. Di Eropa, beberapa matematikawan seperti John Wallis dan Isaac Barrow memberikan terobosan dalam kalkulus. James Gregory membuktikan sebuah kasus khusus dari teorema dasar kalkulus pada tahun 1668.
Gottfried Wilhelm Leibniz pada awalnya dituduh menjiplak dari hasil kerja Sir Isaac Newton yang tidak dipublikasikan, namun sekarang dianggap sebagai kontributor kalkulus yang hasil kerjanya dilakukan secara terpisah.

Leibniz dan Newton mendorong pemikiran-pemikiran ini bersama sebagai sebuah kesatuan dan kedua orang ilmuwan tersebut dianggap sebagai penemu kalkulus secara terpisah dalam waktu yang hampir bersamaan. Newton mengaplikasikan kalkulus secara umum ke bidang fisika sementara Leibniz mengembangkan notasi-notasi kalkulus yang banyak digunakan sekarang.

Ketika Newton dan Leibniz mempublikasikan hasil mereka untuk pertama kali, timbul kontroversi di antara matematikawan tentang mana yang lebih pantas untuk menerima penghargaan terhadap kerja mereka. Newton menurunkan hasil kerjanya terlebih dahulu, tetapi Leibniz yang pertama kali mempublikasikannya. Newton menuduh Leibniz mencuri pemikirannya dari catatan-catatan yang tidak dipublikasikan, yang sering dipinjamkan Newton kepada beberapa anggota dari Royal Society.

Pemeriksaan secara terperinci menunjukkan bahwa keduanya bekerja secara terpisah, dengan Leibniz memulai dari integral dan Newton dari turunan. Sekarang, baik Newton dan Leibniz diberikan penghargaan dalam mengembangkan kalkulus secara terpisah. Adalah Leibniz yang memberikan nama kepada ilmu cabang matematika ini sebagai kalkulus, sedangkan Newton menamakannya "The science of fluxions".

Sejak itu, banyak matematikawan yang memberikan kontribusi terhadap pengembangan lebih lanjut dari kalkulus.

Kalkulus menjadi topik yang sangat umum di SMA dan universitas zaman modern. Matematikawan seluruh dunia terus memberikan kontribusi terhadap perkembangan kalkulus.[11]

Pengaruh penting

Walau beberapa konsep kalkulus telah dikembangkan terlebih dahulu di Mesir, Yunani, Tiongkok, India, Iraq, Persia, dan Jepang, penggunaaan kalkulus modern dimulai di Eropa pada abad ke-17 sewaktu Isaac Newton dan Gottfried Wilhelm Leibniz mengembangkan prinsip dasar kalkulus. Hasil kerja mereka kemudian memberikan pengaruh yang kuat terhadap perkembangan fisika.

Aplikasi kalkulus diferensial meliputi perhitungan kecepatan dan percepatan, kemiringan suatu kurva, dan optimalisasi. Aplikasi dari kalkulus integral meliputi perhitungan luas, volume, panjang busur, pusat massa, kerja, dan tekanan. Aplikasi lebih jauh meliputi deret pangkat dan deret Fourier.

Kalkulus juga digunakan untuk mendapatkan pemahaman yang lebih rinci mengenai ruang, waktu, dan gerak. Selama berabad-abad, para matematikawan dan filsuf berusaha memecahkan paradoks yang meliputi pembagian bilangan dengan nol ataupun jumlah dari deret takterhingga. Seorang filsuf Yunani kuno memberikan beberapa contoh terkenal seperti paradoks Zeno. Kalkulus memberikan solusi, terutama di bidang limit dan deret takterhingga, yang kemudian berhasil memecahkan paradoks tersebut.

Masalah Penugasan Untuk Kasus Maksimasi Tidak Normal

Pendahuluan
Seperti masalah transportasi, masalah penugasan (assigment problem) merupakan suatu kasus khusus dari masalah linear programing pada umunnya. Dalam dunia usaha (bisnis) dan industri, manajemen sering menghadapi masalah-masalah yang berhubungan dengan penugasan optimal dari bermacam-macam sumber yang produktif atau personalia yang mempunyai tingkat efisiensi yang berbeda-beda untuk tugas–tugas yang berbeda-beda pula. Metode Hungarian (Hungarian Method) adalah salah satu dari beberapa teknik-teknik pemecahan yang tersedia untuk masalah-masalah penugasan. Metode ini mula-mula dikembangakan oleh seorang ahli Matematika berkebangsaan Hungaria yang bernama D. König pada tahun 1916.
Untuk dapat menerapakan metode ini, jumlah sumber-sumber yang ditugaskan harus sama persis dengan jumlah tugas yang akan diselesaikan. Selain itu, setiap sumber harus ditugaskan hanya untuk satu tugas. Jadi, masalah penugasan akan mencakup sejumlah n sumber yang memiliki n tugas. Karena berpasanagn satu-satu, maka dalam suatu kasus akan terdapat n! (n faktorial) penugasan yang mungkin. Masalah ini dapat dijelaskan dengan mudah dalam bentuk matriks segi, dimana baris pada matriks menunjukan sumber-sumber, dan kolom pada matris menunjukan tugas-tugas.
Masalah penugasan dapat dinyatakan secara matematis dalam suatu bentuk linear programing sebagai berikut:
Minimumkan atau maksimumkan:
Dengan batasan: dan dimana adalah tetapan yang telah diketahui. Masalah maksimasi Selain diterapkan pada kasus minimasi, metode Hungarian dapat pula diterapkan untuk kasus maksimasi, dimana elemen-elemen matriks menunjukan tingkat keuntungan (indeks produktivitas). Masalah maksimasi adalah suatu permasalahan dimana kita akan memaksimumkan tingkat keuntungan dari setiap pekerjaan yang akan ditugaskan pada setiap pekerjaan. Untuk memenuhi persyaratan suatu matriks segi empat bujur sangkar, agar metode Hungarian dapat diterapkan, bila terdapat jumlah pekerjaan lebih besar dari jumlah karyawan, maka harus ditambahkan suatu karyawan semu (dummy worker). Biaya semu adalah sama dengan nol., karena tidak akan terjadi biaya bila suatu pekerjaan ditugaskan ke karyawan semu. Atau dengan kata lain karena sebenarnya pekerjaan tersebut tidak dilaksanakan. Sebaliknya bila jumlah karyawan lebih besar dari jumlah pekerjaan, maka harus ditambahkan suatu pekerjaan semu (dummy job).
Langkah-langakah penyelesaian masalah penugasan untuk kasus maksimasi dapat dilihat pada gambar 1. Bagan penyelesaian kasus maksimasi dengan metode penugasan.
Contoh soal:
Sebuah perusahaan kecil memiliki 5 (lima) produk yang berbeda untuk dijual oleh 4 (empat) Sales Promotion Girl (SPG) .
Bagaimana cara penugasan untuk tiap-tiap SPG yang harus diambil perusahaan untuk memperoleh penjualan maksimum?
Langkah 1
Karena penugasan ini tidak seimbang, maka perlu ditambahkan variabel dummy menjadi :
Tabel penjualan produk oleh masing -masing SPG setelah ditambahkan variable dummy
a. Matriks keuntungan
b. Matriks opportunity-loss
Dengan mengurangkan seluruh elemen dalam tiap tiap baris dengan nilai maksimum dari baris yang sama, setelah itu hasil dari pengurangan di harga mutlakkan sehingga semua hasil dari pengurangan bernilai positif
c. Matriks total-opportunity-loss
Seluruh elemen dalam tiap kolom dikurangi dengan nilai minimum dari kolom yang sama, sehingga diperoleh matriks total-opportunity-loss
d. Matriks test for optimalityKarena, jumlah garis = 4 sedangkan jumlah baris atau kolom = 5.
Sehingga solusi belum layak, diperlukan revisi pada matriks.
e. Matriks hasil revisi dan test-for-optimality
Elemen terkecil yang belum terliput garis yaitu 2, digunakan untuk mengurangi seluruh elemen yang terliput garis. Kemudian, nilai ini juga ditambahkan pada elemen dengan dua garis berpotongan, yaitu 0, 0 dan 0 sehingga berturut turut menjadi 2, 2 dan 2.
Karena, jumlah garis = 4, maka jumlah garis ≠ jumlah baris atau kolom yang ada, yaitu 5 (lima), sehingga solusi yang diperoleh belum layak, diperlukan revisi lagi pada matriks hasil revisi pertama, dengan langkah-langkah seperti sebelumnya.
Dari matriks diatas, telah diperoleh suatu solusi optimum yang layak, sebab jumlah garis = jumlah baris atau kolom yang ada, yaitu 5 (lima).
Pola penugasan optimum dengan penjualan total tertinggi
tidak ada satupun SPG ditugaskan untuk menjual produk 3 (tiga). Dan pada pola penugasan optimum alternative, tidak ada satupun SPG yang ditugaskan untuk menjual produk 4 (empat).


Masalah Penugasan Untuk Kasus Maksimasi Tidak Normal


Barisan Aritmetika

Barisan Aritmetika adalah barisan yang selisih antara suku pertama dan kedua hingga seterusnya adalah tetap (konstan)

selisih antara suku pertama dan kedua hingga seterusnya disebut dengan beda (b)

b= U2 - U1 = U3 - U2 = . . . = Un - Un-1 = konstan

Rumus Umum

suku pertama = a
beda = b

Un = a + (n-1) b

Deret Arimetika

Deret Arimetika adalah penjumlahan suku suku barisan arimetika yang berturutan

Jumlah n suku barisan Aritmetika yang berturutan dinyatakan dengan Sn

jadi Sn = U1 + U2 + U3 + . . . + Un,

karena Un = a + (n-1)b, maka
Sn = a + (a+b) + (a+2b) + (a+3b) + . . . + (a+(n-1)b) . . . (i)

atau ditulis dari belakang
Sn = Un + (Un-b) + (Un-2b) + . . . +(a+b) + a . . . (ii)

Jika persamaan (i) dan (ii) di jumlahkan akan diperoleh
2Sn = (a+Un) + (a+Un) + (a+Un) + . . . (a+Un), atau

2Sn = n(a+Un)

sehingga diperoleh
Sn= (1/2)n(a+Un), atau

Sn = (1/2)n(a+a+(n-1)b), atau

Sn = (1/2)n(2a+(n-1)b)

Deret Arimetika::Contoh Deret Arimetika:: Belajar Deret Arimetika:: Macam-macam Deret Arimetika

Barisan Geometri

Barisan Geometri adalah barisan yang perbandingan antara dua suku berurutannya tetap (konstan)

Perbandingan kedua suku tersebut disebit ratio (r)

r = U2/U1 = U2/U2 = U4/U3 = Un/Un-1 = Konstan

Rumus Umum Barisan geometri, yang mempunyai
suku pertama adalah a
dan ratio adalah b
yaitu
U1 = a
U2 = ar
U3 = ar2
U4 = ar3
: :
: :
: :
Un = arn - 1

Deret Geometri::Barisan Geometri::contoh Deret Geometri::Contoh Barisan Geometri

Rumus Deret Geometri

Deret Geometri adalah Penjumlahan anggota - anggota barisan geometri yang berurutan

deret geometri disimbolkan dengan Sn,
sehingga,
Sn = U1 + U2 + U3 + . . . + Un

karena Un = arn-1, maka
Sn = a + ar + ar2 + ar3 + . . . + arn-1

jika Sn dikalikan dengan r maka,
rSn = arn-1, maka
Sn = a + ar + ar2 + ar3 + . . . + arn-1 + arn

Selisih dari Sn - rSn = a - arn, atau
Sn(1-r) = a(1-rn) sehingga diperoleh Rumus Umum Deret Geometri

Sn = (a(1-rn))/(1-r), atau
Sn = (a(rn-1))/(r-1)

dengan Keterangan
n = Banyaknya suku
a= suku pertama
r = ratio

Deret Geometri, Rumus Deret Geometri, belajar Deret Geometri, manfaat Deret Geometri, Aplikasi Deret Geometri,


Deret Geometri

Deret Geometri adalah Penjumlahan anggota - anggota barisan geometri yang berurutan

deret geometri disimbolkan dengan Sn,
sehingga,
Sn = U1 + U2 + U3 + . . . + Un

karena Un = arn-1, maka
Sn = a + ar + ar2 + ar3 + . . . + arn-1

jika Sn dikalikan dengan r maka,
rSn = arn-1, maka
Sn = a + ar + ar2 + ar3 + . . . + arn-1 + arn

Selisih dari Sn - rSn = a - arn, atau
Sn(1-r) = a(1-rn) sehingga diperoleh Rumus Umum Deret Geometri

Sn = (a(1-rn))/(1-r), atau
Sn = (a(rn-1))/(r-1)

dengan Keterangan
n = Banyaknya suku
a= suku pertama
r = ratio


Deret Geometri::Rumus Deret Geometri: Deret Geometri matematika

Pemodelan Matematika Pada Bidang Pendidikan

Ini adalah tugas yang perlu di selesaikan dari mata kuliah pemodelan matematika bidang Pendidikan melalui tulisan ini saya tidak akan memberikan contoh dari pemodelan pada bidang Pendidikan tapi saya akan memberikan saran dimana dapat memperolah jurnal ini. Sebelum saya beri tahu saya akan memberikan sedikit informasi tentang bagaimana suatu tulisan di sebut sebagai jurnal:
Dari segi isi jurnal tsb harus terdapat
1. Judul
2. Abstrak
3. Pendahuluan
---a. Latar belakang
---b. Tujuan penelitian
---c. Tinjauan pustaka
---d. Metode penelitian
4. Hasil penelitian
5. Penutup
---a. Kesimpulan
---b. Saran
6. Daftar pustaka
Ini saja yang saya tahu dari segi fisik saya kurang tahu…
Untuk mendapatkan jurnal-jurnal tsb anda harus berkunjung keperpustakaan dan cari jurnal jurnal tsb. Dengan mengetikan judul jurnal di computer pencarian buku di perpustakaan. Atau bagi kalian yang sering nongkrong di warnet atau sebagainya dapat mencari dengan nama dari masing masing topik yang anda cari dan jangan lupa di bagian belakang nama yang anda ketik sisipkan tulisan ini filetype:pdf tulisan ini akan membantu anda mendapatkan jurnal dengan file pdf sehinga isi yang anda dapatkan tepat.

Pemodelan Matematika Pada Bidang Pendidikan:: Pemodelan Matematika Bidang Pendidikan:: Pemodelan Matematika Dalam Bidang Pendidikan::Pemodelan Bidang Pendidikan::Pemodelan Matematika Pendidikan

Pemodelan Matematika Bidang Pendidikan

Ini adalah tugas yang perlu di selesaikan dari mata kuliah pemodelan matematika bidang Pendidikan melalui tulisan ini saya tidak akan memberikan contoh dari pemodelan pada bidang Pendidikan tapi saya akan memberikan saran dimana dapat memperolah jurnal ini. Sebelum saya beri tahu saya akan memberikan sedikit informasi tentang bagaimana suatu tulisan di sebut sebagai jurnal:
Dari segi isi jurnal tsb harus terdapat
1. Judul
2. Abstrak
3. Pendahuluan
---a. Latar belakang
---b. Tujuan penelitian
---c. Tinjauan pustaka
---d. Metode penelitian
4. Hasil penelitian
5. Penutup
---a. Kesimpulan
---b. Saran
6. Daftar pustaka
Ini saja yang saya tahu dari segi fisik saya kurang tahu…
Untuk mendapatkan jurnal-jurnal tsb anda harus berkunjung keperpustakaan dan cari jurnal jurnal tsb. Dengan mengetikan judul jurnal di computer pencarian buku di perpustakaan. Atau bagi kalian yang sering nongkrong di warnet atau sebagainya dapat mencari dengan nama dari masing masing topik yang anda cari dan jangan lupa di bagian belakang nama yang anda ketik sisipkan tulisan ini filetype:pdf tulisan ini akan membantu anda mendapatkan jurnal dengan file pdf sehinga isi yang anda dapatkan tepat.

Basis Data

Pengertian
Data adalah fakta mengenai objek, orang, dan lain-lain. Sedangkan Informasi adalah hasil analisis dan sintesis terhadap data. Basis data adalah kumpulan data, yang dapat digambarkan sebagai aktifitas dari satu atau lebih organisasi yang berelasi.

Data yang disimpan menggambarkan beberapa aspek dari suatu organisasi. Model data, adalah himpunan deksripsi data level tinggi yang dikonstruksi untuk menyembunyikan beberapa detail dari penyimpanan level rendah. Beberapa manajemen basis data didasarkan pada model data relasional, model data hirarkis, atau model data jaringan.

jenis Jenis Model data
  1. Model Data Hirarkis
    Model hirarkis biasa disebut model pohon, karena menyerupai pohon yang dibalik. Model ini menggunakan pola hubungan orang tua-anak. Setiap simpul (biasa dinyatakan dengan lingkaran atau kotak) menyatakan sekumpulan medan. Simpul yang terhubung ke simpul pada level di bawahnya disebut orang tua. Setiap orang tua bisa memiliki satu (hubungan 1:1) atau beberapa anak (hubungan 1:M), tetapi setiap anak hanya memiliki satu orang tua. Simpul – simpul yang dibawahi oleh simpul orang tua disebua anak. Simpul orang tua yang tidak memiliki orang tua disebut akar. Simpul yang tidak mempunyi anak disebut daun. Adapun hubungan ntara nak dn orng tua disebut cabang.
  2. Model Data Jaringan
    Model jaringan distandarisasi pda tahun 1971 oleh Data Base Task Group (DBTG). Itulah sebabnya disebut model DBTG. Model ini juga disebut model CODASYL (Conference on Data System Languages), karena DBTG adalah bagian dari CODASYL. Model ini menyerupai model hirarkis, dengan perbedaan suatu simpul anak bisa memilki lebih dari satu orang tua. Oleh karena sifatnya demikian, model ini bisa menyatakan hubungan 1:1 (satu arang tua punya satu anak), 1:M (satu orang tua punya banyak anak), maupun N:M (beberapa anak bisa mempunyai beberapa orangtua). Pada model jaringan, orang tua diseut pemilik dan anak disebut anggota.
  3. Model Data Relasional
    Model relasional adalah model data yang paling banyak digunakan saat ini. Pembahasan pokok pada model ini adalah relasi, yang dimisalkan sebagai himpunan dari record. Deskripsi data dalam istilah model data disebut skema. Pada model relasional, skema untuk relasi ditentukan oleh nama, nama dari tiap field (atau atribut atau kolom), dan tipe dari tiap field.

Tips Belajar Statistika Matematika

Mata kuliah Statistika Matematika merupakan momok bagi sebagian besar mahasiswa yang mendalami matematika atau statistika. Ada yang mengatakan terlalu banyak definisi dan teorema. Ada pula yang mengatakan contohnya kurang banyak atau latihannya terlalu sedikit. Untuk mempelajari Statistika Matematika dibutuhkan kemahirang dalam menghitung integral dan derivatif paling tidak. Namun, apakah itu cukup? Tentu saja tidak. Ada beberapa keahlian yang perlu bisa dipelajari:

  1. Kuasailah mengintegralkan dan menurunkan bilangan e dan ln karena keduanya sering digunakan baik dalam Statistika Matematika I maupun II.
  2. Hapalkanlah beberapa fungsi densitas peluang yang penting untuk diketahui, misalnya \mathcal{N}(\mu,\sigma^{2}), EXP(\theta), t, dan \chi^{2}(n).
  3. Kenalilah MGF untuk distribusi-distribusi pada No. 2.
  4. Perbanyak latihan, improvisasi soal, dan diskusi dengan teman.
  5. Diskusikan dengan dosen tentang masalah yang menganjal dalam mempelajari Statistika Matematika.
  6. Gunakan Google atau Yahoo atau search engine lain kalau masih belum menemukan jawaban.

Good luck!

Tips Belajar Statistika Matematika

Mata kuliah Statistika Matematika merupakan momok bagi sebagian besar mahasiswa yang mendalami matematika atau statistika. Ada yang mengatakan terlalu banyak definisi dan teorema. Ada pula yang mengatakan contohnya kurang banyak atau latihannya terlalu sedikit. Untuk mempelajari Statistika Matematika dibutuhkan kemahirang dalam menghitung integral dan derivatif paling tidak. Namun, apakah itu cukup? Tentu saja tidak. Ada beberapa keahlian yang perlu bisa dipelajari:

  1. Kuasailah mengintegralkan dan menurunkan bilangan e dan ln karena keduanya sering digunakan baik dalam Statistika Matematika I maupun II.
  2. Hapalkanlah beberapa fungsi densitas peluang yang penting untuk diketahui, misalnya \mathcal{N}(\mu,\sigma^{2}), EXP(\theta), t, dan \chi^{2}(n).
  3. Kenalilah MGF untuk distribusi-distribusi pada No. 2.
  4. Perbanyak latihan, improvisasi soal, dan diskusi dengan teman.
  5. Diskusikan dengan dosen tentang masalah yang menganjal dalam mempelajari Statistika Matematika.
  6. Gunakan Google atau Yahoo atau search engine lain kalau masih belum menemukan jawaban.

Good luck!

Riset Operation (Operasi Riset)

Riset Operasi adalah Metode Ilmiah yang memungkinkan para manger mengambil keputusun mengenai kegiatan yang mereka tangani dengan dasar komutatif (Morse dan kimbal)

Aplikasi metode metode tekhnik tekhnik dan peralatan ilmiah dalam menghadapi masalah yang timbul didalam operasi perusaha dengan tujuadi temukan pemecahan yang optimal dari permasalahan yang tadi (Churchman, Arkof, Arnof)

Peralatan manajemen yang menyatukan ilmu pengetahuan matematika dan logika dalam kerangka pemecahan masalah (Miller dan M.K. Stars)

O.R (Operation Riset) dapat dipandang ilmu itu terletak dari penyediaan tekhnik matematika dan algoritma untuk pemecahan masalah pengambilan keputusan

O.R dipandang sebagai seni tergantung pada Kreativitas untuk pemecahan masalah

Jenis Jenis O.R

- Probabilistik

o Pengambilan Keputusan

o Pengendalian Ketersediaan

o Antrian

- Stokastik

Secara Umum

- Linear

- Non Linear

Tahap Tahap Study O.R

1. Definisi Masalah

2. Pengembangan Model

3. Pemecahan Model

4. Pengujian Keabsahan

5. Implementasi hasil Akhir

Linear Programing (LP)

Suatu cara untuk menyelesaikan pengalokasian dari sumber sumber yang terbatas secara optimal
Model LP
- Fungsi tujuan
Menggambarkan Tujuan atau sasaran dari permasalahan tujuannya memaksimumkan laba dan meminimumkan biaya
Z = C1U1+C2U2+ . . . +CnUn

- Fungsi Batasan
A11U1+A12U2+ . . .+A1nUn ≤B1
A21U1+A22U2+ . . .+A2nUn ≤ B2
: :
: :
Am1U1+Am2U2+ . . .+AmnUn ≤Bm
X1≥0, X2≥0, . . . Xn≥0
Asumsi asumsi pada model LP
1. Proportionality naik turun nilai Z Sumber pengunaan
2. Aditinty Nilai Tujuan Tiap Kegiatan Tidak saling mempengaruhi
3. Divisitibility keluaran atau Out put yang dihasilkan tiap kegiatan dapat berupa bilangan pecahan
4. Certaintly setiap parameter (Ci, Aij, Bi) diasumsikan dikatakan secara pasti.

Pemodelan Matematika

Pengertian Model dan Pemodelan Matematika

  •  Model matematika dari suatu masalah adalah rumusan masalah dalam bentuk persamaan atau fungsi matematika
  • Pemodelan matematika dari suatu masalah adalah langkah-langkah yang ditempuh untuk memperoleh dan memanfaatkan persamaan atau fungsi metematika dari suatu masalah
Syarat Model yang Baik
Model matematika dari suatu masalah adalah ibarat peta suatu wilayah
---Syarat utama Model yang baik
  • Representatif: model mewakili dengan benar sesuatu yang diwakili, makin mewakili, model makin kompleks.
  • Dapat difahami/ dimanfaatkan: model yang dibuat harus dapat dimanfaatkan (dapat diselesaikan secara matematis), makin sederhana makin mudah diselesaikan.
Jenis model matematika
  • Model Deterministik: apabila fungsi yang diperoleh merupakan fungsi yang merupakan hubungan sempurna dari berapa peubah. Tidak mengandung komponen acak (kesalahan)y=f(x1,x2,…xn)
  • Model Stokastik: apabila fungsi yang diperoleh merupakan fungsi yang bukan merupakan hubungan sempurna dari peubah. Ditandai dengan adanya komponen acak atau komponen kesalahan (e). y=f(x1,x2,…xn)+e
Langkah Langkah pemodelan
  • Penentuan model
– menentukan/ mengidentifikasi peubah;
– menentukan parameter yang menjadi kepentingan;
– menentukan jenis dan distribusi hubungan antara parameter dan peubah serta
  • Mengestimasi parameter
– menghitung nilai parameter-parameter secara analitik maupun numerik.
– Implementasi dalam Komputer
  • Menarik kesimpulan/ melakukan uji inferensi.
– signifikan atau tidak, besaran kesalahan, interval dari hasil yang diperoleh?
  • Melakukan uji kecocokan (goodness of fit) atau mengadakan diagnostik model
Uji kecocokan ini biasanya dilakukan pada sisa (residu)

Ciri Algoritma Yang Baik

Ciri algoritma yang baik menurut Donald E.Knuth:

  • Input: ada minimal 0 input atau lebih
  • Ouput: ada minimal 1 output atau lebih
  • Definite: ada kejelasan apa yang dilakukan
  • Efective: langkah yang dikerjakan harus efektif
  • Terminate: langkah harus dapat berhenti (stop) secara jelas

Struct / Record

  • Struct adalah tipe data bentukan yang berisi kumpulan variabel-variabel yang bernaung dalam satu nama yang sama dan memiliki kaitan satu sama lain.
  • Berbeda dengan array hanya berupa kumpulan variabel yang bertipe data sama, struct bisa memiliki variabel-variabel yang bertipe data sama atau berbeda, bahkan bisa menyimpan variabel yang bertipe data array atau struct itu sendiri.
  • Variabel-variabel yang menjadi anggota struct disebut dengan elemen struct.
bentuk umum Struct

typedef struct
{
tipe_data ;
tipe_data ;
....
}

Array

  • Array adalah suatu tipe data terstuktur yang berupa sejumlah data sejenis (bertipe data sama) yang jumlahnya bisa statis ataupun dinamis dan diberi suatu nama tertentu.
  • Elemen-elemen array tersusun secara berderet dan sekuensial di dalam memori sehingga memiliki alamat yang besebelahan/berdampingan.
  • Array dapat berupa array 1 dimensi, 2 dimensi, bahkan n-dimensi.
  • Elemen-elemen array bertipe data sama tapi bisa bernilai sama atau berbeda-beda.
  • Elemen-elemen array dapat diakses oleh program menggunakan suatu indeks tertentu
  • Pengaksesan elemen array dapat dilakukan berurutan atau random berdasarkan indeks tertentu secara langsung.
  • Pengisian dan pengambilan nilai pada indeks tertentu dapat dilakukan dengan mengeset nilai atau menampilkan nilai pada indeks yang dimaksud.
  • Dalam C, tidak terdapat error handling terhadap batasan nilai indeks, apakah indeks tersebut berada di dalam indeks array yang sudah didefinisikan atau belum. Hal ini merupakan tanggung jawab programmer. Sehingga jika programmer mengakses indeks yang salah, maka nilai yang dihasilkan akan berbeda atau rusak karena mengakses alamat memori yang tidak sesuai.

Sequential Search

  • Adalah suatu teknik pencarian data dalam array ( 1 dimensi ) yang akan menelusuri semua elemen-elemen array dari awal sampai akhir, dimana data-data tidak perlu diurutkan terlebih dahulu.
  • Kemungkinan terbaik (best case) adalah jika data yang dicari terletak di indeks array terdepan (elemen array pertama) sehingga waktu yang dibutuhkan untuk pencarian data sangat sebentar (minimal).
  • Kemungkinan terburuk (worst case) adalah jika data yang dicari terletak di indeks array terakhir (elemen array terakhir) sehingga waktu yang dibutuhkan untuk pencarian data sangat lama (maksimal).

Binary Search

  • Data yang ada harus diurutkan terlebih dahulu berdasarkan suatu urutan tertentu yang dijadikan kunci pencarian.
  • Adalah teknik pencarian data dalam dengan cara membagi data menjadi dua bagian setiap kali terjadi proses pengurutan.
  • Prinsip pencarian biner adalah:
  • Data diambil dari posisi 1 sampai posisi akhir N
  • Kemudian cari posisi data tengah dengan rumus (posisi awal + posisi akhir) / 2
  • Kemudian data yang dicari dibandingkan dengan data yang di tengah, apakah sama atau lebih kecil, atau lebih besar?
  • Jika lebih besar, maka proses pencarian dicari dengan posisi awal adalah posisi tengah + 1
  • Jika lebih kecil, maka proses pencarian dicari dengan posisi akhir adalah posisi tengah – 1
  • Jika data sama, berarti ketemu.

Interpolation Search

  • Teknik ini dilakukan pada data yang sudah terurut berdasarkan kunci tertentu
  • Teknik searching ini dilakukan dengan perkiraan letak data.
  • Contoh ilustrasi: jika kita hendak mencari suatu nama di dalam buku telepon, misal yang berawalan dengan huruf T, maka kita tidak akan mencarinya dari awal buku, tapi kita langsung membukanya pada 2/3 atau ¾ dari tebal buku.
  • Jadi kita mencari data secara relatif terhadap jumlah data.
  • Rumus posisi relatif kunci pencarian dihitung dengan rumus:
posisi=[kunci - data(low)/data(high)-data(low) ]x(high-low)+low