Minggu, 10 Februari 2013

Makalah Struktur Data




A.    Struktur data
a)      Pengenalan sistem computer
Sistem komputer adalah suatu jaringan elektronik yang terdiri dari perangkatlunak dan perangkatkeras yang melakukan tugas tertentu (menerima input, memproses input, menyimpan perintah-perintah, dan menyediakan output dalam bentuk informasi). Selain itu dapat pula diartikan sebagai elemen-elemen yang terkait untuk menjalankan suatu aktivitas dengan menggunakan komputer.
b)      Elemen sistem computer
Elemen dari sistem komputer terdiri dari manusianya (brainware), perangkat lunak (software), set instruksi (instruction set/Instruction Set Architecture), dan perangkat keras (hardware).
Dengan demikian komponen tersebut merupakan elemen yang terlibat dalam suatu sistem komputer. Tentu saja hardware tidak berarti apa-apa jika tidak ada salah satu dari dua lainnya (software dan brainware).
c)      Hardware
Ø  Komputer adalah sebuah mesin yang dapat diprogram untuk menerima data (input), memprosesnya untuk menghasilkan informasi (output), dan kemudian menyimpannya ke media penyimpan (Secondary Storage).
Ø  Input-Process-Output Model
      Input: keyboard, mouse, microphone, camera
      Output: disk file, printer, video monitor, sound card
      Storage: floppy disk, hard disk, zip disk, tape, flash   disk, compact disk, dll
      Process: arithmetic/logical/sorting, dll


d)     Software
Ø  Software (Perangkat Lunak) digunakan untuk memerintahkan mesin untuk melakukan sesuatu.
Ø  Contoh :
      Operating system
      Aplication system
e)      Brainware
Ø  User/pengguna

B.     Instruction set/instruction set architecture
IS/ISA merupakan sebuah spesifikasi dari kumpulan semua kode-kode biner (opcode) yang diimplementasikan dalam bentuk aslinya (native form) dalam sebuah desain prosesor tertentu. Kumpulan opcode tersebut, umumnya disebut sebagai bahasa mesin (machine language) untuk ISA yang bersangkutan.

C.    Paradigma rekayasaperangkat lunak
Ø  Untuk menyelesaikan msalah aktual di dalam sebuah setting industri, rekayasa perangkat lunak atau tim perekayasa harus menggabungkan strategi pengembangan yang melingkupi lapisan proses, metode, dan alat-alat bantu serta fase-fase generik. Strategi ini sering diacukan sebagai model proses atau paradigma rekayasa perangkat lunak. Model proses untuk rekayasa perangkat lunak dipilih berdasarkan sifat aplikasi dan proyeknya, metode dan alat-alat bantu yang akan dipakai, dan kontrol serta penyampaian yang dibutuhkan.


D.    Beda paradigma dan metodologi
Metodologi pengembangan perangkat lunak memberikan kerangka bagi jalur yang harus dilalui aktivitas-aktivias pengembangan, sebagai contoh: waterfall, spiral, prototype dan lain sebagainya.
Sementara paradigma mengacu kepada cara pandang spesifik dalam usaha pencarian solusi, yaitu: menyagkut konseptualisasi permasalahan dan solusi, bukan berkaitan dengan urutan aktivitas penyelesaian.
Algoritma.
Ø  Algoritma adalah urutan aksi-aksi yang dinyatakan dengan jelas dan tidak rancu untuk memecahkan suatu masalah dalam rentang waktu tertentu.
Ø  merupakan kumpulan perintah untuk menyelesaikan suatu masalah. Perintah-perintah ini dapat diterjemahkan secara bertahap dari awal hingga akhir. Masalah tersebut dapat berupa apa saja, dengan catatan untuk setiap masalah, ada kriteria kondisi awal yang harus dipenuhi sebelum menjalankan algoritma. Algoritma akan dapat selalu berakhir untuk semua kondisi awal yang memenuhi kriteria.

E.     Kriteria dalam algoritma
Ø  input
Algoritma harus mempunyai input walaupun itu nol : dalam hidup kita juga harus ada input/masukan juga. Input di kepala, di hati, di telinga dan di dompet.
Ø  output
Algoritma minimal harus mempunyai minimal 1 ouput : kita juga harus punya output tunjukin apa yang kita bisa ”talkless do more”, asal jangan sombong aja nantinya.

Ø  definiteness (pasti)
Algoritma memiliki instruksi yang jelas agar tidak disalah artikan : hidup juga harus punya tujuan yang jelas, gantung lah cita-cita setinggi langit.
Ø  finiteness (ada batas)
Harusnya ada berhentinya/stop : hidup juga ada batasnya jangan ikutin hawa nafsu.
Ø  effectiveness (efektif)
Instruksi haurs efektif : hidup juga harus efektif jangan membuang waktu sia-sia, waktu harus dimanfaat sebaik-baiknya.

Struktur data
Ø  Dalam istilah ilmukomputer, sebuah struktur data adalah cara penyimpanan, penyusunan dan pengaturan data di dalam media penyimpanan komputer sehingga data tersebut dapat digunakan secara efisien.
Ø  Dalam teknik pemrograman, struktur data berarti tata letak data yang berisi kolom-kolom data, baik itu kolom yang tampak oleh pengguna (user) atau pun kolom yang hanya digunakan untuk keperluan pemrograman yang tidak tampak oleh pengguna. Setiap baris dari kumpulan kolom-kolom tersebut dinamakan catatan (record). Lebar kolom untuk data dapat berubah dan bervariasi. Ada kolom yang lebarnya berubah secara dinamis sesuai masukan dari pengguna, dan juga ada kolom yang lebarnya tetap. Dengan sifatnya ini, sebuah struktur data dapat diterapkan untuk pengolahan database (misalnya untuk keperluan data keuangan) atau untuk pengolah kata (word processor) yang kolomnya berubah secara dinamis. Contoh struktur data dapat dilihat pada berkas-berkas lembar-sebar (spreadsheet), pangkal-data (database), pengolahan kata, citra yang dipampat (dikompres), juga pemampatan berkas dengan teknik tertentu yang memanfaatkan struktur data.
F.     DEFINISI ALGORITMA
Terdapat beberapa definisi mengenai kata Algoritma :
Ø  Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis.
Ø  Algoritma adalah urutan logis pengambilan keputusan untuk pemecahan masalah
Ø  Algoritma adalah suatu himpunan hingga dari instruksi-instruksi yang secara jelas memperinci langkah-langkah proses pelaksanaan, dalam pemecahan suatu masalah tertentu, atau suatu kelas masalah tertentu, dengan dituntut pula bahwa himpunan instruksi tersebut dapat dilaksanakan secara mekanik.

G.    ALGORITMA UNTUK SATU KELAS PERSOALAN
Satu persoalan algoritma dispesifikasikan dengan mendeskripsikan kumpulan lengkap instan persoalan dimana alogoritma harus bekerja dan juga dinyatakan mengenai properti-properti keluaran yang harus dimiliki sebagai hasil menjalankan algoritma pada instan-instan tersebut. Algoritma adalah satu prosedur yakni masukkannya suatu instan masukan yang mungkin dan mentranformasi menjadi keluaran yang dikehendaki.
Ciri dan properti algoritma
Ø  Algoritma adalah metode presisi untuk menyelesaikan persoalan. Alogoritma disusun dari sekumpulan langkah berhingga, masingmasing langkah mungkin memerlukan satu operasi atau lebih. Algoritma dirancang untuk menyelesaikan suatu persoalan spesifik dengan usaha paling minimal.



Ciri-ciri algoritma
  1. INPUT – Masukan, terdapat nol masukan atau lebih yang diberikan
  2. OUTPUT – Keluaran, sedikitnya terdapat satu keluaran yang dihasilkan
  3. DEFINITE – Jelas, harus secara sempurnya menyatakan apa yang dilakukanyang dilakukan
  4. EFECTIVE – Efektif, setiap instruksi harus dapat dilakukan secara manual menggunakan pensil dan kertas selama sejumlah waktu yang berhingga.
  5. TERMINATE – berakhir, harus berhenti setelah sejumlahoperasi.

H.    PERANCANGAN ALGORITMA
Terdapat sejumlah strategi umum untuk menuntun menghasilkan algoritma yang efektif menyelesaikan satu kelas persoalan strategi perancangan algoritma yang popular antara lain :
1. Strategi greedy
2. Strategi divide-and conquer
3. Strategi pemrograman dinamis (dynamic programming)
4. Strategi backtracking4. Strategi backtracking
5. Strategi branch-and-bound
6. Strategi pencarian dan penelusuran (search-and-tranversal)
7. Strategi pemrograman linear
8. Strategi pemrograman integer
9. Strategi algoritma genetik
10. Strategi neural network.


Komputer itu bodoh! Kenapa? Karena sebagai programmer, kita harus memberikan perintah hingga sangat detail apa yang harus dikerjakan oleh komputer. Programmer adalah orang yang bertugas untuk menerjemahkan suatu tugas menjadi instruksi detail yang dapat dimengerti oleh komputer. Komputer hanya melakukan apa yang diperintahkan baris demi baris, tetapi komputer tidak bisa berfikir bagaimana melakukan suatu tugas seefisien mungkin.
Untuk itu programmer baru harus dilengkapi dengan cara berfikir dan peralatan yang memungkinkan mereka untuk sukses dalam menerjemahkan suatu tugas menjadi rangkaian perintah yang bisa dimengerti oleh komputer.

Contoh
Ø  Misalnya, kita ambil contoh untuk menghitung rata-rata dari 5 bilangan:
ambil input user untuk bilangan pertama masukkan ke variabel x
ambil input user untuk bilangan kedua tambahkan variabel x dengan bilangan kedua ambil input user untuk bilangan ketiga tambahkan variabel x dengan bilangan ketiga ambil input user untuk bilangan keempat tambahkan variabel x dengan bilangan keempat ambil input user untuk bilangan kelima tambahkan variabel x dengan bilangan kelima bagi variabel x dengan 5 tampilkan hasilnya di layar
Algoritma di atas betul, tetapi terlalu banyak perulangan. Bagaimana jika bilangan yang akan dirata-ratakan ada 100? Kita bisa udah algoritma di atas dengan pseudocode yang lebih mudah dimengerti, misalnya
      while a kurang dari 5
      ambil input user untuk bilangan ke-a
tambahkan nilai x dengan bilangan ke-a  
tambah a dengan 1
bagi variabel x dengan 5
tampilkan di layar

Pengukuran kebaikan algoritma
Ø  Kebaikan algoritma ditentukan oleh :
1.      Seberapa baik algoritma menyelesaikan masalah
2.      Seberapa efisien algoritma menyelesaikan masalah

I.       ANALISIS KUALITATIF
      Analisis kualitatif memeriksa kebenaran algoritma dengan menelusuri algoritma. Penelusuran logis untuk membuktikan kebenaran algoritma. Kualitas algoritma mengharuskan kebenaran boolean: suatu algoritma adalah benar dan salah, tidak ada kondisi di tengah-tengah.
Contoh :
Ø  Algoritma pengurutan data (sorting) tidak dapat disebut sebagai algoritma pengurutan jika algoritma tidak dapat mengurutkan sembarang masukan barisan data.

Analisis Kuantitatifanalisis Kuantitatif
Analisis kuantitatif adalah analisis efisiensi algoritma dengan menghitung kompleksitas komputasi (waktu) dan ruang. Aspek kuantitatif mengukur seberapa besar sumber daya yang diperlukan algoritma. Terdapat dua sumber daya penting yang biasanya diukur:

1.      Seberapa cepat algoritma bekerja
2.      Seberapa ruang yang diperlukan agar algorima bekerja. 
Keduanya menunjukan kompleksitas algortima.

Mengekspresikan algoritma
Terdapat 3 alternatif yang paling sering digunakan,Terdapat 3 alternatif yang paling sering digunakan, yaitu:
1.      Bahasa alamai (bhs. Indonesia, Inggris)
2.      Pseudocode
3.      Bahasa pemrograman

Pencarian
Ada algoritma sederhana yang bisa digunakan untuk mencari suatu item pada array : Lihat setiap array, dan cek apakah isinya sama dengan item yang kita cari. Jika ketemu, maka pencarian selesai. Jika kita sudah melihat semua item dan tidak ada item yang sama, maka kita yakin bahwa item yang kita cari tidak ada dalam array.
Contoh
DALAM BAHASA SQL FUNGSI PENCARIAN DAPAT BERUPA INDEX DATA ATAU BERDASARKAN RECORD YANG LAIN
SELECT * FROM MAHASISWA
{MENAMPILKAN SEMUA DATA PADA TABEL MAHASISWA}
SELECT * FROM MAHASISWA WHERE ID_MAHASISWA = C0610804043



Pengurutan
Salah satu cara sorting yang penting adalah mengatur benda informasi dalam urutan alfabetik sesuai dengan hubungan penyusunan yang telah didefinisikan sebelumnya, misal ketika seseorang mensortir buku-buku di perpustakaan berdasarkan judul, subyek atau penulis (Biasanya diurutkan dalam urutan membesar).
1.      pengurutan penyisipan (insertion sort). Metode ini juga bisa digunakan untuk menjaga agar list selalu dalam urutan tertentu (naik atau turun) sewaktu kita menambah item baru ke dalam list.

CONTOH
2.      Pengurutan pilihan (selection sort). Metode ini mencari item terbesar di dalam list, kemudian memindahkannya ke akhir array -- atau dengan kata lain di tempatnya, karena item terbesar akan berada di akhir array. Setelah item terbesar ditempatkan di tempat yang benar, kita gunakan cara yang sama, yaitu cari item terbesar berikutnya, kemudian letakkan di tempat kedua dari akhir, dan seterusnya.

CONTOH
DALAM BAHASA SQL PENGURUTAN MENGGUNAKAN YANG DIDASARKAN BERDASARKAN ABJAD. SINTAXNYA :
      SELECT * FROM MAHASISWA ORDER BY ID_MAHASISWA ASC

Katergori Perangkat Lunak
Diantaranya :
      Open Source
      Freeware
      Shareware
      Komersil

Kategori Perangkat Keras (berdasarkan fungsinya)
Diantaranya :
q  Input Device
q  Process Device
q  Output Device
q  Backing Storage
q  Periferal

Tahapan Generik yang Dilalui dalam Pengembangan Perangkat Lunak
Ø  Analisis dan spesifikasi masalah
Ø  Perancangan sistem
Ø  Perancangan sistem
Ø  Pengodean atau pemrograman, serta integrasi
Ø  Verifikasi dan validasi
Ø   pemeliharaan sistem

J.      BAHASA PEMROGRAMAN
Pemrograman
q  proses menulis, menguji dan memperbaiki (debug), dan memelihara kode yang membangun sebuah program komputer
q  sebuah seni dalam menggunakan satu atau lebih algoritma yang saling berhubungan dengan menggunakan sebuah bahasa pemrograman tertentu sehingga menjadi sebuah program komputer
Pemrogram yang baik biasanya mengkombinasikan tiga hal tersebut, agar dapat menciptakan program yang efisien, baik dari sisi waktu berjalan (running time), atau memori.

Gaya Pemrograman
q  Guna Ulang
q  Kemampuan Perluasan
q  Ketangguhan

Guna Ulang
q  Jaga agar operasi koheren (berhubungan)
q  Jaga agar operasi berukuran kecil
q  Jaga agar operasi konsisten
q  Pemisahan kebijakan dan implementasi
q  Pemisahan kebijakan dan implementasi
q  Menyedialan cakupan yang seragam
q  Perlebar operasi sebesar mungkin
q  Menghindari informasi global

Kemampuan Perluasan
Ø  Pengkapsulan sebagai kelas.
Enkapsulasi memiliki arti mengelompokkan program kedalam satu unit sehingga program menjadi mudah digunakan
      Pembedaan operasi public dan private
      Menyembunyikan struktur data
      Namapelanggan := dapatnama(datamasuk);
      Writeln(namapelanggan);
      Writeln (Directori(x).nama)

Ketangguhan
Kita memrogram dengan tujuan memperoleh efisiensi penulisan metode, namu tidak boleh mengorbankan ketangguhan. Metode disebut tangguh jika tidak gagal meski menerima parameter yang tidak benar. Ketangguhan melawan bug dapat merupakan keputusan trade-off (bertentangan) dengan tujuan efisiensi.  Ketangguhan terhadap kesalahan pemakai tidak boleh Ketangguhan terhadap kesalahan pemakai tidak boleh dikorbankan hanya untuk memperoleh efisiensi.
Ø  Melindungi dari kesalahan
Ø  Optimasi dilakukan setelah program berjalan benar
Ø  Validasi argumen
Ø  Menghindari batasan yang terlalu dini atau sempit
Ø  Fasilitas debuggung dan monitoring

Petunjuk pemrograman
Ø  Jangan memulai pemrograman bila belum siap
Ø  Jaga agar metode-metode mudah dipahami
Ø  Buat agar metode mudah dibaca
Ø  Gunakan nama yang sama dengan yang digunakan di model objekdi model objek
Ø  Pilihlah nama identifier secara hati-hati
Ø  Gunakan petunjuk pemrograman yang telah disepakati
Ø  Lakukan pemaketan ke modul
Ø  Lakukan dokumentasi terhadap kelas dan metode
Ø  Lakukan publikasi spesifikasi

Kesimpulan
Standar Suatu Program Yang Baik
Ø  Standar Pemecahan masalah “teknik untuk dapat membantu memecahkan masalah antara lain teknik Top Down dan teknik Modular.”
Ø  Standar Penyusunan Program
      Kebenaran logika dan penulisan
      Program yang disusun harus memiliki logika dalam pemecahan masalah. Program yang dibuat harus memiliki ketepatan, ketelitian dan kebenaran sehingga menghasilkan program yang baik.
      Waktu penulisan dan eksekusi programPerawatan dan pengembangan program
Penyusunan program harus mempunyai sifat kesederhanaan dan kejelasan dari program yang nantinya akan dikembangkan dan membantu dalam perawatan.
      Portabilitas
Bahasa pemrograman dan program yang disusun sebaiknya bisa dipakai pada berbagai tipe komputer yang berbeda-beda dan berbagai jenis sistem operasi.

Standar Perawatan Program
Ø  Dokumentasi
Ø  Penulisan Instruksi
      Berikan keterangan untuk awal statement atau instruksi yang tergabung dalam sekelompok statement.
      Awal dan akhir statement dari sekumpulan statement ditulis pada kolom yang sama.
      Gunakan sebaris atau beberapa baris kosong sebagai pemisah.
      Hindari pernyataan untuk Percabangan (IF statement ) yang sangat rumit dan Nested Loop (Loop disalam Loop lain) yang berlebihan.
      Gunakan “kurung buka dan tutup” dalam menulis suatu ekspresi Aritmatika atau logika.
      Gunakan “Spasi” dalam menulis statement atau instruksi.


Sifat Penulisan Program
Program Oriented
Penulisan program yang struktur programnya selalu berubah, apabila kondisi data yang diproses di dalam program tersebut, bertambah volume datanya. Selain itu penulisan program ini bersifat statis dan tidak fleksibel (program animasi)
Data Oriented
Penulisan program yang struktur programnnya tidak selalu berubah, walaupun volume data yang diproses di dalam program tersebut, dalam jumlah besar. Selain itu pula penulisan program ini bersifat dinamis dan mempunyai tingkat fleksibilitas yang tinggi.

Kualitas Bahasa Pemrograman
Ø  Ekspresifitas : Bahasa pemrograman yang baik harus jelas dalam menggambarkan algoritmanya yang dibuat.
Ø  Definitas (dapat didefinisikan dengan baik) : Bahasa Pemrograman dapat didefinisikan dari adanya sintak dan semantic baik. Sintak dan semantic ini haruslah konsisten dan tidak bermakna ganda.
Ø  Tipe data dan Strukturnya : Bahasa pemrograman yang baik harus berkemampuan dalam mendukung berbagai tipe data (integer, string,real). Serta struktur data (array, record,file)
Ø  Modularitas :Bahasa pemrograman yang baik harus memiliki fasilitas sub program. Program yang besar dapat dikerjakan oleh beberapa pemrogram secara bersama-sama yang nantinya dengan mudah dapat digabungkan menjadi sebuah modul saja.
Ø  Adanya Input Output : Bahasa pemrograman yang baik harus dapat mendukung berbagai jenis model file seperti sequential, random, index dsb dalam proses masukan dan keluaran.
Ø  Portabilitas: Bahasa pemrograman yang dapat digunakan pada berbagai tipe mesin computer yang berbeda-beda.
Ø  Efisiensi : Bahasa pemrograman yang dapat mengatur banyaknya instruksi program dalam membatasi waktu tempuh pemrosesan, mengatur jumlah memori yang digunakan program,.
Ø  Interaktif : Bahasa pemrograman yang baik harus mudah dipelajari dan diajarkan pada user. Serta dimengerti tentang proses yang sedang dilakukannya.
Ø  Umum  : Bahasa pemrograman yangn baik harus memiliki jangkauan yang luas untuk berbagai aplikasi pemrograman sehingga dapat bersifat bahasa serbaguna.

K.    ARRAY
Definisi
  1. Koleksi data yang tipenya sama, tersusun dalam bentuk barisan berurutan dan jumlah elemen atau datanya tidak berubah sesuai deklarasi awal.
  2. Struktur data yang mengacu pada sekumpulan elemen yang diakses melalui index

Jenis-jenis araay
      Array 1 Dimensi
      Array 2 Dimensi



KAMUS DATA
      KAMUS
ü  Nama         : array [1..400] of string
ü  Panjang     : array [a...e] of real   
ü  Type TITIK : record < X : real, Y : real>
                        Kurva              : array [0 .. 30] of Titik

Pemrosesan/operasi array
Ø  Input elemen/index ke dalam array
ALGORITMA
For Indeks := 1 to 8 do
 Begin
     write(‘Nilai [indeks] =  ’);readln(indeks[1])
  end;
Menentukan nilai terbesar dari sebuah array
ALGORITMA
Maks = A[1]
For    Indeks := 2 to 8    do
If A[Indeks] > Maks then
Maks = A[Indeks]
End;
Writeln(‘Nilai Terbesar =  , Maks’)

Menjumlahkan nilai array
ALGORITMA
            JUMLAH := 0
            FOR i := 1 to n do
            BEGIN
                        JUMLAH := JUMLAH  + NILAI[I]
            END;

PROSES BENTUK LAIN
ALGORITMA
For    Indeks    := 1 to 8    do
Proses Larik
End;

Panjang array/larik
Panjang = UB - LB + 1
dimana:
UB - upper bound ( indeks terbesar)
LB - lower bound (indeks terkecil)

Contoh :   Seorang pedagang mobil menggunakan larik untuk menyimpan data penjualan dari tahun 1990 sampai dengan tahun 2001.  Berapa panjang (jumlah elemen) larik yang harus disediakan?
            LB = 1990
            UB = 2001
            Jadi panjang = UB – LB + 1 = 2001 – 1990 + 1    =  12
Pengalamatan

LOK(LA[K]) = Awal(LA) + W(K - LB)
 di mana:
LOK(LA[K]) – lokasi elemen dengan indeks K, yang dicari
K                     -- Indeks yang dicari
Awal (LA)      -- Lokasi awal dari larik
W                    – jumlah byte untuk menyimpan 1 elemen larik
LB                   -- lower bound / batas bawah

LOK(LA[K]) = Awal(LA) + W(K - LB)
Contoh:
Misalkan Awal (Jual) = 100 dan W= 4, maka
LOK (JUAL[1990]) = 100
LOK (JUAL[1991]) = 104
LOK (JUAL[1992]) = 108

Berapa lokasi JUAL[2000] ?  untuk mendapat lokasi tersebut 

LOK(LA[K]) = Awal(LA) + W(K - LB)
                        = 100 + 4 * (2000 – 1990)
                        = 140
Ketentuan/rules
Ø  Kumpulkan berbentuk print out
Ø  Dikumpulkan minggu depan
Ø  No copas, couse’ if u do that your value of your task are zero.
Ø  Do it by your own.
Ø  Trust your ability
Ø  Good luck always

L.     RECORD
Sebuah record rekaman disusun olehbeberapa field. Tiap field berisi data daritipe dasar / bentukan tertentu. Recordmempunyai kelebihan untuk menyimpansuatu sekumpulan elemen data yangberbeda-beda tipenya (di banding array).
Contoh , sebuah record dengan empatbuah field
Cara Pendefinisian
Ø  Cara pendeklarasian dari record adalah sbb:

Ø  Mendefinisikan tipe dari record (jumlah field, jenistipe data yang dipakai),
Ø  Mendefinisikan variabel untuk dilakukan operasi.
Sintax
type
nama_record = record
identifier_1 : tipe_data_1;
:
:
identifier_n : tipe_data_n;
end;
var variabel : nama_record;

Contoh
type
Data_mahasiswa = record
Nama : string;
Usia : integer;
Kota : String;
Kodepos : integer;
end;
Var
x: Data_mahasiswa;
Pengaksesan Elemen Record
x.Nama
x.Usia
x.Kota
x.Kodepos

Contoh Program
program RECORD_INTRO;
type tanggal = record
bulan, hari, tahun : integer;
end;
var waktu : tanggal;
begin
waktu.hari :=25;
waktu.bulan:=09;
waktu.tahun:= 1983;
writeln('hari ini adalah
',waktu.hari,':',waktu.bulan,':', waktu.tahun)
end.

Pengunaan With … do
Pernyataan with untuk lebihmenyederhanakan pengaksesan field-fieldpada record. Pemrograman dapatmengakses field cukup denganmenyebutkan nama field-nya saja.
o   x.Nama
x.Usia
x.Kota
x.Kodepos diganti
o   with x do
Begin
Nama
Usia
Kota
Kodepos
End

Contoh
program RECORD_INTRO;
type tanggal = record
bulan, hari, tahun : integer;
end;
var waktu : tanggal;
begin {program utama}
with waktu do {mulai with}
begin
hari :=25;
bulan:=09;
tahun:=1983;
writeln('hari ini adalah ',hari,':',bulan,':', tahun)
end {akhir with}
end.

M.   Tumpukan[stack]
Kumpulan elemen-elemen data yang disimpan dalam satu lajur linier. Kumpulan elemen-elemen data hanya boleh diakses pada satu lokasi saja yaitu posisi atas (top) tumpukan.Elemen-elemen di dalam tumpukan dapat bertipe data integer, real, record dalam bentuk sederhana atau terstruktur.
Const
MAKSTUM = 80 ; {Kapasitas maksimal dari tumpukan}
Type
JenisElemen = char ;
Tumpukan = record
Elemen : array [1 … MAKSTUM] of JenisElemen ;
Atas : 0 … MAKSTUM;
End;
Notasi aritmetik biasa ditulis dalam notasi infix, misalnya a + b – c. Notasi infix mudah dimengerti oleh manusia, hanya saja dalam notasi infix perlu diperhatikan prioritas pengerjaan karena berhubungan dengan hirarki operator pada komputer. Prioritasnya adalah :
1.      Tanda kurung : (…..)
2.      Ekspnensial atau pangkat : ^
3.      Perkalian, pembagian : * , /
4.      Penjumlahan, pengurangan : + , -
(A – B) * (C + D)
1.      Dalam kurung yang paling kiri : (A – B)
2.      Dalam kurung yang paling kanan : (C + D)
3.      Perkalian hasil pengurangan dengan hasil penjumlahan

Notasi INFIX untuk penulisan aritmatik, biasa diubah ke dalam notasi PREFIX atau POSTFIX saat kompilasi. Notasi PREFIX maupun POSTFIX akan lembih mudah dikerjakan oleh komputer, karena tidak perlu mencari urutan pengerjaan sepertai pada notasi INFIX.
PREFIX adalah keadaan dimana simbol operator diletakkan sebelum dua operand. POSTFIX adalah keadaan di mana simbol operator diletakkan sesudah dua operand.

N.    ANTRIAN[QUEUE]
Merupakan suatu struktur data linear. Konsepnya hampir sama dengan tumpukan, perbedaannya adalah operasi penambahan dan penghapusan pada ujung yang berbeda. Penghapusan dilakukan pada bagian depan (front) dan penambahan berlaku pada bagaian belakan (rear).
Elemen-elemen di dalam antrian dapat bertipe data integer, real, record dalam bentuk sederhana atau terstruktur.

Const
MAKSQ = 80 ; {Kapasitas maksimal dari antrian}
Type
JenisElemen = char ;
Antrian = record
item : array [1 … MAKSQ of JenisElemen ;
Depan : 0 … MAKSQ;
Belakang : 0 … MAKSQ;
End;
Q : Antrian



sirkuler.gif
Antrian Sirkuler, prinsipnya sama dengan antrian biasa, untuk mempermudah penggambaran lajur liner digambarkan dalam bentuk melingkar. Untuk penambahan elemen baru pada antrian sirkuler ini, jika BELAKANG = MaksQ = 8, maka BELAKANG diset menjadi 1 (bila Antrian belum penuh)

O.    POINTER
Pengertian Pointer
Pointer (variabel penunjuk) adalah suatu variabel yang berisi alamat memori dari suatuvariabel lain. Alamat ini merupakan lokasi dari obyek lain (biasanya variabel lain) di dalammemori. Contoh, jika sebuah variabel berisi alamat dari variabel lain, variabel pertamadikatakan menunjuk ke variabel kedua
Operator Pointer ada dua, yaitu :
Ø  Operator &
Operator & bersifat unary (hanya memerlukan satu operand saja).
Operator & menghasilkan alamat dari operandnya.
Ø  Operator *
Operator * bersifat unary (hanya memerlukan satu operand saja).
Operator * menghasilkan nilai yang berada pada sebuah alamat.

Deklarasi Pointer

Seperti halnya variabel yang lain, variabel pointer juga harus dideklarasikan terlebih dahulu sebelum digunakan.
Bentuk Umum :
Tipe_data *nama_pointer;

Operasi Pointer

Ø  Operasi Penugasan
Suatu variable pointer seperti halnya variable yang lain, juga bisa mengalami operasipenugasan. Nilai dari suatu variable pointer dapat disalin ke variable pointer yang lain.
Ø  Operasi Aritmatika
Suatu variabel pointer hanya dapat dilakukan operasi aritmatika dengan nilai integersaja. Operasi yang biasa dilakukan adalah operasi penambahan dan pengurangan.Operasi penambahan dengan suatu nilai menunjukkan lokasi data berikutnya (indexselanjutnya) dalam memori. Begitu juga operasi pengurangan.
Ø  Operasi Logika
Suatu pointer juga dapat dikenai operasi logika.


Related Articel:

0 komentar:

Posting Komentar

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Affiliate Network Reviews