50

Kontrak Perkuliahan

Embed Size (px)

DESCRIPTION

Struktur Data

Citation preview

Page 1: Kontrak Perkuliahan
Page 2: Kontrak Perkuliahan

STRUKTUR STRUKTUR DATADATA

Page 3: Kontrak Perkuliahan

KONTRAK KONTRAK PERKULIAHANPERKULIAHAN

TEKNIK INFORMATIKATEKNIK INFORMATIKA

Page 4: Kontrak Perkuliahan

Sistem PenilaianSistem 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

Page 5: Kontrak Perkuliahan

Ketentuan Lain :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.

Page 6: Kontrak Perkuliahan

Disiplin 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.

Page 7: Kontrak Perkuliahan

Disiplin PerkuliahanDisiplin Perkuliahan

• Selama perkuliahan berlangsung mahasiswa tidak diperkenankan memakai topi, baju kaos oblong, sandal, jaket dan merokok dalam kelas.

Page 8: Kontrak Perkuliahan
Page 9: Kontrak Perkuliahan

Bahan BacaanBahan Bacaan

Page 10: Kontrak Perkuliahan
Page 11: Kontrak Perkuliahan

Struktur DataStruktur 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

Page 12: Kontrak Perkuliahan
Page 13: Kontrak Perkuliahan
Page 14: Kontrak Perkuliahan

• 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.

Page 15: Kontrak Perkuliahan

• Data secara umum dapat dikategorikan :• Tipe data sederhana atau data sederhana1. Tunggal :Integer, Real, Boolean, Karakter2. Majemuk :String• Struktur Data1. Sederhana :Array dan Record2. MajemukLinier :Linier Linked List, Stack,QueueNon Linier :Binary Tree, Binary Search Tree, General Tree, Tree, Graf

Page 16: Kontrak Perkuliahan

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 pembagianContoh : 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.

Page 17: Kontrak Perkuliahan

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

Page 18: Kontrak Perkuliahan

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

Page 19: Kontrak Perkuliahan

Tipe Data karakter• Elemen dari suatu himpunan yang terdiri atas bilangan, abjad dan simbol khusus.• (0,1,...,8,9, A, B, ..., Y,Z, +, -,*,Ö, ...}

Page 20: Kontrak Perkuliahan

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”.

Page 21: Kontrak Perkuliahan

Operasi StringOperasi String

Page 22: Kontrak Perkuliahan

LENGTHNilai dari operasi ini adalah suatu integer yang menunjukkan panjangdari suatu string .Notasi : LENGTH(S) = N (integer) di sini S = String, N = integerContoh :Jika diberikan string S =‘a1a2 ... aN’Maka LENGTH(S) = NJika diberikan string S =“SISTEMINFORMASI”Maka LENGTH(S) = 15Jika diberikan string S =“SISTEM INFORMASI”Maka LENGTH(S) = 16Jika diberikan string S = “ABCD20”Maka LENGTH(S) = 6

Page 23: Kontrak Perkuliahan
Page 24: Kontrak Perkuliahan

SUBSTROperasi 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 = integeri = posisi awal substring 1 £ i £ LENGTH(S)j = banyak karakter yang diambil0 £ j £ LENGTH(S) dan 0 £ i+j-1 £ LENGTH(S)Contoh :Diberikan S = ‘a1a2 ... aN’ ; i = 2 ; j= 4Maka SUBSTR(S,i,j) = SUBSTR(S,2,4) =‘a2a3a4a5’String S = "Sistem Informasi"SUBSTR(S,i, j) , i = 4 j = 8SUBSTR(S,4,8) = "tem Info"String S = "Sistem"SUBSTR(S,1,3) = "Sis"LENGTH(SUBSTR(S,1,3)) = 3String S = "Informasi"SUBSTR(S,4,5) = "ormas"LENGTH(SUBSTR(S,4,5)) = 5

Page 25: Kontrak Perkuliahan

INSERTOperasi 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 = "Sistem"String S2 = "Informasi"INSERT(S1,S2,4) = “SisInformasitem”INSERT(S2,S1,4) = “InfSistemormasi

Page 26: Kontrak Perkuliahan

• 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

Page 27: Kontrak Perkuliahan

Perbedaan Tipe Data, Obyek Data & Perbedaan Tipe Data, Obyek Data &

Struktur DataStruktur Data (1) (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?

Page 28: Kontrak Perkuliahan

Perbedaan Tipe Data, Obyek Data & Perbedaan Tipe Data, Obyek Data &

Struktur DataStruktur Data (2) (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.

Page 29: Kontrak Perkuliahan

Aktivitas Struktur DataAktivitas 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]

Page 30: Kontrak Perkuliahan

Hubungan Struktur Data dan Hubungan Struktur Data dan AlgoritmaAlgoritma

• 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.

Page 31: Kontrak Perkuliahan

Ciri AlgoritmaCiri 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

Page 32: Kontrak Perkuliahan

ADT dan UDT atau Tipe Data ADT dan UDT atau Tipe Data BentukanBentukan

• 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

Page 33: Kontrak Perkuliahan

UDT (2)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>;

Page 34: Kontrak Perkuliahan

ProgramProgram• 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("masukkan umur anda : ");scanf("%d",&umur);• printf("Umur anda adalah %d",umur);• printf("\nmasukkan bilangan pecahan : ");scanf("%f",&pecah);• printf("Bilangan pecahan %f",pecah);• printf("\nmasukkan huruf : ");h=getche();• printf("\nHuruf anda %c",h);• printf("\nmasukkan nama : ");scanf("%s",nama);• printf("Nama anda %s",nama);• getch();• }

Page 35: Kontrak Perkuliahan

Hasil ProgramHasil Program

Page 36: Kontrak Perkuliahan

Struct / recordStruct / 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.

Page 37: Kontrak Perkuliahan

Bentuk UmumBentuk Umum

• Bentuk umum:• typedef struct <nama_struct> {• tipe_data <nama_var>;• tipe_data <nama_var>;• ....• }

Page 38: Kontrak Perkuliahan

Pendeklarasian dan penggunaan Struct Pendeklarasian dan penggunaan Struct (1) (menggunakan (1) (menggunakan typedeftypedef))

• 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];

Page 39: Kontrak Perkuliahan

Pendeklarasian dan penggunaan Struct Pendeklarasian dan penggunaan Struct (2) (tanpa menggunakan (2) (tanpa menggunakan typedeftypedef))

• struct {• char NIM[8];• char nama[50];• float ipk;• } mhs;

• Berarti kita sudah mempunyai variabel mhs yang bertipe data struct seperti diatas.

Page 40: Kontrak Perkuliahan

Cara penggunaan struct dan Cara penggunaan struct dan pengaksesan elemen-elemennyapengaksesan 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:

Page 41: Kontrak Perkuliahan

ProgramProgram#include <stdio.h>#include <conio.h>//Pendeklarasian tipe data baru struct Mahasiswatypedef struct Mahasiswa{char NIM[9];char nama[30];float ipk;}Mahasiswa;void main(){//Buat variabel mhs bertipe data MahasiswaMahasiswa mhs;clrscr();printf("NIM = ");scanf("%s",mhs.NIM);printf("Nama = ");scanf("%s",mhs.nama);printf("IPK = ");scanf("%f",&mhs.ipk);printf("Data Anda : \n");printf("NIM : %s\n",mhs.NIM);printf("Nama : %s\n",mhs.nama);printf("IPK : %f\n",mhs.ipk);getch();}

Page 42: Kontrak Perkuliahan

HasilHasil

Page 43: Kontrak Perkuliahan

ProgramProgram• #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("\nLuas lingkaran = %f",lingkaran.luas);• }• //fungsi yang mengembalikan nilai float untuk menghitung keliling lingkaran• float kelLingkaran(float j){• return 2*phi*lingkaran.jari2;• }• int main(){• clrscr();• printf("Jari-jari = ");scanf("%f",&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("\nKeliling lingkaran = %f",lingkaran.keliling);• getch();• }

Page 44: Kontrak Perkuliahan

HasilHasil

Page 45: Kontrak Perkuliahan

Struct yang berisi struct lainStruct 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("USER 1\n");printf("ID : ");scanf("%d",&user1.ID);printf("Tanggal Login\n");printf("Hari : ");scanf("%d",&user1.tglLogin.dd);printf("Bulan : ");scanf("%d",&user1.tglLogin.mm);printf("Tahun : ");scanf("%d",&user1.tglLogin.yyyy);printf("Waktu Login\n");printf("Jam : ");scanf("%d",&user1.waktuLogin.h);printf("Menit : ");scanf("%d",&user1.waktuLogin.m);printf("Detik : ");scanf("%d",&user1.waktuLogin.s);printf("Terimakasih\n");printf("Data Anda :\n");printf("ID : %d\n",user1.ID);printf("Date : %d - %d -%d\n",user1.tglLogin.dd,user1.tglLogin.mm,user1.tglLogin.yyyy);printf("ID :%d:%d:%d\n",user1.waktuLogin.h,user1.waktuLogin.m,user1.waktuLogin.s);getch();}

Page 46: Kontrak Perkuliahan

HasilHasil

Page 47: Kontrak Perkuliahan

Array of StructArray 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("\nUSER ke-%d\n",i+1); printf("ID : ");scanf("%d",&user[i].ID); printf("Tanggal Login\n"); printf("Hari : ");scanf("%d",&user[i].tglLogin.dd); printf("Bulan : ");scanf("%d",&user[i].tglLogin.mm); printf("Tahun : ");scanf("%d",&user[i].tglLogin.yyyy); printf("Waktu Login\n"); printf("Jam : ");scanf("%d",&user[i].waktuLogin.h); printf("Menit : ");scanf("%d",&user[i].waktuLogin.m); printf("Detik : ");scanf("%d",&user[i].waktuLogin.s); printf("Terimakasih Atas Pengisiannya\n"); printf("\nData User ke-%d:\n",i+1); printf("Login ID : %d\n",user[i].ID); printf("Login Date : %d - %d - %d\n",user[i].tglLogin.dd,user[i].tglLogin.mm,user[i].tglLogin.yyyy); printf("Login Time : %d:%d:%d\n",user[i].waktuLogin.h,user[i].waktuLogin.m,user[i].waktuLogin.s); } getch();}

Page 48: Kontrak Perkuliahan

HasilHasil

Page 49: Kontrak Perkuliahan

Operasi data pada array of structOperasi data pada array of struct

• Tambah

• Hapus

• Edit

Page 50: Kontrak Perkuliahan

TUGASTUGAS

• 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