Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

SEMESTER GANJIL 2009/2010.

Presentasi serupa


Presentasi berjudul: "SEMESTER GANJIL 2009/2010."— Transcript presentasi:

1 SEMESTER GANJIL 2009/2010

2 Welcome & Enjoying this class...
STRUKTUR DATA

3 KONTRAK PERKULIAHAN TEKNIK INFORMATIKA

4 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

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

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

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

8

9 Bahan Bacaan

10

11 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

12

13

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

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

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

17 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, = * 10 6 • di sini 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

18 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

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

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

21 Operasi String

22 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

23

24 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 = "Sistem Informasi" SUBSTR(S,i, j) , i = 4 j = 8 SUBSTR(S,4,8) = "tem Info" String S = "Sistem" SUBSTR(S,1,3) = "Sis" LENGTH(SUBSTR(S,1,3)) = 3 String S = "Informasi" SUBSTR(S,4,5) = "ormas" LENGTH(SUBSTR(S,4,5)) = 5

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

26 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

27 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 yang mungkin Contoh tipe data di C? Java? Pascal? .NET?

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

29 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 ( s/d 32767) dan jenis operasi yang diperbolehkan adalah +, -, *, /, mod, ceil, floor, <, >, != dsb. Struktur data = obyek data + [operasi manipulasi data]

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

31 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

32 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

33 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>;

34 Program #include <conio.h> typedef int angka;
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(); }

35 Hasil Program

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

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

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

39 Pendeklarasian dan penggunaan Struct (2) (tanpa menggunakan typedef)
char NIM[8]; char nama[50]; float ipk; } mhs; Berarti kita sudah mempunyai variabel mhs yang bertipe data struct seperti diatas.

40 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:

41 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("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(); }

42 Hasil

43 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("\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();

44 Hasil

45 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("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(); }

46 Hasil

47 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("\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();

48 Hasil

49 Operasi data pada array of struct
Tambah Hapus Edit

50 LATIHAN Buatlah program menu yang berisi data-data KTP penduduk yang disimpan dalam array struct 1 dimensi dan dapat dilakukan penambahan data, pencarian data, penampilan data dan penghapusan data.


Download ppt "SEMESTER GANJIL 2009/2010."

Presentasi serupa


Iklan oleh Google