Presentasi 3 Tipe Data

23
Algoritma dan Algoritma dan Pemrograman Pemrograman (Pertemuan 03) (Pertemuan 03) Yance Sonatha, S.Kom Yance Sonatha, S.Kom

Transcript of Presentasi 3 Tipe Data

Page 1: Presentasi 3 Tipe Data

Algoritma dan Algoritma dan PemrogramanPemrograman

(Pertemuan 03)(Pertemuan 03)

Yance Sonatha, S.KomYance Sonatha, S.Kom

Page 2: Presentasi 3 Tipe Data

PendefinisianPendefinisiandandan

Tipe DataTipe Data

Page 3: Presentasi 3 Tipe Data

VARIABELVARIABEL

Variabel adalah suatu tempat atau Variabel adalah suatu tempat atau “wadah data” untuk menampung “wadah data” untuk menampung suatu nilaisuatu nilai

Variabel yang akan dipakai harus Variabel yang akan dipakai harus “dipesan” dulu dengan “dipesan” dulu dengan dideklarasikan dalam deklarasi dideklarasikan dalam deklarasi variabel (kamus)variabel (kamus)

Page 4: Presentasi 3 Tipe Data

Aturan Penulisan VariabelAturan Penulisan Variabel Nama variabel diawali dengan huruf. Nama variabel diawali dengan huruf.

Karakter kedua dan selanjutnya bisa Karakter kedua dan selanjutnya bisa berupa kombinasi angka dan huruf, tidak berupa kombinasi angka dan huruf, tidak boleh tanda baca lain dan spasiboleh tanda baca lain dan spasi

- contoh : Nilai1 nilai_fisika- contoh : Nilai1 nilai_fisika - contoh salah : 1nilai 1234a- contoh salah : 1nilai 1234a

Tidak boleh menggunakan operator hitung Tidak boleh menggunakan operator hitung ( + - / * %) dan juga tidak boleh ( + - / * %) dan juga tidak boleh menggunakan karakter-karakter khusus ( : menggunakan karakter-karakter khusus ( : ; , # @ $ & dan titik); , # @ $ & dan titik)

Page 5: Presentasi 3 Tipe Data

Aturan Penulisan VariabelAturan Penulisan Variabel(Sambungan)(Sambungan)

Tidak boleh memakai reserved words Tidak boleh memakai reserved words (kata-kata yang sudah mempunyai (kata-kata yang sudah mempunyai arti di dalam bahasa pemrograman)arti di dalam bahasa pemrograman)

Cacah karakter dalam variabel bisa Cacah karakter dalam variabel bisa sembarang, tetapi dalam beberapa sembarang, tetapi dalam beberapa versi semua karakter setelah versi semua karakter setelah karakter ke delapan diabaikankarakter ke delapan diabaikan

Page 6: Presentasi 3 Tipe Data

KONSTANTAKONSTANTA

Konstanta adalah data yang isinya tetap dan tidak Konstanta adalah data yang isinya tetap dan tidak berubah-ubah dalam programberubah-ubah dalam program

Operator matematikaOperator matematika

Operand-operand yang dipergunakan untuk operasi Operand-operand yang dipergunakan untuk operasi penjumlahan, pengurangan, perkalian, pembagian penjumlahan, pengurangan, perkalian, pembagian dan sisa pembagian (modulus) yang berbeda untuk dan sisa pembagian (modulus) yang berbeda untuk real maupun integerreal maupun integer

Operator logikaOperator logika

digunakan untuk mengoperasikan operand digunakan untuk mengoperasikan operand (konstanta, variabel,dll) secara logis. Operator-(konstanta, variabel,dll) secara logis. Operator-operator logika yang umum dalam bahasa operator logika yang umum dalam bahasa pemrograman adalah AND, OR, NOTpemrograman adalah AND, OR, NOT

Page 7: Presentasi 3 Tipe Data

TIPE DATATIPE DATA

Tipe adalah pola representasi suatu Tipe adalah pola representasi suatu data dalam komputer. Gunanya data dalam komputer. Gunanya untuk mendefinisikan objek yang untuk mendefinisikan objek yang akan diprogramakan diprogram

Ada tipe dasar yang sudah diberikan Ada tipe dasar yang sudah diberikan dan siap dipakai, ada tipe bentukan dan siap dipakai, ada tipe bentukan yang dibentuk dari tipe dasar atau yang dibentuk dari tipe dasar atau dari tipe bentukan/ komposisi yang dari tipe bentukan/ komposisi yang sudah dibuatsudah dibuat

Page 8: Presentasi 3 Tipe Data

TIPE DASAR(ORDINARY)TIPE DASAR(ORDINARY) Tipe dasar yang tersedia dalam suatu bahasa Tipe dasar yang tersedia dalam suatu bahasa

adalah tipe yang sudah didefinisikan,maka adalah tipe yang sudah didefinisikan,maka pemrogram dapat memakai nama tipe dan pemrogram dapat memakai nama tipe dan semua operator yang tersedia dan mentaati semua operator yang tersedia dan mentaati domain nilai yang disimpan dalam tipe tersebutdomain nilai yang disimpan dalam tipe tersebut

Tipe dasar biasanya tersedia dalam suatu bahasa Tipe dasar biasanya tersedia dalam suatu bahasa pemrograman dan digunakan dalam notasi pemrograman dan digunakan dalam notasi algoritmik adalah :algoritmik adalah :

- bilangan logika/boolean- bilangan logika/boolean - bilangan bulat- bilangan bulat - bilangan riil- bilangan riil - karakter- karakter

Page 9: Presentasi 3 Tipe Data

Bilangan Logika / BooleanBilangan Logika / Boolean

Nama : BooleanNama : Boolean Domain [true, false]Domain [true, false] Contoh konstanta : true falseContoh konstanta : true false Operator yang digunakanOperator yang digunakan

KELOMPOK Op ARTI HASIL

Operator Logik

and dan boolean

or atau boolean

Xor ekslusive or boolean

not negasi boolean

EQ ekivalensi boolean

nEQ negasi dari ekivalensi boolean

Page 10: Presentasi 3 Tipe Data

Hasil Operasi Operator BooleanHasil Operasi Operator Boolean

OperasiOperasi HasilHasil OperasiOperasi HasilHasil

true AND truetrue AND true truetrue true OR truetrue OR true truetrue

true AND falsetrue AND false falsefalse true OR falsetrue OR false truetrue

false AND truefalse AND true falsefalse false OR truefalse OR true truetrue

False AND False AND falsefalse

falsefalse false OR falsefalse OR false falsefalse

not falsenot false truetrue not truenot true FalseFalse

true EQ truetrue EQ true truetrue true XOR truetrue XOR true falsefalse

true EQ falsetrue EQ false falsefalse true XOR falsetrue XOR false truetrue

false EQ truefalse EQ true falsefalse false XOR truefalse XOR true truetrue

false EQ falsefalse EQ false truetrue false XOR falsefalse XOR false falsefalse

Page 11: Presentasi 3 Tipe Data

Bilangan Bulat / IntegerBilangan Bulat / Integer Nama : IntegerNama : Integer Domain : himpunan semua bilangan bulatDomain : himpunan semua bilangan bulat Contoh konstanta : 0 -3 123 -89 999Contoh konstanta : 0 -3 123 -89 999 Bilangan integer mempunyai keterurutan. Bilangan integer mempunyai keterurutan.

Keterurutan ini didefinisikan dengan:Keterurutan ini didefinisikan dengan: - suksesor x adalah x+1- suksesor x adalah x+1 - predesesor x adalah x-1- predesesor x adalah x-1 Contoh :Contoh : - suksesor 0 adalah 1 - predesesor -1 adalah -- suksesor 0 adalah 1 - predesesor -1 adalah -

22 - suksesor -1 adalah 0 - predesesor 3 adalah 2- suksesor -1 adalah 0 - predesesor 3 adalah 2 - suksesor 5 adalah 6- suksesor 5 adalah 6

Page 12: Presentasi 3 Tipe Data

Operator Pada IntegerOperator Pada IntegerKELOMPOKKELOMPOK OPOP ARTIARTI HASILHASIL

Operator Operator AritmatikaAritmatika

++ TambahTambah IntegerInteger

-- KurangKurang IntegerInteger

** KaliKali IntegerInteger

// BagiBagi RealReal

divdiv BagiBagi IntegerInteger

modmod Sisa pembagian bulatSisa pembagian bulat IntegerInteger

absabs Nilai AbsolutNilai Absolut IntegerInteger

^̂ PangkatPangkat IntegerInteger

Operator Operator relasional/ relasional/ perbandingaperbandingann

<< Lebih kecilLebih kecil Boolean Boolean

≤≤ Lebih kecil atau sama Lebih kecil atau sama dengandengan

BooleanBoolean

>> Lebih besarLebih besar BooleanBoolean

≥≥ Lebih besar atau sama Lebih besar atau sama dengandengan

BooleanBoolean

== Sama denganSama dengan BooleanBoolean

≠≠ Tidak sama denganTidak sama dengan BooleanBoolean

Page 13: Presentasi 3 Tipe Data

Bilangan RiilBilangan Riil

Nama : RealNama : Real Domain : himpunan semua bilangan berkomaDomain : himpunan semua bilangan berkoma Konstanta : angka mengandung ‘.’ Dapt Konstanta : angka mengandung ‘.’ Dapt

dituliskan dengan notasi E yang berarti dituliskan dengan notasi E yang berarti pangkat sepuluhpangkat sepuluh

Contoh : 0.2 3.233 123.00 12.E-2 1.5E2Contoh : 0.2 3.233 123.00 12.E-2 1.5E2 Catatan :Catatan :

Bilangan riil yang mengandung E berarti Bilangan riil yang mengandung E berarti pangkat sepuluh pangkat sepuluh

contoh : 1.5E02 berarti 1.5* 10contoh : 1.5E02 berarti 1.5* 10²²

Page 14: Presentasi 3 Tipe Data

Operator Pada RealOperator Pada Real

KELOMPOKKELOMPOK OPOP ARTI ARTI HASILHASIL

Operator Operator AritmatikaAritmatika

** KaliKali RealReal

++ TambahTambah RealReal

-- KurangKurang RealReal

// BagiBagi RealReal

^̂ PangkatPangkat RealReal

Operator Operator relasional / relasional / perbandingperbandinganan

<< Lebih kecilLebih kecil BooleanBoolean

≤≤ Lebih kecil atau sama Lebih kecil atau sama dengandengan

BooleanBoolean

>> Lebih besarLebih besar BooleanBoolean

≥≥ Lebih besar atau sama Lebih besar atau sama dengandengan

BooleanBoolean

≠≠ Tidak sama denganTidak sama dengan BooleanBoolean

Page 15: Presentasi 3 Tipe Data

KarakterKarakter Nama : characterNama : character Domain : Himpunan yang terdefinisi oleh suatu Domain : Himpunan yang terdefinisi oleh suatu

enumerasi, misalnya [‘0’..’9’, ‘a’..’z’, enumerasi, misalnya [‘0’..’9’, ‘a’..’z’, ‘A’..’Z’ ,RETURN, SPACE]‘A’..’Z’ ,RETURN, SPACE]

Ada karakter (suksesor dan predesesor) yang Ada karakter (suksesor dan predesesor) yang ditentukan oleh representasi di dalam komputer, ditentukan oleh representasi di dalam komputer, misalnya pengkodean ASCIImisalnya pengkodean ASCII

Konstanta : dituliskan diantara tanda petik atau Konstanta : dituliskan diantara tanda petik atau suatu nama, misal ‘A’ ‘P’ ‘M’suatu nama, misal ‘A’ ‘P’ ‘M’

OperatorOperator

KELOMPOKKELOMPOK OPOP ARTI ARTI HASILHASIL

Operator Operator PerbandinganPerbandingan

== Sama denganSama dengan BooleanBoolean

≠≠ Tidak sama Tidak sama dengandengan

booleanboolean

Page 16: Presentasi 3 Tipe Data

StringString

String sebagai “ tipe dasar” yang khususString sebagai “ tipe dasar” yang khususAda sebuah tipe yang sangat diperlukan Ada sebuah tipe yang sangat diperlukan dihampir semua sistem, yang pada akhirnya dihampir semua sistem, yang pada akhirnya dapat dianggap “setengah” tipe dasar karena dapat dianggap “setengah” tipe dasar karena sudah tersedia, yaitu string. Untuk sudah tersedia, yaitu string. Untuk selanjutnya tipe string dapat dianggap tipe selanjutnya tipe string dapat dianggap tipe primitifprimitif

ContohContohTipe : stringTipe : string

Domain : Untaian karakter yang didefinisikan Domain : Untaian karakter yang didefinisikan pada domain karakterpada domain karakterkonstanta : ‘AKU’ ‘ rumah sakit’ ‘pisang’ ‘K’konstanta : ‘AKU’ ‘ rumah sakit’ ‘pisang’ ‘K’

Page 17: Presentasi 3 Tipe Data

Operator Pada StringOperator Pada String

KELOMPOKKELOMPOK OPOP ARTIARTI HASILHASIL

Operator Operator PerbandinganPerbandingan

== Sama dengan Sama dengan BooleanBoolean

≠≠ Tidak sama denganTidak sama dengan BooleanBoolean

KonstruksiKonstruksi ●● Tambah satu karakter di Tambah satu karakter di akhir stringakhir string

string x character → stringstring x character → string

StringString

๐๐ Tambah satu karakter di Tambah satu karakter di awal stringawal string

character x string → stringcharacter x string → string

StringString

&& KonkatenasiKonkatenasi

string x string → stringstring x string → stringStringString

Page 18: Presentasi 3 Tipe Data

Tipe Tipe EnumerasiEnumerasi Tipe Enumerasi adalah tipe yang definisi domainnya Tipe Enumerasi adalah tipe yang definisi domainnya

tidak dilakukan menurut suatu aturan (by definition) tidak dilakukan menurut suatu aturan (by definition) melainkan dengan satu persatu nilai anggotanya. Tipe melainkan dengan satu persatu nilai anggotanya. Tipe enumerasi mewakili himpunan nilai yang diberi nama.enumerasi mewakili himpunan nilai yang diberi nama.

Karena disebutkan satu persatu, maka dalam suatu Karena disebutkan satu persatu, maka dalam suatu tipe enumerasi biasanya dikenal cara akses suatu nilai tipe enumerasi biasanya dikenal cara akses suatu nilai anggota enumerasi lewat kata kunci sbb:anggota enumerasi lewat kata kunci sbb:

- First, yaitu anggota nilai yang pertama- First, yaitu anggota nilai yang pertama - Last, yaitu anggota nilai yang terakhir- Last, yaitu anggota nilai yang terakhir - Successor(elemen), yaitu anggota nilai yang- Successor(elemen), yaitu anggota nilai yang berikutnya dari elemenberikutnya dari elemen - Predesesor(elemen), yaitu anggota nilai - Predesesor(elemen), yaitu anggota nilai

yang yang sebelumnya dari elemensebelumnya dari elemen

Page 19: Presentasi 3 Tipe Data

ContohContoh Type hariType hari {type hari menyatakan enumerasi nama hari dalam {type hari menyatakan enumerasi nama hari dalam

1 minggu}1 minggu} type hari : (senin, selasa, rabu, kamis, jumat, sabtu, type hari : (senin, selasa, rabu, kamis, jumat, sabtu,

minggu)minggu) Jika dideklarasi NAMA variabel H sebagai berikut :Jika dideklarasi NAMA variabel H sebagai berikut : H : hari {artinya : H adalah hari}H : hari {artinya : H adalah hari}

Maka cara mengacu/ mengakses nilai elemen yang Maka cara mengacu/ mengakses nilai elemen yang tersimpan pada H yang telah terdefinisi adalah:tersimpan pada H yang telah terdefinisi adalah:

first (H) {menghasilkan nilai : senin}first (H) {menghasilkan nilai : senin} last (H) {menghasilkan nilai : minggu}last (H) {menghasilkan nilai : minggu} succ(selasa) {menghasilkan nilai : rabu}succ(selasa) {menghasilkan nilai : rabu} prec (selasa) {menghasilkan nilai : senin}prec (selasa) {menghasilkan nilai : senin}

Page 20: Presentasi 3 Tipe Data

Tipe BentukanTipe Bentukan Tipe bentukan adalah suatu tipe yang dirancang/ Tipe bentukan adalah suatu tipe yang dirancang/

dibentuk (dan diberi nama) dari beberapa dibentuk (dan diberi nama) dari beberapa komponen bertipe tertentu, jadi merupakan komponen bertipe tertentu, jadi merupakan sekumpulan elemen bertipe dasar atau bertipe sekumpulan elemen bertipe dasar atau bertipe yang sudah dikenalyang sudah dikenal

Dalam notasi algoritmik, sebuah tipe bentukan Dalam notasi algoritmik, sebuah tipe bentukan berupa agregasi elemen dituliskan dengan notasi berupa agregasi elemen dituliskan dengan notasi sbb:sbb:

typetype nama type < elemen1 : tipe1, nama type < elemen1 : tipe1, elemen2 : tipe2,elemen2 : tipe2, …… …… elemenN : tipeN,elemenN : tipeN, >>

Page 21: Presentasi 3 Tipe Data

ContohContoh Type Point Type Point {type point menyatakan absis dan ordinat real pada sumbu {type point menyatakan absis dan ordinat real pada sumbu

kartesian}kartesian} type Point : <X : real {absis}type Point : <X : real {absis} Y : real {ordinat}>Y : real {ordinat}> Jika dideklarasi NAMA variabel P sebagai berikut :Jika dideklarasi NAMA variabel P sebagai berikut : P : Point {artinya: P adalah sebuah point}P : Point {artinya: P adalah sebuah point} Maka cara mengacu/mengakses nilai elemen yang tersimpan Maka cara mengacu/mengakses nilai elemen yang tersimpan

pada P yang telah terdefinisi adalah :pada P yang telah terdefinisi adalah : P.X { menghasilkan nilai absis bertipe real}P.X { menghasilkan nilai absis bertipe real} P.Y {menghasilkan nilai ordinat bertipe real}P.Y {menghasilkan nilai ordinat bertipe real}

Domain : <real, real>Domain : <real, real> Konstanta : <5.0, 6.0> <6.0, 100.0>Konstanta : <5.0, 6.0> <6.0, 100.0> Operator :Operator : - operator terhadap point harus dibuat- operator terhadap point harus dibuat - operator real terhadap P.X dan P.Y- operator real terhadap P.X dan P.Y

Page 22: Presentasi 3 Tipe Data

Contoh 2Contoh 2

Type JamType Jam { Type jam menyatakan representasi “ jam” { Type jam menyatakan representasi “ jam”

dalam notasi HH:MM:SS dengan HH bernilai dalam notasi HH:MM:SS dengan HH bernilai [0..23]; MM bernilai [0..59] dan SS bernilai [0..59][0..23]; MM bernilai [0..59] dan SS bernilai [0..59]

type jam : <HH : Integer [0..23], {jam}type jam : <HH : Integer [0..23], {jam} MM : Integer [0..59], {menit}MM : Integer [0..59], {menit} SS : Integer [0..59] {detik}SS : Integer [0..59] {detik} >>

Jika dideklarasi NAMA variabel J sebagai berikut :Jika dideklarasi NAMA variabel J sebagai berikut : J : Jam {artinya : J adalah sebuah J : Jam {artinya : J adalah sebuah

Page 23: Presentasi 3 Tipe Data

Contoh 2 (lanjutan)Contoh 2 (lanjutan)

Maka cara mengacu/mengakses nilai elemen yang Maka cara mengacu/mengakses nilai elemen yang tersimpan pada J yang telah terdefinisi adalah :tersimpan pada J yang telah terdefinisi adalah :

J. HH {menghasilkan nilai bagian jam bertipe integer[0..23]}J. HH {menghasilkan nilai bagian jam bertipe integer[0..23]}

J. MM { menghasilkan nilai bagian menit bertipe J. MM { menghasilkan nilai bagian menit bertipe integer[0..59]}integer[0..59]}

J.SS {menghasilkan nilai bagian detik bertipe integer[0..59]}J.SS {menghasilkan nilai bagian detik bertipe integer[0..59]}

Domain : <integer, integer, integer>Domain : <integer, integer, integer>

Konstanta : <0,0,0> <15,20,30>Konstanta : <0,0,0> <15,20,30>

Operator :Operator :

- operator terhadap JAM harus dibuat- operator terhadap JAM harus dibuat

- operator integer terhadap komponen HH, MM, SS- operator integer terhadap komponen HH, MM, SS