0% menganggap dokumen ini bermanfaat (0 suara)
8 tayangan76 halaman

Revisi Algoritma Fifin

Modul Praktikum ini ditujukan untuk mahasiswa Jurusan Sistem Informasi dan Informatika di Universitas PGRI Delta Sidoarjo, berfokus pada pengenalan dan pemahaman algoritma serta pemrograman Java. Modul ini mencakup teknik-teknik dasar algoritma, problem solving, dan struktur data, serta dilengkapi dengan latihan untuk memperdalam pemahaman. Diharapkan mahasiswa dapat menguasai algoritma dasar dan terampil dalam menggunakan bahasa pemrograman Java.

Diunggah oleh

yuhiuyu5
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
8 tayangan76 halaman

Revisi Algoritma Fifin

Modul Praktikum ini ditujukan untuk mahasiswa Jurusan Sistem Informasi dan Informatika di Universitas PGRI Delta Sidoarjo, berfokus pada pengenalan dan pemahaman algoritma serta pemrograman Java. Modul ini mencakup teknik-teknik dasar algoritma, problem solving, dan struktur data, serta dilengkapi dengan latihan untuk memperdalam pemahaman. Diharapkan mahasiswa dapat menguasai algoritma dasar dan terampil dalam menggunakan bahasa pemrograman Java.

Diunggah oleh

yuhiuyu5
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 76

MODUL PRAKTIKUM

ANALISIS DAN DESAIN ALGORITMA

Penyusun
NAMA : Maria Fifiliana Hasni
NIM : 2457201005

Program Studi Sistem Informasi


Fakultas Sains dan Teknologi
Universitas PGRI Delta Sidoarjo
Tahun 2025
i
KATA PENGANTAR

Dengan mengucapkan syukur alhamdulillah kehadirat Allah SWT atas segala limpahan rahmat
dan hidayah-Nya, sehingga penyusun dapat menyelesaikan buku ajar yang berjudul: “Analisis dan
Desain Algoritma” dengan baik. Modul praktikum ini disusun sebagai pedoman khususnya bagi
mahasiswa di Jurusan Sistem Informasi dan Jurusan Informatika, Universitas PGRI Delta Sidoarjo,
dalam memberikan pengenalan, pemahaman, serta mengasah kemampuan dalam bidang logika dan
algoritma yang sudah menjadi kewajiban untuk dikenal dan dipahami sebagai dasar mata kuliah di
bidang Sistem Informasi dan Informatika.
Modul Praktikum Analisis dan Desain Algoritma merupakan modul Latihan yang berisi tentang
teknik-teknik algoritma dasar yang diperlukan untuk menyelesaikan masalah dengan bantuan
komputer. Modul Latihan ini juga membahas Bahasa Pemrograman Java untuk mengeksekusi
algoritma dalam menyelesaikan masalah. Diharapkan para mahasiswa nantinya bisa memahami
segala bentuk algoritma dasar serta terampil dalam menggunakan Bahasa Pemrograman Java.
Bagaimanapun penyusun telah berusaha membuat buku ini dengan sebaik-baiknya, namun tidak
ada kesempurnaan dalam sebuah karya manusia. Penyusun menyadari masih banyak kekurangan
dalam penyusunan buku ini. Untuk itu pula segala masukan, kritik dan saran dari pembaca dapat
menjadikan acuan bagi penyusun dalam penyempurnaan dan pembuatan buku berikutnya.
Tiada untaian kata yang dapat saya sampaikan selain panjatkan doa, semoga Allah SWT selalu
membuka hati kita dengan cahaya-Nya dan mengajarkan ilmu-Nya kepada kita, serta terima kasih
yang sebesar-besarnya kepada semua pihak yang telah membantu dlam penyusunan Modul
Praktikum Analisa Dan Desain Algoritma ini. Semoga modul ini dapat bermanfaat bagi kita semua.

Sidoarjo, 17 Febuari 2025

ii
DAFTAR ISI

MODUL PRAKTIKUM ................................................................................................................. i


KATA PENGANTAR .................................................................................................................... ii
DAFTAR ISI.................................................................................................................................. iii
DAFTAR GAMBAR .......................................................................................................................v
DAFTAR TABEL ......................................................................................................................... vi
Bab 1 Pengantar Algoritma…………………………………………………………………… 1
1.1. Problem Solving dan Algoritma.....................................................................................1
1.2.. Ciri-ciri dan Sifat Algoritma .........................................................................................3
1.3. Struktur Algoritma ........................................................................................................3
1.4. Perbedaan Algoritma dan Program ................................................................................5
1.5. Latihan Soal...................................................................................................................6
Bab 2 Notasi Penulisan Algoritma .....................................................................................................7
2.1.Representasi Algoritma ....................................................................................................... 7
2.2. Kalimat Deskriptif ............................................................................................................. 8
2.3. Pseudocode........................................................................................................................ 9
2.4. Flowchart ..................................................................................................................... 11
2.5.. Latihan Soal ................................................................................................................ 12
Bab 3 Pemrograman Java ............................................................................................................ 16
3.1.Pengenalan Java ........................................................................................................... 16
3.2.Perintah Dasar Bahasa Pemrograman Java .................................................................. 17
3.2.1 Identifier........................................................................................................................ 17
3.2.2. Modifier........................................................................................................................ 17
3.3. Input Program .............................................................................................................. 18
3.4. Struktur Program Java ................................................................................................. 18
3.5. Latihan Mandiri Cetak Output ..................................................................................... 20
3.5.1. CetakBaris_01.java // di dalam method main // ........................................................... 21
3.5.2. CetakBaris 02.java // di dalam method main dg \n// .................................................... 21
3.5.3. CetakBaris_03.java // di dalam method constructor// .................................................. 22
3.5.4. CetakBaris_04.java // di dalam method Cetak// ........................................................... 22
3.5.5. CetakBaris_05.java // di dalam method Cetak// ........................................................... 22
3.6. Latihan Mandiri Cara Input ......................................................................................... 23
3.6.1. Metode input menggunakan lingkungan Console (DOS) ............................................ 23
3.6.2. Metode Input Lingkungan GUI Menggunakan JOptionPane dengan method
showInputDialog().................................................................................................................. 25
3.7. Latihan soal .................................................................................................................. 26

iii
Bab 4 Stuktur Data ....................................................................................................................... 29
4.1. Tipe Data ..................................................................................................................... 29
4.1.1. Tipe Data Dasar / Primitive (Data Type)...................................................................... 29
4.1.2. Tipe Data Bentukan ...................................................................................................... 30
4.1.3. Tipe Data Abstrak (Abstract Data Type) ...................................................................... 30
4.2. Pemberian Nilai (Data Value) ..................................................................................... 30
4.3. Variabel ....................................................................................................................... 31
4.4. Konstanta ..................................................................................................................... 33
4.5. Operator ....................................................................................................................... 33
4.6. Latihan Mandiri ........................................................................................................... 35
4.6.1. Contoh Program Mengenal Variabel ............................................................................ 35
4.6.2. Contoh program mengenal Konstanta .......................................................................... 35
4.6.3. Contoh Program operator Aritmatika ........................................................................... 36
4.7. Latihan Soal ................................................................................................................. 36
Bab 5 Struktur Dasar Algoritma ................................................................................................. 38
5.1. Struktur Algoritma Runtutan ....................................................................................... 38
5.2. Struktur Algoritma Pemilihan/Percabangan ................................................................ 39
5.2.1 . If Kondisi Tunggal ...................................................................................................... 39
5.2.2. If Kondisi Ganda .......................................................................................................... 41
5.2.3. If Kondisi Majemuk ..................................................................................................... 43
5.3. Switch Case ................................................................................................................ 44
5.4. Latihan Soal................................................................................................................. 46
Bab 6 Struktur Algoritma (Lanjutan) ........................................................................................ 51
6.1. Pengulangan For .......................................................................................................... 51
6.1.1. Nested For .................................................................................................................... 53
6.2. Pengulangan While ...................................................................................................... 53
6.2.1.Nested While ................................................................................................................. 54
6.3. Pengulangan Do…While .............................................................................................. 55
6.3.1. Nested Do…While ........................................................................................................ 56
6.4. Latihan Soal ................................................................................................................. 57
Bab 7 Array ................................................................................................................................... 60
7.1 Array 1 Dimensi ......................................................................................................... 60
7.2 Array 2 Dimensi ......................................................................................................... 62
7.3 Array 3 Dimensi ......................................................................................................... 65

iv
DAFTAR GAMBAR

Gambar 1.1. Langkah-langkah penukaran gelas isi gelas A dan gelas B. ..........................................2
Gambar 1.2. penukaran gelas isi gelas A dan gelas B........................................................................2
Gambar 2.1. Contoh penulisan Pseudocode Konversi Nilai............................................................ 11
Gambar 3.1. Tahapan pembuatan aplikasi menggunakan pemrograman Java ................................ 17
Gambar 3.2 . Contoh hasil running menggunakan metode console ................................................ 21
Gambar 3.3 Contoh hasil running menggunakan metode NetBeans .............................................. 21
Gambar 4.1. Logika Variabel ......................................................................................................... 31
Gambar 4.2 Hubungan tipe data, nilai dan variabel ....................................................................... 31
Gambar 4.3 Contoh penggunaan variable pada Flowchart............................................................. 32
Gambar 5.2. Diagram alir if majemuk ............................................................................................ 43

v
DAFTAR TABEL
Tabel 2.1. Contoh penulisan perbandingan algotima menggunakan kalimat deskriptif dan
pseudocode...................................................................................................................................... 10
Tabel 2.2. Simbol Flowchart............................................................................................................ 11
Tabel 4.1. Operator pada Java ......................................................................................................... 34

vi
Bab 1
Pengantar Algoritma

Pokok Bahasan
1. Konsep logika dan algoritma
2. Ciri-ciri algoritma
3. Konsep algoritma, program, dan bahasa pemrograman

Tujuan Pembelajaran
Setelah mempelajari materi dalam bab ini, mahasiswa diharapkan mampu:
1. Mengenal dan memahami logika dan algoritma.
2. Mampu membuat contoh penyelesaian masalah dengan menggunakan konsep logika

1.1 Problem Solving dan Algoritma


Problem solving atau pemecahan masalah adalah proses menemukan solusi dari suatu permasalahan
dengan cara yang sistematis. Dalam konteks komputasi dan pemrograman, problem solving melibatkan
tahapan atau proses antara lain :
• Identifikasi Masalah : Memahami apa masalah yang ingin diselesaikan.
• Analisis Masalah : Mengumpulkan informasi yang diperlukan untuk memahami aspek-aspek
penting dari masalah.
• Perancangan Solusi : Merencanakan langkah-langkah spesifik atau strategi yang akan digunakan
untuk menyelesaikan masalah.
• Implementasi : Melaksanakan atau menerapkan solusi.
• Evaluasi : Mengevaluasi apakah solusi yang diterapkan efektif dan apakah terdapat perbaikan yang
perlu dilakukan.

Algoritma adalah urutan langkah logis yang Terorganisir dan Terstruktur yang dirancang untuk
Menyelesaikan Masalah atau Mengeksekusi Tugas tertentu. Yang ditekankan adalah urutan langkah logis,
yang berarti algoritma harus mengikuti suatu urutan tertentu, tidak boleh melompat-lompat. (Dari Microsoft
Press Computer and Internet Dictionaary 1997, 1998). Jika Anda dapat memecahkan suatu masalah yang ada,
maka Anda juga dapat menulis Algoritma untuk masalah tersebut karena algoritma berkaitan erat dengan
problem solving. Alur pemikiran dalam menyelesaikan permasalahan dituangkan secara tertulis melalui
algoritma, sehingga algoritma dari setiap orang akan berbeda. Karena algoritma adalah hasil dari proses
problem solving yang telah dirumuskan dalam langkah-langkah terstruktur dan dapat dieksekusi. Berikut
adalah bagaimana kedua konsep ini berhubungan :
• Analisis Masalah : Langkah awal dalam problem solving membantu menentukan bagaimana
algoritma akan bekerja. Di sini, analisis masalah membantu merumuskan langkah-langkah yang
diperlukan dalam algoritma.
• Perancangan Algoritma : Setelah masalah teridentifikasi, solusi harus dirancang dalam bentuk
algoritma yang terdiri dari serangkaian langkah logis yang dapat diterapkan secara berulang.
• Implementasi dalam Kode : Algoritma yang dirancang pada tahap problem solving kemudian
diimplementasikan sebagai kode dalam bahasa pemrograman.
• Efisiensi : Algoritma yang efektif memungkinkan pemecahan masalah dengan cara yang lebih
cepat dan lebih efisien, meminimalkan penggunaan sumber daya komputasi.

Algoritma tidak hanya dalam ilmu komputer dan matematika saja Algoritma juga dapat kita jumpai dalam
kehidupan sehari-hari misalnya :
1. Algoritma mengirim Pesan Whatsapp baru
a. Buka aplikasi Whatsapp pada ponsel
b. Buka Halaman chat baru pilih nomor Hp Whatsapp
c. Input pesan yang akan dikirim

1
d. Klik tombol kirim
e. Chat Whatsapp akan terkirim
2. Algoritma menghitung luas lingkaran:
a. Menentukan nilai jari-jari (r) lingkaran.
b. Menentukan nilai phi.
c. Menghitung luas lingkaran dengan cara, nilai jari-jari (r) dikalikan dengan nilai phi.
d. Maka luas lingkaran ditemukan.
Selesai.

Untuk lebih memahamkan lagi arti dari algoritma dicontohkan sebuah permasalahan penukaran isi dari
dua gelas. Diberikan dua buah gelas A dan B, gelas A berisi air teh dan gelas B berisi air kopi. Pertukarkan isi
gelas tersebut sehingga menghasilkan gelas A yang semula berisi air teh menjadi berisi air kopi dan gelas B
yang semula berisi air kopi menjadi berisi air teh. Ilustrasi permasalahan ini dapat dilihat pada Gambar 1.2
dan ilustrasi langkah-langkah algoritma dapat dilihat pada gambar 1.1

Gambar 1.2. penukaran gelas


Gambar 1.1. Langkah-langkah penukaran gelas isi gelas A
isi gelas A dan gelas B.
dan gelas B.
Cara penyelesaian permasalahan ini adalah sebagai berikut. Untuk menukar isi gelas dengan benar,
maka diperlukan gelas tambahan yang kita namakan gelas C sebagai tempat penampungan sementara.
Berikut Algoritmanya :
1. Siapkan gelas cadangan C
2. Tuangkan air teh dari gelas A ke dalam gelas C (gelas A menjadi kosong).
3. Tuangkan air kopi dari gelas B ke dalam gelas A (gelas B menjadi kosong).
4. Tuangkan air teh dari gelas C ke dalam gelas B

Dari contoh tersebut dapat dilihat bahwa penyelesaian permasalahan penukaran isi dua buah gelas sangat
sederhana. Disini digunakan urutan langkah yang masuk akal atau logis sehingga isi dari kedua nya sudah
berpindah media, dari A ke B dan B ke A. Inilah yang dinamakan “Algoritma”, urutan penyelesaian sebuah
permasalahan dengan urutan dan langkah yang logis dan masuk akal menghasilkan sesuatu langkah yang
benar.
Saat menggunakan logika, sebaiknya jangan berfıkir terlalu rumit tentang sebuah masalah, karena belum
tentu masalah itu serumit yang kita pikir. Pikirkan hal yang paling sederhana untuk menyelesaikan masalah
itu, sehingga tidak terjebak dalam pikiran rumit yang dibuat sendiri. Meskl demikian jangan meremehkan
masalah sekecil apapun, tapi berfikir sederhana untuk menghasilkan solusi yang efektif.
Tujuan dari belajar logika dan algoritma adalah agar dapat membiasakan diri melakukan suatu
perencanaan apabila menyelesaikan suatu masalah. Karena suatu permasalahan yang diselesaikan dengan
suatu perencanaan yang matang maka akan mendapatkan solusi yang lebih optimal dibandingkan
menyelesaikan masalah tanpa menggunakan suatu perencanaan.
Dalam menentukan algoritma untuk menyelesaikan suatu permasalahan, akan dihadapkan oleh beberapa
pilihan algoritma. Oleh karena itu kita harus memiliki rambu-rambu dalam menentukan pilihan algoritma
antara lain :

2
1. Algoritma haruslah benar
Algoritma akan memberikan keluaran seperti yang diharapkan dari sejumlah masukan yang
diberikan. Tidak peduli sebagus apapun algoritma, jika memberikan keluaran yang salah, maka sudah
pasti algoritma tersebut bukanlah algoritma yang baik.
2. Mengetahui seberapa baik hasil yang dicapai oleh algoritma
Hal ini penting terutama pada algoritma yang memerlukan aproksimasi hasil yaitu algoritma yang
hasilnya hanya berupa pendekatan. Algoritma yang baik harus mampu memberikan hasil yang
sedekat mungkin dengan nilai yang sebenarnya.
3. Efısiensi algoritma.
Efısiensi algoritma dapat ditinjau dari dua hal yaitu efısiensi waktu dan memori. Meskipun
algoritma memberikan keluaran yang benar atau paling mendekati, tetapi jika kita harus
menunggu lama untuk mendapatkan hasil semisal berjam-jam untuk mendapatkan keluarannya maka
biasanya algoritma tersebut biasanya tidak akan menjadi pilihan utama, setiap orang
menginginkan keluaran yang relatif cepat. Begitujuga dengan memori, semakin besar memori
yang terpakai maka semakin jelek algoritma tersebut. Dalam kenyataannya, setiap orang bisa
membuat algoritma yang berbeda untuk menyelesaikan suatu permasalahan, walaupun terjadi
perbedaandalam menyusun algoritma, tentunya kita mengharapkan keluaran yang mirip atau
sama. Jika dihadapkan pada permasalahan seperti ini maka sebaiknya pilih algoritma yang paling
efısien dan cepat.

1.2. Ciri-ciri dan Sifat Algoritma


Algoritma mempunyai lima ciri penting yang meliputi:
1. Definiteness (kepastian), setiap langkah harus didefinisikan secara tepat dan tidak berarti ganda.
2. Input (masukan), algoritma memiliki nol atau lebih data masukan (input).
3. Output (keluaran), algoritma mempunyai nol atau lebih hasil keluaran (output).
4. Finiteness (keterbatasan), Urutan langkah pada algoritma harus dapat diselesaikan dalam jumlah
langkah yang terbatas.
5. Effectiveness (efektivitas), algoritma harus efektif, langkah-langkah algoritma dikerjakan dalam waktu
yang wajar.
Sifat algoritma adalah:
1. Tidak menggunakan simbol atau sintaks dari suatu bahasa pemrograman tertentu.
2. Tidak tergantung pada suatu bahasa pemrograman tertentu.
3. Notasi-notasinya dapat digunakan untuk seluruh bahasa manapun.
4. Algoritma dapat digunakan untuk merepresentasikan suatu urutan kejadian secara logis dan dapat
diterapkan di semua kejadian sehari-hari.

1.3 Struktur Algoritma


Penyusun atau strulitur dasar algoritma adalah langkah-langkah. Suatu Algoritma dapat terdiri dari tiga
struktur dasar, yaitu Runtunan, Pemilihan dan Pengulangan. Ketiga jenis langkah tersebut membentuk
konstruksi suatu algoritma.
1. Algoritma Runtunan (Sequence)
Struktur algoritma runtutan atau sequential terdiri dari sebuah instruksi atau blok yang berisi langkah
urut saja, satu langkah diikuti oleh langkah lainnya. Sebuah instruksi dikerjakan setelah instruksi sebelumnya
dikerjakan. Urutan dari instruksi menentukan hasil akhir dari suatu algoritma. Bila urutan penulisan berubah
maka mungkin juga hasil akhirnya berubah. Sebagai contoh perhatikan operasi aritmatika berikut ini, (4+3) * 7 =
49, tetapi bila urutan aksinya diubah maka hasil keluaran akan berbeda menjadi 4 + (3*7) = 25.

3
2. Pemilihan (Selection)
Struktur pemillhan atau selection menyatakan pemilihan langkah yang didasarkan oleh suatu kondisi
atau pengambilan suatu keputusan. Kadangkala terdapat suatu kejadian yang baru akan dikerjakan jika suatu
kondisi tertentu telah terpenuhi. Pemilihan yaitu instruksi yang dikerjakan dengan kondisi tertentu. Kondisi
adalah persyaratan yang dapat bemilai benar atau salah. Satu atau beberapa instruksi hanya dilaksanakan
apabila kondisl bemllai benar, sebaliknya apabila salah maka instruksi tidak akan dilaksanakan. Contoh kasus
pemilihan adalah dalam penentuan bilangan genap atau ganjil berikut ini:
1. Masukkan bilangan sebagai sebuah bilangan bulat
2. Bagi bilangan dengan angka 2, simpan nilai sisa pembagian dalam variabel sisa
3. Jika nilai sisa sama dengan 0 maka kerjakan langkah 4:
4. Tampilkan ”GENAP” ke layar
5. Jika nilai sisa tidak sama dengan 0 maka kerjakan langkah 6
6. Tampilkan ”GANJIL” ke layar
7. Selesai.

3. Pengulangan (Repetition)
Struktur ini memberikan suatu perintah atau tindakkan yang dilakukan beberapa kali. Misalnya jika
mau menuliskan kata “Belajar Algoritma dan Pemrograman” sebanyak sepuluh lcali. Akan lebih efisien
jika menggunakan sturktur ini dari pada sekedar menuliskannya berturut-turut sebanyalc sepuluh kali.
Salah satu kelebihan komputer adalah kemampuannya untuk mengerjakan pekerjaan yang sama berulang
kali tanpa mengenal lelah. Kita tidak perlu menulis instruksi yang sama berulang kali, tetapi cukup
melakukan pengulangan dengan instruksi yang tersedia.
Pengulangan merupakan kegiatan mengerjakan sebuah atau sejumlah aksi yang sama sebanyak
jumlah yang ditentukan atau sesuai dengan kondisi yang diinginkan. Beberapa statemen pengulangan di
bahasa pemrograman yaitu for..., while () ..., do...while (), repeat.... until, for...down to...do, for...to...do
dan lain-lain. Sebagai contoh adalah menampilkan huruf tertentu sebanyak n kali ke layar sebagai berikut:
1. Deklarasikan variabel huruf untuk menyimpan karakter yang akan ditampilkan.
2. Deklarasikan variabel n untuk menyimpan banyaknya perulangan
3. Deklarasikan variabel counter yang digunakan sebagai counter perulangan yang sudah
dilakukan.
4. Masukkan sebuah karakter dan simpan dalam variabel huruf
5. Masukkan banyaknya perulangan yang diinginkan dan simpan dalam variabel n
6. Set nilai counter dengan 0
7. Tampilkan huruf ke layar
8. Lakukan penambahan counter dengan 1
9. Jika nilai counter+n, kerjakan langkah 6
10. Jika nilai counter = n selesai

4
1.4 Perbedaan Algoritma dan Program
Sebagaimana telah dijelaskan diatas bahwa algoritma adalah urutan langkah-langkah terbatas
yang disusun secara sistematis dan menggunakan bahasa yang logis dengan tujuan menyelesaikan
suatu masalah tertentu. Sementara program adalah kumpulan instruksi berupa pernyataan yang ditulis
dengan menggunakan bahasa pemrograman yang melibatkan pemilihan struktur data. Jika disimpulkan
bahwa dalam membuat suatu program maka membutuhkan = Algoritma + Bahasa Pemrograman.
Bahasa pemrograman dan algoritma berhubungan sangat erat pada sebuah program. Algoritma
yang baik tanpa pemilihan struktur data yang tepat akan membuat program menjadi kurang baik,
demikian juga sebaliknya. lika dihubungkan dengan program, maka pembuatan algoritma harus
memperhatikan kaidah :
1. Pembuatan atau penulisan algoritma tidak tergantung pada bahasa pemrograman manapun,
artinya penulisan algoritma independen dari bahasa pemrograman dan komputer yang
memprosesnya.

2. Notasi algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman.


Apapun bahasa pemrogramannya, output yang akan dikeluarkan sama karena algoritmanya sama.
Algoritma dibuat untuk membantu kita dalam mengkonversikan suatu permasalahan ke dalam bahasa
pemrograman. Algoritma merupakan hasil pemikiran konseptual, supaya dapat dilaksanakan oleh
komputer yang diterjemahkan ke dalam notasi bahasa pemrograman. Ada beberapa hal yang harus
diperhatikan pada penerjemahan tersebut, yaitu
1. Pendeklarasian variabel
Variabel dibutuhkan oleh program dalam rangka menyimpan data masukan, memproses dan
mendapatkan hasil komputasi.
2. Pemilihan tipe data
Apabila dalam proses pembuatan program ternyata membutuhkan pendeklarasian variabel
maka diwajibkam memilih tipe data, karena setiap variabel pasti membutuhkan tipe data ketika
dideklarasikan.
3. Pemakaian atau pemilihan instruksi
Terdapat beberapa macam instruksi dalam bahasa pemrograman (sequence, selection dan
repetition), urutan langkah dalam algoritma dapat diterjemahkan menjadi salah satu atau
beberapa instruksi tersebut.
4. Aturan sintaksis
Pada saat menuliskan program kita terlkat dengan aturan sintaksis dalam bahasa pemrograman
yang akan digunakan. Setiap bahasa pemrograman memiliki aturan penulisan sintaks-nya
sendiri.
5. Tampilan hasil
Pada saat membuat algoritma kita tidak memikirkan tampilan hasil yang akan disajikan. Hal
teknis semacam ini diperhatikan ketikamengkonversikannya menjadi program.
6. Cara pengoperasian compiler atau interpreter.
Bahasa pemrograman yang digunakan termasuk dalam kelompok compiler atau interpreter.
Masing- masing memiliki cara pengoperasian yang bisa jadi berbeda.

5
Komputer adalah mesin pemroses. Agar dapat dikerjakan oleh komputer, algoritma harus ditulis dalam
notasi bahasa pemrograman berupa instruksi yang dapat dipahami oleh komputer sehingga dinamakan
program. Jadi program adalah perwujudan atau implementasi teknis algoritma yang ditulis dalam bahasa
pemrograman tertentu sehingga dapat dilaksanakan oleh komputer. Program ditulis dengan menggunakan
salah satu bahasa pemrograman. Kegiatan membuat program disebut pemrograman @rogramming). Orang
yang menulis program disebut pemrogram @rogrammer). Tiap-tiap langkah didalam program disebut
pernyataan atau instruksi. Jadi, program tersusun atas sederetan instruksi. Bila suatu instruksi dilaksanakan,
maka operasi-operasi yang bersesuaian dengan instruksi tersebut dikerjakan komputer.

1.5 Latihan Soal


1. Apa yang dimaksud dengan algoritma ?
Algoritma adalah urutan langkah logis Terortaingir dan Terstuktur yang dirancang untuk
menyelesaikan masalah mengekseskusi tugas tertentu tertentu.Yang ditekankan adalah urutan
langkah logis,yang berarti algoritma harus mengikuti suatu urutan tertentu,tidak boleh melompat
lomoat.(Dari Mirosoft Press Computer and Internet Dictionaary 1997,1998).Jika Anda dapat
memecahkan suatu masalah yang ada,maka Anda juga dapat menulis Algoritma untuk masalah
tersebut karena algoritma berkaitan erat dengan problem solving.

2. Apa saja karakteristik dasar dari sebuah algoritma ?


Definiteness (kepastian), setiap langkah harus didefinisikan secara tepat dan tidak berarti ganda.
Input (masukan), algoritma memiliki nol atau lebih data masukan (input).
Output (keluaran), algoritma mempunyai nol atau lebih hasil keluaran (output).
Finiteness (keterbatasan), Urutan langkah pada algoritma harus dapat diselesaikan dalam jumlah
langkah yang terbatas.
Effectiveness (efektivitas), algoritma harus efektif, langkah-langkah algoritma dikerjakan dalam
waktuyang wajar.

3. Mengapa algoritma penting dalam pemrograman?


Karena Algoritma dibuat untuk membantu kita dalam mengkonvensikan suatu permasalahan ke
dalam bahasa pemrograman. Algoritma merupakan hasil pemikiran konseptual, supaya dapat
dilaksanakan oleh komputer yang diterjemahkan ke dalam notasi bahasa pemrograman.

4. Apa yang dimaksud dengan kompleksitas waktu dalam algoritma?


Kompleksitas dalam algoritma adalah Efisiensi waktu menjadi perhatian utama dalam pemilihan
algoritma karena meskipun algoritma dapat memberikan hasil yang benar (seperti yang disebutkan
dalam prinsip algoritma yang benar), algoritma yang memerlukan waktu terlalu lama untuk
menyelesaikan masalah mungkin tidak praktis untuk digunakan, terutama dengan input yang besar.

5. Bagaimana cara menentukan apakah sebuah algoritma itu efisien atau tidak?
a. Kompleksitas Waktu : Waktu yang dibutuhkan
b. Kompleksitas Ruang : Penggunaan memori secara optima
c. Ukuran Input : Efesiensi meningkatnya ukuran input
d. Kualitas Input : Kualitas dan jenis data yang terbaca ( acak & urut Perbandingan dengan
Algoritma Lain : Melakukan pengujian terhadap algoritma dengan membandingkannya dengan
algoritma lain yang menyelesaikan masalah yang sama.
e. Pengujian dan Analisis : Melakukan pengujian terhadap algoritma dengan berbagai ukuran dan
komposisi input, dan juga dapat di analis dengan data memori yang tercantum.

6
Bab 2
Notasi Penulisan Algoritma

Pokok Bahasan
1. Representasi algoritma
2. Jenis penulisan algoritma
3. Tata aturan penulisan algoritma dengan bahasa deskriptif
4. Tata aturan penulisan algoritma dengan pseudocode
5. Notasi flowchart
6. Tata aturan penulisan algoritma dengan flowchart

Tujuan Pembelajaran
1. Menjelaskan representasi algoritma
2. Menjelaskan tentang pilihan cara penulisan algoritma.
3. Mengetahui tata aturan penulisan algoritma dengan bahasa deskriptif.
4. Memahami tata aturan penulisan algoritma dengan pseudocode.
5. Mengetahu berbagai notasi fiowchart.
6. Mengetahui cara penulisan algoritma dengan fiowchart.

2.1. Representasi Algoritma


Representasi algoritma adalah cara menggambarkan atau menyajikan langkah-langkah dalam
algoritma secara sistematis dan terstruktur. Tujuannya adalah untuk mempermudah pemahaman, analisis,
dan implementasi solusi dari suatu masalah. Representasi ini bisa berupa teks, seperti pseudocode, atau
visual, seperti flowchart (diagram alir), yang menunjukkan urutan langkah atau proses dalam algoritma.
Dengan representasi algoritma, setiap tahap dalam pemecahan masalah dapat dijelaskan secara logis
dan dapat diikuti oleh orang lain, termasuk yang tidak memiliki latar belakang teknis atau pemrograman.
Representasi algoritma sangat penting karena memudahkan kita dalam memahami, merancang, dan
mengkomunikasikan solusi untuk suatu masalah secara terstruktur dan logis. Berikut beberapa alasan mengapa
representasi algoritma diperlukan
1. Mempermudah Pemahaman dan Analisis
• Representasi algoritma memungkinkan kita untuk melihat langkah-langkah penyelesaian masalah secara
menyeluruh dan logis. Dengan representasi yang baik, kita dapat lebih mudah memahami bagaimana
algoritma bekerja, apa tujuannya, dan bagaimana prosesnya dari awal hingga akhir.
• Representasi, seperti pseudocode atau flowchart, memungkinkan kita untuk fokus pada logika solusi
tanpa terikat pada sintaks bahasa pemrograman tertentu.
2. Menyederhanakan Proses Pengembangan dan Perbaikan
• Ketika algoritma diwakili dalam bentuk yang jelas dan mudah dipahami, proses pengembangan dan
pemeliharaan algoritma menjadi lebih sederhana. Jika ada bagian algoritma yang perlu diubah atau
diperbaiki, kita dapat melihat keseluruhan struktur algoritma dan mengidentifikasi bagian-bagian yang
perlu disesuaikan.
• Representasi yang jelas membantu dalam menemukan kesalahan logika atau langkah-langkah yang
dapat dioptimalkan.
3. Memudahkan Komunikasi dengan Tim atau Stakeholder
• Dalam proyek yang melibatkan tim atau pemangku kepentingan non-teknis, representasi algoritma
membantu semua plhak memahami solusi yang diusulkan tanpa harus mendalallll bahasa pemrograman.
Ini memungkinkan anggota tim yang tidak memiliki latar belakang teknis untuk memahallll alur solusi
dan memberikan masukan.
• Representasi visual, seperti flowchart, sangat efektif untuk menjelaskan algoritma dalam rapat atau
dokumentasi.

7
4. Mendukung Proses Dokumentasi
• Representasi algoritma merupakan bagian penting dari dokumentasi yang membantu mengarsipkan
logika solusi. Dokumentasi ini dapat digunakan di masa depan untuk pemeliharaan, pembaruan, atau
analisis lebih lanjut.
• Dokumentasi yang jelas membuat algoritma lebih mudah dipelajari dan diterapkan kembali oleh
pengembang lain yang mungkin bekerja pada proyek di masa mendatang.
5. Meningkatkan Efisiensi dalam Pengembangan Kode
• Dengan membuat representasi yang jelas, pengembang bisa lebih cepat mengimplementasikan algoritma ke
dalam kode karena sudah memiliki panduan yang jelas. Representasi membantu memastikan bahwa
algoritma diimplementasikan dengan benar, sesuai dengan logika yang dirancang sejak awal.
6. Mengurangi Potensi Kesalahan
• Representasi yang jelas dan terstruktur memungkinkan pengembang untuk mengidentifikasi masalah
atau inkonsistensi dalam logika algoritma sebelum diterapkan ke dalam mode. Ini membantu mengurangi
potensi kesalahan (bug) pada tahap implementasi.
• Dengan melihat langkah-langkah secara berurutan, kita dapat lebih mudah melakukan pengujian
terhadap setiap tahapan dalam algoritma.

Algoritma berisi langkah-langkah penyelesaian masalah. Notasi algoritma merupakan hal dasar yang
harus diketahui oleh setiap orang yang ingin membuat suatu pogram, karena dalam notasi algoritma inilah
terdapat kerangka-kerangka suatu program. Deskripsi langkahlangkah dalam algoritma tidak mengacu pada
sintaks bahasa pemrograman apapun dan tidak tergantung pada spesifikasi komputer yang mengeksekusinya.
Tidak ada aturan baku dalam menuliskan algoritma, yang penting mudah dibaca dan menggunakan bahasa
yang mudah dipahami. Meskipun demikian untuk menghindari kekeliruan, ketaatan terhadap notasi perlu
diperhatikan. Terdapat tiga cara yang umum digunakan dalam menuliskan algoritma yaitu:
1. Kalimat Deskriptif
2. Pseudocode
3. Flowchart

2.2. Kalimat Deskriptif


Notasi penulisan algoritma dengan menggunakan bahasa deskriptif biasa juga disebut dengan notasi
alami. Dilakukan dengan cara menuliskan instruksi-instuksi yang harus dilaksanakan dalam bentuk untaian
kalimat deskriptif dengan menggunakan bahasa yang jelas. Dasar dari notasi bahasa deskriptif adalah Bahasa
Inggris, namun dapat dimodifikasi dengan bahasa sehari-hari termasuk Bahasa Indonesia. Notasi algoritma
deskriptif ini biasanya digunakan pada algoritma yang pendek karena apabila untuk algoritma yang panjang
notasi deskriptif kurang efektif.
Karena tidak ada aturan baku dalam menuliskan algoritma dengan notasi deskriptif maka tiap orang
dapat membuat aturan penulisan dan notasi algoritma sendiri. Hal ini dapat dimengerti karena teks algoritma
tidak sama dengan teks program serta penulisan algoritma menggunakan kalimat deskriptif ini dapat
menimbulkan ambiguitas, dimana kalimat dapat mengandung makna ganda sehingga dapat terjadi
kesalahpahaman saat membaca algoritma tersebut. Namun, agar notasi algoritma mudah ditranslasi ke dalam
notasi bahasa pemrograman, maka sebaiknya notasi algoritma tersebut berkoresponden dengan notasi bahasa
pemrograman pada umumnya. Kata kerja adalah jenis kata yang biasa digunakan dalam penulisan bahasa
deskriptif, contohnya tulis, baca, hitung, tampilkan, jika, maka, ulangi, bandingkan, dan lain-lain. Sedangkan
jika memakai bahasa inggris biasanya menggunakan kata read, print, write, if, end, dsb.
Cara penulisan algoritma dengan notasi bahasa deskriptif paling mudah dibuat, namun demikian cara
ini paling sulit untuk diterjemahkan ke dalam bahasa pemrograman. Pada dasarnya teks algoritma dengan
bahasa deskriptif disusun oleh tiga bagian utama yaitu:
1. Bagian judul (header) : mendefinisikan semua nama yang digunakan pada algoritma, seperti variable, tipe
data, fungsi, konstanta
2. Bagian deklarasi (kamus) : mendefinisikan uraian langkah — langkah penyelesaian masalah.
3. Bagian deskripsi : Bagian ini berisi uraian langkah- langkah penyelesaian masalah

8
Setiap bagian disertai dengan komentar untuk memperjelas maksud teks yang dituliskan. Komentar adalah
kalimat yang diapit oleh pasangan tanda kurung kurawal (‘ (’ dan ‘}’). Adapun contoh dari penulisan notasi
kalimat deskriptif adalah sebagai berikut :
Contoh 1:
Judul:
Algoritma Perkalian{perkalian 2 bilangan bulat. Algoritma memasukkan
2 bilangan bulat, kemudian menghitung hasil perkalian dari kedua angka
tersebut, dan mencetak hasil perkalian tersebut}
Deklarasi:
bil, bi2, hasilKali = int
Deskripsi:
Input Bil, Bi2
hitung hasilKali = bil x
bi2 Tampilkan hasilKali
Selesai
Contoh 2:
Judul:
Algoritma hitungDiskon
{menghitung harga setelah diskon dengan memasukkan harga awal produk
dan besaran diskonnya}
Deklarasi:
hargaAwal, besaranDiskon(%), hargaDiskon = int
Deskripsi:
Input hargaAwal, besaranDiskon(%)
Hitung hargaDiskon = hargaAwal—(hargaAwal x
besaranDiskon(%)) Tampilkan hargaDiskon
Selesai.

Kedua contoh algoritma diatas dapat menunjukkarı bahwa penggunaan notasi talimat deskriptif
sangatlah sederhana, mudah dibaca dan dipahami. Penyelesaian permasalahan yang sederhana lebih mudah
menggunakan notasi kalimat deskriptif ini, namun jika penyelesaian masalah terbilang kompleks dan rumit,
akan lebih sulit terselesaikan menggunakan notasi talimat deskriptif, dan dapat menggunakan notasi algoritma
lainnya, seperti pseudocode atau fiowchart.

2.3. Pseudocode
Pseudocode adalah cara penulisan algoritma yang menyerupai bahasa pemrograman tingkat tinggi.
Pseudocode menggunakan bahasa yang hampir menyerupai bahasa pemrograman. Biasanya pseudocode
menggunakan bahasa yang mudah dipahami secara universal dan juga lebih ringkas dari pada algoritma.
Pseudocode berisi deskripsi dari algoritma pemrograman komputer yang menggunakan struktur sederhana dari
beberapa bahasa pemrograman tetapi bahasa tersebut hanya di tujukan agar dapat di baca manusia. Sehingga
pseudocode tidak dapat dipahami oleh komputer. Supaya notasi pseudocode bisa dipahami oleh komputer
maka harus diterjemahkan terlebih dahulu menjadi sintaks bahasa pemrograman komputer tertentu.

9
Dalam pseudocode, tidak ada sintaks standar yang resmi. Karena itu, pseudocode ini dapat diterapkan
dalam berbagai bahasa pemograman. Disarankan untuk menggunakan keyword yang umum digunakan seperti if,
then, else, while, do, repeat, for, dan lainnya Keuntungan menggunakan notasi pseudocode adalah
kemudahan mentranslasi ke notasi bahasa pemrograman, karena terdapat korespondensi antara setiap
pseudocode dengan notasi bahasa pemrograman. Tabel 2-1. Contoh Perbandingan penulisan algoritma
menggunakan kalimat deskriptif dan pseudocode.menunjukkan perbandingan beberapa kata yang biasa
digunakan dalam penulisan algoritma dengan menggunakan kalimat deskriptif dan pseudocode.

Tabel 2.1. Contoh Perbandingan penulisan algoritma menggunakan kalimat deskriptif dan pseudocode.

Kalimat Deskriptif Pseudocode


Masukkan panjang Input panjang
Read panjang
Baca panjang
Hitung luas dengan rumus panjang x lebar luas T- panjang * lebar
Tampilkan luas Output luas
Print luas
Write luas
Jika sudah selesai, cetak luas If kondisi selesai == true then print luas
Jika nilai A lebih kecil dari 5 maka nilai B dibagi 3 If A+5 then B Li B/3
Jika nilai A lebih besar dari nilai B mama tampilkan A,
If A>B then print A else print B
jika A lebih kecil dari B maka tampilkan nilai B

Struktur penulisan pseudocode secara umum sama dengan struktur penulisan algoritma dengan
menggunakan kalimat deskriptif yaitu dimulai dari judul/header, deklarasi/kamus dan diakhiri dengan
deskripsi. Meskipun tidak ada sintaks khusus dalam penulisan pseudocode, tetapi terkadang pseudocode
dituliskan dengan menggunakan style atau gaya penulisan dari beberapa bahasa pemrograman yang ada,
seperti Java, Pascal, C dan lain-lain. Gambar 4-1 merupakan contoh penulisan pseudocode program
konversi nilai angka ke huruf.

Algoritma Konversi Nilai Angka ke Huruf


{Dibaca tiga buah bilangan dari piranti masukan. Carilah dan tampilkan
bilangan bulat maksimum diantara ketiga bilangan tersebut)

Deklarasi:
Nama dan nim = String nilai =
integer

Deskripsi:
1. Read (nama)
2. Read (nim)
3. Read (nilai)
4. If (nilai < 45) then
5. Grade = E
6. Else if (nilai >= 45) and (nilai < 60) then
7. Grade = D
8. Else if (nilai >= 60) and (nilai < 70) then
9. Grade = C
10. Else if (nilai >= 70) and (nilai < 80) then
11. Grade = B
12. Else
13. Grade = A

10
14. Write (nama)
15. Write (NIM)
16. Write (nilai)
17. Selesai
Gambar 2.1. Contoh penulisan Pseudocode Konversi Nilai

2.4. Flowchart
Flowchart adalah cara penulisan algoritma dengan menggunakan notasi grafis. Flowchart
merupakan gambar atau bagan yang memperlihatkan urutan atau langkah-langkah dari suatu program
dan hubungan antar proses beserta pernyataannya. Gambaran ini dinyatakandengan simbol. Dengan
demikian setiap simbol menggambarkan prosestertentu. Sedangkan antara proses digambarkan dengan
garis penghubung.
Simbol-simbol flowchart yang biasanya dipakai adalah simbol-simbol flowchart standar yang
dikeluarkan oleh ANSI dan ISO. Tabel 2-2 merupakan beberapa simbol flowchart yang digunakan
dalam menggambar suatu flowchart:

Tabel 2.2. Simbol Flowchart


Simbol Nama Simbol Fungsi

Terminal Simbol yang digunakan


untuk menyatakan awal atau
akhir suatu program
Input / Output Simbol yang digunakan
untuk menunjukkan operasi
masukan atau keluaran
Proses Simbol yang digunakan
untuk menggambarkan
proses pengolahan data
Keputusan Simbol yang digunakan
untuk menyatakan suatu
pilihan berdasarkan suatu
kondisi tertentu
Persiapan
Simbol yang digunakan
(Preparation)
untuk nilai awal pada suatu
variabel atau pencacah
Penghubung Simbol yang digunakan
untuk menghubungkan
bagian diagram alir pada
halaman yang sama
Penghubung Simbol yang digunakan
untuk menghubungkan
(halaman lain)
bagian diagram alir pada
halaman yang berbeda
Arah Aliran Simbol yang digunakan
untuk menunjukkan arah
aliran proes

11
Untuk memahami lebih dalam mengenai flowchart ini, dibuat sebuahkasus sederhana. Misalnya
buatlah sebuah rancangan program dengan menggunakan flowchart untuk menentukan keliling dan luas
lingkaran.Perumusan untuk menentukan luas lingkaranadalah: luas — PI*radius*radius, dan keliling
lingkaran adalah keliling=2*PI*radius, dengan PI adalah sebuah konstanta 3.14. Flowchart
permasalahan ini dapat dilihat di Gambar 4-2.

Luas: 3.14*r*r Keliling = 2*3.14*r

Gambar 2.2. Flowchart luas dan keliling lingkaran


Dalam pembuatan flowchart program tidak ada rumus atau patokan yang bersifat mutlak.
Karena flowchart merupakan gambaran hasil pemikirandalam menganalisis suatu masalah yang nantinya
akan diubah menjadi program komputer. Sehingga flowchartyang dihasilkan dapat bervariasi antara
satu pemrogram dengan yang lainnya. Namum demikian terdapat beberapa anjuran yang harus
diperhatikan, yaitu :
1. Flowchart digambarkan di suatu halaman dimulai dari sisi atas ke bawah dan dari sisi kiri ke kanan.
2. Aktivitas yang digambarkan harus didefinisikan dengan jelas menggunakan bahasa dan simbol yang tepat
dan definisi ini harus dapat dimengerti oleh pembacanya.
3. Kapan aktivitas dimulai dan berakhir harus ditentukan secara jelas. Hanya terdapat satu titik awal dan satu
titik akhir.
4. Setiap langkah dari aktivitas harus diuraikan dengan menggunakan deskripsi kata kerja, misalkan
Menghitung Nilai Rata-Tara.
5. Setiap langkah dari aktivitas harus berada pada urutan yang benar.
6. Lingkup dan range dari aktifitas yang sedang digambarkan harus ditelusuri dengan hati- hati. Percabangan-
percabangan yang memotong aktivitas yang sedang digambarkan tidak perlu digambarkan pada flowchart
yang sama. Simbol konektor harus digunakan dan
7. percabangannya diletakan pada halaman yang terpisah atau hilangkan seluruhnya bila
percabangannya tidak berkaitan dengan sistem.
8. Gunakan simbol-simbol flowchart yang standar.

2.5. Latihan Soal


1. Jelaskan mengapa dalam penyelesaian pembuatan program memerlukan representasi algoritma!
Representasi algoritma adalah cara untuk menyampaikan langkah langkah penyelesaian masalah secara
sitematis dan logis,dan berfngsi untuk menyelesaikan masalah,efisiensi kode,penggunaan ulang dan
memudahkkande dubbing.dengan Representasi algoritma kita dapat menggambarkan langkah langkah

12
yang diperlukan untuk menyelesaikan suatu masalah.tujuannya adalah untuk mempermudah
pemahama,analisis,dan implementasi solusi dari suatu masalah.selain itu representasi algoritma
merupakan fondasi dalam pembuatan program.Representasi ini biasanya berupa teks, seperti seperti
pseudocode,atau visual seperti flowchart (diagram alir).Dengan Representasi algoritma yang
diekspresikan melalui Flowchart dan Pseudocode yang memudahkan pemahaman dan
implementasi.Flowchart dapat digunakan untuk memeberikan gambaran visual yang jelas tentang alur
proses,sehingga dapat meminilimasir kesalahan sedangkan .Pseudocode mendekati bahasa
pemrograman.Dengan representasi ini progammer dapat dapat merancang solusi yang efisen dan efektif
sebelum menulis kode program.ia juga dapat memberikan kerangka kerja yang jelas,memastikan
program akan berjalan secara efisien,akurat,serta dapat memudahkan proses pengembangan dan
pemeliharaan.
2. Buatlah algoritma dengan kalimat deskriptif untuk menukarkan isi dua buah nilai variabel yang
diinputkan!
berikut meruapakan algoritma dengan kalimat deskriptif untuk menukarkan isi dua
buah variabel yang diinputkan
Judul:
Menukarkan isi dua buahvariabel yang diinputkan.
Deklarasi:
var1, var2, varBantu, int
Deskripsi:
Input nilai pertama ke var1
Input nilai kedua ke var2
Simpan sementara nilai var1 ke varBantu
Pindahkan nilai var2 ke var1
Lalu pindahkan nilai varBantu ke var2
Output kedua nilai var1 dan var2 yang sudah ditukar
Selesai

3. Buatlah algoritma dengan Flowchart untuk menentukan nilai terbesar dari dua buah input.

Algoritma menentukan nilai terbesar dari dua input


Mulai
Input: dua bilangan: ‘A’ dan ‘B’
Jika ‘A’ lebih besar dari ‘B’,maka:
Tampilkan ‘A’ sebagai nilai terbesar
Jika tidak,maka
Tampilan ‘B’ sebagai nilai terbesar
Selesai

Flowchart menentukan nilai terbesar dari dua input

13
4. Buatlah algoritma dengan Pseudocode untuk menentukan untuk menentukan input bilangan termasuk
bilangan genap atau ganjil atau atau nol!
Algoritma menentukan input bilangan genap,ganjil,dan nol
Deklarasi Variabel:kita mendeklarasi variabel ‘bilangan’untuk
menyimpan input dari pengguna.
Input bilangan: program meminta pengguna untuk memasukan sebuah
bilangan
Cek kondisi:
Jika ‘bilangan’ sama dengan 0,maka program mencetak bawah bilangan
tersebut adalah 0
Jika ‘bilangan’ dibagi 2 memiliki sisa 0 (‘bilangan MOD 2 = 0
‘),maka program mencetak bawah bilangan tersbut adalah genap.
Jika tidak, maka program mencetak bahwa bilangan tersebut adalah
ganjil.
END
Pseudocode menentukan input bilangan genap,ganjil,dan no l
DEKLARASI VARIABEL
DECLARE bilangan AS INTERGER
// Input bilangan dari pengguna
PRINT “Masukan sebuah bilangan:”
INPUT bilangan
// Cek kondisi bilangan
IF bilangan = 0 THEN
PRINT “Bilangan tersebut adalah nol.”
ELSE IF bilangan MOD 2 = 0 THEN
PRINT “Bilangan tersebut adalah genap.”

14
ELSE

Flowchart Program Konversi Temperatur (Fahrenheit ke Celcius dan Reamur) dalam java:

5. Buatlah Flowchart konversi temperature dalam derajat Fahrenheit (F), dikonversi ke dalam derajat
Celcius (C) dan Reamur (R). Petunjuk konversi adalah C=5/9 (F-32), R=4/9 (F-32)

15
Bab 3
Pemrograman Java

Pokok Bahasan
1. Pengenalan Pemrograman Java
2. Pengenalan Struktur Program Java
3. Pengenalan Perintah Dasar Pemrograman Java

Tujuan Pembelajaran
1. Memahami pengertian, komponen dan cara kerja bahasa pemrograman Java.
2. Memahami struktur program java.

3.1 Pengenalan Java


Java adalah salah satu bahasa pemrograman Multiplatform (Bisa berjalan di berbagai macam sistem
operasi). Syarat utama agar program Java dapat dijalankan di sebuah perangkat adalah dengan menginstall
sebuah mesin interpreter yang disebut dengan Java Virtual Machine (JVM). JVM membaca bytecode dari
sebuah program dalam bentuk class file sebagai representasi dari program tersebut dalam bahasa mesin.
Sehingga Java disebut sebagai bahasa pemrograman yang portable karena dapat dijalankan pada berbagai
sistem operasi selama perangkat menjalankannya memiliki JVM. Berbeda dengan bahasa pemrograman vb,
c++ yang memanfaatkan komponen sistem dalam Windows untuk mengeksekusi binary code hasil
kompilasi program. Untuk menjalankan program java membutuhkan komponen antara lain yaitu: JDK
(Java Development Kit), JRE (Java Runtime Environment), dan IDE (Integrated Development
Environment).
1. JDK
JDK (Java Development Kit) merupakan sebuah paket berisi libraries maupun file yang
memungkinkan computer pengguna dapat digunakan untuk membuat aplikasi Java. Dengan kata lain, agar
dapat membuat atau mengembangkan sebuah aplikasi Java maka komputer yang kita gunakan harus
memiliki atau telah terinstall JDK.
2. JRE
JRE (Java Runtime Environment) adalah sebuah lingkungan dimana program Java dapat dijalankan.
Salah satu komponen utama yang terdapat pada JRE adalah JVM (Java Virtual Machine). Pada JRE
terdapat libraries serta file yang digunakan JVM saat dijalankan. Meskipun JVM merupakan komponen inti
yang memungkinkannya program java untuk dijalankan di berbagai perangkat, namun JVM satu perangkat
dengan perangkat lain bisa berbeda tergantung pada platform yang digunakan.
3. IDE
IDE (Integrated Development Environment) adalah sebuah editor pemrograman sebuah bahasa. Ada
banyak editor yang bisa kita gunakan untuk menuliskan source code bahasa pemrograman Java, bahkan
semua editor dimungkinkan selama editor tersebut mampu menyimpan file dengan ekstensi .java yang
merupakan ekstensi dari file untuk menyimpan source code bahasa pemrograman Java. Beberapa contoh
editor yang biasa dipakai seperti: Notepadd, Notepad++, atau yang populer seperti Jcreator, Netbeans,
Jbuilder, Eclips, dll.

Pemrograman menggunakan bahasa Java terdiri dari tiga tahap, yaitu:


1. Menuliskan program Java
Menuliskan program Java secara sederhana dapat dilakukan dengan menggunakan text editor dan disimpan
menggunakan ekstensi .java (misal: Hello World.Java).
2. Compile (kompilasi) program
Kompilasi program Java dilakukan dengan menggunakan perintah javac nama_file.java (misal: javac
HelloWorld.java). Hal ini dilakukan untuk mengubah kode program yang telah ditulis

16
menjadi sebuah binary file atau byte code yang dapat dibaca computer dengan file ber-ekstensi .class.
Kompilasi program dapat gagal dilakukan jika terdapat kesalahan dalam menuliskan kode program
maupun sintaks Java yang digunakan sehingga kode program yang ditulis tidak dapat diterjemahkan
ke binary file dengan baik.
3. Run (menjalankan) program
Menjalankan program Java dapat dilakukan dengan menggunakan perintah java nama file (misal:
java HelloWorld). Jika kompilasi pada tahapan sebelumnya berhasil dilakukan, maka program akan
dijalankan sesuai dengan kode yang telah diterjemahkan saat kompilasi. Tahapan keseluruhan dalam
membuat aplikasi Java diperlihatkan pada Gambar 5. I

Create Compile Run


(javac) (JVM)

Programmer Source code Byte code


Java
Gambar 3.1. Tahapan pembuatan aplikasi menggunakan pemrograman Java

3.2 Perintah Dasar Bahasa Pemrograman Java


3.2.1 Identifier
Dalam penulisan Program terdapat beberapa aturan untuk penulisan nama Identifier diantaranya
nama class, method, variable bahkan konstanta. Aturan tersebut antara lain:
1. Case-sensitive artinya identifier color berbeda dengan Color, COLOR, dan lain sebainya,
2. Tidak menggunakan reserved word atau Keyword JAVA,
3. Tidak menggunakan simbol-simbol operator,
4. Dimulai dengan huruf abjad (a,b,c, . . .), atau underscore (_), tanda dolar ($),
5. Tidak dibolehkan diawali dengan bilangan (0, 1, 2, …),
6. Tidak dibolehkan menggunakan spasi
Contoh
Nama Valid Tidak Valid
Class Hello HelloWorld Hello_World 1Hello Hello World Hello – World
Method hello helloworld hello_world 1hello helo world hello – world
Variabel first firstName first_Name 1first first Name first – Name
Konstanta PHI JARIJARI _WARNA_2 2PHI JARI JARI _WARNA-2

3.2.2 Modifier
Modifier biasanya dibagi ke dalam 2 bagian, bagian Pertama di awal nama class, method, variable,
bagian kedua di akhir class
modifierl tipeData namaCIass modifier2 [namaCIass/namaInterface...]{
// body class
}

17
1. Modifier 1
Untuk menentukan sifat dari suatu kelas dan menentukan previlage (hak akses) dari kelas lain.
Public Modifier ini dapat diakses dari kelas lain, baik dalam package yang sama maupun
berbeda
Private Modifier ini tidak dapat diakses sama sekali dari kelas lain, baik dari package
yang sama maupun berbeda. (hanya untuk kelas dan package yang sama)
Protected Modifier ini membatasi akses kelas yang dilakukan oleh subkelas turunannya dan
kelas lain yang terletak dalam package yang sama
Abstract Dalam modifier ini, kelas tersebut tidak dapat diinstankan langsung menjadi
objek. Dipakai pada Hirarki kelas tertinggi yang hanya mungkin dilakukan
dengan cara inheritance. Atau dengan kata lain, kelas murni tanpa objek dan tidak
boleh memiliki objek Dalam modifier ini, kelas tersebut tidak dapat diturunkan
menjadi subkelas.
Final Dalam modifier ini, kelas tersebut tidak dapat diturunkan menjadi subkelas.

2. Modifier 2
Untuk menentukan relasi (extend atau implement) dengan kelas lainnya.
Extend : Modifier ini digunakan untuk inheritance/pewarisan.
Superclass Bila terjadi pewarisan, kelas yang mewariskan method dan atributnya disebut
kelas super, sedangkan yang diwariskan disebut subkelas.
Implement : Modifier ini digunakan bila kelas mengimplementasikan satu atau lebih interface.
Interfase

3.3 Input Program


Proses pembacaan data yang diinput oleh user melalui keyboard dilihat dengan 2 (dua) cara,
yaitu:
1. Dalam lingkungan Console (DOS)
Menggunakan kelas BufferedReader(), InputStreamRader(), dimana kelas diinstansiasikan
menjadi sebuah objek, dan kemudian objek yang terbentuk memiliki sebuah metode readLine()
yang digunakan untuk menangkap inputan dari keyboard.
2. Dalam lingkungan GUI
Menggunakan kelas/komponen JOptionPane dengan method showInputDialog ().
3.4 Struktur Program Java
Pada materi diatas telah dijelaskan komponen yang diperlukan untuk pembuatan program
menggunakan pemrograman java yaitu JDK, JRE dan IDE. Untuk teks editor dalam modul ini
menggunakan Notepad++ dan Netbeans. Pada dasarnya, dalam menuliskan program menggunakan Java
terdapat sintaks dasar dan struktur program yang harus diikuti. Penulisan struktur program pada Java secara
garis besar terdiri dari:
1. Package
Package dapat diartikan sebagai sebuahfolder yang berisi kumpulanfile-file program Java. Deklarasi
package dilakukan pada baris paling atas kode program yang ditulis dengan menggunakan kata kunci
package. Sebagai contoh, file kita sebelumnya (HelloWorld) berada di folder com.mycompany.helloworld
maka deklarasi package adalah sebagai berikut :
Package com . mycompany . helloworld;
2. Import
Bagian ini digunakan untuk mendeklarasikan libraries yang akan digunakan dalam penulisan
program Java. Cara mendeklarasikan libraries yang akan digunakan dapat dilakukan dengan menggunakan
kata kunci import. Contoh deklarasi import adalah:

18
import java. util . Scanner;
Sintaks diatas menyatakan bahwa kita akan meng-import kelas Scanner yang terdapat pada paket
java.util.
3. Class
Class merupakan struktur program utama dan memiliki hierarki tertinggi pada pemrograman Java.
Didalam class (class body) didefinisikan method, variabel, maupun inner class. Deklarasi kelas secara
umum memiliki bentuk:
Class nama_kelas {
...// class body
}
Contoh deklarasi kelas:
class mahasiswa {
Contoh deklarasi kelas yang memiliki variabel:
class mahasiswa {
String NPM;
String nama;
int nil a i;
}

4. Method
Method merupakan subprogram atau kumpulan kode program yang menjelaskan perilaku dari objek
yang akan di-instance dari sebuah kelas. Method dapat menerima input sebagai parameter untuk
menjalankan method tersebut. Method dapat dikategorikan menjadi 4 jenis, yaitu:
a. Main method
Main method merupakan method utama yang langsung dijalankan ketika kelas dieksekusi. Dengan
kata lain, jika program Java yang dibuat tidak memiliki main method, maka program tersebut tidak dapat
dijalankan. Contoh kelas Java yang memiliki main method:
public class Mahasiswa {
public static void main(String args[]){ <- DekIarasi main method String
nama "Ani";
System.out.println("Nama mahasiswa ama);
}
}
b. Konstruktor
Konstruktor merupakan method yang akan dijalankan ketika sebuah objek di-instance dari
suatu kelas. Konstruktor umumnya digunakan untuk memberikan nilai awal untuk objek yang
dibuat dari sebuah kelas.
Syarat utama dari konstruktor adalah method memiliki nama yang sama dengan nama kelasnya.
Contoh kelas Java yang memiliki konstruktor :
public class Mahasiswa {
Mahasiswa( )
String nama = “Ani”;
System.out.println(”Nama mahasiswa ama);
}
public static void main(String args[] )
Mahasiswa mh = new Mahasiswa( )
}
}

19
Deklarasi konstruktor pada contoh diatas terdapat pada baris 2 dengan nama konstruktor sama dengan
nama kelasnya, yaitu Mahasiswa. Pada baris 8, dibuat objek mh dari kelas Mahasiswa, hal ini membuat
seluruh kode program yang terdapat di dalam konstruktor (baris 2-4) dijalankan secara otomatis.

c. Prosedur
Prosedur dapat digunakan untuk mengelompokkan kode program sehingga program yang besar
dapat dipecah menjadi subprogram atau modul yang dapat dijalankan secara berulang sesuai dengan
peruntukannya. Deklarasi method sebagai prosedur dilakukan dengan memberikan kata kunci berupa
void sebelum nama method. Contoh deklarasi method sebagai prosedur:
public class PersegiPanjang {
static void hitungLuas ()
int p
int l = 4;
int L = p*l;
System.out.println("Luas persegi panjang );
}
public static void main(String args[])
hitungLuas();
}
}
Pada baris 2, dideklarasikan method sebagai sebuah prosedur dengan nama hitungLuas(). Ketika
method ini dipanggil pada main method, maka kode program pada baris 3-6 secara otomatis
dijalankan.

d. Fungsi
Fungsi memiliki kegunaan yang sama dengan prosedur. Perbedaannya dengan prosedur terletak
pada adanya nilai yang harus dikembalikan dari method yang berperan sebagai fungsi. Nilai kembalian
dari fungsi ini diberikan dengan menggunakan kata kunci return.
public class PersegiPanjang {
static int hitungLuas( )
int p
int l = 4;
int L = p*l;
return L;
}
public static void main (String args C ] ){
System.out.println(“Luas persegi panjang = ”+hitungLuas());
}
}
Method sebagai fungsi memiliki cara deklarasi yang berbeda dengan prosedur. Pada baris 2, dapat
dilihat terdapat kata kunci int yang merupakan tipe data untuk bilangan bulat. Kata kunci ini
dimaksudkan untuk memberikan tipe data bagi nilai kembalian yang dihasilkan oleh fungsi, yaitu
berupa bilangan bulat. Nilai kembalian dari fungsi hitungLuas() adalah nilai L berdasarkan pada kode
program baris 6. Sehingga ketika method hitungLuas() dipanggil pada baris 9, maka nilai yang
ditampilkan adalah nilai dari L yang dihitung pada baris 5.

3.5 Latihan Mandiri Cetak Output


Buatlah program untuk mencetak/menampilkan 2 Barisan Tulisan, seperti berikut ini :

Selamat Datang di Perkuliahan Algoritma


Dasar Di Universitas PGRI Delta Sidoarjo

20
3.5.1 CetakBaris_01.java // di dalam method main //
// Program Cetak di dalam method main
public class Cetakbaris_01 {
public static void main (String[] args){
System.out.println("Selamat Datang di perkuliahan Algoritma
Dasar");
System.out.println("Di Universitas PGRI Delta Sidoarjo");
}
}

Hasil:

CAWINDOWS\system32\cmd.exe 口 X
A

D:\Latihan Java\LatihanBab3\target\classes>java CetakBaris_01

Selamat Datang di Perkuliahan Algoritma Dasar

Di Universitas PGRI Delta Sidoarjo

D:\Latihan Java\LatihanBab3\target\classes>
Gambar 3.2 Contoh hasil running menggunakan metode console

Gambar 3.3 Contoh hasil running menggunakan metode NetBeans

3.5.2 CetakBaris 02.java // di dalam method main dg \n//


// Program Cetak di dalam method main dg \n
public class CetakBaris_02 {
public static void main(String[] args){
System.out.println("Selamat Datang di Perkuliahan Algoritma Dasar \n Di
Universitas PGRI Delta Sidoarjo");
}
}
Hasil

21
3.5.3 CetakBaris_03.java // di dalam method constructor//
// Program Cetak di dalam method construktor
public class CetakBaris_03 {
public CetakBaris_03(){
System.out.println("Selamat Datang di Perkuliahan Algoritma Dasar");
System.out.println("Di Universitas PGRI Delta Sidoarjo");
}
public static void main (String[] args){
CetakBaris_03 obj03 = new CetakBaris_03();
}
}
Hasil:

3.5.4 CetakBaris_04.java // di dalam method Cetak//


// Program Cetak di dalam method Cetak
public class CetakBaris_04 {
public CetakBaris_04() {
}
public void cetak(){
System.out.println("Selamat Datang di Perkuliahan Algoritma
Dasar");
System.out.println("Di Universitas PGRI Delta Sidoarjo");
}
public static void main(String[] args){
CetakBaris_04 obj04 = new CetakBaris_04();
obj04.cetak();
}
}
Hasil:

3.5.5 CetakBaris_05.java // di dalam method Cetak//


// Program Cetak di dalam method Cetak cara kedua
public class CetakBaris_05 {
public CetakBaris_05(){
}
public void cetak (String a, String b) {
System.out.println (a) ;
System.out.println (b) ;
}
public static void main (String[] args) {
CetakBaris_05 obj05 = new CetakBaris_05 ();
obj05.cetak ("Selamat Datang di Perkuliahan Algoritma Dasar",
"Di Universitas PGRI Delta Sidoarjo") ;
}
}

22
Hasil:

3.6 Latihan Mandiri Cara Input


Buatkan program berikut ini dan cetak hasilnya.

3.6.1 Metode input menggunakan lingkungan Console (DOS)


Penggunaan input dari Keyboard di lingkungan Console (DOS) Langkah —langkah latihan mandiri
sebagai berikut :
1. Tulis kode program berikut menggunakan teks editor Notepad++.
2. Simpan file dengan ekstensi .java
3. Jalankan program menggunakan metode console/command prompt
a Metode kelas BufferedReader() dan InputStreamRader()
Simpan file dengan nama : input_dari keyboard_01.java
import java. io. *
public class input dari keyboard 01 {
public static void main (String [ ] args) {
String NIM = “”, nama=“”;
byte nil Absen=0, nilTugas=0, nil UTS=O, nilUAS=0;
BufferedReader objInput = new BufferedReader(new Input
StreamReade(System. in));

// ini adalah keyword untuk Exception Handling try {

System.Out.Println(“*********************”);
System.Out.Println(“\tInput Data Mahasiswa ”);

System.Out.println (**********************”);
System.Out.print(“NIM\t\t: ”); NIM=objInput.readLine();
System.Out.print(“Nama\t\t: ”); nama=objInput.readLine()
System.Out.print(“No. Absen\t: ”);
nil Absen=Byte.parseByte(objInput.readLine());
System.out.print(“Nilai Tugas\t
nilTugas=Byte.parseByte(objInput.readLine());
System.out.print(“Nilai UTS\t: ”);
nilUTS=Byte.parseByte(objInput.readLine());
System.out.print(“Nilai UAS\t: ”);
nilUAS=Byte.parseByte(objInput.readLine());

System.out.print(“**********************”);
}
catch(Exception e) {
System.out.println(“Error : “+e);
}
System.out.println(“************************”);
System.out.println(“\Cetak Data Mahasiswa ”);
System.out.println(“************************”);
System.out.println(“Nama\t\t: ”+nama);
System.out.println(“No.Absen\t: ”+nilAbsen);
System.out.println(“Nilai Tugas\t: ”+ni1Tugas);
System.out.println(“Nilai UTS\t: ”+nilUTS):

23
System.out.println(“Nilai UAS\t: ”+nilUAS);
System.out.println(“**************************”);
}
}

Hasil:

b Metode Kelas Scannner


Simpan file dengan nama : ContohScanner.java

import java.util.Scanner;

public class ContohScanner {


public static void main(String[] args) {
String nama, alamat;
int usia, gaji;
Scanner keyboard = new Scanner(System.in);

System.out.println("### Pendataan Karyawan Universitas


PGRI Delta Sidoarjo ###");
System.out.print("Nama karyawan: ");

nama = keyboard.nextLine();
System.out.print("Alamat: ");
alamat = keyboard.nextLine();

System.out.print("Usia: ");
usia = keyboard.nextInt();

System.out.print("Gaji: ");
gaji = keyboard.nextInt();

System.out.println("Nama Karyawan: " + nama);


System.out.println("Alamat: " + alamat);
System.out.println("Usia: " + usia + " tahun");
System.out.println("Gaji: Rp " + gaji);
}
}

24
Hasil:

3.6.2 Metode Input Lingkungan GUI Menggunakan JOptionPane dengan method


showInputDialog()
Penggunaan input dari Keyboard di lingkungan GUI sebagai berikut :
1. Buka Aplikasi NetBeans, buat project barn dengan mengklik pada menu File NewProject
2. Pilih Java with Maven→ Java Application→ Next
3. Masukkan nama project, misal: Input_keyboard_02, → Finish

package com.input.input_keyboard_02;
import javax.swing.*;
public class Input_keyboard_02 {
public static void main(String[] args) {
String NIM = "", nama = "";
byte nilAbsen = 0, nilTugas = 0, nilUTS = 0, nilUAS = 0;

try {
NIM = JOptionPane.showInputDialog("NIM");
nama = JOptionPane.showInputDialog("Nama");
nilAbsen = Byte.parseByte(JOptionPane.showInputDialog("No.
Absen"));
nilTugas = Byte.parseByte(JOptionPane.showInputDialog("Nilai
Tugas"));
nilUTS = Byte.parseByte(JOptionPane.showInputDialog("Nilai
UTS"));
nilUAS = Byte.parseByte(JOptionPane.showInputDialog("Nilai
UAS"));
}
catch (Exception e) {
System.out.println("Error: " + e);
}

System.out.println("******************************************");
System.out.println("\t\tCetak Data Mahasiswa ");

System.out.println("******************************************");
System.out.println("NIM\t\t: " + NIM);
System.out.println("Nama\t\t: " + nama);
System.out.println("No. Absen\t: " + nilAbsen);
System.out.println("Nilai Tugas\t: " + nilTugas);

25
System.out.println("Nilai UTS\t: " + nilUTS);
System.out.println("Nilai UAS\t: " + nilUAS);

System.out.println("******************************************");

}
}
Hasil:

3.7 Latihan soal

1. Buatkan Kesimpulan / rangkuman dari 5 metode cara cetak atau menampilkan output dari
Latihan mandiri program 3.5.1 sampai program 3.5.5.

CetakBaris_01.java: Metode ini mencetak output langsung dalam method main()


menggunakan System.out.println().

CetakBaris_02.java: Metode ini mencetak output dalam method main() dengan menggunakan
karakter \n untuk membuat baris baru.

CetakBaris_03.java: Metode ini mencetak output dalam method konstruktor dengan


menggunakan System.out.println().

CetakBaris_04.java: Metode ini mencetak output dalam method cetak() yang dipanggil dari
method main() menggunakan System.out.println().

CetakBaris_05.java: Metode ini mencetak output dalam method cetak() yang menerima

26
parameter string dan menggunakan System.out.println() untuk mencetak parameter.

2. Tulis ulang kode program pada latihan 3.6.1 (poin a) menggunakan text editor NetBeans dan
buat project baru dengan nama InputDOS_NetBeans.
- Jalankan Program tersebut lewat teks editor NetBeand dan Console Cetak output dari
Running program tersebut
- Berikan kesimpulan dari hasil cara menjalankan program tersebut

import java.io.*;
publi class InputDOS_NetBeans_01{
public static void main (String[] args) {
string NIM = "" ;
byte nilAbsen=0,nilTugas=0,nilUTS=0,nilUAS=0;
BufferedReader objInput = new BufferedReader(new
InputStreamReader(System.in));

//ini adalah keyword untuk Exception Handling


try{

System.out.println("******************************************");
System.out.println("\tInput Data Mahasiswa ");

System.out.println("******************************************");
System.out.print("NIM\t\t:");NIM=objInput.readLine();
System.out.print("Nama\t\t:");nama=objInput.readLine();
system.out.print ("No.Absen\t: ");
nilAbsen=Byte.parseByte(objInpt.readline ());
system.out.print ("Nilai Tugas\t : ");
nilTugas=Byte.parseByte(objInput.readline ());
system.out.print("Nilai UTS\t : ");
nilUTS=Byte.parseByte(objInput.readline ());

27
Hasil

Kesimpulan:
Metode Console lebih cocok untuk pengguna yang sudah berpengalaman dan dapat memiliki control penuh
untuk kode pengguna tersebut, untuk debug metode console ini pengguna harus menggunakan perintah
debug secara manual untuk menemukan titik kesalahan, metode ini lebih fleksibel karena pengguna dapat
menjalankan program dari mana saja tanpa perlu menginstall IDE. Sedangkan metode NetBeans cocok
untuk pengguna yang ingin memiliki lingkungan pengembangan yang nyaman dan terstruktur, pengguna
dapat menggunakan metode NetBeans sebagai IDE untuk menulis, menjalankan, dan debug kode, fitur
debug yang memudahkan pengguna untuk menemukan kesalahan, dan metode ini lebih terstruktur untuk
membantu pengguna menorganisir kode dan proyek dengan lebih baik.

28
BAB 4
Struktur Data

Pokok Bahasan
1. Definisi struktur data
2. Pengertian Variabel, Tipe Data, Nilai dan Konstanta

Tujuan Pembelajaran
1. Memahami pengertian struktur data dan tipe data serta mengetahui jenis-jenisnya.
2. Memahami pengertian, cara mendeklarasikan dan memakai konstanta dan variabel.

Dalam istilah ilmu komputer, struktur data adalah cara penyimpanan, penyusunan dan
pengaturan data di dalam media penyimpanan komputer sehingga data tersebut dapat
digunakan secara efisien. Dengan kata lain struktur data adalah sebuah skema organisasi,
seperti variable, tipe data, nilai, konstanta dan lain-lain, yang diterapkan pada data sehingga
data dapat diinterprestasikan dan sehingga operasi-operasi spesifik dapat dilaksanakan pada
data tersebut. Pemakaian struktur data yang tepat didalam proses pemrograman akan
menghasilkan algoritma yang lebih jelas dan tepat, sehingga menjadikan program secara
keseluruhan lebih efisien dan sederhana. Pada prinsipnya suatu program komputer
memanipulasi data untuk menjadi informasi yang berguna. Ada tiga hal yang berkaitan dengan
data, yaitu: Tipe Data, Nilai dan Variabel

4.1 Tipe Data


Setiap data memiliki tipe data, apakah merupakan angka bulat, angka pecahan, atau
berupa karakter, dan sebagainya. Jadi, tipe data adalah pengelompokan data berdasarkan isi
dan sifatnya. Dalam bidang informatika tipe data adalah jenis data yang dapat diolah oleh
komputer untuk memenuhi kebutuhan dalam pemrograman komputer.
Setiap variabel atau konstanta yang ada dalam kode program, sebaiknya kita tentukan
dengan pasti tipe datanya. Ketepatan pemilihan tipe data pada variabel atau konstanta akan
sangat menentukan pemakaian sumberdaya komputer (terutama memori komputer). Salah satu
tugas penting seorang programmer adalah memilih tipe data yang sesuai untuk menghasilkan
program yang efisien dan berkinerja tinggi. Ada banyak tipe data yang tersedia, tergantung
jenis bahasa pemrograman yang dipakai. Secara garis besar tipe data dapat dikategorikan
menjadi tiga macam yaitu tipe data dasar (primitive data type) tipe data bentukan (composite
data type) dan tipe data abstrak (abstract data type).

4.1.1 Tipe Data Dasar / Primitive (Data Type)


Tipe data dasar atau tipe data sederhana atau biasa juga disebut dengan tipe data primitif
adalah tipe data yang sudah ada dan dijadikan standar dalam bahasa pemrograman tertentu. lsi dari
tipe data sederhana ini adalah data-data tunggal. Tipe data dasar sudah disediakan oleh program
sehingga programmer bisa langsung memakai.
1. Integer (Bilangan Bulat)
Yang dimaksud bilangan bulat adalah, -1, -2, -3, 0, 1, 2, 3, 4 dan lain-lain yang bukan merupakan
bilangan pecahan.
2. Float atau double (Bilangan Real)
Bilangan real adalah bilangan yang mengandung pecahan desimal. Contoh: 3.45, 6,233.

29
3. Char (Karakter)
Karakter adalah semua huruf yang ada di dalam alfabet, tanda baca maupun karakter spesial.
Karakter ditulis diantara dua tanda petik tunggal. Contoh : 'A'.
4. Boolean (logika)
Boolean adalah tipe data logika yang terdiri dari dua pernyataan benar atau salah.
Pernyataan benar biasanya ditulis True atau angka 1, sedangkan pernyataan salah ditulis dengan
False atau angka 0. Sedangkan operasi aritmatika yang umum digunakan adalah or, not, and
dan xor.
4.1.2 Tipe Data Bentukan
Tipe data bentukan atau tipe data komposit adalah tipe data yang dibentuk dari tipe data
dasar dengan maksud mempermudah pekerjaan programer. Yang masuk dalam tipe data
bentukan adalah array, string, record, union, struct, dan lain-lain. Tujuan dibuatnya tipe data
bentukan adalah :
1. Mempermudah proses pemrograman
2. Mempermudah dalam penambahan variabel
3. Mempermudah pengelompokan data sehingga lebih teratur.

4.1.3 Tipe Data Abstrak (Abstract Data Type)


Tipe data abstrak atau yang dikenal sebagai Abstract Data Type adalah model matematika
dari obyek data yang menyempumakan tipe data dengan cara mengaitkannya dengan fungsi-fungsi
yang beroperasi pada data yang bersangkutan. Tipe data abstrak adalah tipe data yang didefinisikan
sendiri oleh pemrogram untuk suatu keperluan tertentu yang tidak memungkinkan untuk
mendeklarasikan dari tipe data yang sudah ada. Contoh tipe data abstrak adalah stack, queue, list,
tree, graph, dan lain-lain.
Harns dibedakan antara pengertian struktur data dan tipe data abstrak. Struktur data hanya
memperlihatkan bagaimana data-data di organisir, sedangkan tipe data abstrak mengemas struktur
data tertentu sekaligus dengan operasi-operasi yang dapat dilakukan pada struktur data tersebut.
Dengan demikian, definisi umum tentang tipe data abstrak dapat dipahami bahwa tipe data abstrak
adalah struktur data yang mengandung operasi-operasi atau aturan-aturan tertentu. Pada sub bah
selanjutnya akan dibahas beberapajenis tipe data dari tipe data - tipe data yang telah disebutkan
sebelumnya.
4.2 Pemberian Nilai (Data Value)
Penugasan atau Assignment merupakan pemberian nilai ke variabel secara langsung. Notasi
yang digunakan adalah . Nilai yang dapat diberikan adalah tetapan, peubah, ekspresi, maupun nilai
yang dihasilkan oleh fungsi. Syarat penugasan adalah nilai yang diberikan harus sesuai dengan tipe
variabel. Apabila tipenya tidak sama, maka berlaku tipe yang lebih luas dapat menampung tipe yang
lebih sempit. Tipe integer dapat ditampung oleh tipe real, sebaliknya tipe real tidak dapat ditampung
oleh tipe integer. Begitu pula dengan string dan char, char dapat diberikan ke string, namun tidak
sebaliknya. Ada dua cara yang dapat digunakan untuk memberi nilai pada suatu variable yaitu
melalui proses: assignment dan pembacaan.
a. Pemberian nilai dengan cara assignment mempunyai bentuk umum sebagai berikut:
• Variable nilai;
• Variable variable2;
• Variable  ekspressi;

Contoh assignment:
- Nama  "Ali bin AbuThalib";
- Jarak100.56;
- XJarak;
- RentangX + 50 - 3*Y;

30
b. Pemberian nilai dengan cara pembacaan dapat dilakukan melalui instruksi dengan bentuk
umum sbb:
• read(variable); atau
• read( variable1, variable2, ... );
Contoh pembacaan data:
- read(Nama);
- read(Jarak, Rentang, X);

4.3 Variabel
Variabel adalah suatu pengenal (identifier) yang digunakan untuk mewakili suatu nilai
tertentu didalam proses program atau juga sebagai wadah penampung semenatara data yang
diberi nama atau identitas. Nilai dari suatu variabel dapat berubah sesuai kebutuhan selama
eksekusi berlangsung. Variabel merupakan tempat di memori komputer untuk menyimpan data
berupa nilai dengan tipe data tertentu. Variabel harus diberi nama sebagai identifikasi. Secara
logika dapat dibayangkan sebuah Variabel sebagai sebuah kotak kosong yang dapat diisi dengan
suatu tipe data tertentu, misal kita membuat sebuah variabel berupa bilangan bulat, maka
dalam logika, kita sedang membuat kotak kosong yang hanya dapat diisi dengan bilangan
bulat, tidak boleh jenis bilangan selain bilangan bulat.
Logika Variabel dapat dilihat pada Gambar 6.1 sedangkan untuk hubungan antara tipe
data, nilai dan variabel dapat di ilustrasikan seperti pada Gambar 6.2 dan untuk contoh
penulisan variabel dalam flowchart dapat dilihat pada Gambar 6.3.
Tipe Data:
Alat Tulis

• Variabel sebagai sebuah kotak kosong yang dapat diisi data


dengan Jems yang sama
• Tipe data adalah jenis dari data yang disimpan di dalam
kotak variable
• Nilai adalah data yang dimasukkan pada kotak variabel

Nama Variabel:
kotakPensil

Gambar 4.1. Logika Variabel

Data Value
Data Value
76.7

Data Type
float
Variabel= Variabel=
Lebar Nilai_Akhir

Gambar 4.2 Hubungan tipe data, nilai dan variabel

31
Masukkan
Bilangan

sisa_bagi =bilangan %2

Variabel "Bilangan Genap"

"Bilangan Ganjil"

END

Gambar 4.3 Contoh penggunaan variable pada Flowchart

Pada Gambar 6.4 di ilustrasikan membuat sebuah variabel dengan nama identifier nilai yang
digunakan untuk menyimpan suatu nilai dalam memori sesuai dengan tipe data yang telah
ditentukan. Semisal Variabel Nilai dilakukan operasi aritmatika berupa operasi pembagian (/) atau
modulus (%) yang di ilustrasikan seperti pada Gambar 6.5. Dalam hal ini variabel nilai dibagi dengan
angka 2, dan hasil operasi pembagian disimpan dalam variabel baru yang bemama hasilbagi.
Operasi aritmatika lain yang terjadi pada Gambar 6.5 adalah variabel nilai dimodulus dengan angka
2 dan hasilnya disimpan dalam variabel baru yang bemama sisabagi.

Gambar 4.4. Ilustrasi Variabel Nilai


Gambar 4.5. Ilustrasi Penggunaan Variabel Nilai

32
Bentuk umum deklarasi variable adalah :
Nama_variable : tipe data
Contoh:
Nama : string {variabel nama bertipe string}
Nim : integer {variabel nim bertipe integer/bilangan bulat}
jns_kelamin : char {variabel jns_kelamin bertipe karakter}

Ada aturan tertentu yang wajib diikuti dalam pemberian nama variable antara lain:
• Harus dimulai dengan abjad, tidak boleh dengan angka atau simbol
• Tidak boleh ada spasi diantaranya
• Jangan menggunakan simbol-simbol yang bisa membingungkan seperti titik dua, titik koma,
koma, dsb.
• Sebaiknya memiliki arti yang sesuai dengan elemen data
• Sebaiknya tidak terlalu panjang
- Contoh variabel yang benar : Nama, Alamat, Nilai_ujian
- Contoh variabel yang salah : 4XYZ, IP rata, Var: +xy,458;

4.4 Konstanta
Konstanta dan variabel memiliki pengertian yang sama, yang membedakan adalah nilai
variabel dapat berubah sesuai kebutuhan, sedangkan konstanta nilainya selalu tetap atau tidak
berubah. Nilai konstanta ditentukan saat pendefinian, missal :
Nama variable :
tipe data Phi=
3.14;
Beberapa manfaat dari konstanta antara lain :
• Menghindari kesalahan, dengan menggunakan konstanta anda dapat menghindari
kesalahan yang mungkin terjadi jika anda menulis secara manual nilai nilai yang sama di
beberapa bagian kode.
• Kemudahan pemeliharaan, Jika anda perlu mengubah nilai yang sering digunakan dalam
pemrograman maka hanya perlu mengubahnya di satu tempat, yang membuat pemeliharaan
kode menjadi lebih efisien.

4.5 Operator
Pada bahasa Java, terdapat 4 jenis operator yang umum digunakan, yaitu:
1. Operator Aritmatika, merupakan operator yang digunakan untuk operasi aritmatika.
2. Operator Penugasan, merupakan operator yang berfungsi memberikan penugasan pada
variabel tertentu. Operator ini menggunakan simbol sama dengan (=) untuk mengisi nilai
dalam sebuah variabel.
3. Operator Pembanding, merupakan operator yang digunakan untuk membandingkan dua
buah nilai (elemen). Nilai yang dihasilkan dari penggunaan operator ini adalah nilai bertipe
boolean yaitu true atau false.
4. Operator Logika, merupakan operator yang digunakan untuk menguji satu atau lebih
operand yang bertipe boolean. Hasil dari operasi menggunakan operator ini adalah nilai
bertipe boolean, yaitu true atau false.

33
Tabel 4.1. Operator pada Java

Nama Operator Keterangan Contoh


(Simbol)
Operator Aritmatika
Penjumlahan (+) Menjumlahkan 2 buah nilai a+b
Pengurangan (-) Mengurangkan 2 buah nilai a-b
Perkalian (*) Mengalikan 2 buah nilai a*b
Pembagian (/) Membagi 2 buah nilai a/b
Modulus(%) Memberikan sisa hasil bagi a¾b
Increment (++) Menaikkan nilai dari variabel ++a
sebanyak 1
Decrement (--) Menurunkan nilai dari variabel -- a
sebanyak 1
Operator Penugasan
= Memberikan nilai a=5
Memberikan nilai dengan a+= 5
+= menjumlahkannya terlebih Memberi hasil yang sama
dahulu dengan nilai dengan a = a + 5
sebelumnya
Memberikan nilai dengan a-= 5
-= mengurangkannya terlebih Memberi hasil yang sama
dahulu dengan nilai dengan a = a - 5
sebelumnya
Memberikan nilai dengan a*= 5
*= mengalikannya terlebih dahulu Memberi hasil yang sama
dengan nilai sebelumnya dengan a = a * 5
Memberikan nilai dengan a/= 5 Memberi hasil yang
/= membaginya terlebih dahulu sama dengan a = a / 5
dengan nilai sebelumnya
Memberikan nilai dengan a%=5
%= mencari sisa hasil baginya Memberi hasil yang sama
terlebih dahulu dengan nilai dengan a = a % 5
sebelumnya
Operator Pembanding
== Memberikan hasil true jika a==b
nilai a sama dengan b
!= Memberikan hasil true jika a !=b
nilai a tidak sama dengan b
> Memberikan hasil true jika a>b
nilai a lebih dari nilai b
< Memberikan hasil true jika a<b
nilai a kurang dari nilai b
>= Memberikan hasil true jika a>=b
nilai a lebih dari atau sama
dengan nilai b
<= Memberikan hasil true jika a<=b
nilai a kurang dari atau sama
dengan nilai b

34
Operator Logika
Logika AND (Memberikan a<3&&b>8
&& nilai true jika pemyataan a dan
pemyataan b benar)
Logika OR (Memberikan nilai a= 0 || b > 9
|| true jika pemyataan a atau
pemyataan b benar)
Logika NOT (Membalikkan !(a>= 5)
! nilai pemyataan, membalikkan
nilai true iika pemyataan
bemilai false)

4.6 Latihan Mandiri


Buatkan program berikut ini dan cetak hasilnya.
4.6.1 Contoh Program Mengenal Variabel
public class Variabel{
public static void main (String[]args) {
int jumlah=10;
System.out.println (jumlah);

//pemberian nilai baru


jumlah=20;
System.out.println (jumlah);
}
}

Hasil

4.6.2 Contoh program mengenal Konstanta


public class Konstanta {
// Mendeklarasikan konstanta
public static final double PI = 3.14159;
public static final int MAX_USER = 20;
public static final String APP_NAME = "Mengenal apa itu
Konstanta";

public static void main (String[] args) {


// Menggunakan konstanta dalam perhitungan
double radius=20;
double luasLingkaran = PI * radius * radius;

// Mencetak nilai Konstanta


System.out.println ("Nama aplikasi: " + APP_NAME);
System.out.println ("Maksimal pengguna: " + MAX_USER);
System.out.println
("***************************************");
System.out.println ("NIlai PI: " + PI);
System.out.println ("Jari-jari Liingkaran (Radius) : " +
35
radius);
System.out.println ("Luas Lingkaran dengan Radius " +
radius + "adalah: " + luasLingkaran);
}
}
Hasil

4.6.3 Contoh Program operator Aritmatika


import java.util.Scanner;

public class operatorAritmatika {


public static void main (String[]args){
int angka1;
int angka2;
int hasil;
Scanner keyboard = new Scanner(System.in);
System.out.print ("Inputkan angka 1 = ");
angka1=keyboard.nextInt();
System.out.print ("Inputkan angka 2 = ");
angka2=keyboard.nextInt();
//operator aritmatika penjumlahan
hasil = angka1+angka2;
System.out.print ("Hasil Penjumlahan = " + hasil);
}
}
Hasil

4.7 Latihan Soal


1. Apakah yang dimaksud dengan tipe data?

Tipe data adalah pengelompokan data berdasarkan isi dan sifartnya.Dalam bidang
informatika,tipe data adalah jenis data yang dapat di olah oleh komputer untuk memenuhi
kebutuhan dalam pemrograman komputer.Sebutkan dan Jelaskan penggolongan dalam tipe
data!

2. Sebutkan dan Jelaskan penggolongan dalam tipe data!


- Tipe Data Dasar / Primitive (Data Type) Tipe data dasar atau tipe data sederhana atau biasa
juga disebut dengan tipe data primitif adalah tipe data yang sudah ada dan dijadikan standar
dalam bahasa pemrograman tertentu. Isi dari tipe data sederhana ini adalah data-data tunggal.
Tipe data dasar sudah disediakan oleh program sehingga programmer bisa langsung memakai.

36
- Tipe data bentukan atau tipe data komposit adalah tipe data yang dibentuk dari tipe data dasar
dengan maksud mempermudah pekerjaan programer. Yang masuk dalam tipe data bentukan
adalah array, string. record, union, struct, dan lain-lain.
- Tipe data abstrak (Abstract Data Type) Tipe data abstrak atau yang dikenal sebagai Abstract
Data Type adalah model matematika dari obyek data yang menyempurnakan tipe data dengan
cara mengaitkannya dengan fungsi-fungsi yang beroperasi pada data yang bersangkutan. Tipe
data abstrak adalah tipe data yang didefinisikan sendiri oleh pemrogram untuk suatu keperluan
tertentu yang tidak memungkinkan untuk mendeklarasikan dari tipe data yang sudah ada.
3. Apa yang dimaksud dengan struktur data?
Struktur data adalah cara penyusunan dan pengorganisasian data dalam komputer untuk
memudahkan proses penyimpanan, pengaksesan, dan manipulasi data. Struktur data
menentukan bagaimana data disimpan, diakses, dan diolah dalam program komputer.
Apakah beda antara konstanta dan variabel? Berikan penjelasannya!
4. Apakah beda antara konstanta dan variabel? Berikan penjelasannya!
Beda, karena konstanta digunakan untuk nilai tetap, sedangkan variabel untuk nilai berubah.

37
Bab 5
Struktur Dasar Algoritma

Pokok Bahasan
1. Struktur dasar algoritma runtutan
2. Struktur dasar algoritma percabangan / pemilihan

Tujuan Pembelajaran
1. Mampu menjelaskan jenis struktur dasar algoritma
2. Mampu mengaplikasikan berbagai struktur dasar algortima
3. Mampu memahami pernyataan seleksi dalam java dengan menggunakan IF dan dapat
menyelesaikan masalah yang berkaitan dengan seleksi IF

Algoritma adalah jantung dari pemrograman. la adalah serangkaian instruksi yang jelas dan
terbatas untuk menyelesaikan masalah atau mencapai tujuan tertentu. Struktur dasar algoritma adalah
fondasi yang membantu kita menganalisis, merancang, dan menjalankan algoritma dengan lebih
mudah. Terdapat tiga Struktur Dasar Algoritma: Runtutan, Pemilihan, dan Pengulangan.

5.1 Struktur Algoritma Runtutan


Algoritma runtutan adalah struktur algoritma paling dasar dan sederhana. la bekerja dengan
menjalankan instruksi secara berurutan, satu per satu, dari atas ke bawah. Bayangkan seperti resep
masakan: kamu harus mengikuti langkah-langkahnya secara berurutan agar hasilnya sesuai.
Algoritma runtutan adalah dasar dari pemrograman. Meskipun sederhana, ia merupakan blok
bangunan untuk algoritma yang lebih kompleks.
Contoh :
Misalnya, algoritma untuk menghitung luas persegi panjang:
1. Masukan panjang persegi panjang (p)
2. Masukan lebar persegi panjang (l)
3. Hitung luas = p * I
4. Tampilkan luas
Kode dalam pemrograman java :
import java.util.Scanner;
public class LuasPersegiPanjang{
public static void main (String[] args){
Scanner input = new Scanner(System.in);
// Meminta input panjang dan lebar dari pengguna
System.out.print("Masukkan Panjang : ");
Double panjang = input.nextDouble();

System.out.print("Masukkan lebar: ");


double lebar = input.nextDouble();
// Menghitung luas
double luas Panjang * lebar;

// Menampilkan hasil
System.out.println("Luaspersegipanjangadalah:" + luas);
input.close();
}
}
Keuntungan Algoritma Runtutan:
- Mudah dipahami dan diimplementasikan: Struktur sederhana membuatnya mudah dipelajari
dan diterapkan.
- Efisien untuk tugas-tugas sederhana: Cocok untuk tugas yang memerlukan langkah-langkah
38
sederhana dan berurutan.
Kekurangan Algoritma Runtutan:
- Tidak fleksibel: Hanya dapat melakukan satu tugas pada satu waktu, tidak bisa bercabang
atau berulang.
- Tidak efisien untuk tugas kompleks: Untuk tugas yang lebih kompleks, struktur ini bisa
menjadi rumit dan sulit dikelola.
-
5.2. Struktur Algoritma Pemilihan/Percabangan
Struktur percabangan/pemilihan adalah struktur program yang digunakan untuk melakukan
proses pengujian terhadap satu, dua atau lebih dari dua kondisi. Pemilihan statement-statement atau
perintah-perintah yang akan di jalankan didasarkan atas kondisi tertentu. Statemen atau perintah
tertentu akan dijalankan apabila memenuhi ketentuan yang telah didefinisikan sebelumnya.
Pernyataan seleksi pada struktur algoritma percabangan menggunakan IF. Terdapat 3 bentuk
percabangan/pemilihan yaitu : Pemilihan Tunggal, Pemilihan Ganda, dan Pemilihan Majemuk.
5.2.1 If Kondisi Tunggal
Bentuk yang pertama adalah IF dengan satu pilihan. Bentuk umumnya adalah sebagai berikut.

If (kondisi)
Pernyataan;

berikut diagram alir untuk kondisi If tunggal

Gambar 5.1. Diagram alir If Tunggal

Keterangan :
1. Kondisi digunakan untuk menentukan pengambilan keputusan. Jika kondisi bernilai
benar, maka pernyataan dikerjakan.
2. Pernyataan, berisi perintah-perintah dan akan dijalankan jika kondisi bernilai benar.
Pernyataan disini bisa berupa pernyataan tunggal maupun majemuk.
Contoh soal:
Buatlah program dan deskripsi algoritma untuk menampilkan output "Bilangan Ganjil".
Pseudocode Flowchart
//deklarasi variable
bil : integer;
//input
Masukkan Bilangan(bil)
//proses
if (bil%2>0)
//output
Tampilkan(bil=Bilangan Ganjil)

Kode program java:


1. Import java.util.Scanner;
2. Public class if tunggal{
3. public static void main(String[] args){
4. Scanner input = new Scanner(System.in);
5. Int bil;
6. System.out.print("Masukkan Bilangan = ");
7. Bil = input.nextInt();
8. If (bil%2>0){
9. System.out.println("Angka ini adalah Bilangan Ganjil");
10. }

39
11. }
12. }
Penjelasan Program:
1. Memanggil library java.util dari class Scanner yang menyediakan method input atau output.
2. Nama class program yang diubah adalah if Tunggal
3. Awal blok dari class if Tunggal
4. Method utama untuk mengimplementasikan class if Tunggal
5. Awal blok dari method main ()
6. Mengimplementasikan class Scanner untuk mendapatkan method input data dari keyboard:
Scanner (System.in)
7. Memperkenalkan atau menginisialisasi variabel: Bil, dengan tipe: Integer
8. Menampilkan keterangan dialog input: “Masukkan Bilangan: “
9. Menyimpan data yang dimasukkan dari keyboard ke dalam variabel: Bil. Dengan catatan,
data yang dimasukkan harus angka bilangan bulat, karena inisialisasi bertipe Integer
10. Melakukan seleksi, apakah bilangan jika di modulus hasilnya lebih dari 0
11. Awal blok menampilkan output untuk statement if jika kondisi benar
12. Menampilkan dengan format “Angka ini adalah Bilangan Ganjil”
13. Akhir blok menampilkan output untuk statement if jika kondisi benar
14. Akhir blok method main ()
15. Akhir dari blok class if Tunggal

Hasil

Penjelasan:
Pada program diatas terlihat pada tampilan hasil, program akan meminta pengguna
memasukkan/input angka, berdasarkan angka yang di input program melihat kondisi terpenuhi atauu
tidak, jika kondisi terpenuhi (true) maka program akan menampilkan “Angka ini adalah Bilangan
Ganjil”, tetapi apabila kondisi tidak terpenuhi (false) sebagai contoh seperti gambar di sisi Kankan
angka di input bilangan genap, maka program akan selesai tanpa menghasilkan atau tidak
menampilkan hasil.

40
5.2.2. If Kondisi Ganda
Digunakan untuk membuat percabangan yang sesuai dengan kondisi yang diinginkan. Percabangan
if Kondisi ganda biasanya dikenal dengan if-else yang digunakan hanya untuk 2 percabangan. Bentuk
umumnya adalah sebagai berikut:
If (kondisi)
{ pernyataan1; }
Else
{ pernyataan2; }

Berikut diagram alir untuk kondisi if ganda:


Keterangan:
1. Jika hasil cek menghasilkan nilai true alur program akan melaksanakan instruksi/pernyataan
pada bagian blok true, dalam hal ini "pernyataan l".
2. Jika hasil cek bernilaifalse, aliran program akan langsung menuju ke blokfalse di bawah else,
dalam hal ini "pernyataan 2".
3. Pada saat proragm dijalankan hanya ada satu dari keduanya, baik itu "pernyataan l" maupun
"pernyataan 2".

Contoh soal:
Buatlah program da deskripsi algoritma untuk mencari suatu Bilangan Ganjil atau Genap
Pseudocode Flowchart
//deklarasi variable
bil: integer;
Masukkan Bilangan (bil)
//proses
If(bil%2=0)
//output
Tampilkan (bil=Bilangan Genap)
Else
Tampilkan (bil=Bilangan Ganjil)

Kode program java:


import java.util.Scanner;
public class if ganda {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
int bil;

41
System.out.print("Masukkan Bilangan = ");
bil = input.nextInt();
if (bil%2 == 0){
System.out.println("Angka ini adalah Bilangan
Genap");
}
else
{
System.out.println("Angka ini adalah Bilangan
Ganjil");
}
}
}

Penjelasan Program:
1. Memanggil library java.util dari class Scanner yang menyediakan method input atau output.
2. Nama class program yang dibuat adalah If Ganda
3. Awal blok dari class If Ganda
4. Method utama untuk mengimplementasikan class If Ganda.
5. Awal blok dari method main ().
6. Mengimplementasikan class Scanner untuk mendapatkan method input data dari keyboard
Scanner (System.in).
7. Memperkenalkan atau menginisialisasi variabel: Bil, dengan tipe:lnteger.
8. Menampilkan keterangan dialog input: “Masukan Bilangan:
9. Menyimpan data yang dimasukan dari keyboard ke dalam variabel: Bil. Dengan catatan, data
yang dimasukan harus angka bilangan bulat, karena inisialisasi bertipe Integer.
10. Melakukan seleksi, apakah bilangan jika di modulus hasilnya sama dengan 0.
11. Awal blok menampilkan output untuk statement ifjika kondisi benar
12. Menampilkan output dengan format “Angka ini adalah Bilangan Genap”.
13. Akhir blok menampilkan output untuk statement ifjika kondisi benar
14. Statement else untuk kondisi salah
15. Awal blok menampilkan output untuk statement if jika kondisi salah
16. Menampilkan output dengan format “Angka ini adalah Bilangan Ganjil”.
17. Akhir blok menampilkan output untuk statement ifjika kondisi salah
18. Akhir dari blok method main ()
19. Akhir dari blok class If Ganda.
Hasil:

Penjelasan:
Program di atas struktur if....else akan mengeksekusi program jika kondisi terpenuhi (true) atau
tidak terpenuhi (false). Sama dengan program sebelumnya pertama-tama program akan meminta
pengguna memasukkan/input angka, berdasarkan angka yang di input program melihat kondisi
terpenuhi atau tidak, jika kondisi terpenuhi (true) maka Program akan menampilkan ''Angka ini
Adalah Bilangan Genap”, dan apabila kondisi tidak terpenuhi (false) maka program akan
menampilkan “Angka ini Adalah Bilangan Ganjil”

42
5.2.3. If Kondisi Majemuk
Kondisi percabangan If Kondisi Majemuk merupakan jenis pengujian atau seleksi yang
memiliki lebih dari dua kondisi, dan masing-masing kondisi yang bernilai true, memiliki blok
pernyataan yang unik dan berbeda satu sama lain.
If (kondisi)
{ pernyataan1; }
Else if
{ pernyataan2; }
Else if
{ pernyataan3; }
Else if
{ pernyataanN; }
Else
{ pernyataanX; }

Berikut diagram alir untuk kondisi if kondisimajemuk:

Gambar 5.2. Diagram alir if majemuk


Contoh soal:
Buatlah program dan deskripsi algoritma untuk menyeleksi bilangan positif, bilangan negatif dan
nol.
Pseudocode Flowchart
//deklarasi variable
bil : integer;
//input
Masukan Bilangan(bil)
//proses
if(bil>0)
//output
Tampilkan(bil=Bilangan Positif)
else if(bil<0)
Tampilkan(bil=Bilangan Negatif)
else
Tampilkan(bil=Bilangan Nol)
END
Kode Program Java
Import java.util.Scanner
Pubic class if majemuk {
Public static void main (String[] args){
Scanner input = new Scanner (System.in);
Int bil;
43
System.out.print ("Masukkan Bilangan = ");
Bil = input.nextInt();
If (bil<0) {
System.out.print (bil+" adalah bilangan positif ");
}
Else if (bil<0){
System.out.println(bil+" adalah bilangan negatif ");
}
Else(
System.out.println(bil+" adalah bilangan Nol ");
}
}
}
Hasil:

Penjelasan:
Contoh program if-else-if di atas terdiri dari tiga kondisi. Pertama pengguna diminta
memasukkan satu Angka, selanjutnya statement ifakan menguji kondisi pertama yaitu (Angka> 0).
Jika kondisi pertama bernilai true maka program akan menampilkan keterangan "adalah Bilangan
Positif ", jika tidak program akan menguji kondisi kedua yaitu "Bilangan< 0", jika kondisi kedua
terpenuhi maka program akan menampilkan keterangan "adalah Bilangan Negatit', jika kondisi
kedua bernilai false atau tidak terpenuhi, maka program akan menampilkan keterangan "adalah
Bilangan Nol"

5.3 Switch Case


Kondisi Percabangan Switch-Case pernyataan yang digunakan untuk menjalankann salah satu
pernyataan dari beberapa kemungkinan pernyataan, berdasarkan nilai dari sebuah ungkapan dan nilai
penyeleksi. Setiap ungkapan diungkapkan dengan sebuah nilai integral konstan, seperti sebuah nilai
dengan tipe byte, short, int atau char. Bentuk umumnya adalah sebagai berikut.

44
Switch (ungkapan)
{
Case ungkapan1:
Pernyataan1;
Break;
Case Ungkapan2;
Pernyataan2;
Break;
............
default:
Pernyataan x;
}
Berikut diagram alir Switch Case: Gambar 5.3 Diagram alir Switch Case

Keterangan:

1. ungkapanl, ungkapan2 dan seterusnya dilakukan secara berurutan dimulai dari yang pertama,
sekiranyanya cocok pern4----------------------------------------------iiiiiyataan yang mengikuti
case dijalankan.
2. break ditemukan dari eksekusi pernyataan switch berakhir
3. default hanya akan dijalankan jika ungkapan pada bagian case tidak ada yang cocok.
Contoh soal
Buatlah flowchart, dan program java, untuk melakukan proses penyeleksian input kode Program
Studi, kemudian menampilkan kode Program Studi, Nama Program Studi.

Kode program Java


import javax. swing . JOptionPane;
public class switchcase{
public static void main (String C[] args){

45
//inisialisasi variabel
int kd;
String kodeprodi;
String namaprodi;

// input : memasukkan data dari keyboard versi GUI


String kode=JOptionPane . show Input Dialog ("Masukkan Kode
Jabatan 1 sd 3");
Kd=lnteger.parseInt(kode);
// proses pemilihan switch case
switch(kd){
case 1 :
kodeprodi ="UNIPDAOO1";
namaprodi ="Sistem Informasi";
break;
case 2 :
kodeprodi = "UNIPDA002";
namaprodi = "Informatika";
break;
case 3 :
kodeprodi = "UNIPDA003";
namaprodi = "Statistika";
break;
default:
kodeprodi = "Kode yang dimasukkan Salah/Tidak
Ada";
namaprodI = "--";
break;
}
// menampilkan hasil proses versi GUI
JOptionPane.showMessageDiaIog(null, "Kode = " +kd+"\n" +
"Kode Prodi = " +kodeprodi+"\n" +"Nama Prodi = "+namaprodi);
}
}
Hasil:

5.4 Latihan Soal

1. Program menentukan kelulusan dihitung dari UTS, UAS, Quiz, Tugas


Contoh:
Masukkan nama anda : Anton
Nilai UTS : 80
Nilai UAS : 70
Nilai Quiz : 75
Nilai Tugas : 60
Output : “Saudara Anton nilai akhir anda 73, anda dapat B”
(Nilai Akhir = (0.3*UTS)+(0.4*UAS)+(0.2*Quiz)+ (0.1 *Tugas))
46
Nilai →80 - 100 Nilai C→55 - 59
Nilai B+ →75 - 79 Nilai D→45 - 54
Nilai B → 65 - 74 Nilai E→ 0 - 44
Nilai C+ →60 – 64

Program menentukan kelulusan dihitung dari UTS, UAS, Quiz, Tugas


Pemrograman java:
import java.util.Scanner;

public class kelulusan {


public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);

System.out.print("Masukkan nama Anda: ");


String nama = scanner.nextLine();

System.out.print("Nilai UTS: ");


double uts = scanner.nextDouble();

System.out.print("Nilai UAS: ");


double uas = scanner.nextDouble();

System.out.print("Nilai Quiz: ");


double quiz = scanner.nextDouble();

System.out.print("Nilai Tugas: ");


double tugas = scanner.nextDouble();

double nilaiAkhir = hitungNilaiAkhir(uts, uas, quiz, tugas);


String hurufNilai = konversiNilai(nilaiAkhir);

System.out.println("Saudara " + nama + ", nilai akhir Anda " +


nilaiAkhir + " (" + hurufNilai + ")");
}

public static double hitungNilaiAkhir(double uts, double uas,


double quiz, double tugas) {
return (0.3 * uts) + (0.4 * uas) + (0.2 * quiz) + (0.1 * tugas);
}

public static String konversiNilai(double nilai) {


if (nilai >= 80) {
return "A";
} else if (nilai >= 75) {
return "B+";
} else if (nilai >= 65) {
return "B";
} else if (nilai >= 60) {
return "C+";
} else if (nilai >= 55) {
return "C";
} else if (nilai >= 45) {
return "D";
} else {
return "E";
}
}
}
Hasil:

47
2. Buat program untuk mengetahui inputan user
Contoh:
Masukkan Inputan Anda : A
Hasil → Anda menginputkan huruf kapital
Masukkan Inputan Anda : b
Hasil → Anda menginputkan huruf biasa
Masukkan Inputan Anda : 12
Hasil → Anda menginputkan bilangan genap

Pemrograman java:
import java.util.Scanner;

public class InputUser {


public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);

System.out.print("Masukkan inputan Anda: ");


String inputan = scanner.next();

System.out.println(cekInputan(inputan));
}

public static String cekInputan(String inputan) {


if (inputan.matches("[a-zA-Z]")) {
if (inputan.equals(inputan.toUpperCase())) {
return "Anda menginputkan huruf kapital";
} else {
return "Anda menginputkan huruf biasa";
}
} else if (inputan.matches("[0-9]")) {
if (Integer.parseInt(inputan) % 2 == 0) {
return "Anda menginputkan bilangan genap";
} else {
return "Anda menginputkan bilangan ganjil";
}
} else {
return "Anda menginputkan karakter lain";
}
}
}
Hasil:

48
3. Buat program untuk mengetahui waktu dengan syarat
Pukul 00.01 – 10.00 adalah pagi
Pukul 10.01 – 15.00 adalah siang
Pukul 15.01 – 18.00 adalah sore
Pukul 18.01 – 24.00 adalah malam
Contoh: (jam saat ini pukul 08.00)
Masukkan Nama Anda : Joni
Output: “Selamat Pagi Joni”

. Pemrograman java:
import java.util.Scanner;

public class Waktu {


public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);

System.out.print("Masukkan nama Anda: ");


String nama = scanner.next();

System.out.print("Jam saat ini (0-24): ");


int jam = scanner.nextInt();

System.out.println("Selamat " + cekWaktu(jam) + ", " +


nama);
}

public static String cekWaktu(int jam) {


String[] waktu = {"Pagi", "Siang", "Sore", "Malam"};
if (jam >= 0 && jam <= 10) {
return waktu[0];
} else if (jam > 10 && jam <= 15) {
return waktu[1];
} else if (jam > 15 && jam <= 18) {
return waktu[2];
} else {
return waktu[3];
49
}
}
}

Hasil:

50
Bab 6
Struktur Dasar Algoritma (Lanjutan)
Pokok Bahasan
1. Struktur dasar algoritma pengulangan

Tujuan Pembelajaran
1. Mampu menjelaskan jenis pengulangan
2. Mampu mengaplikasikan berbagai struktur pengulangan
3. Mampu memahami pernyataan seleksi dalam java dengan menggunakan struktur
pengulangan

Pengulangan atau disebut sebagai looping adalah intruksi khusus dalam Bahasa
pemrograman dan algoritma yang digunakan untuk mengulang beberapa perintah sesuai dengan
jumlah yang telah ditentukan. Tujuannya adalah untuk mempermudah pengerjaan program dan untuk
mempersingkat intsruksi program. Dalam Bahasa pemrograman Java, terdapat tiga bentuk
pengulangan, yaitu For, While, dan Do-While.
Pada masing-masing Bahasa pemrograman mempunyai sintak untuk struktur pengulangan,
tetapi secara garis besar struktur perulangan mempunyai aturan yang harus dipenuhi, yaitu:
1. Inisialisasi adalah Langkah persiapan untuk mengulang kondisi awal sebuauh baris, seperti
memasukkan nilai awal dalam variabel. Fase ini berjalan sebelum memasuki bagian
pengulangan.
2. Proses berjalan di dalam pengulangan yang berisi semua proses yang perlu dijalankan berulang
kali.
3. Literasi terjadi di dalam pengulangan, ini merupakan sebuah kondisi tambahan untuk
melanjutkan pengulangan agar bisa terus berjalan.
4. Terminasi adalah kondisi untuk berhenti dari sebuah pengulangan, kondisi berhenti sangat
penting untuk pengulangan, menghindari pengulangan tanpa batas. Kondisi pengulangan adalah
kondisi yang harus dipenuhi oleh algoroitma yang sedang berjalan untuk memasuki blok
perulangan.

6.1 Pengulangan For


Pengulangan for dikenal sebagai pernyataan untuk mengendalikan proses berulang dengan
jumlah perulangan yang sudah ditentukan sebelumnya. Bentuk umum dari struktur ini adalah:
for (inisialisasi;kondisi;penaikan_penurunan)
{
pernyataan_pernyataan;
}
Keterangan:
- Bagian inisialisasi digunakan unutk memberikan nilai variabel yang digunakan untuk
mengontrol pengulangan.
- Bagian kondisi digunakan untuk mengontrol pengulangan untuk dilanjutkan atau diakhiri.
- Bagian penaikan _penurunan digunakan untuk menaikkan atau menurunkan nilai variabel
pengontrol perulangan.

Contoh soal pengulangan for 1


Buatlah algoritma dan program untuk menampilkan nilai dari 1 sampai 10 dengan menggunakan
pengulangan for.
Pseudocode
Algoritma menampilkan nilai
//deklarasi variable
i : integer;

//proses
51
for(int i=0;I <= 10;i++)

//output
Tampilkan( i )

Kode Program Java


1. public class pengulanganfor {
2. public static void main (String[] args) {
3. for (int i=0; i<=10; i++) {
4. System.out.print(i+" ");
5. }
6. }
7. }
Hasil:

Contoh soal pengulangan for 2


Buatlah program pengulangan menggunakan for untuk menampilkan teks dan angka pengulangan
dari 5 sampai 25 dengan step 5

Kode program java:


1. public class pengulanganfor2 {
2. public static void main (String[] args){
3. System.out.println ("Pengulangan Menggunakan For");
4. System.out.println ("========================");
5. for (int i=5; i<=25; i+=5){
6. System.out.println ("Angka Pengulangan = "+i);
7. }
8. }
9. }
Hasil:

Penjelasan:
Program diatas digunakan untuk menampilkan angka 5 sampai dengan 25. Perhatikan potongan
program berikut: for (int i=5; i<=25; i+=) terlihat variabel yang digunakan adalah i
yang bertipe data integer (int) yang dimulai dari 5 sampai dengan i<=25 dan angka yang ditampilkan
bertambah sebanyak 5 (+=5).

52
6.1.1 Nested For
Nested For atau for bersarang adalah bentuk dimana pada pengulangan terdapat
pengulangan. Contoh pengulangan ini dapat kita gunakan untuk menmapilkan pola tertentu,
perhatikan contoh program dibawah ini yang akan menampilkan pola segitiga bintang.
Kode program java:
1. public class Pengulanganfor3 {
2. public static void main (String[]args){
3. System.out.println("Pengulangan Menggunakan Nested For");
4. System.out.println("========================");
5. System.out.println();
6. int i, j, k;
7. for (i=1; i<=10; i++){
8. for (j=10; j>i; j--){
9. System.out.print(" ");
10. }
11. for (k=1; k<(2*i); k++){
12. System.out.print("*");
13. }
14. System.out.println();
15. }
16. }
17. }

Hasil:

6.2 Pengulangan While


Pengulangan while berguna untuk memproses suatu pernyataan beberapa kali. Pernyataan
perulangan dengan while akan selalu dikerjakan jika ungkapan selalu benar. Oleh karena itu, harus
dibuat kondisi bernilai salah agar pengulangan berakhir. Bentuk umum dari struktur ini adalah

While (kondisi){
Pernyataan;
}
Keterangan:
1. Bagian pernyataan akan dieksekusi selama kondisi dalam while bernilai benar.
2. Pengujian terhadap kondisi pada while dilakukan sebelum bagian pernyataan.
3. Kemungkinan pernyataan pada while tidak dijalankan, jika kondisi bernilai salah.
53
contoh soal pengulangan while

Buatlah algoritma dan program untuk menampilkan nilai dari 1 sampia 10 dengan menggunakan
pengulangan.
while
Pseudocode
Algoritma
Menampilkan nilai
//deklarasi variable
i=1 : integer;

//proses
while (i <= 10)
//output
Tampilkan( i )
i++
Kode Program Java
1. public class pengulanganwhile{
2. public static void main (String[] args){
3. System.out.println("Pengulangan menggunakan While");
4. System.out.println("=============================");
5. int i=1;
6. while(i<=10){
7. System.out.println(i);
8. i++;
9. }
10. }
11. }
Hasil:

Penjelasan:
Program diatas hamper sama dengan program perulangan for yang pertama, dimana angka
awal dan akhir telah ditentukan pada program, yaitu untuk menampilkan angka 1 sampai dengan 10.

6.2.1 Nested While


Nested While sama seperti nested For dimana pada pengulangan terdapat pengulangan.
Perhatikan contoh program dibawah ini yang akan menampilkan pola segitiga bintang.

Kode program java:


public class pengulanganwhile2{
public static void main (String[] args){
System.out.println("Pengulangan Menggunakan Nested

54
While");

System.out.println("===================================")
;
int i=1, j, k, l;
while(i<=10){
j=10-1;
while(j>=1){
System.out.print(" ");
j--;
}
k=1;
while(k<=1){
System.out.print("*");
k++;
}
l=1;
while(l<=i-1){
System.out.print("*");
l++;
}
i++;
System.out.println();
}
System.out.print("");
}
}
Hasil:

Penjelasan:
Program di atas menggunakan nested while yang hampir sama dengan nested for. Program
digunakan untuk menampilkan pola bintang sebanyak 10 baris. Terlihat pada Statement While
pertama digunakan untuk mengatur jumlah baris dan spasi, kemudian statement while kedua untuk
mengatur spasi atau baris kosong. Statement While ketiga dan keempat untuk mencetak pola bintang
dan spasi.

6.3 Pengulangan Do…While


Pengulangan dengan do…while ini juga digunakan untuk mengerjakan sebuah atau
sekelompok pernyataan berulang-ulang. Bedanya dengan while adalah pernyataan do…while akan
mengecek kondisi di belakang, sementara while cek kondisi ada di depan. Bentuk umum dari struktur
ini adalah:
do
{
Pernyataan1;
Pernyataan2;

55
............
Pernyataan_N;
}
While (kondisi)
Keterangan:

1. Bagian pernyataan1 hingga pernyataanN dijalankan secara berulang sampai ungkapan


bernilai salah.
2. Pengujian kondisi dilakukan setelah bagian pernyataan, maka pada pernyataan do…while
minimal akan diijalankan sekali, karena begitu masuk ke blok perulangan, tidak ada cek
kondisi tetapi langsung mengerjakan pernyataan.

Contoh soal pengulangan do…while


Buatlah program untuk menampilkan nilai dari 1 sampai 10 dengan menggunakan pengulangan
do…while.
Kode program java:

public class dowhile{


public static void main (String[] args){
System.out.println("Pengulangan Menggunnakan
D...While");

System.out.println("==================================");
int i=10;
do{
System.out.println(i);
i-=1;
}
while(i>=1);
}
}
Hasil:

Penjelasan:
Program ini digunakan untuk menampilkan angka dari besar ke kecil. Angka yang akan
ditampilkan telah ditentukan. Pada awal program telah dideklarasikan variabel I bertipe data integer
dan telah diberi nilai = 10. Selanjutnya terdapat perintah do yang akan menjalankan statement yang
ada pada blok program, yaitu:
System.out.println(i);
i-=1;
menampilkan angka i, kemudian I akan dikurangi dengan 1. Pada bagian akhir program akan menguji
kondisi yang ada yaitu selama i lebih besar atau sama dengan 1.
While(i>=1);

6.3.1 Nested Do…While


Sama seperti perulanganfor dan while, pada perulangan do.. while juga bisa digunakan
pengulangan di dalam pengulangan atau nested do while. Perhatikan contoh program dibawah ini
yang akan menampilkan pola segitiga bintang.
56
Kode program java :
public class nesteddowhile{
public static void main (String[] args){
System.out.println("Pengulangan menggunakan Nested
Do...While");

System.out.println("==================================");
int i=10, j;

do{
j=i;
do{
System.out.print("*"+" ");
--j;
}
while(j>=1);
--i;
System.out.println();
}
while(i>=1);
}
}
Hasil:

Penjelasan:
Program di atas digunakan untuk menampilkan pola bintang dengan cara menurun, jumlah
bintangnya sesuai dengan kebalikan barisnya. Pertama pola bintang akan menampilkan sebanyak 10
dan akan menurun/berkurang menjadi sebanyak 9 di baris selanjutnya, dan berkurang satu untuk
baris-baris selanjutnya, sampai dengan baris terakhir atau baris ke 10 hanya ada satu bintang.

6.4 Latihan Soal


1. Buatlah flowchart dan program untuk menampilkan nilai berdasarkan jumlah masukan
pengguna dengan menggunakan pengulanganfor.

2. Buatlah program pengulangan menggunakan while untuk menampilkan teks dan angka
pengulangan dari 5 sampai 25 dengan step 5.
Jawaban Latihan Soal:
1. Flowchart

57
Programan java:
import java.util.Scanner;

public class nilaipengulangan {


public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);

System.out.print("Masukkan jumlah masukan: ");


int n = scanner.nextInt();

for (int i = 1; i <= n; i++) {


System.out.print("Masukkan nilai ke-" + i + ": ");
int nilai = scanner.nextInt();
System.out.println("Nilai ke-" + i + ": " + nilai);
}
}
58
Hasil:

2. Pemrograman java
public class PengulanganWhile {
public static void main(String[] args) {
int i = 5;
while (i <= 25) {
System.out.println("Pengulangan ke-" + i);
i += 5;
}
}
}

Hasil:

59
Bab 7
Array
Pokok bahasan
1. Variabel Array

Tujuan Pembelajaran
1. Mampu memahami array satu, dua, dan tiga dimensi
2. Mampu mengaplikasikan array ke dalam program java

Array atau larik adalah koleksi data dimana setiap elemen memakai nama yang sama dan
bertipe sama dan setiap elemen diakses dengan membedakan indeks arraynya. Array merupakan
sebuah variabel yang menyimpan lebih dari I buah data yang memiliki tipe data yang sama. Jadi
dapat dikatakan bahwa array merupakan kumpulan dari data-data tunggal yang dijadikan dałam 1
variabel array yang alamat memorinya berbeda yang selanjutnya disebut elemen-elemen array yang
bisa kita akses berdasarkan indeks.
Program yang kompleks memerlukan banyak variabel sebagai inputannya. Kita bisa saja
mendeklarasikan variabel—variabel tersebut satu persatu sesuai dengan jumlah yang kita butuhkan.
Misalkan kita membutuhkan 5 (lima) variabel bertipe int, kita bisa menuliskannya dengan cara :
int a, b, c, d, e;
Variabel Array
elemen array elemen array elemen array elemen array elemen array

data
Data 1 Data 2 Data 3 . . . Data n

indeks---> 0 1 2 3 n-1
Indeks adalah sebuah angka yang menyatakan urutan sebuah elemen pada suatu variabel
array. Karena seluruh kotak memiliki nama yang sama, maka untuk membedakannya diperlukan
suatu cara yaitu dengan memberi nomor urut. Ibarat deretan rumah pada sebuah jalan, untuk
membedakan antara rumah yang satu dengan rumah yang lain maka setiap rumah diberi nomor unik
yang berbeda antara rumah satu dengan rumah lainnya.
Nomor indeks variabel array selalu dimulai dari 0 (nol), sehingga nomor indeks bagi elemen
terakhir adalah sebesar (N-l), dimana N adalah jumlah total elemen. Kita bisa mengakses setiap
elemen dałam variabel array dengan mengacu pada nomor indeksnya. Awalan nol untuk nomor
indeks array sering menimbulkan kerancuan bagi kita yang terbiasa dengan awalan angka l.
Array mempunyai beberapa jenis seperti array 1 dimensi, array 2 dimensi dan array
3D/multidimensi, dimana masing-masing array tersebut memiliki fungsi yang berbeda dałam
penggunaannya. Array I dimensi disebut dengan vektor, array 2 dimensi sering disebut sebagai
matriks sedangkan array 3D disebut dengan tensor.

7.1 Array 1 Dimensi


Array dimensi atau yang sering disebut dengan vektor adalah suatu array yang value atau
nilainya hanya ditunjukkan oleh satu indeks. Sebagai contoh misalnya Ketika dilakukan pengukuran
berat badan untuk 30 orang karyawan, maka dibuatlah variabel berat badan yaitu :

berat badanl, berat badan2, berat badan3, berat badan4, berat


badan30,
Contoh ini menjelaskan bahwa setiap nilai dari variabel berat badan hanya ditunjukkan oleh
satu nilai indeks saja. Array 1 dimensi juga dideklarasikan dengan variabel yang sudah dibentuk
sebelumnya dan tidak dapat diubah selama program dijalankan.

60
Ada beberapa cara untuk mendeklarasikan variabel array, yaitu:
1. Mendeklarasikan variabel array tanpa menyebutkan berapa jumlah elemen yang diperlukan.

Tipe [ ] variable;

Contoh
int [ ] angka; atau int angka [ ]

Artinya menyiapkan deklarasi array angka bertipe integer di awal program, dimana panjang array
dan data array belum dinyatakan. Variabel angka kita deklarasikan sebagai variabel array dimana
setiap elemennya akan menyimpan data bertipe int tetapi kita belum bisa menggunakannya sebelum
kita menyebutkan berapa jumlah elemen yang diperlukan.
2. Memesan jumlah elemen yang kita perlukan kita tuliskan

Tipe [ ] variable = new tipe [n] ;

Contoh :
Int [ ] angka - new int [8] ; atau int angka [ ] = new int [8];

Artinya Variabel angka kita deklarasikan sebagai variabel array dimana setiap elemennya akan
menyimpan data bertipe int. Pada saat mendeklarasikan array angka bertipe integer di awal program
ini, sekaligus menyiapkan ruang memori 8 elemen array yang kita perlukan.
3. Mendeklarasikan variabel array secara otomatis
Tipe [ ] variable ={data-1, data-2, ...data-n}

Contoh :
Int [ ] angka = {7, 12, 15, 20, 22, 24, 29, 31};
atau
int angka [ ]7, 12, 15, 20, 22, 24, 29, 31};

Artinya menyiapkan deklarasi array angka bertipe integer sekaligus memasukan data secara
langsung. Kita tidak menyebutkan berapa elemen yang kita pesan tetapi kita langsung menyebutkan
isi data dari elemen array tersebut.

Contoh soal:
Buatlah program array 1 dimensi untuk menghitung jumlah, rata - rata serta niai terbesar dan
terkecilnya!
import java.util.Scanner;
public class Array1dimensi{
public static void main(String[] array1dimensi){
Scanner masuk=new Scanner(System.in);
float jumlah,rata,maks,min;
// deklarasi array 1 dimensi
float nilai[]=new float[5];

System.out.println("Masukkan 5 nilai");
for(int i=0; i<5; i++) {
System.out.print("Data ke " + (i+1) + ": ");
nilai[i]=masuk.nextFloat();
}

System.out.println("Data Nilai yang dimasukkan");


for(int i=0; i<5; i++)
System.out.println(nilai[i]);
jumlah=0;
for(int i=0; i<5; i++)
61
jumlah=jumlah+nilai[i];
rata=jumlah/5;
{
maks=nilai[0];
min=nilai[0];
for(int i=0; i<5; i++) {
if(maks<nilai[i])
maks=nilai[i];
if(min>nilai[i])
min=nilai[i];
}
}
System.out.println("Jumlah : "+jumlah);
System.out.println("Rata-rata : "+rata);
System.out.println("Nilai terbesar : "+maks);
System.out.println("Nilai terkecil : "+min);
}
}
Hail:

7.2 Array 2 Dimensi


Array 2 dimensi atau yang lebih sering digambarkan dengan sebuah matriks digunakan untuk
menggambarkan array yang lebih rumit. Contohnya di perhitungan matematika yang memiliki
matriks/grafik/ diagram yang memiliki sumbu x dan y. Array 2 dimensi juga bisa disebut sebagai
perluasan dari array I dimensi, dimanajika pada array I dimensi hanya terdapat satu kolom dan satu
baris maka pada array 2 dimensi tersusun atas beberapa elemen kolom dan beberapa elemen baris
dengan tipe data yang sama atau sejenis. Bentuk umum pendeklarasian variabel array dua dimensi
di Java adalah:
tipeData[] nama_variabel=new tipeData[jumlah_baris][jumlah_kolom]];
atau
tipeData nama_variabel[][]=new
tipeData[jumlah_baris][jumlah_kolom];
Pada array dua dimensi ini satu elemen array bisa memiliki beberapa isi yang bisa
diilustrasikan seperti berikut :
Variabel array

Elemen array elemen array elemen array elemen array elemen array

Baris Data[0,0] Data[0,1] Data[0,2] Data[0,m-


0 1
Baris Data[1,0] Data[1,1] Data[1,2] Data[1,m-
1 1
62
Baris Data[2,0] Data[2,1] Data[2,2] Data[2,m-
2 1]
. . .
Baris Data[n- Data[n- Data[n- Data[n-
n-1 1,0] 1,1] 1,2] 1,m-1]
N adalah nilai yang menyatakan jumlah baris dari array, sedangkan M menyatakan jumlah
kolom dari array. Sama seperti array satu dimensi, penomoran indeks untuk array dua dimensi juga
dimulai dari 0 untuk baris maupun kolomnya. Secara garis besar, jika sebelumnya sudah memahami
tentang array I dimensi maka harusnya tidak sulit untuk memahami alur dari array 2 dimensi. Untuk
lebih memahami definisi array 2 dimensi, perhatikan susunan angka berikut ini:
Indeks Kolom

o
o

Susunan angka diatas menunjukkan matriks berdimensi 7 x 4, artinya terdiri dari 7 baris dan
4 kolom. Dalam pengisian array 2 dimensi dapat dilakukan dengan dua cara yaitu baris per baris
(row major order) dan kolom per kolom (colomn major order). Sebagai variabel dalam algoritma,
array 2 dimensi dideklarasikan dengan bentuk umum seperti berikut ini:
1. Int [ ] [ ] A; atau A [ ] [ ] ;
Artinya menyiapkan deklarasi array A dua dimensi bertipe integer di awal program, dimana panjang
array dan data array belum dinyatakan.
2. Int[][] A = new int[2][4]; atau int A[][]=new int [2][4];
Menyiapkan deklarasi array A dua dimensi bertipe integer di awal program sekaligus menyiapkan
ruang memori sebanyak dua baris, dan masing-masing baris tersedia 4 kolom (2x4).
A [x] [y] 0 1 2 3
A[0][0]=0; A[0][1]=0; 0 0 0 0 0
A[0][2]=0; A[0][3]=0;
A[1][0]=0; A[1][1]=0; 1 0 0 0 0
A[1][2]=0; A[1][3]=0;
3. Int A[][]={{7,12,15,20}, {22,24,29,31}};
Artinya menyiapkan array A dua dimensi bertipe integer, sekaligus memasukan data secara langsung
di dalam program.
A [x] [y] 0 1 2 3
A[0][0]=7; A[0][1]=12; 0 7 12 15 20
A[0][2]=15; A[0][3]=20;
A[1][0]=22; A[1][1]=24; 1 22 24 29 31
A[1][2]=29; A[1][3]=31;
Contoh soal:
Buatlah program dengan menggunakan array 2 dimensi untuk menyimpan 5 data mahasiswa yaitu
berupa NIM, Nama dan Jurusan. (Note : hati-hati dengan kode program..!)
import java.util.Scanner;
public class array2dimensi
{
public static void main (String [] array2dimensi)
{
String [][] data =new String[11][4];
for (int i=1; i<=10; i++)
{
System.out.println("Masukkan data ke : "+i);
63
for (int j=1; j<=3; j++)
{
if(j==
{
System.out.println("Masukkan data ke : "+i);
for (int j=1; j<=3; j++)
{
if(j==1

{
System.out.print("Masukkan NIM : ");
data [i][j] = new Scanner(System.in).next();
}
else if(j==2)
{
System.out.print("Masukkan Nama : ");
data [i][j] = new Scanner(System.in).next();
}
else if(j==3)
{
System.out.print("Masukkan Jurusan : ");
data [i][j] = new Scanner(System.in).next();
}
}
}
System.out.println();

System.out.println("===========================================");
System.out.println("NIM\tNama\tJurusan");
System.out.println("===========================================");
for (int i=1; i<=10; i++)
{
for (int j=1; j<=3; j++)
{
System.out.print(data[i][j]+"\t");
}
System.out.println("");
}
}
}

64
Hasil:

7.3 Array 3 Dimensi


Array 3 dimensi adalah array yang tidak jauh berbeda dari array satu dimensi dan dua dimensi
yang telah dijelaskan sebelumnya, kecuali pada indeks dari array. Pada tipe ruang misalnya tipe
ruang = array [l ..8, I ..5, I ..3] of integer; menunjukkan bahwa ruang adalah nama-pengenal/variabel
yang berupa array yang komponennya bertipe integer dan terdiri atas 8 baris, mempunyai 5 kolom
dan 3 halaman.
Contoh soal:

Buat array 3 dimensi sehingga menghasilkan data


seperti gambar di bawah :

public class array3dimensi{


public static void main (String [] array3dimensi){
// membuat isi elemen array
int [][][] angka= // {kolom1, kolom2, kolom3}
{
{

65
{1,2,3}, // baris ke-0
{4,5,6}, // baris ke-1
{7,8,9} // baris ke-2
},
{
{10,11,12}, // baris ke-3
{13,14,15}, // baris ke-4
{16,17,18} // baris ke-5
},
{
{19,20,21}, // baris ke-6
{22,23,24}, // baris ke-7
{25,26,27} // baris ke-8
}
}; // kurung kurawa array penutup

// mendeklarasikan baris dan kolom


int i,j,k; // i=baris, j=kolom
for (i=0; i<3; i++){ // menampilkan elemen baris

for (j=0; j<3; j++){ // menampilkan elemen kolom

for (k=0; k<3; k++){ // menampilkan elemen baris

// menampilkan isi elemen baris dan kolom


System.out.print(angka[i][j][k]+" "); // pindah baris
}
System.out.println(); // pindah baris
}
System.out.println(); // pindah baris
}
}
}

Hasil:

66
Latihan Soal
1. Buat program untuk mencetak bintang seperti contoh berikut:
Input :3 Input :5
Output: *** Output:******
* * * *
*** * ** *
* ** *
* *
******

Input :4 Input :6
Output: **** Output: ******
* * * *
* * * ** *
**** * ** *
* *
******
import java.util.Scanner;

public class polabintang1 {


public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);

// Input jumlah baris


System.out.print("Masukkan jumlah baris: ");
int n = scanner.nextInt();

// Baris pertama hingga baris terakhir


for (int i = 1; i <= n; i++) {
if (i == 1 || i == n) {
// Baris pertama dan terakhir penuh bintang
for (int j = 1; j <= n; j++) {
System.out.print("*");
}
} else {
// Baris tengah hanya memiliki bintang di awal dan
akhir
System.out.print("*");
for (int j = 2; j < n; j++) {
System.out.print(" ");
}
System.out.print("*");
}
System.out.println();
}

scanner.close();
}
}

67
Hasil

2. Buatlah sebuah program untuk melakukan operasi matrix, dimulai dari menginputkan dimensi
matrix, mengisi matrix, penjumlahan matrix, perkalian matrix dan transpose matrix!
import java.util.Scanner;

public class MatrixOperations {

public static void main(String[] args) {


Scanner scanner = new Scanner(System.in);

// Input dimensi matriks


System.out.print("Masukkan jumlah baris matriks: ");
int rows = scanner.nextInt();
System.out.print("Masukkan jumlah kolom matriks: ");
int cols = scanner.nextInt();

// Mengisi matriks pertama


int[][] matrix1 = new int[rows][cols];
System.out.println("Masukkan elemen matriks pertama:");
fillMatrix(matrix1, scanner);

// Mengisi matriks kedua


int[][] matrix2 = new int[rows][cols];
System.out.println("Masukkan elemen matriks kedua:");
fillMatrix(matrix2, scanner);

// Penjumlahan matriks
int[][] sumMatrix = addMatrices(matrix1, matrix2);
System.out.println("Hasil penjumlahan matriks:");
printMatrix(sumMatrix);

// Perkalian matriks
if (cols == rows) {
int[][] productMatrix = multiplyMatrices(matrix1, matrix2);
System.out.println("Hasil perkalian matriks:");
printMatrix(productMatrix);
} else {
System.out.println("Perkalian matriks tidak dapat dilakukan,
dimensi tidak sesuai.");

68
}

// Transpose matriks pertama


System.out.println("Transpose matriks pertama:");
printMatrix(transposeMatrix(matrix1));

// Transpose matriks kedua


System.out.println("Transpose matriks kedua:");
printMatrix(transposeMatrix(matrix2));

scanner.close();
}

private static void fillMatrix(int[][] matrix, Scanner scanner) {


for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[i].length; j++) {
System.out.print("Elemen [" + i + "][" + j + "]: ");
matrix[i][j] = scanner.nextInt();
}
}
}

private static int[][] addMatrices(int[][] matrix1, int[][] matrix2)


{
int[][] result = new int[matrix1.length][matrix1[0].length];
for (int i = 0; i < matrix1.length; i++) {
for (int j = 0; j < matrix1[i].length; j++) {
result[i][j] = matrix1[i][j] + matrix2[i][j];
}
}
return result;
}

private static int[][] multiplyMatrices(int[][] matrix1, int[][]


matrix2) {
int[][] result = new int[matrix1.length][matrix2[0].length];
for (int i = 0; i < matrix1.length; i++) {
for (int j = 0; j < matrix2[0].length; j++) {
for (int k = 0; k < matrix1[0].length; k++) {
result[i][j] += matrix1[i][k] * matrix2[k][j];
}
}
}
return result;
}

private static int[][] transposeMatrix(int[][] matrix) {


int[][] result = new int[matrix[0].length][matrix.length];
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[i].length; j++) {
result[j][i] = matrix[i][j];
}
}
return result;
}

private static void printMatrix(int[][] matrix) {


for (int[] row : matrix) {
for (int element : row) {
System.out.print(element + " ");
}

69
System.out.println();
}
}
}
Hasil:

70

Anda mungkin juga menyukai