This is default featured post 1 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.

This is default featured post 2 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.

This is default featured post 3 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.

This is default featured post 4 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.

This is default featured post 5 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.

Jumat, 13 November 2015

Refleksi Minggu Ke-8 #04/11/2015

Setelah 2 minggu UTS kembali lagi menunaikan tugas mingguan, lanjut di struktur data. Minggu ke-8 ini kami membahas tentang array, bagaimana meng-inputkan data dari depan, belakang, meng-hapus dari depan dan belakang, berikut hasil corat coret minggu ke- 8:




Minggu, 25 Oktober 2015

Refleksi Minggu ke 5 dan 7 #07,21/10/2015

Postingan pada kali ini pertemuan di minggu ke 5 dan 7 dikarenakan minggu ke 6 tanggal 14/10/2015 libur tahun baru islam 1437 H.

Minggu ke 5:
Minggu ke 5 membahas tipe data abstrak

Tipe data abstrak  adalah menggembangkan mekanisme abstrak untuk keperluan komputasi tertentu pada level yang tinggi.

deklarasi variabel untuk memesan memory untuk int (2 byet) bisa dijumlah string
tidak bisa dijumlahkan (range data operasi)

mengkontruksikan Array 1D    

Type data Abstrak 1D
=>  instan  = sekumpulan data dengan type yang sama dapat diakses via indeks.
=> Operasi 
          -   membuat objek
          -   memasukan data
          -   geser kiri elemen array

class Array1D  //nama class
         { Array1D(); // ()  method
                        void  masukan data ();
                        void mencetak data ();
                        void geser kiri ();
                        void geser kanan ();
private:
       int A[10];

};



Minggu ke 7 
Minggu Ke 7 membahas Link list

Linked List adalah salah satu bentuk struktur data, berisi kumpulan data
(node) yang tersusun secara sekuensial, saling sambungmenyambung,
dinamis dan terbatas.
- Linked List sering disebut juga Senarai Berantai
- Linked List saling terhubung dengan bantuan variabel pointer
- Masing-masing data dalam Linked List disebut dengan node (simpul) yang
menempati alokasi memori secara dinamis dan biasanya berupa struct
yang terdiri dari beberapa field.
 

Single Linked List adalah sebuah LINKED LIST yang menggunakan sebuah variabel pointer saja untuk menyimpan banyak data dengan metode LINKED LIST, suatu daftar isi yang saling berhubungan.
Ilustrasi single LINKED LIST:


berikut catatan pada minggu ke 7 oleh patner saya Trianja Haryadi




Selasa, 06 Oktober 2015

Refleksi Minggu ke 4 #30/09/2015

Minggu ke 4 struktur  data, pada minggu ke 3 kuliah tidak ada di karnakan libur hari raya idul adha. Pada minggu ke 4 kami membahas tentang fungsi faktorial dan Array1D




Refleksi Minggu ke 1 dan 2 #09,16/09/2015

Semester 3 hari pertama masuk matakuliah Struktur data  oleh Wayhu Pujiono, M.kom selaku dosen pengampu. Pada hari pertama ini kami mengulang materi sebelumnya yaitu materi yang di pelajari di matakuliah Alpro karena Stuktur Data adalah lanjutan dari Alrpo.
berikut capture nya





terimakasih :)

Rabu, 03 Juni 2015

Refleksi Minggu ke-12 #27/05/2015

Recording (Rekaman)


Disusun oleh satu atau lebih field. Tiap field menyimpan data dari tipe dasar tertentu atau dari tipe bentukan lain yang sudah didefinisikan sebelumnya. Nama rekaman ditentukan oleh pemrogram.
Rekaman disebut juga tipe terstruktur.

contoh :
Rekaman mewakili table
Kadang kita mempunyai tabel, sebagai contoh tabel presensi mahasiswa.

No.
NIM
Nama
Hadir1
Hadir2
Hadir10
1
08018011
Adityo Wicaksono




2
08018012
Vendi Rinanto




3
08018013
Tana Raharjo





Tabel di atas dapat direpresentasikan menjadi 
Type presensi : record <
  • No       : integer
  • NIM    : string
  • Nama   : string
  • Tgl_kuliah       : array [1..10] of tanggal
 Namun, larik data akan digunakan untuk setiap entry tersebut, sehingga akan terdapat gabungan 2 tipe terstruktur yaitu :
Larik_presensi : array [1..100] of presensi
 Bila terdapat 100 mahasiswayang mengikuti kuliah

Refleksi Minggu Ke-11 #20/05/2015

Array Dua Dimensi


Misalkan matriks A berordo 2 x 3
A=  1   2   3
      -4   0  -1
Menggunakan array, setiap elemen matriks A dapat dipetakan menjadi :



kolom j=0
kolom j=1
kolom j=2
baris i=0
A[0][0] = 1
A[0][1] = -2
A[0][2] = 3
baris i=1
A[1][0]= -4
A[1][1] = 0
A[1][2] = -1


C style
#define baris 2
#define kolom 2
int matriks[baris][kolom];

C++ style
class Matriks {
private :
int baris, kolom;
int A[baris][kolom];


void baca_matriks
(int matriks[10][10], int baris, int kolom)
{   int i,j;
     for (i=0; i<baris; i++)
         for (j=0; j<kolom; j++)
           cin >> matriks[i][j];
}
*      Cara mengisi data dilakukan per baris (dengan kolom berjalan/dihabiskan lebih dulu)




Refleksi Minggu Ke-10 #13/05/2015

Sorting (Pengurutan)


  1. Usaha : mengurutkan dari data tak terurut menjadi data terurut à perlu waktu
  2. Masalah : efisiensi (peningkatan kecepatan pencarian)
  3. Metode : bubble (gelembung), insertion (penyisipan), selection (pemilihan), merge (penggabungan), quick, shell, radix, dll.
Untuk simulasi macam-macam sorting bisa liat disini.

Berikut beberapa metode sorting:

A. Bubble Sort
  • Prinsip : seperti gelembung, yang besar akan “naik”, yang kecil akan “tetap” di bawah
  • Setiap data (misalnya data pertama) akan dibandingkan dengan data yang ada di sebelahnya (dari data kedua sampai selesai) .
  • Bila data pertama tersebut lebih besar dari data yang ada pada data sesudahnya, dilakukan penukaran tempat atau posisi data.
  • Demikian, untuk data kedua sampai dengan data terakhir dilakukan dengan cara serupa.
Ilustrasi

Data awal :
[8, 4, 7, 3, 1, 2, 6, 5]
8ßà4, 4ßà3, 3ßà1
fase 1
[1, 8, 7, 4, 3, 2, 6, 5]
8ßà7, 7ßà4, 4ßà3, 3ßà2
fase 2
[1, 2, 8, 7, 4, 3, 6, 5]
8ßà7, 7ßà4, 4ßà3
fase 3
[1, 2, 3, 8, 7, 4, 6, 5]
8ßà7, 7ßà4
fase 4
[1, 2, 3, 4, 8, 7, 6, 5]
8ßà7, 7ßà6, 6ßà5
fase 5
[1, 2, 3, 4, 5, 8, 7, 6]
8ßà7, 7ßà6
fase 6
[1, 2, 3, 4, 5, 6, 8, 7]
8ßà7
fase 7
[1, 2, 3, 4, 5, 6, 7, 8]

fase 8
[1, 2, 3, 4, 5, 6, 7, 8]


void tukar (int &a, int &b)
{  int temp;
     temp = a;
     a = b;
     b = temp;
}

void buble_sort (int x[], int n)
{  int i, j;
     for (i = 0; i<n-1; i++)
         for (j = i+1; j<n; j++)
             if (x[i] > x[j]) tukar(x[i], x[j]);
}

B. Insertion Sort
  • Addalah metode pengurutan data dengan menempatkan setiap elemen data pada posisinya dengan cara melakukan perbandingan dengan data-data yang ada. Dalam pengurutan data ke dua, kemudian data yang diambil akan dibandingan dengan data-data yang ada disebuah kiri/ data sebelumnya (data-data sebelumnya data yang diambil/ jika selesai akan dilanjutkan dengan data selanjutnya).
Ilustrasi
Data awal :
[8, 4, 7, 3, 1, 2, 6, 5]
fase 1, 4 masuk
[48, 7, 3, 1, 2, 6, 5]
fase 2, 7 masuk
[478, 3, 1, 2, 6, 5]
fase 3, 3 masuk
[3478, 1, 2, 6, 5]
fase 4, 1 masuk
[13, 4, 7, 8, 2, 6, 5]
fase 5, 2 masuk
[123, 4, 7, 8, 6, 5]
fase 6, 6 masuk
[1, 2, 3, 467, 8, 5]
fase 7, 5 masuk
[1, 2, 3, 456, 7, 8]
fase 8
[1, 2, 3, 4, 5, 6, 7, 8]


procedure insertion_sort(input/output  data:larik;
                                          input n:integer)
Deklarasi
i, j, ditangan : integer
Deskripsi
    for j ß 2 to n do
         ditangan ß data[j]
         for i ß j-1 asalkan {(i >= 0) dan (data[i] > ditangan)} do  
                 data[i+1] ß data[i]
                 i--
         endfor
         data[i+1] ß ditangan



C. Selection Sort
      Ide :
  • Diberikan sederetan kartu :[8, 4, 7, 3, 1, 2, 6, 5]
  • Langkah 1 : dicari terkecil pertama ditaruh paling kiri (pertama)
  • Langkah 2 : dicari terkecil kedua ditaruh paling kiri kedua, dst.

 Ilustrasi
Data awal :
[8, 4, 7, 3, 1, 2, 6, 5]
1 terkecil, 8ßà1
fase 1
[1, 4, 7, 3, 8, 2, 6, 5]
2 terkecil, 4ßà2
fase 2
[1, 2, 7, 3, 8, 4, 6, 5]
3 terkecil, 7ßà3
fase 3
[1, 2, 3, 7, 8, 4, 6, 5]
4 terkecil, 7ßà4
fase 4
[1, 2, 3, 4, 8, 7, 6, 5]
5 terkecil, 8ßà5
fase 5
[1, 2, 3, 4, 5, 7, 6, 8]
6 terkecil, 7ßà6
fase 6
[1, 2, 3, 4, 5, 67, 8]
7 terkecil, tetap
fase 7
[1, 2, 3, 4, 5, 6, 78]

fase 8
[1, 2, 3, 4, 5, 6, 7, 8]



Procedure minimum(input A : larik; dari, n : integer; output tempat : integer)
{ mencari tempat di mana elemen terkecil ditemukan}
Deklarasi
i, min : integer
Deskripsi     
     min ß A[dari];
     tempat ß dari;
     for i ß dari+1 to n do
         if A[i] < min then
              min ß A[i];
              tempat ß i;
         endif
     endfor


Refleksi Minggu Ke-9 #06/05/2015

Refleksi minggu ke 9 ini membahas mengenai searching.  Apa itu searching?
Searching adalah mencari data yang di cari dalam sebuah memory. ada beberapa metode searching antaranya :

A. Linear search

  1.  Input : array aray dengan banyak data sebanyak ukuran.
  2. Output : data kunci dalam array aray.
  3.  Prinsip :setiap data pada aray akan dibandingkan dengan kunci sampai pada data yang terakhir (kasus terburuk (worst case)). Bila pada posisi ke-i data sama dengan kunci, berarti data ditemukan pada posisi ke-i. Bila sampai akhir data, data tidak juga ditemukan berarti kunci tidak ada pada aray.

function pencarianLinier(input aray : larik; kunci, ukuran : integer) : integer
Deklarasi
ketemu : boolean
i, n : integer
Deskripsi
     ketemu ß false {belum ketemu }
     n ß 1     { mulai dari elemen pertama }
     while ((n < ukuran) and (not ketemu)) do
         if (aray[n] = kunci) then       { dibandingkan }
                 ketemu ß true              { data ketemu }
                 i ß n                             { pada posisi ke-i, posisi disimpan }
         endif
         else n ß n+1                         { cek data berikutnya }
     endwhile
     if ketemu then pencarianLinier ß i     { data ketemu pada posisi ke-i }
     else pencarianLinier ß -1         { data tidak ketemu }
     endif
end




Bahasa C++

#include <iostream.h>
#define UKURAN 100
int pencarianLinier(int array[], int kunci, int ukuran)
{    int i;
     for (i=0; i<=ukuran-1; ++i)
         if (array[i] == kunci)
            return i;
     return -1;}





B. Binary Search

  1. Asumsi : data sudah dalam keadaan terurut (naik) Contoh : Buku telepon, presensi kuliah, dll.
  2. Kunci akan selalu dibandingkan dengan data yang berada di tengah (middle)
  3. Bila sama berarti data ketemu, bila tidak, akan “dilihat” apakah data ada di sebelah “kiri” (artinya data lebih kecil dari data di tengah) atau di sebelah “kanan” (artinya data lebih besar dari data di tengah).
  4. Bila data ada di sebelah kiri, dilakukan pencarian dengan cara yang sama (sementara data yang berada di sebelah kanan akan diabaikan).
  5. Jadi, setiap kali pencarian, data selalu “dibelah” menjadi dua bagian (biner), sampai pada “titik tertentu” (bila sama dengan titik tengah, pencarian tidak dilakukan lagi, bila tidak, sampai pada perbandingan terakhir data juga tidak sama, berarti data tidak ditemukan pada array aray).


function pencarianBiner(input aray : larik; kunci, low, high : integer) : integer
Deklarasi
ketemu : boolean
i, middle : integer
Deskripsi
     ketemu ß false
     while (low <= high) and (not ketemu) do
         middle ß (low+high) div 2
         if (kunci = aray[middle]) then ketemu ß true            { data pencarian = data di tengah }
         else if (kunci < aray[middle]) then
                     high ß middle – 1 {data akan dicari lagi di sebelah kiri}
         else low ß middle + 1                                        {data akan dicari lagi di sebelah kanan}
         endif
     endwhile
     if ketemu then pencarianBiner := middle
     else pencarianBiner := -1
     endif


Bahasa C++

int pencarianBiner(int b[], int kunciPencarian, int low, int high)
{    int i, middle;
     while (low <= high) {
         middle = (low+high) / 2;
         if (kunciPencarian == b[middle])
                return middle;
         else if (kunciPencarian < b[middle])
                high = middle - 1;
         else low = middle + 1;
     }
     return -1;
}







Share

Twitter Delicious Facebook Digg Stumbleupon Favorites More