Feb
20
2018

Pertemuan 01 – Pointer, Array and Introduction to Data Structure – 2101685181 – Chrystopher

Sesi 1 :

Pointer, Array and Introduction to Data Structure

  1. Array

    Array adalah kumpulan dari elemen-elemen data yang mirip di mana elemen-elemen tersebut mempunyai tipe data yang sama (homogen).
    Index array dimulai dari nol (0).

    Perbandingan Array 1 Dimensi dengan Array 2 Dimensi :

    Basis for Comparison One-Dimensional Two-Dimensional
    Basic Store single list of elements of similar data type. Store ‘list of lists’ or ‘array of arrays’ or ‘array of one dimensional arrays’.
    Declaration /*declaration in C++
    type variable_name[ size ];*//*declaration in Java
    type variable_name [ ];
    variable_name = new type[size]; */
    /*declaration in C++
    type variable_name[size1][size2]; *//*declaration in Java
    type variable_name= new int[size1][size2]; */
    Alternative Declaration /* In Java
    int [ ] a= new int [10]; */
    /* In Java
    int [ ] [ ] a= new int [10][20]; */
    Total Size in Bytes Total Bytes =sizeof(datatype of array variable)* size of array. Total Bytes= sizeof(datatype of array variable)* size of first index*size of second index.
    Receiving parameter It can be received in a pointer, sized array or an unsized array. Parameter receiving it must define the rightmost dimension of an array.
    Dimensions One dimensional. Two dimensional.
  2. Pointer

    Pointer adalah tipe data di mana nilai/valuenya ditujukan ke value lainnya yang disimpan di suatu tempat dalam memory komputer dengan menggunakan alamat/addressnya.

    2 operator penting yang digunakan dengan tipe pointer yaitu :
    – & : operator alamat/address
    – * : operator dereferensi

    Misalkan :
    int x;
    int *px;
    maka x adalah integer dan px adalah pointer ke suatu integer.

    Jika :
    px = &x;
    maka &x mengembalikan alamat dari x dan menetapkannya sebagai value dari px.

  3. Data Structure

    Data Structure adalah susunan data, baik itu di dalam memory komputer ataupun di disk penyimpanan.
    Beberapa contoh umum data structures meliputi :
    Arrays : Kumpulan dari elemen-elemen data yang mirip di mana elemen-elemen tersebut mempunyai tipe data yang sama (homogen).

    Linked lists : Sebuah struktur data yang sangat dinamis di mana elemen-elemennya bisa ditambahkan ke atau dihapus dari mana saja sesuai keinginan. Setiap elemennya disebut node.

    Queues : Elemen yang dimasukkan pertama kali adalah elemen yang akan dikeluarkan terlebih dahulu.
    Elemen dalam sebuah queue ditambahkan pada satu ujung yang disebut rear dan dihapus dari ujung lain yang disebut front.

    Stacks : Daftar terurut dari tipe data yang sama.
    Stacks adalah struktur LIFO (Last In First Out / elemen yang masuk paling terakhir, keluar paling awal) / FILO (First In Last Out / elemen yang masuk terlebih dahulu, keluar terakhir).
    Fungsi push() digunakan untuk memasukkan elemen baru ke dalam Stack dan fungsi pop() digunakan untuk menghapus elemen dari stack. Kedua pemasukan dan penghapusan diijinkan hanya pada satu ujung Stack yang disebut Top.
    Stack dikatakan dalam kondisi Overflow apabila stack sudah benar-benar penuh, dan dikatakan dalam kondisi Underflow jika stack sudah benar-benar kosong.

    Binary trees : Struktur data yang didefinisikan sebagai kumpulan dari elemen-elemen yang disebut nodes.
    Setiap node mengandung left pointer, right pointer, dan elemen data.

    – Hash tables : Struktur data yang mengimplementasikan array asosiatif abstract data type, sebuah struktur yang bisa memetakan (map) keys ke values. Hash table menggunakan fungsi hash untuk menghitung indeks ke dalam suatu array dari buckets atau slots, di mana value yang diinginkan bisa ditemukan.

  4. Data Type

    Data Type adalah kumpulan objek dan set operasi yang bekerja pada objek tersebut.

  5. Abstract Data Type

    Abstract Data Type (ADT) adalah suatu tipe data yang disusun sedemikian rupa di mana spesifikasi objek dan spesifikasi operasi pada objek-objek tersebut terpisah dari representasi objek dan implementasi/pelaksanaan operasinya.

    C/C++ mempunyai konsep yang disebut class dan struct untuk membantu programmer dalam mengimplementasikan abstract data type.

Sesi 2 :

Dosen tamu : Samuel Theodorus (Direktur Utama Elven Digital)

    1. Perkenalan tentang perusahaan Elven Digital

    2. SEO (Search Engine Optimization) dan Digital Marketing

      SEO (Search Engine Optimization) adalah upaya – upaya mengoptimisasi website untuk mesin pencari agar mendapatkan peringkat yang lebih baik di hasil pencarian.

      Digital Marketing adalah pemasaran produk secara digital, dengan beberapa cara seperti branding, dll.

    3. Jenis / Tipe Data (Data Type)

      Terdiri dari :
      – Set nilai data
      – Set operasi yang bisa diterapkan pada nilai tersebut.

    4. Jenis Data Sederhana

      – Numerik, terdiri dari : Numerik integer (bilangan bulat) dan Numerik real (bilangan riil).
      – Karakter, terdiri dari : Alfabet (a … z, A … Z), Angka (0 … 9), dan Simbol khusus (+ ? ‘ ! [ ] { } … dan lain-lain).
      – Boolean (logika), terdiri dari : True dan False.

    5. Identifier

      Dalam bahasa pemrograman, item data diidentifikasi menurut namanya, bukan menurut alamat lokasinya dalam memory.
      Identifier akan merupakan konstanta jika selalu dikaitkan dengan nilai data yang sama, sebaliknya identifier akan merupakan variabel jika nilai datanya yang terkait bisa berubah.
      Literal, nilai data yang tertera dalam program namun bukan sebagai identifier.

    6. Deklarasi Data

      Jenis data konstanta dan variabel harus didefinisikan dalam program sehingga operasi yang tepat dapat dijalankan pada nilai data dan jumlah ruang penyimpanan yang tepat bisa ditentukan.
      Statement untuk mendefinisikan jenis data tersebut disebut declarative statement.
      Beberapa bahasa pemrograman memiliki syntax pendeklarasian yang berbeda.
      Beberapa contoh program (pendeklarasian data) yang akan diberikan ditulis dalam pseudo-code.

    7. Struktur Data / Data Structure

      Array : Set item data yang disusun secara baik menjadi rangkaian dan diacu / ditunjuk oleh satu identifier.
      Item data individual dalam array bisa ditunjuk secara terpisah dengan menyatakan posisinya dalam array tersebut.
      Bilangan yang ditulis dalam tanda kurung menandakan posisi item individual dalam array (disebut juga subscript / index).
      Item data individual dalam suatu array sering disebut elemen.

      Matriks : Array yang hanya berisi bilangan dan tidak ada data alfabetisnya

      Klarifikasi Array :
      1. Array 1 Dimensi
      2. Array Multi Dimensi : Mempunyai elemen-elemen yang disusun ke dalam baris dan kolom dan digunakan sebagai tabel data. Bisa digambarkan pula sebagai array di dalam array.

      Penanganan Array :
      1. Metode dasar penanganan array :
      – Mencari nilai terbesar dan terkecil
      – Menghitung nilai rata-rata dan nilai total
      – Menghitung jumlah nilai di bawah rata-rata
      2. Menyortir Array (Sort) :
      – Bubble sort
      – Straight selection sort
      3. Mencari / Meneliti Array (Search) :
      – Linear search

      String : Rangkaian karakter yang ditangani sebagai unit data tunggal. String berada dalam bentuk array karakter 1 dimensi
      Deklarasi String :
      1. Fixed-length string : String yang panjangnya sudah ditentukan dan tidak boleh lebih dari panjang yang ditentukan.
      2. Variable-length string : String yang panjangnya sesuai dengan jumlah variabel.

      Operasi pada String :
      1. Concatenation : Penggabungan dua atau lebih string.
      2. Substring : Mengambil bagian dari suatu string

      List : Memberikan cara yang fleksibel untuk menangani item data secara urut.
      Perubahan terhadap urutan tersebut dapat dicapai (dilakukan) dengan perpindahan data yang minimal dan kehilangan ruang penyimpanan yang sedikit.
      Beberapa istilah dalam list :
      1. Datum : item data.
      2. Pointer : penunjuk yang menyambungkan item data satu dengan yang lain.
      3. Node / elemen :  elemen dari suatu list yang terbentuk dari datum dan pointer.
      4. Terminator : pointer terakhir dari list.
      5. Start pointer : menyatakan tempat datum pertama.
      6. Free storage pointer : menyatakan di mana datum berikutnya bisa mengarah atau menuju.

      Tree :Struktur data hirarti dan dikonstruksi menggunakan aturan preseden untuk item data, misal : menggunakan rangkaian alfabet atau numerik.
      Beberapa istilah dalam tree :
      1. Node : elemen dari suatu tree.
      Setiap node memiliki (sedikitnya) dua pointer yaitu left pointer dan right pointer.
      2. Root node : datum pertama yang ditempatkan dalam tree.
      3. Parent node : node yang memiliki node di bawahnya (sub-node).
      4. Child node : node yang berada di bawah parent.
      5. Leaf node : node yang tidak mempunyai child.

Catatan :
Rangkuman materi Dosen Tamu saya selesaikan melewati batas waktu yaitu 00:30.

Tambahan (21 Februari 2018) :

Operasi yang bisa dilakukan pada Array :
1. Traversal : memproses semua anggota dalam array sebanyak 1 kali.
2. Insertion : memasukkan data baru ke dalam sebuah array.
3. Searching : mencari data yang sama atau yang cocok dengan variabel yang kita miliki.
4. Deletion : menghapus data yang ada dalam array.
5. Merging : menyatukan sebuah array dengan array lainnya.
6. Sorting : mengurutkan data yang ada dalam sebuah array sesuai yang dengan kehendak kita.

Bahasa C tidak membatasi jumlah dimensi array, yang membatasi hanyalah jumlah memori yang tersedia.

Tujuan menyimpan value dalam array adalah supaya kita tidak perlu memberi nama pada masing-masing value-value tersebut sehingga pemrograman menjadi lebih efisien.

Konsep pointer dapat dijelaskan dengan mudah melalui contoh :
Value = Nilai ; Address = Alamat

Value x = 50, address x = 120
Address y = 130, address z = 140

Misalkan y = &x dan z = &y, maka untuk print value dari x, kita bisa menulis :
printf(“%d”,x); atau printf(“%d”,*y);

Keduanya akan print value 50.
Karena y = &x, maka y akan menyimpan address dari x.
printf(“%d”, y);  = 120

Dan z akan menyimpan address dari y.
z = &y, sehingga printf(“%d”, z) = 130

Sekarang, jika menggunakan single pointer :
printf(“%d”, *z) = 120

Ketika menggunakan double pointer :
printf(“%d”, **z) = 50

Sehingga kita dapat dengan mudah melihat perbedaannya di sini, variabel yang memiliki single pointer menunjuk ke value variabel lain yang alamatnya disimpan pada variabel tersebut, sedangkan variabel yang memiliki double pointer menunjuk pada nilai variabel lain yang alamatnya telah tersimpan dalam beberapa variabel lainnya.

Written by Chrystopher in: Data Structures |

No Comments

Comments are closed.

RSS feed for comments on this post. TrackBack URL


Powered by WordPress. Theme: TheBuckmaker. Zinsen, Streaming Audio