Powered by Blogger.

Popular Posts

Monday, 28 November 2016

Gerakan Nasional 1000 Startup Digital Malang



Gerakan Nasional 1000 Startup Digital merupakan sebuah acara untuk membentuk para calon founder startup dalam mendirikan startup dengan tujuan untuk memecahkan masalah lokal masyarakat dengan peran teknologi.

Pada tahap pertama yaitu Incubation yang merupakan sebuah acara talkshow dengan beberapa sesi dan sesi pertama adalah mengenai Entrepreneur Mindset dengan panelis Danton Prabawanto yang merupakan CEO dari Beon Intermedia dengan dimoderatori oleh Afrizal Novian, Digital Strategist, Beon Intermedia. Dia mengatakan bahwa seorang entrepreneur harus memiliki pola pikir, jika ingin membangun sebuah bisnis. Kolaborasi dengan industri dan pihak pemerintah, maka diharapkan dapat menumbuhkan lebih banyak startup.

Talkshow Sesi kedua yaitu dilanjutkan dengan topik Think Like Founder dengan bebrapa panelis yaitu Miftahul Huda sebagai CEO Inagata dan Andy Fajar sebagai CEO dari Kulina, dengan moderator Ahimsa Afrizal CEO dari Jejakku. Pada sesi diskusi ini panelis mengajak kita para audiens untuk mengubah pola pikir kita layaknya seorang startup founder yang berani mengambil risiko dalam menyelesaikan setiap masalah dengan solusi yang relevan.

Sebelum sesi talkshow ketiga dalam acara ini, diselingi dengan presentasi dari Jaka Wiradisuria, Head of New Product dari RUMA, Jaka Wiradisuria dengan topik presentasi bertema Embracing Failure as Founders, presentasi ini diselingi dengan cerita tentang pernah gagalnya dia dalam membangun startup digital, cerita ini bertujuan agar kita semua para calon founder startup dapat bangkit setelah mengalami kegagalan dalam membangun startup, dalam bisnisnya dia pernah juga mengalami masalah keuangan yang sangat serius dan dia mengungkapkan bahwa ketika kita terpuruk dalam hal keuangan karena masalah bisnis, maka untuk memecahkannya yaitu dengan jalan bisnis. Pada masa mudanya dia ditekan oleh orang tuanya bahwa setelah lulus dia harus fokus bekerja, akan tetapi di memilih untuk bekerja dan berbisnis, karena dia berkata bahwa kita sebagai anak harus menuruti apa kata orang tua kita.

Sesi ketiga dan termasuk sesi terakhir dari talkshow kali ini dengan topik Colaborasi to Create Innovation yang dimoderatori oleh Bagus Berlian yang merupakan Evangelist TEDx dari Tugu Pahlawan, dengan beberapa panelis seperti Vicky Arief Herinadharma CEO dari Paradise Group, Daus Gonia merupakan Creative Director dari Menembus Langit, Faye Alund merupakan Co-founder dari Kumpul.co dan Daniel Cahyadi sebagai Industry Manager dari Google Indonesia. Pada sesi kali ini para peserta diajak untuk mengetahui pentingnya kolaborasi dalam menciptakan sebuah solusi serta pentingnya peran anak muda dalam membangun startup digital yang dapat memberikan solusi untuk berbagai masalah yang ada di lingkungan sekitar. Salah satu panelis berkata dari pada para peserta bahwa lebih baik menguasai beberapa hal dari pada harus menguasai semua hal, karena disinilah peran kolaborasi yaitu dengan mengkolaborasikan beberapa orang dengan beberapa skill, maka hasilnya dapat maksimal. Dari pada harus memperajari semua sklill yang hasilnya setengah-setengah. 

Diakhir sesi terdapat sesi tanya jawab yaitu ketika ingin membentuk sebuah team, mana yang harus pilih antara memilih teman dengan minim skill tapi satu visi atau memilih orang lain dengan skill pro, dan salah seorang panelis menjawab dengan tanpa pikir panjang bahwa alanhkah lebih baiknya memiliki team dengan visi yang sama, panelis menambahkan bahwa sebuah skill dapat dipelajari, akan tetapi visi yang sama sulit untuk dicari.

@1000startupID | 1000 Startup Digital | #1000StartupDigital
Published: By: kabul arif - 2:43:00 am

Friday, 13 June 2014

Queue

Pengertian Queue (Antrian)

Struktur  data  linear  adalah  kumpulan  komponen-komponen  yang  tersusun membentuk satu garis linear. Bila komponen-komponenditambahkan (atau dikurangi), maka  struktur-struktur  tersebut  berkembang (atau  menyusut). Queue  merupakan struktur data linear dimana penambahan komponen dilakukan di satu ujung, sementara pengurangan dilakukan di ujung lain (yang satu lagi).

Queue (Antrian)  adalah  suatu  kumpulan  data  yang  penambahan  elemennya hanya  bisa  dilakukan pada  suatu  ujung  (disebut  dengan  sisi  belakang  atau  rear), dan penghapusan atau pengambilan elemen dilakukan lewatujung yang lain (disebut dengan sisi depan atau front). DEQUEUEadalah mengeluarkan satu elemen dari suatu Antrian. Antrian dapat dibuat dengan menggunakan: Liniear Arraydan Circular Array.

Kalau  tumpukan  menggunakan  prinsip  LIFO  (Last  Input  First  Output),  maka pada  antrian  prinsip yang  digunakan  adalah  FIFO  (First  Input  First  Output).  Antrian banyak  dijumpai  dalam  kehidupan sehari-hari,  misalnya  dalam  menonton  bioskop dimana melakukan antri dalam membeli tiket, mobil-mobil yang antri membeli karcis di pintu jalan tol akan membentuk antrian, para calon  mahasiswa yang mendaftarkan diri untuk  ikut  ujian  masuk  perguruan  tinggi  akan  membentuk  antrian  dan  contoh-contoh lain yang banyak dijumpai dalam kehidupan sehari-hari.

Contoh lain yang lebih relevan dalam bidang komputer adalah pemakaian sistem komputer berbagi waktu (time-sharing computer system) dimana ada sejumlah pemakai yang  menggunakan  sistem  tersebut  secara serempak.  Karena  sistem  ini  biasanya menggunakan  sebuah  prosesor  dan  sebuah  memori  utama, maka  jika  prosesor  sedang dipakai oleh seorang pemakai, pemakai-pemakai yang lain harus antri sampai gilirannya tiba.  Antrian  ini  mungkin  tidak  dilayani  secara  FIFO  murni,  tetapi  didasarkan  fase tertentu. Antrian  yang  mengandung  unsur  prioritas  dinamakan  dengan  antrian berprioritas (priority queue).

Queue Dengan Liniear Array
Terdapat  satu  buah  pintu  masuk  di  suatu  ujung  dan  satu  buah  pintu  keluar  di ujung satunya. Sehingga membutuhkan variabel Head dan Tail dengan aturan sebagai berikut :
1.  Elemen pertama (HEAD) dan elemen terakhirnya (TAIL),
2.  Aturan penyisipan dan penghapusan elemennya didefinisikan sebagai berikut:


  • Penyisipan selalu dilakukan setelah elemen terakhir
  • Penghapusan selalu dilakukan pada elemen pertama 

3.  Satu elemen dengan yang lain dapat diakses melalui informasi NEXT
4.  Struktur data ini banyak dipakai dalam informatika,misalnya untuk merepresentasi :


  • Antrian job yang harus ditangani oleh sistem operasi
  • Antrian dalam dunia nyata.

Abstraksi Tipe Data Queue
Seperti  halnya  stack (tumpukan)  spesifikasi  queue (antrian)  tersebutb  dapat diimplementasikan di level yang lebih rendah baik dengan array ataupun linear linked list.  Dalam  implementasi  array,  konsep  circular-array  dapat  diaplikasikan  untuk menghindari  operasi  penggeseran  isi  array  saat  dilakukan  pop(). Dalam  konsep circular array, inkrementasi indeks array yang panjangnya n, selalu di modulo dengan panjang array tsb. sehingga variabel indeks yang semula berharga n-1 jika diinkremen akan  "wrap-around"  ke  0. Untuk  mengetahui  posisi  ujung-ujung  dari  item  data  yang disimpan  dalam  array,  digunakan  variabel indeks  front (menunjuk  ke  posisi  item yang  akan  diambil  berikutnya)  dan  rear (posisi  elemen  array berikutnya  yang  akan ditempati). Suatu variabel  countdigunakan untuk mengetahui kasus khusus: apakah queue kosong atau penuh. Jika penuh maka mekanisme  memperbesar kapasitas queue dapat diaplikasikan.

Dalam implementasi struktur data linier, maka bagian muka dari queue adalah awal dari list (di-popdengan delete-first) dan bagian belakang adalah akhir dari list (dipush dengan  insert-last). Mengingat  operasi insert-last sering  dilakukan  maka digunakan dua variabel referensi  yang digunakan sebagai pointer:  frontuntuk node pertama dari list dan rearutuk node paling akhir.



Operasi-operasi pada Queue
1.  Membuat Queue Kosong
Untuk  menciptakan  dan  menginisialisasi  Queue,  dengan  cara  membuat  Head  dan Tail sama dengan NULL.



2.  Memeriksa Queue elemen kosong
Untuk memeriksa apakah Antrian sudah penuh atau belum, dengan cara memeriksa nilai Tail, jika Tail = -1 maka empty. Kita tidak memeriksa Head, karena Head adalah tanda  untuk  kepala  antrian  (elemen pertama  dalam  antrian)  yang  tidak  akan  berubahubah. Pergerakan pada Antrian terjadi dengan penambahan elemen antrian kebelakang, yaitu menggunakan nilai Tail



3.  Memeriksa Queue elemen penuh
Untuk mengecek  apakah Antrian sudah penuh  atau belum, dengan  cara  mengecek nilai  Tail,  jika  Tail  >=  MAX-1  (karena  MAX-1  adalah batas  elemen  array  pada  C) berarti sudah penuh.



4.  Menambah elemen Queue (Enqueue)
Untuk  menambahkan  elemen  ke  dalam  Antrian,  penambahan  elemen  selalu ditambahkan  di elemen paling  belakang.  Penambahan  elemen  selalu  menggerakan variabel  Tail  dengan  cara  increment  counter Tail.  Gambar  4  memperlihatkan penambahan elemen queue.





5.  Menghapus elemen Queue (Dequeue)
Digunakan  untuk  menghapus  elemen  terdepan/pertama  dari  antrian  dengan  cara mengurangi  counter Tail  dan  menggeser  semua  elemen  antrian  kedepan.  Penggeseran dilakukan  dengan  menggunakan looping.  Gambar  5  memperlihatkan  penghapusan elemen queue.





6.  Membersihkan indeks Queue
Untuk  menghapus  elemen-elemen  Antrian  dengan  cara  membuat  Tail  dan  Head sama dengan NULL. Penghapusan elemen-elemen Antriansebenarnya tidak menghapus arraynya,  namun  hanya  mengeset indeks pengaksesan-nya  ke  nilai  NULL  sehingga elemen-elemen Antrian tidak lagi terbaca.



7.  Menampilkan elemen Queue
Untuk  menampilkan  nilai-nilai  elemen  antrian  dengan menggunakan  looping dari head sampai dengan tail.



8.  PUSH elemen Queue
Salah satu algoritma untuk proses memasukkan data (PUSH) adalah sebagai berikut :


  1. Masukkan inputan data 
  2. Jika variabel i = MAX (nilai maksimum array), maka kerjakan langkah 3. Jika i≠MAX, maka kerjakan langkah 4.
  3. Tampilkan “Queue sudah penuh”.
  4. Selama i < MAX, maka i = i + 1 dan data [i] = data



9.  POP elemen Queue
Salah satu algoritma untuk proses mengeluarkan data(POP) adalah sebagai berikut :


  1. Jika i = 0, maka tampilkan “Queue kosong” lalu kerjakan langkah 4. Jika i ≠0, maka lakukanlah langkah 2.
  2. Mulai hapus ←data[0] dan data[i-1] ←data[i]
  3. i ←i – 1
  4. data[0] ←NULL 



Manfaat Queue
  • Digunakan sistem operasi untuk mengatur eksekusi taskdalam suatu sistem untuk mencapai perlakuan yang "adil" (seringkali queuedisebutwaiting line)
  • Untuk mailboxdalam komunikasi antar proses
  • Untuk bufferdalam mekanisme printspooler, komunikasi data
  • Untuk simulasi dan modeling (misalnya simulasi sistem pengendali lalu lintas udara) dalam memprediksi performansi



Suatu Keinginan Dapat Terwujud
Bukanlah Karena Adanya Waktu Untuk Mewujudkannnya
Tetapi Karena Ada Keinginan Yang Sangat Kuat Untuk Mewujudkannya
Published: By: kabul arif - 1:40:00 am

Stack

Pengertian Stack

Stack   atau   tumpukan   adalah   suatu   stuktur   data   yang   penting   dalam pemrograman, bersifat LIFO (Last In First Out) dimana benda yang terakhir masuk ke dalam  stack  akan  menjadi  benda  pertama  yang  dikeluarkan  dari  stack.  Contohnya, karena  kita  menumpuk  Compo  di  posisi  terakhir,  maka Compo  akan  menjadi  elemen teratas dalam tumpukan. Sebaliknya, karena kita menumpuk Televisi pada saat pertama kali,  maka  elemen  Televisi  menjadi  elemen  terbawah  dari  tumpukan.  Dan  jika  kita mengambil  elemen  dari  tumpukan,   maka   secara   otomatis   akan   terambil   elemen teratas, yaitu Compo juga.



Operasi-operasi/fungsi Stack
Push   : digunakan untuk menambah item pada stack pada tumpukan paling atas
pop   : digunakan untuk mengambil item pada stack pada tumpukan paling atas
Clear   : digunakan untuk mengosongkan stack
IsEmpty  : fungsi yang digunakan untuk mengecek apakah stack sudah kosong
IsFull   : fungsi yang digunakan untuk mengecekapakah stack sudah penuh

Stack dengan struktur array

1.  Mendefinisikan Stack dengan menggunakan struct 
2.  Mendefinisikan MAX_STACK untuk maksimum isi stack
3.  Membuatlah variabel array data sebagai implementasistack secara nyata
4.  Mendeklarasikan operasi-operasi/function di atas dan buat implemetasinya


Deklarasi MAX_STACK

#define MAX_STACK 10

Deklarasi STACK dengan struct dan array data

typedef struct STACK{
int top;
char data[10][10];
};

Deklarasi/buat variabel dari struct

STACK tumpuk;

Inisialisasi Stack
  • Pada mulanya isi top dengan -1, karena array dalam C dimulai dari 0, yang berarti stack adalah KOSONG!
  • Top adalah suatu variabel penanda dalam STACK yang menunjukkan elemen teratas Stack sekarang.  Top Of Stack akan selalu bergerak hingga mencapai MAX of STACK sehingga menyebabkan stack PENUH!

ilustrasi Stack pada saat inisialisasi!


Fungsi IsFull
  1. Untuk memeriksa apakah stack sudah penuh?
  2. Dengan cara memeriksa top of stack, jika sudah sama dengan MAX_STACK-1 maka full, jika belum (masih lebih kecil dari MAX_STACK-1)  maka belum full
Ilustrasi Stack pada kondisi Full


Fungsi IsEmpty
  • Untuk memeriksa apakah stack masih kosong?
  • Dengan cara memeriksa top of stack, jika masih -1 maka berarti stack masih kosong!

Fungsi Push
  1. Untuk memasukkan elemen ke stack, selalu menjadi elemen teratas stack (yang ditunjuk oleh TOS)
  2. Tambah satu (increment)  nilai top of stack lebih dahulu setiap kali ada penambahan elemen stack.
  3. Asalkan stack masih belum penuh, isikan data baru ke stack berdasarkan indeks top of stack setelah diincrement sebelumnya.

Fungsi Pop
  • Untuk mengambil elemen teratas (data yang ditunjuk oleh TOS) dari stack.
  • Ambil dahulu nilai elemen teratas stack dengan mengakses top of stack, tampilkan nilai yang akan dipop, baru dilakukan decrement nilai top of stack sehingga jumlah elemen stack berkurang 

Fungsi Print
  1. Untuk menampilkan semua elemen-elemen stack
  2. Dengan cara looping semua nilai array secara terbalik, karena kita harus mengakses dari indeks array tertinggi terlebih dahulu baru ke indeks yang kecil!

Studi Kasus Stack

Pembuatan Kalkulator SCIENTIFIC
   - Misalkan operasi: 3 + 2 * 5
   - Operasi di atas disebut notasi infiks, notasi infiks tersebut harus diubah lebih dahulu menjadi 
   - notasi postfix 3 + 2 * 5 
   - notasi postfiksnya adalah 2 5 * 3 +

Pop Stack Soal :
1. Jika berupa operand, maka masukkan ke Stack Hasil
2. Jika berupa operator, maka:
       - Pop nilai pertama dari Stack Hasil
       - Pop nilai kedua dari Stack Hasil
       - Lakukan operasi sesuai dengan operator yang didapat.


Operator * di pop dari Stack Soal, pop Stack Hasil dua kali, yaitu 5 dan 2 kemudian, simpan 5 ke dalam variabel misalnya a, dan 2 ke dalam variabel misalnya b.

Lalu lakukan operasi sesuai dengan operatornya, 
b <operator> a
Jadi b * a, yaitu 2 * 5 kemudian hasilnya disimpan lagi ke dalam StackHasil


  1. Kemudian lakukan langkah yang sama, sampai selesai.
  2. Pada contoh: operator + dipop dari Stack Soal, pop Stack Hasil dua kali, yaitu 3, disimpan pada variabel a, dan 2, disimpan pada variabel b.  Kemudian lakukan operasi sesuai dengan operatornya, b <operator> a
  3. Jadi b + a, yaitu 8 + 3 = 11.



Keinginan Manusia Akan Selalu Menumpuk
Bahkan Ketika Kepala Manusia Sudah Penuh Sekalipun
Manusia Akan Tetap Menciptakan Keinginan-Keinginan Baru
Published: By: kabul arif - 1:10:00 am

Searching Array

Searching Array

Yang dimaksud dengan Searching pada teknik pemrograman adalah berfungsi untuk mencari sebuah data dengan cara menelusuri tempat penyimpanan data tersebut. Tempat penyimpanan tersebut dapat berupa array dalam memory  atau dalam suatu file pada external storage.
Beberapa metode searching diantaranya adalah :

  • Sequential search
  • Binary search

Algoritma sequential search mencari ADA atau TIDAK ADA
Pada array 1 dimensi yang sudah ada isi/datanya,dicari sebuah nilai apakah ada atau tidak pada data array tersebut. Misalnya pada variabel array 1 dimensi A dengan jumlah N elemen berisi data-data dengan tipe data integer, dicari nilai yang diwakili variabel x (bisa berupa input) yang juga bertipe data integer. Diperiksa apakah data-data pada A ada atau tidak ada yang nilainya sama dengan nilai pada x, jika ada maka outputnya mencetak kata “Ada” jika tidak akan mencetak kata-kata “Tidak Ada”.

Metode Sequential Search

Pencarian beruntun dapat digunakan untuk melakukan pencarian data baik pada array yang terurut maupun yang belum terurut

Proses pencarian
  1. Membaca array data
  2. Menentukan data yang dicari
  3. Mulai dari data pertama sampai dengan data terakhir, data yang dicari dibandingkan dengan masing-masing data dalam array
  • Jika data yang dicari tidak ditemukan maka semua data dalam elemen dibandingkan sampai selesai
  • Jika data yang dicari ditemukan maka perbandingan akan dihentikan
Flowchart
 <cara 1>


<cara 2>


<Teknik Sentinel>


Algoritma sequential search mencari nilai MAXIMUM dan MINIMUM
Proses searching yang dilakukan adalah untuk mencari nilai yang terbesar (maximum) dan atau nilai yang terkecil (minimum) pada deret nilai suatu variabel array. Sama dengan pada proses searching sebelumnya algoritma untuk menjelaskan metode ini dimisalkan pada variabel array 1 dimensi A dengan jumlah N elemen berisi data-data dengan tipe data integer.

Flowchart
<cara 1>


Algoritma Sequential Search


Metode Binary Search
Pencarian biner hanya digunakan pada data yang sudah terurut. Proses pencarian binary search :
  1. Membaca array data
  2. Apabila array belum terurut maka diurutkan dahulu
  3. Menentukan data yang akan dicari
  4. Menentukan elemen tengah dari array
  5. Jika elemen tengah sama dengan data yang dicari maka pencarian selesai
  6. Jika nilai elemen tengah tidak sama dengan data yang dicari, maka
  • Jika nilai elemen tengah lebih besar daripada data yang dicari maka pencarian dilakukan pada setengah array pertama
  • Jika nilai elemen tengah lebih kecil daripada data yang dicari maka pencarian dilakukan pada setengah array berikutnya
Algoritma Binary Search


Published: By: kabul arif - 12:44:00 am

Sorting Array

Sorting Array

Proses mengurutkan data yang berada dalam suatu tempat penyimpanan, dengan urutan tertentu yaitu urutan naik (ascending) dari nilai terkecil hingga terbesar atau urutan turun (descending) dari nilai terbesar hingga nilai terkecil.

Dilihat dari tempat penyimpanan data, sort dibedakan antara external sort bila datanya ada dalam media external atau external storage seperti harddisk dan internal sort bila datanya ada dalam internal storage atau memory computer. 

Tujuan Sorting
Mendapatkan kemudahan dalam pencarian anggota dari suatu himpunan, disamping dapat mempercepat mengetahui data terbesar dan data terkecil.

Metode Sorting
Proses yang terjadi pada pengurutan adalah :
  • Perbandingan data
  • Pertukaran data
metode sorting terdiri atas :
1. Bubble Sort
Bubble artinya gelembung dan gelembung selalu mengapung. Prinsip proses pengurutan dengan menggunakan metode bubble sort adalah menempatkan (mengapungkan) nilai terbesar (jika urut ascending) atau nilai terkecil (jika urut descending) pada elemen ujung paling kanan pada tahap per tahapnya. 

Sudah ada array satu dimensi sudah ada isinya, diilustrasikan sebagai berikut :

Akan diurutkan ascending sehingga dihasilkan urutan data seperti berikut:


Maka proses pengurutan tahap demi tahap dengan menggunakan metode bubble sort adalah sebagai berikut:


Dari array diatas yang terdiri dari 6 elemen dibutuhkan proses sebanyak 5 tahap maka untuk N elemen dibutuhkan (N-1) tahap proses pengurutan. Selanjutnya proses tahap per tahap akan diuraikan lebih rinci lagi.

Pada proses setiap tahap algoritma yang digunakan adalah proses banding (compare) dan tukar (swap). Bukan semata-mata meletakkan nilai terbesar ke ujung kanan, melainkan membandingkan nilai-nilai yang ada pada masing-masing elemen.
Flowchart

Rumus Bubble Sort

2. Selection Sort
Metode selection sort ini menggunakan proses pencarian (searching) kemudian tukar nilai yang dicari dengan nilai pada elemen awal.

Misalnya untuk pengurutan ascending, dicari nilai terkecil pertama kemudian tukar dengan elemen ke-0, selanjutnya dicari nilai terkecil kedua dan tukar dengan elemen ke-1 dan seterusnya. 
Flowchart

Rumus Selection Sort


3. Insertion Sort
Metode ini dilakukan dengan penyisipan nilai data untuk suatu array misal A, yang tidak terurut ke dalam suatu tempat kosong misal C dan memastikan nilai data C selalu dalam keadaan terurut.

Tahap 1 :
- Dimulai dari A[1]
- Simpan nilai A[1] pada sebuah variabel (misal x)
- Geser masing-masing satu langkah ke kanan semua nilai yang berada pada kiri A[1] satu per satu  jika nilai tersebut lebih besar dari x
- Insert (sisipkan) x di bekas tempat nilai yang terakhir digeser.
 
Tahap 2 :
- Simpan nilai A[2] pada variabel x.
- Geser masing-masing satu langkah ke kanan semua nilai yang berada pada kiri A[2] satu per satu  jika nilai tersebut lebih besar dari x
- Insert (sisipkan) x di bekas tempat nilai yang terakhir digeser.
 
Tahap berikutnya dan seterusnya hingga terakhir tahap ke N-1 (untuk array dengan N elemen).
Instruksi pergeseran ke kanan adalah A[i]=A[i - 1], sehingga nilai A[i] akan hilang (ditimpa oleh nilai A[i-1] oleh karena itu pada awal tahap A[i] disimpan pada sebuah variabel.
Flowchart

Rumus Insertion Sort


4. Quick Sort
  • Metode pembagian dan penguasaan
  • Array misal A yang tidak terurut dibagi menjadi 2 sub bagian yakni array kiri dan array kanan.
  • Proses pengurutan  kedua sub bagian array menggunakan rekursif dan kemudian menggabungkan kembali 2 sub bagian array yang terurut untuk menghasilkan keseluruhan array yang terurut
Rumus Quick Sort


5. Merge Sort
Pengurutan data yang jumlahnya besar, dimana tidak semuanya dapat dimuat dalam memori utama, sehingga harus disimpan dalam penyimpanan sekunder berupa berkas

Rumus Merge Sort


6. Heap Sort
Heap merupakan pohon biner tanpa pointer dan mirip seperti pohon biner yang hampir penuh. Semua simpul (daun) terletak pada dua cabang terbawah dan simpul daun pada cabang paling bawah terletak di sebelah kiri sejauh mungkin. Nilai dalam setiap simpul adalah lebih besar atau sama dengan anaknya

Rumus Heap Sort


7. Shell Sort
Metode pengurutan dengan cara penukaran sepasang elemen dengan jarak tertentu



Published: By: kabul arif - 12:28:00 am

Thursday, 12 June 2014

Pengenalan Struktur Data

Pengenalan Komputer

Sistem Komputer :
  1. Perangkat Keras (Hardware)
  2. Perangkat Lunak (Software)
  3. Pengguna (Brainware)
Paradigma Rekayasa Perangkat Lunak :
  1. Daur Hidup Klasik (The classic life cycle)
  2. Prototipe (Prototype)
  3. Model Spiral (The Spiral Model)
Paradigma RPL
Metode dalam menghasilkan suatu perangkat lunak atau dikenal dengan nama RPL
  1. Daur Hidup Klasik (The Classic  Life Cycle / Waterfall)
  2. Prototipe (Prototyping)
  3. Model Spiral (The Spiral Model)
Daur Hidup Klasik

  1. Pengumpulan Kebutuhan
  2. Analisa Kebutuhan
  3. Desain
  4. Pemrograman
  5. Pengujian
  6. Pemeliharaan
Prototipe

  1. Pengumpulan Kebutuhan
  2. Desain Cepat
  3. Bangun prototipe
  4. Evaluasi prototipe
  5. Perbaikan prototipe, jika prototipe belum selesai ulangilang kah b
  6. Produk Perangkat Lunak
Model Spiral

  1. Perencanaan oleh pengembang
  2. Analisa Resiko oleh pengembang dan pemesan
  3. Rekayasa Perangkat Lunak
  4. Evaluasi oleh pemesan, bila Rekayasa belum selesai ulangi langkah a.
Apa itu Struktur Data ?
Algoritma
deskripsi langkah-langkah penyelesaian masalah yang tersusun secara logis
  1. Ditulis dengan notasi khusus
  2. Notasi mudah dimengerti
  3. Notasi dapat diterjemahkan menjadi sintaks suatu bahasa pemrograman
Contoh Algoritma
  1. Mencari nilai maksimum
  2. Mengurutkan data
  3. Mencetak bilangan ganjil dari 1 – 19
  4. Menyimpan data mahasiswa baru
  5. Mencetak data absensi
  6. Mengirim email berdasarkan jadual
Contoh Algoritma Absensi
Is :Data Absensi terdiri dari 1 program studi
  1. Buka Data Absensi
  2. Tentukan Mata Kuliah
  3. Tentukan Kelas
  4. Tentukan Format Absensi (4 / 14 kolom)
  5. Tentukan banyak pencetakan
  6. Ambil data mhs ke-1, lalu cetak
  7. Ulangi langkah ke-6  sampai data habis
Struktur Data
model logika/matematik yang secara khusus mengorganisasi data 

PerbedaanTipe Data, Obyek Data, Struktur Data
  • Tipe data adalah jenis data yang mampu ditangani oleh suatu bahasa pemrograman pada komputer.
  • Tiap-tiap bahasa pemrograman memiliki tipe data yang memungkinkan :
1. Deklarasi terhadap variabel tipe data tersebut
2. Menyediakan kumpulan operasi yang mungkin terhadap variabel bertipe data tersebut
     -  Jenis obyek data yang mungkin
  • Obyek Data adalah kumpulan elemen yang mungkin untuk suatu tipe data tertentu. 
1. Mis : integer mengacu pada obyek data -32768 s/d 32767, byte 0 s/d 255, string adalah kumpulan karakter maks 255 huruf
  • Struktur Data adalah cara penyimpanan dan pengorganisasian data-data pada memori komputer maupun file secara efektif sehingga dapat digunakan secara efisien, termasuk operasi-operasi di dalamnya.
Aktivitas Struktur Data
  • Di dalam struktur data kita berhubungan dengan 2 aktivitas :
              -  Mendeskripsikan kumpulan obyek data yang sahsesuai dengan tipe data yang ada
              -  Menunjukkan mekanisme kerja operasi-operasinya
                         +  Contoh: integer (-32768 s/d 32767) dan jenis operasi yang diperbolehkan adalah +, -, *, /, mod, ceil, floor, <, >, != dsb.
  • Struktur data = obyek data  + [operasi manipulasi data]
Hubungan SD dan Algoritma
  1. Dengan pemilihan struktur data yang baik, maka problem yang kompleks dapat diselesaikan sehingga algoritma dapat digunakan secara efisien, operasi-operasi penting dapat dieksekusi dengan sumber daya yang lebih kecil, memori lebih kecil, dan waktu eksekusi yang lebih cepat.
  2. Tidak semua struktur data baik dan sesuai.  Contoh untuk problem data bank: peng update-an harus cepat, sedangkan penambahan/penghapusan data boleh lebih lambat.
Struktur Data
  • Struktur Data Statis– array/larik ,rekord, himpunan.
  • Struktur Data Dinamis- list/senarai, queue /antrian /giliran, tumpukan /stack /timbunan, pohon, graf. 
Contoh Struktur Data
List Berkait / Senarai
Struktur Data

  1. Traversal (Traversing) : mengunjungi setiap elemen SD
  2. Pencarian (Searching) : menemukan elemen/lokasi pada SD
  3. Penyisipan (Inserting) : menambah elemen baru pada SD
  4. Penghapusan (Deleting) : menghapus elemen dari SD
Mengapa Perlu SD
  • Mengenal bentuk organisasi penyimpanan data dan pengoperasiannya.
  • Menentukan kualitas informasi : akurat, tepat pada waktunya dan relevan. Informasi dapat dikatakan bernilai bila manfaatnya lebih efektif dibandingkan dengan biaya mendapatkannya.
  • Mengurangi duplikasi data (data redudancy)
  • Hubungan data dapat ditingkatkan (data relatability)
  • Mengurangi pemborosan tempat simpanan luar
Penarepan SD pada OS
Queue concept and handling

Published: By: kabul arif - 11:55:00 pm

 

About