Minggu, 02 Oktober 2011

Perkenalan Dasar Konsep data, DATA sTRUCTURE & Penggunaan Struktur

Arti kata (Webster)

da•ta [n.pl.]
• [now usually with sing. v.] facts or figures to be processed; evidence,records, statistics, etc. from which conclusions can be inferred;information

n struc•ture [n.]
• 1 manner of building, constructing, or organizing
• 2 something built or constructed, as a building or dam
• 3 the arrangement or interrelation of all the parts of a 
whole;manner of organization or construction [the structure of the atom,the structure of society]
• 4 something composed of interrelated parts forming an organism or an organization

Komputer digital modern abad ini ditemukan dan dimaksudkan sebagai perangkat yang harus memfasilitasi dan mempercepat komputasi yang memakan waktu dan rumit.

Pada sebagian besar aplikasi, kemampuan untuk menyimpan dan untuk mengakses jumlah besar informasi memainkan bagian yang dominan dan dianggap karakteristik utama, dan kemampuan komputasi yang laennya, Yaitu kemampuan untuk menghitung, melakukan aritmatika, dalam beberapa kasus dianggap tidak relevan. Semua program, baik itu untuk mengolah data maupun mengerjakan arimatika, pasti mempunyai penyimpanan data. Jika user meminta program untuk mengetik nama, program membutuhkan tempat untuk menyimpan nama itu di suatu tempat sehingga dapat menemukan "nama" lagi. 

Mengapa data itu disimpan?, Supaya bisa diakses/diproses di kemudian waktu

Di beberapa kasus, sejumlah besar data/informasi yang akan diproses merupakan bentuk abstract dari sebuah bagian dari bentuk realita. Informasi-informasi ini yang tersimpan di komputer, merupakan suatu set data terpilih data aktual yang sebenarnya, yaitu beberapa set/data yang dianggap relevan, yang meyakini bahwa dari data yang terpilih itu dapat mewakili keadaan data yang sebenarnya.
Terkadang, sifat tertentu dan karakteristik object nyata diabaikan, karenaterkadang mereka tidak relevan dan tidak diperlukan.Cara seperti itu disebut juga penyederhanaan data.

COntoh Kasus:Berkas personil majikan.
Setiap karyawan diwakili (oleh beberapa set variabel), di dalam variabel tersebut, terdapat beberapa data yang relevan baik untuk karyawan atau administrasi.Beberapa set data ini dapat mencakup beberapa identifikasi karyawan, misalnya, nama-nya dan gaji. Tapi paling tidak mungkin memasukkan data yang tidak relevan seperti warna rambut,berat, dan tinggi. 


Oleh karena itu, cara yang paling umum program menyimpan data adalah untuk membuang data dalam variabel.Sayangnya, variabel hanya dapat memegang salah satu potongan data pada satu rentang waktu, seperti satu nomor atau nama. Jika Anda ingin menyimpan nama pertama dan terakhir seseorang bersama dengan usia mereka, Anda harus membuat tiga variabel yang terpisah, seperti:

  • FirstName sebagai String  
  • LastName sebagai String 
  • Umur sebagai Integer 
Membuat variabel terpisah untuk menyimpan data yang saling terkait analoginya seperti membawa kemana-mana tiga dompet terpisah dengan satu dompet Anda memegang duit kas,dompet kedua memegang kartu kredit Anda, dan sebuah dompet ketiga memegang ATM Anda.Dan seharusnya lebih nyaman untuk menyimpan uang tunai, kartu kredit, dan ATM dalam satu dompet tunggal, sehingga juga lebih nyaman untuk menyimpan data terkait dalam variabel tunggal. 


Apa Sih Variabel?

Variabel adalah tempat penyimpanan suatu nilai tertentu. Setiap variabel harus diasosiasikan dengan type yang dikenal.
Dengan adanya type: program/kompilator dapat membatasi type data/nilai yang disimpan pada lokasi tersebut.

Dalam konteks ini, pentingnya penyimpanan data yang memerlukan sebuah struktur menjadi jelas.upaya lebih mudah/efisien dalam pengaksesan/pemrosesan .

-Konsep Tipe Data-

Data ialah perwakilan oleh sejumlah besar digit biner, terlepas dari apakah atau tidak program semula berada di dalam bahasa pemrograman tingkat tinggi menggunakan konsep seperti diatas yang menggunakan ketikan atau tanpa ketikan langsung dari assembly code.Teori disajikan dalam bahasa program Oberon dalam kasus ini merupakan bahasa pemrograman menentukan metode tertentu dalam mendefinisikan tipe data. 

Tipe Data Primitif

Terdapat dua jenis types:

  1.  Primitive types: numeric type, boolean type
  2.  Reference types: class, arrays dll.
Tipe Data tersebut antara lain adalah
Tipe Data Deskripsi (range variabel)
Byte             angka dari 0 sampai 255
Integer         angka dari -32768 to 32767
Real             semua nilai pecahan dari 1E-38 to 1E+38
Boolean         nilai TRUE atau FALSE
Char             semua karakter dari tabel ASCII
String           semua huruf, spasi, frase

Tipe Data Standar : tipe-tipe data standar yang telah tersedia pada kebanyakan bahasa pemrograman.

User defined Data Types: programmer dapat membuat tipe data lain yang diturunkan dari tipe data standar.

Strongly-typed: programmer harus menentukan tipe data dari suatu variabel, dan variabel tersebut tidak dapat dipergunakan untuk menyimpan tipe data selain dari format yang ditentukan.

Terstruktur: memiliki syntaks yang memungkinkan penulisan program dipecah menjadi fungsi-fungsi kecil (procedure dan function)yang dapat dipergunakan berulang-ulang.

Sederhana dan Ekspresif: memiliki struktur yang sederhana dan sangat mendekati bahasa manusia (bahasa Inggris) sehingga mudah dipelajari dan dipahami.

Dalam matematika itu adalah kebiasaan untuk mengklasifikasikan variabel menurut karakteristik tertentu.Perbedaan terpenting yang dibuat antara variabel riil, kompleks, dan logis atau antara variabel yang mewakili nilai-nilai individu, atau set nilai-nilai, atau set set, atau antara fungsi, functionals, set fungsi, dan sebagainya.

Misalnya dalam program yang bersangkutan dengan geometric bentuk pesawat, kita dapat memperkenalkan tipe primitif yang disebut bentuk, yang nilai-nilainya dapat dilambangkan oleh pengidentifikasi persegi panjang, persegi, elips, lingkaran. 


Tapi selain bentuk primitif diatas yang didefinisikan oleh programmer seperti itu, juga terdapat beberapa bentuk data standar yang dibakukan.Yang biasanya termasuk angka dan nilai-nilai logika.

Gagasan klasifikasi adalah sama jika tidak ada yang lebih penting di dalam proses pengolahan data.Prinsip bahwa setiap, variabel konstanta, ekspresi, atau fungsi dari jenis tertentu, mencirikan himpunan nilai-nilai yang milik konstan, atau yang dapat diasumsikan oleh variabel atau ekspresi, atau yang dapat dihasilkan oleh fungsi.

Dalam teks matematika ada jenis variabel biasanya tidak bisa digunakan dalam program komputer. Dan hanya terwakili oleh satu jenis huruf yang tersedia pada komputer (yaitu, huruf Latin). 

Aturannya Oleh karena itu Karakteristik utama dari konsep jenis yang digunakan di seluruh teks ini, dan itu adalah yang terkandung dalam Oberon bahasa pemrograman, adalah sebagai berikut [1-2]: 

1. Sebuah tipe data ditentukan oleh himpunan nilai-nilai konstan, atau yang dapat diasumsikan oleh variabel atau ekspresi, atau yang dapat dihasilkan oleh operator atau fungsi. 

2. Jenis nilai dilambangkan oleh sebuah konstanta, variabel ekspresi, atau mungkin berasal dari bentuk atau yang deklarasi tanpa perlu melaksanakan proses komputasi. 

3. Setiap operator mempunyai fungsi dan menghasilkan hasil tetap. Jika Operator mengakui argumen dari beberapa jenis (misalnya, + digunakan untuk penambahan kedua bilangan bulat dan real angka), maka setiap hasil dapat ditentukan dari aturan bahasa tertentu.

Dua cara untuk menyimpan data yang saling terkait dalam satu tempat adalah fungsi struktur dan array.
Karena struktur dan array merupakan dua cara untuk menyimpan data, mereka sering disebut data struktur.

Oleh karena itu mengapa data struktur ini sangat penting?

-Pengenalan Struktur Data-

Struktur data adalah sebuah skema organisasi, seperti struktur dan array, yang diterapkan pada data sehingga data dapat diinterprestasikan dan sehingga operasi operasi spesifik dapat dilaksanakan pada data tersebut

contoh :
Sebab:Perhatikan program berikut ini:
if (k == 1) c001++;
if (k == 2) c002++;
...
if (k == 500) c500++;

Program di atas (+- 500 baris) digunakan untuk menghitung jumlah kemunculan angka 1 sampai 500 dalam sebuah file.Progam di atas benar, tetapi sangat besar (butuh waktu pengembangan yang lebih lama) dan sulit dipelihara.

Solusi: gunakanlah array dari integer yang terdiri dari 500 elemen.

Akibat: Pemilihan struktur data yang tepat, membuat program lebih terstruktur dan efesienSupaya kita dapat mengetahui struktur data yang tepat, tentunya kita harus mengetahui kelebihan dan kekurangan dari masing-masing struktur data.Cara yang terbaik untuk benar-benar dapat memahami masing-masing struktur data adalah membuatnya.


Dalam real world, bahasa/aplikasi yang digunakan tidaklah selalu 
terdapat library untuk struktur data.

Digunakan dalam Aplikasi:
  Sistem basis data (Oracle, SQL Server, dll)
  Menghitung ekspresi: (5 + 2) * 7 (C++/Excel)
  Mencari jarak terpendek antara dua kota (GIS)

Sebagai akibatnya, compiler dapat menggunakan informasi diatas untuk memeriksa legalitas dari berbagai konstruksi. 
Sebagai contoh, penugasan keliru tentang nilai (logis) Boolean untuk variabel aritmatika dapat dideteksi tanpa menjalankan program. 
Semacam ini redundansi dalam teks program ini sangat berguna sebagai bantuan dalam pengembangan program, dan harus dianggap sebagai keuntungan utama dari bahasa programan tingkat tinggi yang lebih baik dari "machine kode"(atau kode perakitan standart yang menggunakan simbolik). 

-Penggunaan Structure-

Struktur (juga dijuluki "record" dalam beberapa bahasa pemrograman tidak lebih dari mengelompokkan bersama beberapa variabel terpisah.


Jadi daripada membuat dan mencoba untuk melacak tiga variabel terpisah, struktur memungkinkan Anda menyimpan beberapa variabel di dalam variabel lain. atau bisa disebut juga koleksi dari variabel yang dinyatakan dengan sebuah nama, dengan sifat setiap variabel dapat memiliki tipe yang berlainan. 


Struktur biasa dipakai untuk mengelompokkan beberapa informasi yang berkaitan menjadi sebuah satu kesatuan.
Jadi jika Anda memiliki tiga variabel -

FirstName, LastName, dan Usia - Anda bisa menyimpannya semua dalam struktur,seperti:

struktur "Orang"
 FirstName sebagai String Dim
 LastName sebagai String Dim
 Umur sebagai Integer Dim
akhir Struktur

Struktur adalah user-defined data type. Anda tidak dapat menggunakan struktur sampai Anda mendeklarasikan variabel untuk mewakili struktur yang seperti ini:

 Struktur "Orang" <--- Karyawan 

Kode ini  menciptakan variabel Karyawan yang sebenarnya mengandung FirstName, LastName, dan variabel Umur.

-Menyimpan Data dalam Struktur-

Untuk menyimpan data dalam struktur, Anda harus
1.  Identifikasi variabel yang mewakili struktur itu.
2. Identifikasi variabel tertentu di dalam struktur untuk digunakan.

Jadi jika Anda ingin menyimpan nama Joe dalam variabel FirstName  dalam Variabel Karyawan, Anda bisa melakukan hal berikut:

Karyawan.FirstName = "Joe"

Dan jika anda ingin menyimpan nomor 24 di dalam variable umur , di dalam variable karyawan, kode yang biasanya anda masukkan ialah:

Karyawan.FirstName = “Joe”
Karyawan.Age = “24”

-Pengambilan Data-

Setelah Anda menyimpan data dalam struktur, Anda selalu dapat mengambilnya lagi. hanya perlu mengidentifikasi

✦ Variabel yang mewakili struktur yang
✦ Nama variabel aktual yang menyimpan data

Misalkan Anda mendefinisikan struktur, sebagai berikut:

struktur "Pekerja"
 Nama sebagai String
 ID sebagai Integer
 Gaji sebagai Single
akhir Struktur

Sebelum Anda dapat menyimpan data dalam suatu struktur, Anda harus terlebih dahulu mendeklarasikan variabel untuk mewakili struktur seperti ini:

Struktur "Pekerja" <---- Karyawan

Sekarang Anda dapat menyimpan dan mengambil data dari struktur, 
sebagai berikut:

‘ This stores a name in the Karyawan structure

Employees.Name = “Jessie Balkins”

Untuk mengambil data dari struktur ini, mengidentifikasi nama 
variabel yang mewakili bahwa struktur dan variabel yang menyimpan 
data seperti ini:

PrintF Karyawan.Name

Hal ini akan mengambil data dalam variabel Nama, disimpan dalam Karyawan variabel struktur, dan mencetak Jessie Balkins di layar.


Struktur hanya cara untuk menjejalkan beberapa variabel ke dalam variabel tunggal. Sebuah struktur dapat terus hanya satu kelompok data yang berhubungan. 

Untuk membuat struktur yang lebih berguna, programmer biasanya menggunakan struktur dengan struktur data lain atau array.

-Pengenalan Algoritma-

A clearly specified set of instructions the computerwill follow to solve a problem

Contoh:
Problem: mencari sebuah integer dalam sebuah arrayterurut
Algoritme: binary search

Jadi,Algoritma adalah barisan langkah-langkah perhitungan dasar yang mengubah masukan (dari beberapa fungsi matematika) menjadi keluaran.

Contoh :
�� Perkalian

Input  :   integer positif a, b
Output :   a X b

Algoritma perkalian :
Contoh kasus : a = 365, b = 24
Metode 1 : 365 * 24 = 365 + (365 * 23)
                    = 730 + (365 * 22)
                      …..
                    = 8760 + (365 * 0)
                    = 8760

Metode 2 :       3 6 5
                   2 4
               -------X
               1 4 6 0
                 7 3 0
               -------X
               8 7 6 0

Manakah algoritma yang lebih baik ?

-Summary-
 struktur data + algoritme = program


 Referensi : Di Translate dan Di rangkum dari buku/makalah ini:
  • Algorithms and Data Structures ©, N. Wirth 1985 (Oberon version: August 2004)
  • Beginning Programming All-In-One Desk Reference for Dummies (ISBN - 0470108541)By Wallace Wang
  • Pengantar Struktur Data & Algoritme, Version 1.0 (Chapt. 1-3), by Denny (denny@cs.ui.ac.id)
  • Pengenalan Struktur Data & Algoritma, Bab 1, by EEPIS-ITS

Tidak ada komentar:

Poskan Komentar