• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Kontrak Perkuliahan
 

Kontrak Perkuliahan

on

  • 905 views

Struktur Data

Struktur Data

Statistics

Views

Total Views
905
Views on SlideShare
905
Embed Views
0

Actions

Likes
0
Downloads
23
Comments
0

0 Embeds 0

No embeds

Accessibility

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Kontrak Perkuliahan Kontrak Perkuliahan Presentation Transcript

    • SEMESTER GANJIL 2009/2010
    • STRUKTUR DATA Welcome & Enjoying this class...
    • KONTRAK PERKULIAHAN TEKNIK INFORMATIKA
    • Sistem Penilaian BOBOT RANGE NILAI Kehadiran 10% 85 – 100 A Tugas 20% 70 – 84 B Mid Test 30% 55 – 69 C Final Test 40% 45 – 54 D <45 E
    • Ketentuan Lain :
      • Nilai T diberikan akibat mahasiswa belum menyelesaikan tugasnya dengan alasan yang dapat diterima
      • Batas perbaikan nilai “T” adalah 1 (satu) bulan sejak tanggal dikeluarkan/ diumumkannya nilai tersebut, jika tidak maka secara otomatis nilai “T” menjadi “E”.
      • Mahasiswa yang diperbolehkan mengikuti ujian akhir adalah mereka yang telah mengikuti perkuliahan minimal 75% dari total frekwensi perkuliahan.
    • Disiplin Perkuliahan
      • Setiap mahasiswa diwajibkan mengikuti perkuliahan sesuai jadwal yang telah ditentukan. Toleransi keterlambatan 15 menit setelah pelajaran dimulai.
      • Toleransi keterlambatan Dosen 30 menit (jika tidak ada pemberitahuan sebelumnya). Dalam kondisi ini mahasiswa diperkenankan pulang/ meninggalkan ruang kuliah.
    • Disiplin Perkuliahan
      • Selama perkuliahan berlangsung mahasiswa tidak diperkenankan memakai topi, baju kaos oblong, sandal, jaket dan merokok dalam kelas .
    •  
    • Bahan Bacaan
    •  
    • Struktur Data
      • Struktur Data menyangkut susunan fisik data dalam komputer
      • Struktur Data menyerupai beberapa bentuk teknik kompresi data
        • Agar penyimpanan lebih efesien
        • Agar tersusun lebih terurut
        • Agar data retrieval lebih efektif
    •  
    •  
    • • Struktur data adalah suatu koleksi atau kelompok data yang dapat dikarakterisasikan oleh organisasi serta operasi yang didefinisikan terhadapnya • Struktur data diperlukan dalam perencanaan Algoritma dan penyusunan program sebagai dasar teknik dari Database.
    • • Data secara umum dapat dikategorikan : • Tipe data sederhana atau data sederhana 1. Tunggal :Integer, Real, Boolean, Karakter 2. Majemuk :String • Struktur Data 1. Sederhana :Array dan Record 2. Majemuk Linier :Linier Linked List, Stack, Queue Non Linier :Binary Tree, Binary Search Tree, General Tree, Tree, Graf
    • Tipe Data Integer • Anggota dari himpunan bilangan : • {..., -(n+1), -n, ..., -2, -1, 0, 1, 2, ..., n, n+1, ...} • Operasi dasar yaitu : penjumlahan, pengurangan, perkalian, pembagian dan perpangkatan • Pembagian Integer (DIV) • Hasil pembagian integer DIV adalah sebuah integer (menghilangkan bagian pecahan dari hasil pembagian) Contoh : 27 DIV 4 = 6 • Selain itu terdapat operasi MOD (Modulo) adalah sisa dari pembagian Contoh : 27 MOD 4 = 3 • Operator yang bekerja terhadap sepasang integer (operand) disebut Binary Operator. Sedangkan operator yang hanya bekerja terhadap satu operand saja disebut Unary Operator.
    • Tipe Data Real • Data numerik yang bukan termasuk integer, digolongkan dalam jenis data real. Ditulis menggunakan titik desimal (atau koma desimal). Dimasukkan ke dalam memori komputer memakai sistem floating point, disebut Scientific Notation. • Penyajiannya terdiri dari : pecahan dan eksponen. Contoh : • Di dalam sistem desimal, 123000 = 0.123 * 10 6 • di sini 0.123 adalah mantissa atau pecahan, sedangkan 6 adalah eksponennya. • Secara umum suatu bilangan real X dituliskan M * RE • di sini : M dijadikan pecahan, R adalah radixnya dan E merupakan eksponennya
    • Tipe Data Boolean • Disebut juga jenis data logical. Anggota { true atau false}. • Operator Logika, yaitu : AND, OR, NOT • Operator AND akan menghasilkan nilai true, jika kedua operand bernilai true. • Operator OR akan menghasilkan nilai true, jika salah satu operand bernilai true • Operator NOT merupakan “precedence” dari operator AND dan OR. • Dalam suatu ekspresi yang tidak menggunakan tanda kurung, operator NOT harus dievaluasi sebelum operator AND dan OR. B. Operator Relasional, yaitu : >, <, >=, <=, <> dan = Contoh : 6 < 8 = True 9 < 8 = False
    • Tipe Data karakter • Elemen dari suatu himpunan yang terdiri atas bilangan, abjad dan simbol khusus. • (0,1,...,8,9, A, B, ..., Y,Z, +, -,*,Ö, ...}
    • Operasi string • Barisan hingga karakter yang dibentuk oleh suatu kumpulan dari karakter. • Karakter yang digunakan untuk membentuk suatu string disebut alfabet. Dalam penulisannya, suatu string berada dalam tanda “aphosthrope”. Contoh : • Misal diberikan himpunan alfabet A = {C,D,1}. • String yang dapat dibentuk dari alfabet di atas di antaranya : ‘CD1’,’CDD’,’DDC’,’CDC1’,... Dan sebagainya, termasuk “null string” atau “empty string” • Himpunan tak hingga dari string yang dibentuk oleh alfabet A disebut VOCABULARY, Notasi : VA atau A* • Jika suatu string dibentuk dari alfabet {0,1}, maka string yang terbentuk disebut dengan “ Bit String”.
    • Operasi String
    • LENGTH Nilai dari operasi ini adalah suatu integer yang menunjukkan panjang dari suatu string . Notasi : LENGTH(S) = N (integer) di sini S = String, N = integer Contoh : Jika diberikan string S =‘a1a2 ... aN’ Maka LENGTH(S) = N Jika diberikan string S =“SISTEMINFORMASI” Maka LENGTH(S) = 15 Jika diberikan string S =“SISTEM INFORMASI” Maka LENGTH(S) = 16 Jika diberikan string S = “ABCD20” Maka LENGTH(S) = 6
    •  
    • SUBSTR Operasi ini adalah operasi membentuk string baru, yang merupakan bagian dari string yang diketahui. Notasi : SUBSTR(S, i, j) di sini : S = string yang diketahui i dan j = integer i = posisi awal substring 1 £ i £ LENGTH(S) j = banyak karakter yang diambil 0 £ j £ LENGTH(S) dan 0 £ i+j-1 £ LENGTH(S) Contoh : Diberikan S = ‘a1a2 ... aN’ ; i = 2 ; j= 4 Maka SUBSTR(S,i,j) = SUBSTR(S,2,4) =‘a2a3a4a5’ String S = &quot;Sistem Informasi&quot; SUBSTR(S,i, j) , i = 4 j = 8 SUBSTR(S,4,8) = &quot;tem Info&quot; String S = &quot;Sistem&quot; SUBSTR(S,1,3) = &quot;Sis&quot; LENGTH(SUBSTR(S,1,3)) = 3 String S = &quot;Informasi&quot; SUBSTR(S,4,5) = &quot;ormas&quot; LENGTH(SUBSTR(S,4,5)) = 5
    • INSERT Operasi ini adalah untuk menyisipkan suatu string ke dalam string lain. Bentuk umumnya adalah : INSERT(S1,S2,i). S1 dan S2 masing-masing adalah suatu string dan i adalah posisi awal S2 pada S1. Contoh : Misalkan : S1 = ‘a1a2 ... aN’ S2 = ‘b1b2 ... bM’ INSERT(S1, S2,3) = ‘a1a2b1b2 ... bMa3a4... aN’ String S1 = &quot;Sistem&quot; String S2 = &quot;Informasi&quot; INSERT(S1,S2,4) = “SisInformasitem” INSERT(S2,S1,4) = “InfSistemormasi
      • Bagaimana cara mengatasi masalah implementasi program dengan komputer?
        • Pemahaman masalah secara menyeluruh dan persiapan data
        • Keputusan operasi-operasi yang dilakukan terhadap data
        • Penyimpanan data-data pada memori sehingga tersimpan dan terstruktur secara logis, operasinya efisien
        • Pengambilan keputusan terhadap bahasa pemrograman mana yang paling cocok untuk jenis data yang ada
    • Perbedaan Tipe Data, Obyek Data & Struktur Data (1)
      • Tipe data adalah jenis data yang mampu ditangani oleh suatu bahasa pemrograman pada komputer.
      • Tiap-tiap bahasa pemrograman memiliki tipe data yang memungkinkan:
        • Deklarasi terhadap variabel tipe data tersebut
        • Menyediakan kumpulan operasi yang mungkin terhadap variabel bertipe data tersebut
        • Jenis obyek data
        • Contoh tipe data di C? Java? Pascal?
    • Perbedaan Tipe Data, Obyek Data & Struktur Data (2)
      • Obyek Data adalah kumpulan elemen yang mungkin untuk suatu tipe data tertentu.
        • 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 sah sesuai 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 Struktur Data dan Algoritma
      • 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.
    • Ciri Algoritma
      • Ciri algoritma yang baik
      • - Input: ada minimal 0 input atau lebih
        • Ouput: ada minimal 1 output atau lebih
        • Definite: ada kejelasan apa yang dilakukan
        • Efective: langkah yang dikerjakan harus efektif
        • Terminate: langkah harus dapat berhenti (stop) secara jelas
    • ADT dan UDT atau Tipe Data Bentukan
      • Bahasa pemrograman bisa memiliki tipe data:
        • Built-in : sudah tersedia oleh bahasa pemrograman tersebut
          • Tidak berorientasi pada persoalan yang dihadapi.
        • UDT : User Defined Type, dibuat oleh pemrogram.
          • Mendekati penyelesaian persoalan yang dihadapi
          • Contoh: record pada Pascal, struct pada C.
        • ADT : Abstract Data Type
          • memperluas konsep UDT dengan menambahkan pengkapsulan atau enkapsulasi, berisi sifat-sifat dan operasi-operasi yang bisa dilakukan terhadap kelas tersebut.
          • Contoh: class pada Java
    • UDT (2)
      • Bahasa C memiliki tipe data numerik dan karakter (seperti int, float, char dan lain-lain). Disamping itu juga memiliki tipe data enumerasi dan structure. Bagaimana jika kita ingin membuat tipe data baru?
      • Untuk pembuatan tipe data baru digunakan keyword typedef
      • Bentuk umum:
      • typedef <tipe_data_lama> <tipe_data_baru>;
    • Program
      • Contoh:
      • #include <stdio.h>
      • #include <conio.h>
      • typedef int angka;
      • typedef float pecahan;
      • typedef char huruf;
      • void main(){
      • clrscr();
      • angka umur;
      • pecahan pecah;
      • huruf h;
          • huruf nama[10];
      • printf(&quot;masukkan umur anda : &quot;);scanf(&quot;%d&quot;,&umur);
      • printf(&quot;Umur anda adalah %d&quot;,umur);
      • printf(&quot; masukkan bilangan pecahan : &quot;);scanf(&quot;%f&quot;,&pecah);
      • printf(&quot;Bilangan pecahan %f&quot;,pecah);
      • printf(&quot; masukkan huruf : &quot;);h=getche();
      • printf(&quot; Huruf anda %c&quot;,h);
      • printf(&quot; masukkan nama : &quot;);scanf(&quot;%s&quot;,nama);
      • printf(&quot;Nama anda %s&quot;,nama);
      • getch();
      • }
    • Hasil Program
    • Struct / record
      • Struct adalah tipe data bentukan yang berisi kumpulan variabel-variabel yang bernaung dalam satu nama yang sama dan memiliki kaitan satu sama lain.
      • Berbeda dengan array hanya berupa kumpulan variabel yang bertipe data sama, struct bisa memiliki variabel-variabel yang bertipe data sama atau berbeda, bahkan bisa menyimpan variabel yang bertipe data array atau struct itu sendiri.
      • Variabel-variabel yang menjadi anggota struct disebut dengan elemen struct.
    • Bentuk Umum
      • Bentuk umum:
      • typedef struct <nama_struct> {
      • tipe_data <nama_var>;
      • tipe_data <nama_var>;
      • ....
      • }
    • Pendeklarasian dan penggunaan Struct (1) (menggunakan typedef )
      • typedef struct Mahasiswa {
      • char NIM[8];
      • char nama[50];
      • float ipk;
      • };
      • untuk menggunakan struct Mahasiswa dengan membuat variabel mhs dan mhs2
      • Mahasiswa mhs,mhs2;
      • untuk menggunakan struct Mahasiswa dengan membuat variabel array m;
      • Mahasiswa m[100];
    • Pendeklarasian dan penggunaan Struct (2) (tanpa menggunakan typedef )
      • struct {
      • char NIM[8];
      • char nama[50];
      • float ipk;
      • } mhs;
      • Berarti kita sudah mempunyai variabel mhs yang bertipe data struct seperti diatas.
    • Cara penggunaan struct dan pengaksesan elemen-elemennya
      • Penggunaan/pemakaian tipe data struct dilakukan dengan membuat suatu variabel yang bertipe data struct tersebut
      • Pengaksesan elemen struct dilakukan secara individual dengan menyebutkan nama variabel struct diikuti dengan operator titik (.)
      • Misalnya dengan struct mahasiswa seperti contoh di atas, kita akan akses elemen-elemennya seperti contoh berikut:
    • Program #include <stdio.h> #include <conio.h> //Pendeklarasian tipe data baru struct Mahasiswa typedef struct Mahasiswa{ char NIM[9]; char nama[30]; float ipk; }Mahasiswa; void main(){ //Buat variabel mhs bertipe data Mahasiswa Mahasiswa mhs; clrscr(); printf(&quot;NIM = &quot;);scanf(&quot;%s&quot;,mhs.NIM); printf(&quot;Nama = &quot;);scanf(&quot;%s&quot;,mhs.nama); printf(&quot;IPK = &quot;);scanf(&quot;%f&quot;,&mhs.ipk); printf(&quot;Data Anda : &quot;); printf(&quot;NIM : %s &quot;,mhs.NIM); printf(&quot;Nama : %s &quot;,mhs.nama); printf(&quot;IPK : %f &quot;,mhs.ipk); getch(); }
    • Hasil
    • Program
      • #include <stdio.h>
      • #include <conio.h>
      • #define phi 3.14
      • //langsung dianggap variabel 'lingkaran'
      • struct {
      • float jari2;
      • float keliling;
      • float luas;
      • } lingkaran;
      • //fungsi void untuk menghitung luas ingkaran
      • void luasLingkaran(){
      • //langsung menggunakan luas lingkaran asli
      • lingkaran.luas = lingkaran.jari2 * lingkaran.jari2 * phi;
      • printf(&quot; Luas lingkaran = %f&quot;,lingkaran.luas);
      • }
      • //fungsi yang mengembalikan nilai float untuk menghitung keliling lingkaran
      • float kelLingkaran(float j){
      • return 2*phi*lingkaran.jari2;
      • }
      • int main(){
      • clrscr();
      • printf(&quot;Jari-jari = &quot;);scanf(&quot;%f&quot;,&lingkaran.jari2);
      • //panggil fungsi luasLingkaran
      • luasLingkaran();
      • //panggil fungsi keliling, nilai kembaliannya dikirim ke keliling lingkaran asli
      • lingkaran.keliling = kelLingkaran(lingkaran.jari2);
      • //tampilkan keliling lingkaran asli
      • printf(&quot; Keliling lingkaran = %f&quot;,lingkaran.keliling);
      • getch();
      • }
    • Hasil
    • Struct yang berisi struct lain #include <stdio.h> #include <conio.h> typedef struct Date{ int dd; int mm; int yyyy; }Date; typedef struct Time{ int h; int m; int s; }Time; typedef struct Login{ int ID; Date tglLogin; Time waktuLogin; }Login; int main(){ Login user1; printf(&quot;USER 1 &quot;); printf(&quot;ID : &quot;);scanf(&quot;%d&quot;,&user1.ID); printf(&quot;Tanggal Login &quot;); printf(&quot;Hari : &quot;);scanf(&quot;%d&quot;,&user1.tglLogin.dd); printf(&quot;Bulan : &quot;);scanf(&quot;%d&quot;,&user1.tglLogin.mm); printf(&quot;Tahun : &quot;);scanf(&quot;%d&quot;,&user1.tglLogin.yyyy); printf(&quot;Waktu Login &quot;); printf(&quot;Jam : &quot;);scanf(&quot;%d&quot;,&user1.waktuLogin.h); printf(&quot;Menit : &quot;);scanf(&quot;%d&quot;,&user1.waktuLogin.m); printf(&quot;Detik : &quot;);scanf(&quot;%d&quot;,&user1.waktuLogin.s); printf(&quot;Terimakasih &quot;); printf(&quot;Data Anda : &quot;); printf(&quot;ID : %d &quot;,user1.ID); printf(&quot;Date : %d - %d -%d &quot;,user1.tglLogin.dd,user1.tglLogin.mm,user1.tglLogin.yyyy); printf(&quot;ID :%d:%d:%d &quot;,user1.waktuLogin.h,user1.waktuLogin.m,user1.waktuLogin.s); getch(); }
    • Hasil
    • Array of Struct #include <stdio.h> #include <conio.h> typedef struct Date{ int dd; int mm; int yyyy; }Date; typedef struct Time{ int h; int m; int s; }Time; typedef struct Login{ int ID; Date tglLogin; Time waktuLogin; }Login; int main(){ Login user[3]; //3 user for(int i=0;i<3;i++){ printf(&quot; USER ke-%d &quot;,i+1); printf(&quot;ID : &quot;);scanf(&quot;%d&quot;,&user[i].ID); printf(&quot;Tanggal Login &quot;); printf(&quot;Hari : &quot;);scanf(&quot;%d&quot;,&user[i].tglLogin.dd); printf(&quot;Bulan : &quot;);scanf(&quot;%d&quot;,&user[i].tglLogin.mm); printf(&quot;Tahun : &quot;);scanf(&quot;%d&quot;,&user[i].tglLogin.yyyy); printf(&quot;Waktu Login &quot;); printf(&quot;Jam : &quot;);scanf(&quot;%d&quot;,&user[i].waktuLogin.h); printf(&quot;Menit : &quot;);scanf(&quot;%d&quot;,&user[i].waktuLogin.m); printf(&quot;Detik : &quot;);scanf(&quot;%d&quot;,&user[i].waktuLogin.s); printf(&quot;Terimakasih Atas Pengisiannya &quot;); printf(&quot; Data User ke-%d: &quot;,i+1); printf(&quot;Login ID : %d &quot;,user[i].ID); printf(&quot;Login Date : %d - %d - %d &quot;,user[i].tglLogin.dd,user[i].tglLogin.mm,user[i].tglLogin.yyyy); printf(&quot;Login Time : %d:%d:%d &quot;,user[i].waktuLogin.h,user[i].waktuLogin.m,user[i].waktuLogin.s); } getch(); }
    • Hasil
    • Operasi data pada array of struct
      • Tambah
      • Hapus
      • Edit
    • TUGAS
      • Buat algoritma dengan menggunkan simbol untuk menentukan nilai mahasiswa dengan ketentuan sbb:
        • Nilai 85 ke atas A
        • Nilai 70-84 B
        • Nilai 55-69 C
        • Nilai 45-54 D
        • Kurang dari E
      • Buat Type data bentukan dari biodata anda minimal 7 variabel
      • Tugas Dikumpul Tanggal 2 Nopember 2009