SlideShare a Scribd company logo
1 of 15
Minggu 07
Tipe Bentukan dan Array
Algoritma Pemrograman – CII1F4
Fakultas Informatika
2021
Outline
Tipe Bentukan dan Operasinya
Array dan Operasinya
Kombinasi Array dan Tipe Bentukan
Latihan Soal
2
TIPE BENTUKAN
3
1. Tipe data dasar >> telah terdefinisi (Contoh: integer, real, string, boolean dan char)
2. Tipe Bentukan >> suatu TYPE yang dibuat (oleh pemrogram) dari beberapa komponen/field
bertype tertentu yang mempunyai makna semantic.
3. Contoh tipe bentukan :
• Tipe Waktu (jam, menit, dan detik)
• Tipe Orang (nama, gendre, alamat, agama dan biodata lainnya)
4. Deklarasi dari Tipe Bentukan
Karena yang deklarasi adalah tipe data maka, perlu ada variable dengan tipe bentukan tersebut
type <type_name> <
<field_1> : <data type>,
<field_2> : <data type>,
...
>
<variable_name> : <type_name>
Contoh:
type date<
day: integer,
month : string,
year : integer >
tgl : date
Assignment dan Operasi Tipe Data
1. Akses dilakukan melalui field
yang didefinisikan
2. Operasi dilakukan sesuai tipe
data dari fieldnya.
3. Pahami hirarki berikut:
Kamus
type date<
day : integer,
month : string,
year : integer >
tgl : date
algoritma
input(tgl.day)
tgl.month <- “Agustus”
tgl.year <- 1900 + 45
print(“Indonesia merdeka pada tanggal”,
tgl.day,”bulan”, tgl.month,
“dan tahun”,tgl.year)
endprogram
Keterangan
date adalah tipe data, bukan variable
tgl bertipe date
tgl.day bertipe integer
tgl.month bertipe String
tgl.year bertipe integer
Contoh Soal
Sebuah program digunakan untuk menyimpan data suatu balok beserta volume dan luas
selimutnya dan menampilkannya. Gunakan tipe bentukan balok yang digunakan untuk
menyimpan data-data tersebut.
Jawaban: data balok >> volume, luas selimut + panjang, lebar, tinggi
5
program contohSoal
kamus
type balok<
p,l,t : integer,
luas,volume : integer >
cube : balok
algoritma
input(cube.p, cube.l, cube.t)
cube.volume <- cube.p * cube.l * cube.t
cube.luas <- 2 * (cube.p*cube.l + cube.p * cube.t + cube.l * cube.t)
print(cube.p, cube.l, cube.t, cube.luas, cube.volume)
endprogram
Implementasi dalam GoLang
6
package main
import "fmt“
type balok struct{
p,l,t int
luas,volume int
}
func main(){
var cube balok
fmt.Scanln(&cube.p, &cube.l, &cube.t)
cube.volume = cube.p * cube.l * cube.t
cube.luas = 2 * (cube.p * cube.l + cube.p * cube.t + cube.l * cube.t)
fmt.Print(cube.p, cube.l, cube.t, cube.luas, cube.volume)
}
• Tidak ada perbedaan yang signifikan dalam bahasa Go
• Deklarasi tipe bentukan ditulis di luar blok dari subprogram
ARRAY
Digunakan untuk menyimpan kumpulan data.
1. Array dapat menyimpan data/elemen dengan tipe homogen/sejenis.
2. Element terurut berdasarkan indeks
3. Banyaknya elemen adalah tetap.
4. Index adalah nomor untuk mengakses elemen dari array.
5. Tipe indeks adalah integer atau character abjad.
Contoh: (Gambar hanyalah illustrasi)
 T1 dan T2 adalah Array
 Jumlah elemen T1 = 5, Indeks = 1, 2, 3, 4, 5
 Jumlah elemen T2 = 3, Indeks = 0, 1, 2
 Tipe T1 : Array of Integer, dan Tipe T2 : Array of String
7
1
2
0
King
Sultan
Raden
T2
1 2 3 4 5
30 12 17
T1
Data Structure
(Non-Primitive)
Linear Non-Linear
Array List Stack Queue Tree Graph
Deklarasi dan Akses dari Array
8
Deklarasi array <variable name> : array [start..end] of <data type>
di mana indeks array adalah start hingga end. contohnya:
Kamus
T1 : array [1..5] of integer {cara 1. deklarasi lansung sebagai variabel}
type arrString : array [0..2] of string {cara 2. deklarasi sebagai alias dengan type}
T2 : arrString {arrString adalah tipe data}
Algoritma
input(T1) {SALAH, harus spesifik elemen dari T1 yang akan di-assign}
input(T1[1]) {BENAR, elemen spesifik dan indeks valid}
T2[0] <- “Raden” {BENAR, T2 adalah array of string, T2[0] adalah string}
T1[4] <- 2 {BENAR, T1[4] adalah integer}
input(T2[10]) {SALAH, indeks tidak valid}
T2[T1[4]] <- “Sultan” {BENAR, T1[4] adalah integer dan bernilai 2, indeks valid}
T1[3] <- T1[1] + T1[4] {BENAR, operasi integer}
print(T2) {SALAH, harus spesifik elemen dari T2 yang akan dicetak}
print(T1[1], T2[2]) {BENAR, elemen spesifik dan indeks valid}
Endprogram
Pengisian dan mencetak Array
1. Indeks terurut berdasarkan enumerasinya
2. Bisa memanfaatkan perulangan.
3. Indeks array 0, 1, 2, …, 2020
Contoh:
Catatan: Nilai N itu menunjukkan bahwa dari indek 0 s.d 2020,
hanya indek 0 s.d. N yang berisi data, di mana 0 ≤ 𝑁 ≤ 𝑁𝑀𝐴𝑋 9
Kamus
constant NMAX : integer = 2021 {konstanta}
type tabInt : array [0..NMAX-1] of integer
Procedure mengisi(in/out T:tabInt, in N:integer)
{IS. terdefinisi bilangan bulat N
FS. array T berisi N buah bilangan dari input}
kamus
k : integer
algoritma
k <- 0
while k <= N do
input(T[k])
k <- k + 1
endwhile
endprocedure
Procedure cetak(in T:tabInt, N:integer)
{IS. terdefinisi array T yang berisi N elemen
FS. menampilkan isi dari array T}
kamus
k : integer
algoritma
k <- 0
while k <= N do
print(T[k])
k <- k + 1
endwhile
endprocedure
Kombinasi Array dan Tipe Bentukan
Contoh dalam pembuatan table mahasiswa
• Variasi 1, jumlah elemen array dipisah, Sehingga
dampaknya adalah jumlah elemen harus selalu
disertakan Bersama arraynya
• Variasi 2, jumlah elemen array dimasukkan ke dalam
tipe bentukan. Lebih rumit, tetapi jumlah elemen array
selalu ada bersama arraynya
10
constant NMAX : integer = 2021
type mahasiswa <
nama, nim, jurusan : string,
nilai : real >
{variasi 1. deklarasi sebagai alias}
type arrMhs : array [0..NMAX-1] of mahasiswa
nMhs : integer {jumlah mahasiswa}
Mhs1 : arrMhs
{variasi 2. delarasi sebagai tipe bentukan}
type mhsType <
info : array [0..NMAX-1] of mahasiswa
mMhs : integer {jumlah mahasiswa} >
Mhs2 : mhsType
Keterangan Variasi 1
arrMhs adalah tipe array of mahasiswa
Mhs1 bertipe arrMhs
Mhs1[0] bertipe mahasiswa
Mhs1[NMAX-1].nama bertipe string
Keterangan Variasi 2
mhsType adalah tipe bentukan Mhs2.info bertipe array of mahasiswa
Info adalah variable, bukan tipe data Mhs2.info[0] bertipe mahasiswa
Mhs2 bertipe mhsType Mhs2.info[0].nama bertipe string
11
Sesi Latihan 
Image https://id.pinterest.com/pin/498703358729526087/
Soal 1 : Jarak Titik
Sebuah program digunakan untuk menghitung jarak antara dua buah titik
Masukan berupa 4 nilai yang menyatakan sumbu x dan y dari masing-masing titik.
Keluaran sebuah bilangan real yang menyatakan jarak antara 2 titik tersebut
Buatlah dengan melengkapi dan menggunakan subprogram berikut
12
function jarak(P1, P2 : titik) -> real
{diterima nilai sumbu dari titik P1 dan P2, untuk mengembalikan jarak dari P1 dan P2}
function akar(x : real) -> real
{diterima nilai suatu x untuk mengembalikan akar kuadrat dari x, fungsi ini terdefinisi dan
tinggal digunakan saja}
jarak antara titik (a,b) dan (c,d) adalah
𝑗𝑎𝑟𝑎𝑘 = 𝑎 − 𝑐 2 + (𝑏 − 𝑑)2
Soal 2 : Array
1. Buatlah sebuah tipe array of integer yang berkapasitas 256!
2. Buatlah procedure untuk reverse isi dari array!
3. Buatlah function untuk mengecek apakah suatu array memiliki pola palindrom! Nilai elemen
membentuk pola simetris.
Contoh A = [10, 20, 30, 20, 10], B = [15, 75, 75, 15] dan C = [100]
4. Buatlah procedure untuk mengisi array untuk menghasilkan array ganjil dan array genap.
13
Soal 3 : Pertandingan Bola
Sebuah program digunakan untuk menyimpan jumlah kemenangan pertandingan dalam setiap
tahunnya.
Masukan terdiri dari 3 baris, di mana setiap barisnya adalah data kemenangan dari suatu tim tertentu.
Data kemenangan berupa beberapa bilangan yang dipisahkan oleh spasi, yang menyatakan jumlah
kemenangan suatu tim bola setiap tahunnya. Masukan pada setiap barisnya berakhir apabila bilangan
adalah negatif.
Keluaran berupa 3 bilangan yang menyatakan rata-rata kemenangan dari 3 tim tersebut setiap
tahunnya.
Buatlah dengan melengkapi dan menggunakan subprogram berikut
14
procedure inputData(in/out t:tabGol, n: integer)
{I.S. data kemenangan suatu tim telah siap pada piranti masukan
F.S. t berisi n data kemenangan suatu tim.}
function rataan(t: tabGol, n : integer)  real
{diberikan array t yang berisi n data kemenangan, untuk mengembalikan rata-rata kemenangan}
program PertandinganBola
{program untuk menyimpan data kemenangan 3 tim bola, dan menampilkan rata-rata kemenangan
setiap timnya}
TERIMA KASIH
15

More Related Content

Similar to Minggu 09 - Array dan Tipe Bentukan.ppsx

2. Array of Record (Struktur Data)
2. Array of Record (Struktur Data)2. Array of Record (Struktur Data)
2. Array of Record (Struktur Data)Kelinci Coklat
 
1. Pengantar Struktur data.pptx
1. Pengantar Struktur data.pptx1. Pengantar Struktur data.pptx
1. Pengantar Struktur data.pptxBobyDarmawan2
 
Bab ii keg pembel 6 array
Bab ii keg pembel 6  arrayBab ii keg pembel 6  array
Bab ii keg pembel 6 array087dwi
 
Tugas1
Tugas1Tugas1
Tugas1Av Ri
 
Modul struktur data_affif
Modul struktur data_affifModul struktur data_affif
Modul struktur data_affifSejahtera Affif
 
Materi array
Materi arrayMateri array
Materi arraytrifilern
 
Pertemuan vi
Pertemuan viPertemuan vi
Pertemuan viwindi1
 
5. pemrograman array dan_string
5. pemrograman array dan_string5. pemrograman array dan_string
5. pemrograman array dan_stringRoziq Bahtiar
 
Array & Struktur Data (pert 7&8).pdf
Array & Struktur Data (pert 7&8).pdfArray & Struktur Data (pert 7&8).pdf
Array & Struktur Data (pert 7&8).pdfSigitPrayogaatmaja
 
Array 2 Dimensi.pptx
Array 2 Dimensi.pptxArray 2 Dimensi.pptx
Array 2 Dimensi.pptxLPKIATUGAS
 
Pengenalan pascal asli
Pengenalan pascal asliPengenalan pascal asli
Pengenalan pascal asliNadya Olivia
 

Similar to Minggu 09 - Array dan Tipe Bentukan.ppsx (20)

Array lanjutan
Array lanjutanArray lanjutan
Array lanjutan
 
Algoritma - Array
Algoritma - ArrayAlgoritma - Array
Algoritma - Array
 
2. Array of Record (Struktur Data)
2. Array of Record (Struktur Data)2. Array of Record (Struktur Data)
2. Array of Record (Struktur Data)
 
1. Pengantar Struktur data.pptx
1. Pengantar Struktur data.pptx1. Pengantar Struktur data.pptx
1. Pengantar Struktur data.pptx
 
Bab ii keg pembel 6 array
Bab ii keg pembel 6  arrayBab ii keg pembel 6  array
Bab ii keg pembel 6 array
 
Struktur data
Struktur dataStruktur data
Struktur data
 
Array Dimention
Array DimentionArray Dimention
Array Dimention
 
Tugas1
Tugas1Tugas1
Tugas1
 
Modul struktur data_affif
Modul struktur data_affifModul struktur data_affif
Modul struktur data_affif
 
Materi array
Materi arrayMateri array
Materi array
 
Sd bab 2 (array)
Sd bab 2 (array)Sd bab 2 (array)
Sd bab 2 (array)
 
207 p09
207 p09207 p09
207 p09
 
Pertemuan IV Teori
Pertemuan IV TeoriPertemuan IV Teori
Pertemuan IV Teori
 
Pertemuan vi
Pertemuan viPertemuan vi
Pertemuan vi
 
5. pemrograman array dan_string
5. pemrograman array dan_string5. pemrograman array dan_string
5. pemrograman array dan_string
 
Pertemuan 9 Array
Pertemuan 9 ArrayPertemuan 9 Array
Pertemuan 9 Array
 
Array & Struktur Data (pert 7&8).pdf
Array & Struktur Data (pert 7&8).pdfArray & Struktur Data (pert 7&8).pdf
Array & Struktur Data (pert 7&8).pdf
 
Array 2 Dimensi.pptx
Array 2 Dimensi.pptxArray 2 Dimensi.pptx
Array 2 Dimensi.pptx
 
Pengenalan pascal asli
Pengenalan pascal asliPengenalan pascal asli
Pengenalan pascal asli
 
Pertemuan 9 Array (Larik)
Pertemuan 9 Array (Larik)Pertemuan 9 Array (Larik)
Pertemuan 9 Array (Larik)
 

Recently uploaded

BAB_3_Teorema superposisi_thevenin_norton (1).ppt
BAB_3_Teorema superposisi_thevenin_norton (1).pptBAB_3_Teorema superposisi_thevenin_norton (1).ppt
BAB_3_Teorema superposisi_thevenin_norton (1).pptDellaEkaPutri2
 
10.-Programable-Logic-Controller (1).ppt
10.-Programable-Logic-Controller (1).ppt10.-Programable-Logic-Controller (1).ppt
10.-Programable-Logic-Controller (1).ppttaniaalda710
 
Laporan Tinjauan Manajemen HSE/Laporan HSE Triwulanpptx
Laporan Tinjauan Manajemen HSE/Laporan HSE TriwulanpptxLaporan Tinjauan Manajemen HSE/Laporan HSE Triwulanpptx
Laporan Tinjauan Manajemen HSE/Laporan HSE Triwulanpptxilanarespatinovitari1
 
2024.02.26 - Pra-Rakor Tol IKN 3A-2 - R2 V2.pptx
2024.02.26 - Pra-Rakor Tol IKN 3A-2 - R2 V2.pptx2024.02.26 - Pra-Rakor Tol IKN 3A-2 - R2 V2.pptx
2024.02.26 - Pra-Rakor Tol IKN 3A-2 - R2 V2.pptxEnginerMine
 
Presentasi gedung jenjang 6 - Isman Kurniawan.ppt
Presentasi gedung jenjang 6 - Isman Kurniawan.pptPresentasi gedung jenjang 6 - Isman Kurniawan.ppt
Presentasi gedung jenjang 6 - Isman Kurniawan.pptarifyudianto3
 
Manual Desain Perkerasan jalan 2017 FINAL.pptx
Manual Desain Perkerasan jalan 2017 FINAL.pptxManual Desain Perkerasan jalan 2017 FINAL.pptx
Manual Desain Perkerasan jalan 2017 FINAL.pptxRemigius1984
 
MAteri:Penggunaan fungsi pada pemrograman c++
MAteri:Penggunaan fungsi pada pemrograman c++MAteri:Penggunaan fungsi pada pemrograman c++
MAteri:Penggunaan fungsi pada pemrograman c++FujiAdam
 
Manajer Lapangan Pelaksanaan Pekerjaan Gedung - Endy Aitya.pptx
Manajer Lapangan Pelaksanaan Pekerjaan Gedung - Endy Aitya.pptxManajer Lapangan Pelaksanaan Pekerjaan Gedung - Endy Aitya.pptx
Manajer Lapangan Pelaksanaan Pekerjaan Gedung - Endy Aitya.pptxarifyudianto3
 
Materi Asesi SKK Manajer Pelaksana SPAM- jenjang 6.pptx
Materi Asesi SKK Manajer Pelaksana SPAM- jenjang 6.pptxMateri Asesi SKK Manajer Pelaksana SPAM- jenjang 6.pptx
Materi Asesi SKK Manajer Pelaksana SPAM- jenjang 6.pptxarifyudianto3
 
sample for Flow Chart Permintaan Spare Part
sample for Flow Chart Permintaan Spare Partsample for Flow Chart Permintaan Spare Part
sample for Flow Chart Permintaan Spare Parthusien3
 
TEKNIS TES TULIS REKRUTMEN PAMSIMAS 2024.pdf
TEKNIS TES TULIS REKRUTMEN PAMSIMAS 2024.pdfTEKNIS TES TULIS REKRUTMEN PAMSIMAS 2024.pdf
TEKNIS TES TULIS REKRUTMEN PAMSIMAS 2024.pdfYogiCahyoPurnomo
 
Strategi Pengembangan Agribisnis di Indonesia
Strategi Pengembangan Agribisnis di IndonesiaStrategi Pengembangan Agribisnis di Indonesia
Strategi Pengembangan Agribisnis di IndonesiaRenaYunita2
 
SOAL UJIAN SKKhhhhhhjjjjjjjjjjjjjjjj.pptx
SOAL UJIAN SKKhhhhhhjjjjjjjjjjjjjjjj.pptxSOAL UJIAN SKKhhhhhhjjjjjjjjjjjjjjjj.pptx
SOAL UJIAN SKKhhhhhhjjjjjjjjjjjjjjjj.pptxFahrizalTriPrasetyo
 

Recently uploaded (14)

Abortion Pills In Doha // QATAR (+966572737505 ) Get Cytotec
Abortion Pills In Doha // QATAR (+966572737505 ) Get CytotecAbortion Pills In Doha // QATAR (+966572737505 ) Get Cytotec
Abortion Pills In Doha // QATAR (+966572737505 ) Get Cytotec
 
BAB_3_Teorema superposisi_thevenin_norton (1).ppt
BAB_3_Teorema superposisi_thevenin_norton (1).pptBAB_3_Teorema superposisi_thevenin_norton (1).ppt
BAB_3_Teorema superposisi_thevenin_norton (1).ppt
 
10.-Programable-Logic-Controller (1).ppt
10.-Programable-Logic-Controller (1).ppt10.-Programable-Logic-Controller (1).ppt
10.-Programable-Logic-Controller (1).ppt
 
Laporan Tinjauan Manajemen HSE/Laporan HSE Triwulanpptx
Laporan Tinjauan Manajemen HSE/Laporan HSE TriwulanpptxLaporan Tinjauan Manajemen HSE/Laporan HSE Triwulanpptx
Laporan Tinjauan Manajemen HSE/Laporan HSE Triwulanpptx
 
2024.02.26 - Pra-Rakor Tol IKN 3A-2 - R2 V2.pptx
2024.02.26 - Pra-Rakor Tol IKN 3A-2 - R2 V2.pptx2024.02.26 - Pra-Rakor Tol IKN 3A-2 - R2 V2.pptx
2024.02.26 - Pra-Rakor Tol IKN 3A-2 - R2 V2.pptx
 
Presentasi gedung jenjang 6 - Isman Kurniawan.ppt
Presentasi gedung jenjang 6 - Isman Kurniawan.pptPresentasi gedung jenjang 6 - Isman Kurniawan.ppt
Presentasi gedung jenjang 6 - Isman Kurniawan.ppt
 
Manual Desain Perkerasan jalan 2017 FINAL.pptx
Manual Desain Perkerasan jalan 2017 FINAL.pptxManual Desain Perkerasan jalan 2017 FINAL.pptx
Manual Desain Perkerasan jalan 2017 FINAL.pptx
 
MAteri:Penggunaan fungsi pada pemrograman c++
MAteri:Penggunaan fungsi pada pemrograman c++MAteri:Penggunaan fungsi pada pemrograman c++
MAteri:Penggunaan fungsi pada pemrograman c++
 
Manajer Lapangan Pelaksanaan Pekerjaan Gedung - Endy Aitya.pptx
Manajer Lapangan Pelaksanaan Pekerjaan Gedung - Endy Aitya.pptxManajer Lapangan Pelaksanaan Pekerjaan Gedung - Endy Aitya.pptx
Manajer Lapangan Pelaksanaan Pekerjaan Gedung - Endy Aitya.pptx
 
Materi Asesi SKK Manajer Pelaksana SPAM- jenjang 6.pptx
Materi Asesi SKK Manajer Pelaksana SPAM- jenjang 6.pptxMateri Asesi SKK Manajer Pelaksana SPAM- jenjang 6.pptx
Materi Asesi SKK Manajer Pelaksana SPAM- jenjang 6.pptx
 
sample for Flow Chart Permintaan Spare Part
sample for Flow Chart Permintaan Spare Partsample for Flow Chart Permintaan Spare Part
sample for Flow Chart Permintaan Spare Part
 
TEKNIS TES TULIS REKRUTMEN PAMSIMAS 2024.pdf
TEKNIS TES TULIS REKRUTMEN PAMSIMAS 2024.pdfTEKNIS TES TULIS REKRUTMEN PAMSIMAS 2024.pdf
TEKNIS TES TULIS REKRUTMEN PAMSIMAS 2024.pdf
 
Strategi Pengembangan Agribisnis di Indonesia
Strategi Pengembangan Agribisnis di IndonesiaStrategi Pengembangan Agribisnis di Indonesia
Strategi Pengembangan Agribisnis di Indonesia
 
SOAL UJIAN SKKhhhhhhjjjjjjjjjjjjjjjj.pptx
SOAL UJIAN SKKhhhhhhjjjjjjjjjjjjjjjj.pptxSOAL UJIAN SKKhhhhhhjjjjjjjjjjjjjjjj.pptx
SOAL UJIAN SKKhhhhhhjjjjjjjjjjjjjjjj.pptx
 

Minggu 09 - Array dan Tipe Bentukan.ppsx

  • 1. Minggu 07 Tipe Bentukan dan Array Algoritma Pemrograman – CII1F4 Fakultas Informatika 2021
  • 2. Outline Tipe Bentukan dan Operasinya Array dan Operasinya Kombinasi Array dan Tipe Bentukan Latihan Soal 2
  • 3. TIPE BENTUKAN 3 1. Tipe data dasar >> telah terdefinisi (Contoh: integer, real, string, boolean dan char) 2. Tipe Bentukan >> suatu TYPE yang dibuat (oleh pemrogram) dari beberapa komponen/field bertype tertentu yang mempunyai makna semantic. 3. Contoh tipe bentukan : • Tipe Waktu (jam, menit, dan detik) • Tipe Orang (nama, gendre, alamat, agama dan biodata lainnya) 4. Deklarasi dari Tipe Bentukan Karena yang deklarasi adalah tipe data maka, perlu ada variable dengan tipe bentukan tersebut type <type_name> < <field_1> : <data type>, <field_2> : <data type>, ... > <variable_name> : <type_name> Contoh: type date< day: integer, month : string, year : integer > tgl : date
  • 4. Assignment dan Operasi Tipe Data 1. Akses dilakukan melalui field yang didefinisikan 2. Operasi dilakukan sesuai tipe data dari fieldnya. 3. Pahami hirarki berikut: Kamus type date< day : integer, month : string, year : integer > tgl : date algoritma input(tgl.day) tgl.month <- “Agustus” tgl.year <- 1900 + 45 print(“Indonesia merdeka pada tanggal”, tgl.day,”bulan”, tgl.month, “dan tahun”,tgl.year) endprogram Keterangan date adalah tipe data, bukan variable tgl bertipe date tgl.day bertipe integer tgl.month bertipe String tgl.year bertipe integer
  • 5. Contoh Soal Sebuah program digunakan untuk menyimpan data suatu balok beserta volume dan luas selimutnya dan menampilkannya. Gunakan tipe bentukan balok yang digunakan untuk menyimpan data-data tersebut. Jawaban: data balok >> volume, luas selimut + panjang, lebar, tinggi 5 program contohSoal kamus type balok< p,l,t : integer, luas,volume : integer > cube : balok algoritma input(cube.p, cube.l, cube.t) cube.volume <- cube.p * cube.l * cube.t cube.luas <- 2 * (cube.p*cube.l + cube.p * cube.t + cube.l * cube.t) print(cube.p, cube.l, cube.t, cube.luas, cube.volume) endprogram
  • 6. Implementasi dalam GoLang 6 package main import "fmt“ type balok struct{ p,l,t int luas,volume int } func main(){ var cube balok fmt.Scanln(&cube.p, &cube.l, &cube.t) cube.volume = cube.p * cube.l * cube.t cube.luas = 2 * (cube.p * cube.l + cube.p * cube.t + cube.l * cube.t) fmt.Print(cube.p, cube.l, cube.t, cube.luas, cube.volume) } • Tidak ada perbedaan yang signifikan dalam bahasa Go • Deklarasi tipe bentukan ditulis di luar blok dari subprogram
  • 7. ARRAY Digunakan untuk menyimpan kumpulan data. 1. Array dapat menyimpan data/elemen dengan tipe homogen/sejenis. 2. Element terurut berdasarkan indeks 3. Banyaknya elemen adalah tetap. 4. Index adalah nomor untuk mengakses elemen dari array. 5. Tipe indeks adalah integer atau character abjad. Contoh: (Gambar hanyalah illustrasi)  T1 dan T2 adalah Array  Jumlah elemen T1 = 5, Indeks = 1, 2, 3, 4, 5  Jumlah elemen T2 = 3, Indeks = 0, 1, 2  Tipe T1 : Array of Integer, dan Tipe T2 : Array of String 7 1 2 0 King Sultan Raden T2 1 2 3 4 5 30 12 17 T1 Data Structure (Non-Primitive) Linear Non-Linear Array List Stack Queue Tree Graph
  • 8. Deklarasi dan Akses dari Array 8 Deklarasi array <variable name> : array [start..end] of <data type> di mana indeks array adalah start hingga end. contohnya: Kamus T1 : array [1..5] of integer {cara 1. deklarasi lansung sebagai variabel} type arrString : array [0..2] of string {cara 2. deklarasi sebagai alias dengan type} T2 : arrString {arrString adalah tipe data} Algoritma input(T1) {SALAH, harus spesifik elemen dari T1 yang akan di-assign} input(T1[1]) {BENAR, elemen spesifik dan indeks valid} T2[0] <- “Raden” {BENAR, T2 adalah array of string, T2[0] adalah string} T1[4] <- 2 {BENAR, T1[4] adalah integer} input(T2[10]) {SALAH, indeks tidak valid} T2[T1[4]] <- “Sultan” {BENAR, T1[4] adalah integer dan bernilai 2, indeks valid} T1[3] <- T1[1] + T1[4] {BENAR, operasi integer} print(T2) {SALAH, harus spesifik elemen dari T2 yang akan dicetak} print(T1[1], T2[2]) {BENAR, elemen spesifik dan indeks valid} Endprogram
  • 9. Pengisian dan mencetak Array 1. Indeks terurut berdasarkan enumerasinya 2. Bisa memanfaatkan perulangan. 3. Indeks array 0, 1, 2, …, 2020 Contoh: Catatan: Nilai N itu menunjukkan bahwa dari indek 0 s.d 2020, hanya indek 0 s.d. N yang berisi data, di mana 0 ≤ 𝑁 ≤ 𝑁𝑀𝐴𝑋 9 Kamus constant NMAX : integer = 2021 {konstanta} type tabInt : array [0..NMAX-1] of integer Procedure mengisi(in/out T:tabInt, in N:integer) {IS. terdefinisi bilangan bulat N FS. array T berisi N buah bilangan dari input} kamus k : integer algoritma k <- 0 while k <= N do input(T[k]) k <- k + 1 endwhile endprocedure Procedure cetak(in T:tabInt, N:integer) {IS. terdefinisi array T yang berisi N elemen FS. menampilkan isi dari array T} kamus k : integer algoritma k <- 0 while k <= N do print(T[k]) k <- k + 1 endwhile endprocedure
  • 10. Kombinasi Array dan Tipe Bentukan Contoh dalam pembuatan table mahasiswa • Variasi 1, jumlah elemen array dipisah, Sehingga dampaknya adalah jumlah elemen harus selalu disertakan Bersama arraynya • Variasi 2, jumlah elemen array dimasukkan ke dalam tipe bentukan. Lebih rumit, tetapi jumlah elemen array selalu ada bersama arraynya 10 constant NMAX : integer = 2021 type mahasiswa < nama, nim, jurusan : string, nilai : real > {variasi 1. deklarasi sebagai alias} type arrMhs : array [0..NMAX-1] of mahasiswa nMhs : integer {jumlah mahasiswa} Mhs1 : arrMhs {variasi 2. delarasi sebagai tipe bentukan} type mhsType < info : array [0..NMAX-1] of mahasiswa mMhs : integer {jumlah mahasiswa} > Mhs2 : mhsType Keterangan Variasi 1 arrMhs adalah tipe array of mahasiswa Mhs1 bertipe arrMhs Mhs1[0] bertipe mahasiswa Mhs1[NMAX-1].nama bertipe string Keterangan Variasi 2 mhsType adalah tipe bentukan Mhs2.info bertipe array of mahasiswa Info adalah variable, bukan tipe data Mhs2.info[0] bertipe mahasiswa Mhs2 bertipe mhsType Mhs2.info[0].nama bertipe string
  • 11. 11 Sesi Latihan  Image https://id.pinterest.com/pin/498703358729526087/
  • 12. Soal 1 : Jarak Titik Sebuah program digunakan untuk menghitung jarak antara dua buah titik Masukan berupa 4 nilai yang menyatakan sumbu x dan y dari masing-masing titik. Keluaran sebuah bilangan real yang menyatakan jarak antara 2 titik tersebut Buatlah dengan melengkapi dan menggunakan subprogram berikut 12 function jarak(P1, P2 : titik) -> real {diterima nilai sumbu dari titik P1 dan P2, untuk mengembalikan jarak dari P1 dan P2} function akar(x : real) -> real {diterima nilai suatu x untuk mengembalikan akar kuadrat dari x, fungsi ini terdefinisi dan tinggal digunakan saja} jarak antara titik (a,b) dan (c,d) adalah 𝑗𝑎𝑟𝑎𝑘 = 𝑎 − 𝑐 2 + (𝑏 − 𝑑)2
  • 13. Soal 2 : Array 1. Buatlah sebuah tipe array of integer yang berkapasitas 256! 2. Buatlah procedure untuk reverse isi dari array! 3. Buatlah function untuk mengecek apakah suatu array memiliki pola palindrom! Nilai elemen membentuk pola simetris. Contoh A = [10, 20, 30, 20, 10], B = [15, 75, 75, 15] dan C = [100] 4. Buatlah procedure untuk mengisi array untuk menghasilkan array ganjil dan array genap. 13
  • 14. Soal 3 : Pertandingan Bola Sebuah program digunakan untuk menyimpan jumlah kemenangan pertandingan dalam setiap tahunnya. Masukan terdiri dari 3 baris, di mana setiap barisnya adalah data kemenangan dari suatu tim tertentu. Data kemenangan berupa beberapa bilangan yang dipisahkan oleh spasi, yang menyatakan jumlah kemenangan suatu tim bola setiap tahunnya. Masukan pada setiap barisnya berakhir apabila bilangan adalah negatif. Keluaran berupa 3 bilangan yang menyatakan rata-rata kemenangan dari 3 tim tersebut setiap tahunnya. Buatlah dengan melengkapi dan menggunakan subprogram berikut 14 procedure inputData(in/out t:tabGol, n: integer) {I.S. data kemenangan suatu tim telah siap pada piranti masukan F.S. t berisi n data kemenangan suatu tim.} function rataan(t: tabGol, n : integer)  real {diberikan array t yang berisi n data kemenangan, untuk mengembalikan rata-rata kemenangan} program PertandinganBola {program untuk menyimpan data kemenangan 3 tim bola, dan menampilkan rata-rata kemenangan setiap timnya}