1. Ada berapa macam tipe data? Jelaskan macam macam tipe data tersebut!
Jawab :
Tipe data terdiri dari 2 macam, yaitu tipe data primitif (dasar) dan tipe data composite
(bentukan).
1) Tipe Data Primitif (Dasar)
Tipe data primitive adalah tipe data sederhana yang selalu tersedia pada setiap
bahasa pemrograman. Tipe data ini bisa menyimpan satu nilai seperti digit, byte,
atau karakter. Namun, tipe data primitif tidak bisa menjangkau data kompleks yang
memiliki tingkat kerumitan tinggi.
Yang termasuk ke dalam tipe data dasar adalah :
a. Bilangan Logika (Boolean)
Tipe data logik adalah tipe data yang digunakan untuk memberi nilai pada hasil
pembandingan, atau kombinasi pembandingan yang menyatakan true (benar)
atau false (salah).
Boolean sendiri hanya bisa merepresentasikan dua nilai dengan pertimbangan
seperti hubungan angka yang lebih kecil atau lebih besar.
Boolean – True/False
• Nama Tipe
Boolean (diambil dari nama seorang matematikawan Inggris, George
Boole).
• Ranah Nilai
Bilangan logika hanya mengenal dua buah nilai : benar (true) atau
salah (false). Istilah “bilangan” pada “bilangan logika” dikarenakan
kita dapat menyatakan “benar” dengan angka 1 dan “salah” dengan
angka 0 (atau sebaliknya, bergantung konvensi yg kita buat)
• Konstanta
Karena ranah nilai tipe boolean hanya beranggotakan dua buah nilai,
maka konstanta yg terdapat pada tipe ini adalah true dan false
• Operasi
Operasi logika atau operasi Boolean. Operasi logika menghasilkan
nilai true dan false. Operator logika yg umum digunakan untuk
operasi logika adalah : not, and, or, dan xor.
DEKLARASI :
a, b : Boolean
A not a
False
True
True
False
A b a and b a or b a xor b
• Operasi dgn operator and hanya akan bernilai benar bila a dan b
keduanya bernilai benar,
• Operasi dgn operator or hanya akan bernilai salah bila a dan b
keduanya bernilai salah.
• Operasi dgn operator xor akan bernilai benar bila a dan b saling
berlawanan nilai kebenarannya.
X and (Y or Z) True
DEKLARASI
c, d : integer
• Ranah Nilai
Secara teoritis, tipe bilangan bulat mempunyai ranah nilai yang tidak
terbatas. Rentang nilainya adalah dari minus tidak berhingga sampai
plus tidak berhingga.
a) Operasi Aritmatika
Operator aritmatika yang didefinisikan pada bilangan bulat adalah :
+ (tambah)
(kurang)
-
(kali)
*
(bagi)
Div
(sisa hasil bagi)
mod
b) Operasi Perbandingan
Operasi perbandingan terhadap bilangan bulat dengan salah satu
operator relasional menghasilkan nilai Boolean (true atau false).
Operator perbandingan untuk bilangan bulat adalah :
< (lebih kecil)
(lebih kecil atau sama)
≤
(lebih besar)
>
(lebih besar atau sama)
≥
(sama dengan)
=
(tidak sama dengan)
≠
DEKLARASI :
e,f : real
• Ranah Nilai
Secara teoritis, tipe bilangan bulat mempunyai ranah nilai yang tidak
terbatas. Rentang nilainya adalah dari minus tidak berhingga sampai
plus tidak berhingga.
• Konstanta
Setiap konstanta yg bertipe bilangan riil ditulis dengan tanda titik
decimal
• Operasi
Operasi aritmatika dan operasi perbandingan. Operator yg digunakan
pada masing masing operasi dinamakan operator aritmatika dan
operator perbandingan (atau operator relasional)
d. Karakter (Character)
Tipe data karakter Tunggal yang biasa didefinisikan dengan tanda petik (`)
diawal dan di akhir karakter. Tipe ini mengikuti aturan “Unicode” sehingga
bilangan harus diawali kode “/u”. Tetapi juga biasa menggunakan bilangan
heksadesimal dari 0000 sampai FFFF.
Character adalah tipe data yang digunakan untuk menyatakan satu angka,
huruf, atau special character yang tidak dapat dioperasikan secara matematis,
misalnya: ‘A’, ‘B’,… , ‘Z’, ‘a’, ‘b’, …, ‘z’, ‘?’, ‘!’, ‘:’, ‘;’ dst. Jangkauan nilai
meliputi semua karakter dalam kode ASCII, atau yang tertera pada setiap
tombol keyboard. ▪ Operasi pembandingan dapat dilakukan dan dievaluasi
menurut urutan kode ASCII, sehingga huruf ‘A’ (Hex 41) sebenarnya lebih
kecil dari huruf ‘a’.Karakter kosong (null) adalah karakter yang panjangnya
nol.
Jenis karakternya pun bervariasi. Mulai dari huruf dan angka hingga karakter
spesial seperti tanda baca.
Selain itu, tipe ini juga tidak memiliki variasi:
DEKLARASI :
g,h : char
• Ranah Nilai
Ranah karakter adalah semua huruf di dalam alafbet, angka decimal,
tanda baca, operatpr aritmetik, dan karakter karakter khusus.
• Konstanta
Konstanta karakter harus diapit oleh tanda petik Tunggal. Contoh
konstanta karakter misalnya :
‘h’ ‘Y’ ‘+’ ‘9’
Hati hati menuliskan bahwa ‘9’ ada;ah karakter, tetapi 9 adalah integer
• Operasi
Operasi yang dapat dilakukan pada tipe karater adalah operasi
perbandingan. Operator perbandingan yg berlaku untuk tipe karakter
adalah :
< (lebih kecil)
(lebih kecil atau sama)
≤
(lebih besar)
>
(lebih besar atau sama)
≥
(sama dengan)
=
(tidak sama dengan)
≠
Contoh
‘a’ = ‘a’ (hasil : true)
‘m’ < ‘z’ (hasil : true)
‘Q’ > ‘Z’ (hasil : false)
e. Bilangan Pecahan (Floating Point)
Sesuai dengan namanya, tipe ini menampilkan bilangan yang mengandung
desimal. Berbeda dengan integer, floating point hanya terdiri dari dua tipe
saja, yaitu float dan double. Keduanya dapat dibedakan dari ukuran, range,
dan jumlah digitnya:
Floating Point adalah tipe data yang sering digunakan untuk keperluan
komputasi teknis. Ia merupakan jenis data type numerik yang digunakan untuk
menyimpan angka yang memiliki komponen pecahan seperti nilai moneter
(707.07, 0.7, 707.00)
Teknologi satu ini juga mengacu oada penggunaan dua kali lipat jumlah
penyimpanan relative dengan metode angka dalam kode, seperti kalkulator.
Tidak hanya itu, ada beberapa jenis floating point dalam dunia programming,
seperti floating presisi tunggal, float presisi ganda, dan float presisi quadruple.
Masing masing jenis dibedakan sesuai banyaknya penggunaan total bit, dari
24 bit, 32 bit, 53 bit, hingga yang terbesar adalah 128 bit.
• String
Menurut Amplitude, string merupakan jenis tipe data yang sering dianggap
paling popular. Ia adalah Kumpulan dari urutan karakter dan data yang paling
umum digunakan untuk menyimpan teks.
Selain itu string juga dapat menyertakan angka dan symbol, namun ia akan
selalu diperlalkukan sebagai teks.
Sebagai contoh, nomer telepon biasanya disimpan sebagai string (+1 -999-
666-3333), tetapi, ia juga dapat disimpan sebagai bilangan bulat
(9996663333).Nama Tipe : string
Misalkan i dan j adalah dua peubah yg bertipe string, maka cara
menuliskannya di bagian DEKLARASI adalah
DEKLARASI
i , j : string
a. Ranah Nilai
Ranah nilai untuk tipe string adalah deretan karakter yg telah didefinisikan
pada ranah karakter
b. Konstanta
Semua Konstanta string harus diapit oleh tanda petik Tunggal, misalnya :
‘BANDUNG’
‘K7685302’
‘m’
c. Operasi
Operasi terhadap data bertipe string didefinisikan dua macam
b) Operasi Perbandingan
Operator :
< (lebih kecil)
≤ (lebih kecil atau sama)
> (lebih besar)
≥ (lebih besar atau sama)
= (sama dengan)
≠ (tidak sama dengan)
• Array(larik)
Array adalah tipe data yang berisi sekumpulan variabel bertipe sama. Jadi, jika
kamu melihat sekumpulan data yang tipenya berbeda, berarti itu bukan array.
Array adalah tipe data bentukan, yang merupakan wadah untuk menampung
beberapa nilai data yang sejenis. Kumpulan bilangan bulat adalah array integer,
kumpulan bilangan tidak bulat adalah array real. ▪ Cara mendefinisikan ada dua
macam, yaitu: - Nilai_ujian : array [1 .. 10] of integer; atau - int nilai_ujian[10];
.Bentuk umum dari tipe larik adalah:
type pengenal = array [tipe_index] of tipe;
pengenal : nama tipe data.
tipe_index : tipe data untuk nomor index.
tipe : tipe data komponen.
Contoh,
type Vek = array [1..100] of integer;
Contohnya, misalkan kamu menyimpan nilai “C”, “D”, “E”, “F” dan “G” pada
suatu variabel yang bertipe array. Berarti, kumpulan nilai tersebut bisa juga
disebut array of characters. Sebab, nilai “C” hingga “G” merupakan nilai yang
bertipe sama, yaitu char
• Record (Rekam)
Record adalah tipe data bentukan yang merupakan wadah untuk menampung
elemen data yang tipe-nya tidak perlu sama dengan tujuan untuk mewakili satu
jenis objek.
Definisi Record hampir sama dengan Array, tetapi yang membedakan antara
keduanya adalah kalau Array semua komponennya bertipe data yang sama
sedangkan Record setiap komponennya bisa bertipe data yang beda-beda.
Contoh:
TYPE my_rec = RECORD
Nama : STRING[90]; Npm : STRING[ 8] ;
Nilai : REAL;
END;
VAR
Data nya : my re c;
• Enumerated(terbilang)
Tipe data enumerated (skalar) menunjukkan kumpulan dari nilai yang
urutannya sudah pasti. Nilai dari tipe yang dideklarasikan ini akan diwakili
dengan pengenal – pengenal (identifiers) yang akan menjadi nilai suatu konstanta.
Disebut tipe terbilang karena semua nilai disebut satu persatu.
Contoh 1:
Type bahasa = (delphi, java, c, pascal, basic);
bulan = (maret, april, mei, juni, juli);
Tipe data bulan mempunya 5 elemen dari maret sampai juli. Dari urutannya,
maret adalah identifier berupa konstanta bernilai 0 dan juli bernilai 4. Yang perlu
diperhatikan dengan tipe data skalar ini adalah tipe data ini sudah berbeda dengan
tipe standar yang ada dan pascal tidak mengijinkan operasi dengan tipe data yamg
berbeda.
Contoh 2:
TYPE hari = (Senin,Selasa,Rabu,Kamis,Jum'at,Sabtu,Minggu);
hari_kerja = (Senin,Selasa,Rabu,Kamis,Jum'at);
situasi = (senang,gembira,sedih,susah);
• Set(himpunan)
Tipe himpunan adalah kumpulan obyek yang mempunyai tipe data yang
sama dan urutan penulisannya tidak diperhatikan.Setiap onyek di dalam suatu
himpunan disebut dengan anggota atau elemen himpunan
Bentuk umum deklarasi himpunan adalah
type pengenal = set of tipe_data;
atau dapat juga langsung dideklarasikan dalam bagian deklarasi perubah seperti
berikut
var pengenal = set of tipe_data;
Keterangan:
pengenal : nama perubah atau pengenal yang akan dinyatakan sebagai tipe
himpunan.
tipe_data : tipe data dari anggota himpunan, harus bertipe ordinal.
• Subrange(sub jangkauan)
Tipe data subrange adalah suatu range yang menunjukkan nilai terkecil dan
nilai terbesar yang dapat dipergunakan. Tipe data ini adalah tipe data yang dapat
didefinisikan sendiri oleh pemakai. Nilai data pada tipe ini mempunyai jangkauan
tertentu.
Misalkan nilai ujian mempunyai harga 0 sampai 100, maka nilai ujian dapat
didefinisikan sbb :
• Date
Data tipe ini menyimpan tunggal kalender dengan informasi programming
lainnya.
Date adalah kombinasi antara bentuk integer dan numerik.
Karena date biasanya merupakan nilai integer, beberapa program bisa
menyimpan operasi matematika dasar seperti menghitung hari sebelum atau
setelah event tertentu.
• Nothing
Menurut Indeed, tipe data ini menunjukkan bahwa terdapat sebuah kode yang
tidak memiliki nilai.
Hal tersebut menunjukkan bahwa ;
Ada kode yang tertinggal
Seorang programmer salah memulai kode
Ada nilai yang tidak sesuai dengan logika yang ditentukan
Jenis data ini biasanya juga disebut sebagai nullable.
• Void
Void memberi tahu programmer bahwa ada nilai yang tidak bisa diproses
kode,
Data tipe ini memberi tahu user bahwa kose tidak bisa memberi sebuah
respons.
Biasanya, programmer akan mendapatkan tipe data ini di tahap awal system
testing Ketika belum ada respons yang deprogram untuk Langkah selanjutnya.
Jawab :
Notasi algoritmik adalah cara untuk menggambarkan langkah-langkah atau instruksi
dari sebuah algoritma dengan menggunakan simbol, notasi, atau bahasa tertentu.
Tujuannya adalah agar algoritma dapat dipahami dan diimplementasikan oleh orang
lain dengan lebih mudah.
Notasi Algoritmik terdiri dari tiga bagian, yaitu :
1. Judul (Header)
2. Kamus
3. Algoritma
• Bagian Judul, merupakan bagian yang terdiri atas nama algoritma dan
penjelasan atau spesifikasi algoritma tersebut.
• Bagian Deklarasi, merupakan bagian untuk mendefinisikan semua nama yang
digunakan pada algoritma dapat berupa variabel, konstanta, tipe ataupun fungsi
• Bagian Deskripsi, merupakan bagian inti pada struktur algoritma yang berisi
uraian langkah-langkah penyelesaian masalah.
Deklarasi :
Jari_jari = real {tipe data bilangan pecahan}
Luas = real {tipe data bilangan pecahan}
PHI = 3.14
Deskripsi
1. Baca jari
2. Hitung luas = PHI*jari_jari * jari_jari
3. Tampilkan luas ke layar
4. Selesai
2) Pseudecode
Pseudecode merupakan cara penulisan algoritma yang menyerupai bahasa
pemrograman tingkat tinggi. Pada umumnya notasi pseudecode menggunakan
bahasa yang mudah dimengerti secara umum dan juga lebih ringkas dari pada
algoritma. Pseudecode berisi deskripsi dari algoritma pemrograman komputer
yang menggunakan struktur sederhana dari beberapa bahasa pemrograman
tetapi bahasa tersebut hanya ditujukan agar bisa terbaca dan dimengerti
manusia. Sehingga pseudecode tidak dipahami oleh komputer. Supaya notasi
pseudecode dapat dimengerti oleh komputer maka musti diterjemahkan ke
dalam sintaks bahasa pemrograman tertentu.
Pada notasi pseudecode tidak aturan tertentu yang resmi. Disarankan untuk
menggunakan kata kunci yang umum digunakan seperti if, then, else, while,
do, for, repeat dan lainya. Struktur penulisan algoritma dengan notasi
pseudeccode secara umum sama dengan notasi deskriptif.
3) Flowchart
Flowchart merupakan penulisan algoritma dengan menggunakan notasi grafis.
Flowchart adalah bagan yang mempelihatkan tahapan dari suatu program dan
hubungan antar proses beserta penyataannya. Ilustrasi ini dinyatakan dalam
simbol, setiap simbol mempunyai makna tertentu untuk proses tertentu.
Simbol-simbol flowchart yang umumnya digunakan adalah simbol-simbol
flowchart standar yang dikeluarkan oleh ANSI dan ISO.
ALGORITMA :
1. Jika n = 0 maka n adalah jawabannya ; stop
Teteapi jika n ≠ 0, lanjutkan ke Langkah 2
2. Bagilah m dengan n dan misalkan r adalah sisanya
3. Gantin nilai m dengan nilai n dan ganti niiali n dengan nilai r, lalu ulang Kembali
ke Langkah 1.
2) Flowchart
Keterangan :
a. MOD adalah operator pembagian bilangan bulat yg menghasilkan sisa hasil
pembagian. Contohnya, 9 MOD 2 = 1 karena 9 dibagi 2 = 4 dan memberikan sisa = 1
b. Di dalam diagram alir diatas ditambahkan intruksi pembacaan nilai m dan n
3) Pseudocode
PROGRAM Euclidean
{Diberikan dua buah bilangan bulat tak negative m dan n (m ≥ n). Algoritma
Euclidean mencari pembagi Bersama terbesar, gcd, dari kedua bilangan tersebut,
yaitu bilangan bulat positif terbesar yg habis membagi m dan n}
DEKLARASI
m,n : integer {bilangan bulat yg akan dicari pbt-nya}
r : integer {sisa hasil bagi}
ALGORITMA
read (m,n) {asumsi : m ≥ n}
while n ≠ o do
r m MOD n {bagi m dengan n dan simpan sisanya di r}
m n {ganti nilai m dengan nilai n}
n r {ganti nilai n dengan nilai r}
end while
{kondisi akhir pengulangan : n = o}
write (m) {m berisi gcd dari kedua bilangan yg dicari}