Tampilkan postingan dengan label Algoritma. Tampilkan semua postingan
Rabu, 22 November 2017
Analisa Algoritma dari Bahasa Pemrograman
Jaka Prima Maulana
kita dapat melakukan analisa algoritma dengan 2 stages yang berbeda.
1. dengan selesaikan sebelum implementasi dan
2. setelah implementasi
Selengkapnya..
Artikel Berepisode
Selamat datang pengunjung www.primasaja.com,
- Pengenalan Struktur Data dan Algoritma
kita telah menyelesaikan algoritma pada section Contoh Pembuatan Pseudocode. tetapi ada satu hal yang belum kita selesaikan, yaitu analisa dari algoritma kita. pertanyaan valid pada skenario, mengapa kita membutuhkan analisa pada algoritma? kita telah menulis implementasi, kita tidak yakit tentang bagaimana banyak resources kode yang kita tulis akan membantu. ketika kita berkata resource, kita mengartikan keduanya time dan storage resource utilized dengan running aplikasi. kita menulis algoritma untuk bekerja dengan length berapapun dari input. dalam tugas untuk mengerti bagaimana tingkah laku algoritma ketika input bertumbuh besar dan berapa banyak resource yang harus dilayani, kita biasanya mengukur effisiensi dari algoritma dengan merelasikan input length ke number of steps (time complexity) atau storage (space complexity). ini sangat penting untuk dianalisa dari algoritma dalam tugas menemukan algoritma yang paling efektif untuk memperbaikinya.
kita dapat melakukan analisa algoritma dengan 2 stages yang berbeda.
1. dengan selesaikan sebelum implementasi dan
2. setelah implementasi
analisa yang kita lakukan sebelum implementasi kita diketahui sebagai teori analisa/theoretical analysis dan kita asumsikan faktor yang lain seperti kekuatan processing dan space akan menjadi constant.
analisa setelah implementasi disebut sebagai empirical analysis, kita bisa mendapatkan solid statistic dari sistem regarding waktu dan layanan space.
untuk algoritma kita untuk menempatkan buku dan menemukan buku kita dari pembelian item, kita dapat perform analisa yang sama. sekarang, kita akan konsentrasi tentang time complexity dari pada space complexity. kita akan bahas space complexity pada pembahasan selanjutnya saja.
Selasa, 21 November 2017
Contoh Pembuatan Pseudocode
Jaka Prima Maulana
program komputer ditulis untuk dibaca mesin. kita harus menulis mereka pada format tertentu dimana akan di compiled untuk mesin agar mengerti. tetapi sering penulisan kode tidak mudah untuk diikuti manusia kecuali programmers. dalam tugas untuk menunjukkan kode dalam cara informal jadi manusia dapat juga mengerti, kita siapkan pseudocode. meskipun ini bukan code bahasa pemrograman yang sesungguhnya, preudocode memiliki kesamaan struktur percakapan dengan bahasa pemrograman. sejak pseudocode tidak berjalan seperti program nyata, tidak ada cara standard untuk menulis pseudocode. kita dapat mengikuti cara kita menulis pseudocode sendiri.
ini adalah pseudocode dari algoritma kita untuk mencari buku:
Algorithm TemukanBuku(L, nama_buku)
Input: list dari buku L & nama dari buku nama_buku yang dicari
output: false jika tidak ditemukan atau posisidari buku yang dicari
if L.size = 0 return null
found := false
for each item in L, do
if item = book_name, then
found := posisi item
return found
sekarang, mari kita terjemahkan pseudocode yang kita tulis. kita punya list dari buku dan nama yang kita cari. kita kana menjalankan foreach loop untuk perulangan setiap buku dan cocok dengan buku nama yang kita cari. jika tertemu, akan mengembalikan posisi buku yang yang kita temukan, false. jadi kita kaan menulis pseudocode untuk menemukan nama buku dari list buku. tetapi bagaimana dengan buku yang lainnya? bagaimana kita melanjutkan pencarian sampai semua buku ditemukan dan ditempatkan dalam rak yang benar?
Algorithm menempatkanbuku
input: list dari ordered buku OL, list dari received buku L
ouput: tidak ada.
for each nama_buku in OL, do
if temukanbuku(L, nama_buku), then
remove the book from the list L
place it to rakbuku
sekarang kita selesai membuat pseudocode untuk algoritma kita untuk menyelesaikan masalah pengorganisasian buku. disini kita akan melewati tugas list buku dan menemukan buku dalam section yang di jalankan. jika buku ditemukan, kita akan membuang itu dari list dan menaruhnya pada rak yang tepat.
pendekatan simple ditulis dengan pseudocode dapat membantu kita memperbaiki masalah yang lebih kompleks dalam struktur manner. sejak pseudocode bahasa pemrogragman independent dan platform, algoritma mengekspresikan pseudocode dari waktu ke waktu.
Selengkapnya..
Artikel Berepisode
Selamat datang pengunjung www.primasaja.com,
- Pengenalan Struktur Data dan Algoritma
- Pentingnya Struktur Data dan Algoritma
- Penjelasan Tipe Data Abstrak atau Abstract Data Type
- Definisi dan Perbedaan Struktur Data Array Linked List Doubly Linked List..
- Memperbaiki Masalah dengan Pendekatan Algoritma
- Contoh Pembuatan Pseudocode
- Mengubah Pseudocode ke Bahasa Pemrograman Sebenarnya
program komputer ditulis untuk dibaca mesin. kita harus menulis mereka pada format tertentu dimana akan di compiled untuk mesin agar mengerti. tetapi sering penulisan kode tidak mudah untuk diikuti manusia kecuali programmers. dalam tugas untuk menunjukkan kode dalam cara informal jadi manusia dapat juga mengerti, kita siapkan pseudocode. meskipun ini bukan code bahasa pemrograman yang sesungguhnya, preudocode memiliki kesamaan struktur percakapan dengan bahasa pemrograman. sejak pseudocode tidak berjalan seperti program nyata, tidak ada cara standard untuk menulis pseudocode. kita dapat mengikuti cara kita menulis pseudocode sendiri.
ini adalah pseudocode dari algoritma kita untuk mencari buku:
Algorithm TemukanBuku(L, nama_buku)
Input: list dari buku L & nama dari buku nama_buku yang dicari
output: false jika tidak ditemukan atau posisidari buku yang dicari
if L.size = 0 return null
found := false
for each item in L, do
if item = book_name, then
found := posisi item
return found
sekarang, mari kita terjemahkan pseudocode yang kita tulis. kita punya list dari buku dan nama yang kita cari. kita kana menjalankan foreach loop untuk perulangan setiap buku dan cocok dengan buku nama yang kita cari. jika tertemu, akan mengembalikan posisi buku yang yang kita temukan, false. jadi kita kaan menulis pseudocode untuk menemukan nama buku dari list buku. tetapi bagaimana dengan buku yang lainnya? bagaimana kita melanjutkan pencarian sampai semua buku ditemukan dan ditempatkan dalam rak yang benar?
Algorithm menempatkanbuku
input: list dari ordered buku OL, list dari received buku L
ouput: tidak ada.
for each nama_buku in OL, do
if temukanbuku(L, nama_buku), then
remove the book from the list L
place it to rakbuku
sekarang kita selesai membuat pseudocode untuk algoritma kita untuk menyelesaikan masalah pengorganisasian buku. disini kita akan melewati tugas list buku dan menemukan buku dalam section yang di jalankan. jika buku ditemukan, kita akan membuang itu dari list dan menaruhnya pada rak yang tepat.
pendekatan simple ditulis dengan pseudocode dapat membantu kita memperbaiki masalah yang lebih kompleks dalam struktur manner. sejak pseudocode bahasa pemrogragman independent dan platform, algoritma mengekspresikan pseudocode dari waktu ke waktu.
Mengubah Pseudocode ke Bahasa Pemrograman Sebenarnya
Jaka Prima Maulana
kita akan mengkonversikan pseudocode kita ke kode nyata PHP 7 yang di tunjukan seperti berikut:
function temukanbuku(Array $bookLIst, String $nama_buku){
$found = False;
foreach($bookList as $index => $book){
if($book === $nama_buku){
$found = $index;
break;
}
return $found;
}
function tempatkanBuku(Array $orderedBooks, Array &$bookList){
foreach($orderedBooks, as $book){
$bookFound = findABook($bookList, $book);
if($bookFound !== False){
array_splice($bookList, $bookFound, 1);
}
}
}
$bookList = ['PHP', 'MYSQL', 'PGSQL', 'Oracle', 'Java'];
$orderedBook = ['MySQL', 'PGSQL', 'Java'];
tempatkanBuku($orderedBook, $bookList);
echo implode(",", $bookList);
mari kita memahami apa yang terjadi pada preciding code. pertama kita mendefinisikan fungsi baru, temukanBuku di awal code. function mendefinisikan 2 parameter. pertama Array $bookList dan yang lainnya adala String $bookName. pada awal function kita meng inialisasikan $found ke FALSE, dimana berarti tidak ada yang di temukan. foreach digunakan untuk perulangan untuk melewati semua list book array $bookList dan untuk setiap book, yang cocok dengan layanan nama buku $nama_buku. jika nama buku yang kita cari cocok dengan list $bookList, kita akan memberikan tugas index (dimana kita menemukan kecocokan) ke $found variable. sejak kita menemukannya, tidak ada point unuk melanjutkan loop. jadi kita menggunakan break untuk keluar dari loop. saat setelah keluar dari loop kita mengembalikan $found variable. jika buku ditemukan $found akan mengembalikan integer value lebih dari 0, else itu akan return false.
pada function tempatkanBuku dilakukan perulangan pada $orderedBooks. kita lakukan perulangan pada ordered booklist dan searching setiap buku dalam list menggunakan temukanBuku function. jika buku ditemukan dalam ordered list ($bookFOund !== FALSE), kita akan mengambilnya dari bookList menggunakan array_splice() function jika di PHP:
Selengkapnya..
Artikel Berepisode
Selamat datang pengunjung www.primasaja.com,
- Pengenalan Struktur Data dan Algoritma
kita akan mengkonversikan pseudocode kita ke kode nyata PHP 7 yang di tunjukan seperti berikut:
function temukanbuku(Array $bookLIst, String $nama_buku){
$found = False;
foreach($bookList as $index => $book){
if($book === $nama_buku){
$found = $index;
break;
}
return $found;
}
function tempatkanBuku(Array $orderedBooks, Array &$bookList){
foreach($orderedBooks, as $book){
$bookFound = findABook($bookList, $book);
if($bookFound !== False){
array_splice($bookList, $bookFound, 1);
}
}
}
$bookList = ['PHP', 'MYSQL', 'PGSQL', 'Oracle', 'Java'];
$orderedBook = ['MySQL', 'PGSQL', 'Java'];
tempatkanBuku($orderedBook, $bookList);
echo implode(",", $bookList);
mari kita memahami apa yang terjadi pada preciding code. pertama kita mendefinisikan fungsi baru, temukanBuku di awal code. function mendefinisikan 2 parameter. pertama Array $bookList dan yang lainnya adala String $bookName. pada awal function kita meng inialisasikan $found ke FALSE, dimana berarti tidak ada yang di temukan. foreach digunakan untuk perulangan untuk melewati semua list book array $bookList dan untuk setiap book, yang cocok dengan layanan nama buku $nama_buku. jika nama buku yang kita cari cocok dengan list $bookList, kita akan memberikan tugas index (dimana kita menemukan kecocokan) ke $found variable. sejak kita menemukannya, tidak ada point unuk melanjutkan loop. jadi kita menggunakan break untuk keluar dari loop. saat setelah keluar dari loop kita mengembalikan $found variable. jika buku ditemukan $found akan mengembalikan integer value lebih dari 0, else itu akan return false.
pada function tempatkanBuku dilakukan perulangan pada $orderedBooks. kita lakukan perulangan pada ordered booklist dan searching setiap buku dalam list menggunakan temukanBuku function. jika buku ditemukan dalam ordered list ($bookFOund !== FALSE), kita akan mengambilnya dari bookList menggunakan array_splice() function jika di PHP:
Memperbaiki Masalah dengan Pendekatan Algoritma
Jaka Prima Maulana
sejauh ini kita telah diskusikan perbedaan tipe dari struktur data dan penggunaan mereka masing-masing. tetapi, satu hal yang kita harus ingat adalah hanya menaruh data dalam struktur tujuan mungkin tidak akan memperbaiki masalah kita. kita membutuhkan solusi dari masalah kita dengan bantuan struktur data atau dengan kata lain kita akan memperbaiki masalah dengan struktur data. kita membutuhkan algoritma untuk memperbaiki masalah.
algoritma adalah step step proses dimana mendefinisikan set dari instruksi yang akan di eksekusi dalam order tertentu untuk mendapatkan output yang diinginkan. umumnya, algoritma tidak terbatas untuk bahasa pemrograman atau platform. mereka bahasa pemrograman yang independent.algoritma harus memiliki karakter seperti berikut:
Input: algoritma harus didefinikan input. ini bisa 0 atau lebih input
output: algoritma harus memiliki definisi output. ini harus cocok dengan keinginan output.
precision/ketelitian: semua step harus didefinisikan dengan cermat/teliti.
finiteness: algoritma harus stop setelah beberapa nomor step tertentu. ini harus berjalan tidak indefinitely.
unambiguous: algoritma harus jelas dan harus tidak ada ambigu didalam step stepnya.
independent: algoritma harus independent dari bahasa pemrograman/platform apapun.
mari kita membuat algoritma. tetapi untuk tugas melakukannya, kita membutuhkan contoh pokok permasalahan. mari kita membuta asumsi kita memiliki box berisi buku dari perpustakaan. disana terdapat 1000 buku dan mereka tidak terkategori/sorted dalam tugas tertentu. kita membutuhkan buku per list dan menyimpannya dalam rak buku. bagaimana kita menemukan mereka dalam tumpukan/pile dari buku?
sekaran kita dapat memecahkan masalah dengan berbagai cara. setiap cara memiliki pendekatan yang berbeda untuk menemukan solusi dari masalah. kita dalam menyebut ini sebagai pendekatan algoritma. untuk membuat diskusi ini singkat dan precise/tepat, kita kana hanya memikirkan 2 pendekatan untuk memperbaiki masalah. kita ketahui beberapa cara lain mungkin tapi untuk kesimpelan mari kita tetapkan diskusi ini hanya pada satu algoritma.
kita akan menyimpan buku ini dengan baris simple sehingga kita dapat melihat nama buku. sekarang kita ambil nama buku dari list dan cari dari satu sampai akhir dari baris sampai kita menemukan bukunya. dasarnya, kita kana mengikuti urutan/sequential search untuk setiap buku. kita akan mengulan step ini sampai kita menaruh semua buku dalam rak buku.
Selengkapnya..
Artikel Berepisode
Selamat datang pengunjung www.primasaja.com,- Pengenalan Struktur Data dan Algoritma
sejauh ini kita telah diskusikan perbedaan tipe dari struktur data dan penggunaan mereka masing-masing. tetapi, satu hal yang kita harus ingat adalah hanya menaruh data dalam struktur tujuan mungkin tidak akan memperbaiki masalah kita. kita membutuhkan solusi dari masalah kita dengan bantuan struktur data atau dengan kata lain kita akan memperbaiki masalah dengan struktur data. kita membutuhkan algoritma untuk memperbaiki masalah.
algoritma adalah step step proses dimana mendefinisikan set dari instruksi yang akan di eksekusi dalam order tertentu untuk mendapatkan output yang diinginkan. umumnya, algoritma tidak terbatas untuk bahasa pemrograman atau platform. mereka bahasa pemrograman yang independent.algoritma harus memiliki karakter seperti berikut:
Input: algoritma harus didefinikan input. ini bisa 0 atau lebih input
output: algoritma harus memiliki definisi output. ini harus cocok dengan keinginan output.
precision/ketelitian: semua step harus didefinisikan dengan cermat/teliti.
finiteness: algoritma harus stop setelah beberapa nomor step tertentu. ini harus berjalan tidak indefinitely.
unambiguous: algoritma harus jelas dan harus tidak ada ambigu didalam step stepnya.
independent: algoritma harus independent dari bahasa pemrograman/platform apapun.
mari kita membuat algoritma. tetapi untuk tugas melakukannya, kita membutuhkan contoh pokok permasalahan. mari kita membuta asumsi kita memiliki box berisi buku dari perpustakaan. disana terdapat 1000 buku dan mereka tidak terkategori/sorted dalam tugas tertentu. kita membutuhkan buku per list dan menyimpannya dalam rak buku. bagaimana kita menemukan mereka dalam tumpukan/pile dari buku?
sekaran kita dapat memecahkan masalah dengan berbagai cara. setiap cara memiliki pendekatan yang berbeda untuk menemukan solusi dari masalah. kita dalam menyebut ini sebagai pendekatan algoritma. untuk membuat diskusi ini singkat dan precise/tepat, kita kana hanya memikirkan 2 pendekatan untuk memperbaiki masalah. kita ketahui beberapa cara lain mungkin tapi untuk kesimpelan mari kita tetapkan diskusi ini hanya pada satu algoritma.
kita akan menyimpan buku ini dengan baris simple sehingga kita dapat melihat nama buku. sekarang kita ambil nama buku dari list dan cari dari satu sampai akhir dari baris sampai kita menemukan bukunya. dasarnya, kita kana mengikuti urutan/sequential search untuk setiap buku. kita akan mengulan step ini sampai kita menaruh semua buku dalam rak buku.
Jumat, 03 November 2017
Definisi dan Perbedaan Struktur Data Array Linked List Doubly Linked List..
Artikel Berepisode
Selamat datang pengunjung www.primasaja.com,- Pengenalan Struktur Data dan Algoritma
perbedaan antar struktur data dkategorkan menjadi 2 group yaitu - linier struktur data - nonlinier struktur data
dalam linier struktur data , item atau benda itu terstruktur dalam gaya linier atau berurutan. LASQ termasuk contoh dari struktur linier. dalam non linier struktur, data tidak terstruktur dalam cara yang berurutan. GT adalah contoh yang paling umum dalam non linier struktur data. mari kita pelajari lebih dalam dari dunia struktur data, dengan perbedaan tipe dari struktur data dan tujuannya dalam jalan yang ringkas. nanti kita akan telusuri setiap dari struktur data secara detail. disana banyak perbedaan tipe dari struktur data yang ada dalam dunia programming. be diluar dari itu, berikut yang paling banyak digunakan:
Array
Linked list
Doubly linked list
Stack
Queue
Priority queue
Set
Map
Tree
Graph
Heap
singkat: (QPSSLDAMTGH)
Struct
variable bisa ditaruh didalam satu tipe data dan satu scalar(kuantitas) tipe data hanya dapat menyimpan satu value.disana banyak situasi diaman kita mungkin membutuhkan untuk menggrupkan beberapa tipe data bersama sama sebagai satu kekompleksan tipe data.
contoh : kita ingin menyimpan informasi siswa bersama dengan tipe data siswa.
kita membutuhkan nama, alamat, nomor telpon, email, hari lahir, kelas sekarang, dan yang lainnya. untuk tugas menyimpan setiap siswa didalam setiap baris/record kedalam tipe data siswa yang unik, kita membutuhkan spesial struktur dimana mengijinkan kita untuk melakukannya. ini bisa dengan mudah didapatkan dengan struct.
dengan kata lain struct adalah pengangkut(container) value dimana tipikalnya mengakses dengan nama. kita dapat menggunakan konsep yang sama pada bahasa pemrograman juga. kita akan bahasnya pada artikel selanjutnya
Array
berfikir array mengacu menjadi tipe data PHP, array sebenarnya adalah struktur data dimana yang paling banyak digunakan dalam semua platform bahasa pemrograman. dalam PHP, array sebenarnya ordered map. kita dapat menyimpan banyak value dalam satu array sebagai satu variable.Matrix tipe data mudah untuk disimpan didalam array dan dikurung ini digunakan disebagian besar dalam platform semua pemrograman. biasanya array adalah koleksi size yang fixed dimana diakses dengan urutan sequential nomor index.
dalam PHP array diimplementasikan berbeda dan kamu dapat mendefinisikan array dynamic tanpa mendefinisikan fixed size array lain.
kita akan bahas array lebih dalam nanti. array dapat memiliki dimensi yang berbeda. jika array memiliki satu index untuk diakses element, kita menyebutnya single dimension array. tetapi jika ada dua atau lebih indexed untuk akses element, kita sebutnya 2 dimensi atau multidimensional berikut 2 diagram array struktur data:
![]() | |||
struktur data array single dan multi dimensional source from: Ebook PHP 7 data structures and algorithm |
Linked List
linked list adalah stuktur data linier dimana adalah koleksi data element juga dikenal sebagai nodes dan dapat memiliki variasi ukuran/sizes. biasanya, item/barang yang terdaftar terkoneksi melalui pointer dimana diketahui sebagai link dan dikurung ini disebut sebagai linked list. dalam linked list, satu list element link ke element selanjutnya melewati pointer. dari mengikuti diagram, kita dapat melihat bahwa linked list sebenarnya maintain ordered collection. Linked lists adalah form yang paling umum dan paling simple dari struktur data yang digunakan dalam bahasa pemrograman. dalam single linked list, kita hanya dapat melangkah maju, kita akan bahas lebih dalam mengenai linked list konsep dan implementasi seperti gambar di bawah ini![]() |
struktur data linked list source from: Ebook PHP 7 data structures and algorithm |
Doubly Linked List
doubly linked list adalah tipe spesial dari linked list dimana kita tidak hanya menyimpan node selanjutnya, tetapi kita juga menyimpan node sebelumnya didalam struktur node. dan hasilnya itu dapat di pindahkan maju dan mundur didalam list. ini memberikan lebih fleksibelitas dari pada single linked list atau linked list dengan memiliki keduanya dari sebelumnya dan pointer selanjutnya. kita akan eksplore ini dalam artikel selanjutnya,![]() |
struktur data doubly linked list source from: Ebook PHP 7 data structures and algorithm |
Stack
stack adalah struktur data linier dengan prinsip LIFO. hasilnya stack hanya memiliki satu akhiran untuk menambah data baru atau menghapus data. ini adalah yang paling tua dan paling banyak digunakan dalam struktur data dalam teknologi komputer. kita selalu menambah dan menghapus data dari stack menggunakan single point. istilah push digunakan untuk mengindikasikan data ditambah di atas dari stack/tumpukan dan pop untuk mengambil/menghapus data dari atas, berikut diagram yang menjelaskan mengenai posh![]() |
Struktur data stack source: Ebook PHP 7 data structure and algorithm |
Queue
queue adalah contoh lain dari struktur data linier dimana diikuti dengan prinsip FIFO. queue mengijinkan 2 operasi dasar dari collection. yang pertama adalah enqueue dimana mengijinkan kita untuk menambah data dari belakang queue/antrian. yang kedua adalah dequeue diamana mengijinkan kita untuk membuang/mengapus data dari depan queue. queue adalah struktur data yang paling banyak digunakan dalam teknologi komputer. berikut diagram stack and queue![]() | |
struktur data queue source: ebook PHP 7 data structure and algorithm |
Set
set adalah tipe data abstract dimana digunakan untuk menyimpan value tertentu. value ini tidak tersimpan dalam order tetapi tidak seharusnya menjadi pengulangan value didalam set. set tidak digunakan seperti collection dimana kita mendapatkan specific value darinya, set digunakan untuk check keberadaan value didalamnya. terkadang struktur data set dapat di sortir dan kita dapat memanggilnya sebagai ordered setMap
map adalah collection dari key dan value pairs dimana semua keynya itu unique. kita dapat memikirkan map sebagai asosiasi array dimana semua kunci adalah unique. kita dapat menambahkan dan menghapus menggunakan key dan value pairs sepanjang update dan melihat dari map menggunakan key. faktanya, PHP array mengimplementasikan ordered map. kita akan membahas ini pada episode selanjutnya
Tree
tree adalah yang paling luas digunakan dalam struktur data non linier dalam dunia komputer. sangat tinggi digunakan untuk tingkatan struktur data. tree terdiri/consist dari nodes dan disana terdapat spesial node dimana diketahui sebagai akar/root dari tree dimana dimulainya struktur tree. nodes lain turun/descend dari root node. struktur data tree memanggil dirinya sendiri/recursive dimana berarti tree dapat mengandung banyak subtrees. nodes terkoneksi dengan setiap yang lainnya melalui ujung-ujungnya/edges. kita akan diskusi perbedaan tipe dari tree, operasinya, dan tujuannya dalam pembahasan selanjutnya. berikut diagram dari tree stukrtur![]() |
struktur data tree source from: Ebook PHP 7 data structure and algorithm |
Graph
struktur data graph adalah tipe spesial dari struktur data nonlinier dimana terdiri atas nomor yang terbatas dari simpul atau nodes, dan ujung-ujungnya/edges atau pemancarnya/arcs. graph bisa keduanya mengarah/directed dan tidak mengarah/undirected. graph yang directed jelas mengindikasikan arah dari ujung-ujung/edges, ketika undirected graph menyebut edges bukan arah. hasilnya, dalam undirected graph kedua arah dari edge/ujung mengacu pada single edge. dengan kata lain, kita dapat berkata graph adalah pasangan/pair dari sets (V, E) dimana V adalah set dari simpul/vertices dan E adalah set dari edges. V = {A, B, C, D, E, F}
E = {AB, BC, CE, ED, EF, DB}
dalam directed graph, edge dari AB berbeda dengan edge BA ketika dalam undirected graph, keduanya AB dan BA adalah sama. graph berguna untuk memperbaiki complex problem dalam dunia programming. kita akan diskusikan lebih lanjut mengenai graph struktur data dalam selanjutnya, menggambarkan contoh diatas berikut hasil diagramnya:
Heap
heap adalah struktur data spesial tree-based dimana memuaskan dengan sifat heap. kunci terbesar adalah root dan kunci terkecil adalah leaves, dimana diketahui sebagai max heap. atau, kunci terkecil adalah root dan terbesar adala leaves/daun, dimana diketahui sebagai min heap. memikirkan root dari heap struktur adalah baik terbesar atau key terkecil dari tree, itu tidak penting dari sorted struktur. heap digunakan untuk memperbaiki masalah algoritma graph dengan efisiensi dan juga sorting. kita akan explore heap struktur data selanjutnya berikut diagram heap![]() |
struktur data heap (max heap) source : ebook php 7 data structure and algorithm |
Sabtu, 28 Oktober 2017
Penjelasan Tipe Data Abstrak atau Abstract Data Type
Jaka Prima Maulana
Selengkapnya..
Artikel Berepisode
- Pengenalan Struktur Data dan Algoritma
www.primasaja.com - sebagai contoh struktur data yang kita sudah diskusikan di penjelasan Pentingnya Struktur Data dan Algoritma, kita gunakan primitive tipe data yang mana saja untuk merepresentasikan struktur tersebut? mungkin bisa mungkin juga tidak. kita memiliki satu fakta objective/tujuan tipe data primitive yaitu untuk menyimpan data.
untuk mendapatkan beberapa fleksibelitas dalam performance operasinya pada data tersebut kita akan memerlukan penggunaan tipe data seperti sebuah cara sehingga kita dapat menggunakannya sebagai fakta model dan melakukan suatu operasi. cara handling data dengan konseptual model yang dikenal dengan abstract data type(ADT). ADT juga mendefinisikan set operasi yang posible untuk data. kita harus ketahui bahwa ADT adalah dasar teoritis konsep dimana digunakan dalam design dan analisis dari algoritma, data struktur, dan software design. sebaliknya(contrast), struktur data adalah wujud nyata(concrete) representasi.
dalam tugas untuk implementasi ADT kita mungkin butuh tipe data atau data struktur atau keduanya. contoh yang paling umum dari ADT adalah stack dan queue.
- memikirkan stack sebagai ADT ini tidak hanya mengkoleksi data tetapi juga 2 operasi penting yang disebur pop dan push. fikirkan biasanya kita taruh masukan tumpukan baru dari atas dimana diketahui sebagai push dan ketika kita ingin mengambil barang, kita ambil dari atas dimana dikenal dengan pop.
- jika kita memikirkan php array sebagai stack kita akan membutuhkan fungsi tambahan untuk mendapatkan push dan pop operasi ini memikirkan sebagai ADT stack. sama, bahwa queue juga ADT dengan 2 kebutuhan operasi: untuk menambahkan item diakhir queue juga diketahui sebagai enqueue(entryqueue) dan membuang Item dari awal antrian disebut dengan dequeue(deletequeue). keduanya terdengar sama tetapi jika kita memberikan penutup observasi kata dapat melihat bahwa tumpukan pekerjaan Sebagai LIFO model dimana queue bekerja sebagAi FIFO model. 2 matematika model yang berbeda ini membuat mereka 2 ADT yang berbeda.
- List
- Map
- Set
- Stack
- Queue
- Priority Queue
- Graph
- Tree
Selanjutnya kita akan membahas lebih dalam mengenai tipe data abstrak dan mengimplementasikannya sebagai data struktur menggunakan bahasa pemrograman.
Senin, 16 Oktober 2017
Pentingnya Struktur Data dan Algoritma
Jaka Prima Maulana
Sumber Asli: php 7 data structure and algorithm (mizanur rahman)
Selengkapnya..
Artikel Berepisode
- Pengenalan Struktur Data dan Algoritma
www.primasaja.com - data struktur dan algoritma adalah part yang integral dari pengembangan software aplikasi. kita membangun web base aplikasi, CMS, atau standalone backend system menggunakan PHP, kita harus mengaplikasikan algoritma dan struktur data setiap waktu. terkadang, kita tau caranya tanpa mencatat dan terkadang tanpa memberikan perhatian lebih terhadapnya. banyak programmer berfikir 2 topik ini sangat susah dan tidak ada point untuk membayar perhatian dari detail seperti PHP memiliki banyak build-in support untuk struktur data dan algoritma.
kita hidup dalam era digital. setiap segement dalam hidup kita membutuhkannya, kita memiliki signifikan penggunaan teknologi. tanpa teknologi hidup akan virtually stand still. apakah kamu pernah mencoba untuk menemukan apa yang diambil untuk mempersiapkan simple perkiraan cuaca? banyak data yang dianalisa untuk mempersiapkan simple informasi, dimana yang diberikan kepada kita dalam waktu secara langsung. komputer adalah hal yang paling penting ditemukan dalam revolusi teknologi dan mereka mengubah dunia secara drastis dalam beberapa dekade. proses komputer memiliki set besar data dan membantu kita dalam setiap ketergantungan teknologi pekerjaan yang dibutuhkan. untuk membuat operasi komputer efisien, kita membagi data dalam format yang berbeda atau kita dapat memanggil dalam struktur yang berbeda, dimana yang diketahui sebagai struktur data.
struktur data sangat penting dalam komponen komputer dan bahasa pemrograman. bersamaan dengan struktur data, juga sangat penting untuk mengetahui bagaimana untuk memperbaiki masalah atau menemukan solusi menggunakan struktur data. dari simple handphone buku kontak sampai DNA kompleks profile yang mencocokan system, penggunaan struktur data dan algoritma digunakan dimanapun.
apakah kita pernah membayangkan berdiri dalam antrian supermaket untuk membayar dapat direpresentasikan ke struktur data? atau mengambil tagihan dari tumpukan kertas dapat jadi salah satu juga penggunaan struktur data? faktanya kita mengikuti struktur data konsep hampir dimanapun kita hidup. apakah kita memanage antrian ke pembayaran tagihan atau pergi ke transportasi, atau maintenance tumpukan dari tumpukan buku atau kertas setiap hari bekerja, struktur data dimanapun dan berdampak pada hidup kita.
PHP adalah bahasa pemrograman yang sangat populer dan jutaan website dan aplikasi dibuat dengannya. manusia menggunakan Hypertext Preprocessor (PHP) untuk simple aplikasi sampai yang kompleks dan beberapa data intensif. pertanyaan besarnya dalaah haruskah kita menggunakan PHP untuk data intensif aplikasi apapun atau solusi algoritma? tentu kita bisa. dengan release terbaru PHP 7, PHP telah masuk kedalam sesuatu yang baru yang bisa efisiensi dan robust aplication development. misi kita dalah untuk melihat dan menyiapkan diri kita untuk mengerti kekuatan data struktur dan algoritma menggunakan PHP 7, jadi kita bisa memanfaatkan dalam aplikasi dan program.
PENTINGNYA DATA STRUKTUR dan ALGORITMA
jika kita mempertimbangkan hidup nyata kita dengan komputer, kita juga menggunakan sortir/penggolongan berbeda dari pengaturan belongings(kepunyaan) dan data jadi kita dapat menggunakannya lebih efisiensi atau menemukan mereka dengan lebih mudah ketika di butuhkan. bagaimana jika kita memasukkan kontak buku kita dalam permintaan yang secara random/acak? dapatkan kita menemukan kontaknya dengan mudah? kita mungkin akan berakhir dengan melakukan searching dari setiap dan semua kontak yang ada dalam buku dalam kontak yang tidak diatur(arranged) dalam order tertentu. mengacu 2 contoh seperti misalnya
1. buku yang berserakan
2. buku yang tersusun rapi sesuai abjad
contoh satu memperlihatkan bahwa buku itu tersebar (scattered) dan mencari buku tertentu akan membutuhkan waktu karena buku tersebut tidak terorganisasikan. dan contoh satunya lagi buku tersebut terorganisir dalam tumpukan. kita menggunakan ruang dengan cerdas tetapi kita juga dapat melakukan pencarian dengan mudah
mari kita consider(memikirkan) pada contoh lain. kita akan membeli tiket untuk pertandingan bola. disana ada ribuat orang menunggu untuk tiket untuk dibuka. tiket akan di distribusikan dengan metode yang pertama dateng yang pertama dilayani. jika kita memikirkan dari 2 contoh tersebut. pilih mana cara terbaik untuk handle kerumunan banyak (big crowd)
contoh pertama sangat jelas tidak ada order yang tepat dan tidak ada cara untuk mengetahui siapa yang datang pertama kali untuk membeli tiket. tetapi jika kita tau orang yang menunggu dengan cara yang terstruktur, dalam satu barisan, atau antrian(queue), jadi ini akan mudah untuk menghandle kerumunan banyak dan kita akan menyerahkan tiket ke siapa yang datang duluan. ini adalah fenomena umum yang diketahui sebagai antrian(queue) dimana dengan kuat(heavily) digunakan dalam dunia pemrograman. syarat(term)programming itu tidak menghasilkan (generated) untuk dunia luar. dalam faktanya mayoritas(majority) data struktur terinspirasi dari dunia nyata dan mereka menggunakan syarat yang sama sebagian waktu. apakah(whether) kita akan mempersiapkan task list kita, contact list, tumpukan buku, program diet, menyiapkan pohon keluarga, atau tingkatan organisasi, secara dasar kita menggunakan pengaturan teknik yang berbeda dimana kita ketahui sebagai data struktur dalam dunia komputing. kita telah berbicara sedikit mengenai struktur data sejauh ini tetapi bagaimana dengan algoritma?
algoritma dalam kehidupan sehari hari? tentu saja kita bisa. kapanpun kita searching dari kontak dalam buku telpon lama kita, kita pasti(definitely) tidak mencarinya dari awal. jika kita melakukan searching dengan nama Tom, kita akan tidak melakukan searching dari halaman dimana dikatakan A, B, atau C. tetapi kita langsung menuju ke halaman T dan akan menemukan jika Tom tertulis disitu atau tidak. atau jika kita inign menemukan dokter dalam kamus telpon sebagai struktur data, kita pasti tidak mencari dalam bagian menu makanan. jika kita memikirkan buku telpon atau kamus telepon sebagai struktur data, lalu bagaimana cara kita mencari informasi tertentu itu dikenal sebagai algoritma. ketika struktur data membantu kita untuk menggunakan data secara efisien, algorigma membantu kita untuk menampilkan operasi yang berbeda dari data tersebut secara efisien. sebagai contoh jika kita memiliki 100.000 masukan dalam kamus telpon, mencari masukan tertentu dari awal mungkin akan mengambil jalan yang lama. tetapi jika kita mengetahui dokter yang tertulis dari halaman 200 ke 220, kita dapat mencari hanya pada halaman itu,sehingga menyimpan waktu kita untuk mencari pada sektor yang lebih sempit dari pada search secara full berkas.
kita juga dapat mengacu pada cara yang berbeda dalam mencari dokter. ketika paragraf sebelumnya mengambil pendekatan searching pada sektor tertentu pada kamus, kita juga dapat mencari alpabet dalam kamus, seperti cara kita mencari kamus untuk kata. itu mungkin akan mengurangi waktu dan masukkan untuk searching kita. disana dapat banyak pendekatan berbeda untuk menemukan solusi dari masalah, dan setiap pendekatan dapat dinamakan sebagai algoritma. sebelumnya kita mendiskusikan kita dapat mengatakan pada problem atau task tertentu, disana dapat banyak cara atau algoritma untuk dilakukan. lalu mana satu yang harus kita pikir untuk digunakan? kita akan diskusikan pada artikel berikutnya sebelum masuk ke poin tersebut, kita akan fokus pada tipe data PHP dan Abstract Data Types (ADT). dalam memahami(grasp) konsep struktur data, kita harus sangat kuat mengerti tentang tipe data PHP dan ADT
Sumber Asli: php 7 data structure and algorithm (mizanur rahman)
Sumber Translator : www.primasaja.com (jaka prima maulana)
Langganan:
Postingan
(
Atom
)