BAB XIV OPERASI KARAKTER

dokumen-dokumen yang mirip
BAB XIII MENGECEK KESAMAAN DUA VEKTOR

BAB VII PENCARIAN DATA (SEARCHING)

BAB XI METODA COBA-SALAH (TRIAL-ERROR)

BAB XII MENCARI DATA MAKSIMUM DAN MINIMUM

PRAKTIKUM 5 PENGULANGAN PROSES 1

BAB II PROSES REKURSI DAN ITERASI

BAB V HITUNG INTEGRAL

for (Awal; Akhir; Peningkatan) Perintah

THE WAY OF LONGEST PALINDROME

PERTEMUAN 2 KONSEP DASAR PEMROGRAMAN

LATIHAN UTS Tim Pengajar KU1071 Sem

Pencarian Solusi Optimal dalam Permainan Congklak dengan Program Dinamis

Aplikasi Rekursif dalam Analisis Sintaks Program

WEEK 6. Teknik Elektro UIN SGD Bandung PERULANGAN - LOOPING

BAB 1 PENDAHULUAN. Universitas Sumatera Utara

Algoritma dan Pemrograman. Pertemuan Ke-9 Statement Pengulangan 2

Perulangan (Looping)

BAB IV PENGULANGAN PROSES

Penggunaan Algoritma Greedy untuk menyelesaikan Permainan Othello

Pernyataan FOR Pernyataan WHILE Pernyataan REPEAT. Dewi Sartika,M.Kom

ANALISIS PERMAINAN KATA MENGGUNAKAN ALGORITMA PEMROGRAMAN ANAGRAM DAN SUBANAGRAM

OLIMPIADE SAINS NASIONAL VII

PENGULANGAN SKEMA PEMROSESAN SEKUENSIAL. Tim Pengajar KU1071 Sem

BAB 3 METODOLOGI 3.1. Analisis Kebutuhan dan Masalah Analisis Kebutuhan

Struktur Kontrol. (Repetition) 1. Pemilihan (Selection) 2. Pengulangan

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET BAHASA PEMROGRAMAN Semester 3 Perulangan while, do..while 4 X 50 menit

BAB X MATRIK DAN SISTEM PERSAMAAN LINIER SIMULTAN

Praktikum 7 STRING B. PERCOBAAN. 1. Memasukkan data string dari keyboard /* File program : nama.c */ #include <stdio.

Kondisional/Pencabangan/Pemilihan. Konsep Pencabangan Sintaks Konsep if (kasus tunggal) Konsep if-else (2-3 kasus) Konsep switch (lebih dari 3 kasus)

Praktikum 2 Pembuatan Program PLC

Studi Kasus Implementasi Konsep Mesin Turing dalam Analisis Potensi Profiling Based Keyword di Sistem Sasbuzz

Decission : if & if else

Struktur Kontrol. (Repetition)

BAB IV ANALISA DAN PERANCANGAN

PRAKTIKUM 10 STRING A B C D E \0. Gambar 11.1 Komposisi penyimpanan string dalam memori

MODUL PRAKTIKUM ALGORITMA DAN STRUKTUR DATA PERTEMUAN 1

Algoritma Pemrograman & Struktur Data

Konstanta String. Setiap karakter pada konstanta string menempati memori sebesar 1 byte Selalu diakhiri dengan karakter NULL atau \0

BAB III PERANCANGAN SISTEM

BAB III ANALISIS MASALAH

Sistem Informasi Akademik (SIAKAD) Modul Mahasiswa. Tim Siakad Puskom UNY

TUGAS PEMROGRAMAN DASAR PENGULANGAN WHILE

Penggunaan Algoritma Pathfinding pada Game

Rekursif/ Iterasi/ Pengulangan

PERULANGAN Pengampu : Agus Priyanto, M.Kom

BAB I PENDAHULUAN Latar Belakang Masalah

Penggunaan Algoritma Divide and Conquer Dalam Pewarnaan Graf

BAB III ANALISA DAN PERANCANGAN

BAB IV MENGHITUNG AKAR-AKAR PERSAMAAN

F.1 Kereta Api F.1.1 Pembelian F Pilih Tanggal, Jumlah Penumpang dan Rute Perjalanan

BAB III ANALISA MASALAH DAN RANCANGAN PROGRAM

BAB III ANALISIS DAN PERANCANGAN

ARNA FARIZA YULIANA SETIOWATI

Praktikum 4. Tumpukan (Stack)

A. TUJUAN PEMBELAJARAN

String 1 A. TUJUAN PEMBELAJARAN

BAB III METODOLOGI PENELITIAN. Penelitian ini dilakukan di Jurusan Ilmu Komputer Fakultas Matematika dan

Algoritma Puzzle Pencarian Kata

Pengulangan. Overview. Tujuan. 1.1 Konsep Pengulangan

Aplikasi Algoritma Pencarian String Dalam Sistem Pembayaran Parkir

Suatu konstanta string ditulis dengan diawali dan diakhiri tanda petik ganda, misalnya:

Penerapan Algoritma Brute Force di Permainan Nonogram

PERULANGAN Pengampu : Agus Priyanto, M.Kom

BAB 2 TINJAUAN PUSTAKA

PENGAMBILAN KEPUTUSAN

PERTEMUAN 2 ARRAY, PERCABANGAN, DAN PERULANGAN

BAB IV IMPLEMENTASI DAN PENGUJIAN

FLOWCHART. Pendahuluan:

Penerapan Divide and Conquer dalam Membandingkan Alur Proses 2 Source Code

BAHASA PEMROGRAMAN 1 (PERTEMUAN 3)

Penerapan Algoritma Runut-Balik untuk Menyelesaikan Permainan Pencarian Kata

PEDOMAN PENYUSUNAN PROPOSAL TUGAS AKHIR

Penerapan Algoritma Brute Force dan Backtracking pada Permainan Skycraper

Algoritma & Pemrograman

KONTROL ALIR PERULANGAN

Pertemuan 2. Muhadi Hariyanto

Algoritma Divide and Conquer untuk Optimasi Pemberian Efek Aura pada Permainan DotA (Defense of the Ancient)

1. Kompetensi Mengenal dan memahami algoritma percabangan yang komplek.

BAB III ANALISIS DAN PERANCANGAN

BAB V. PERTIDAKSAMAAN

Tumpukan(Stack)!! " # $ %&' $ %& ( ) ( * +, / ( (

Berkas Soal Final Competitive Programming Tingkat Mahasiswa. CompFest 2013

Rencana Pelaksanaan Pembelajaran (RPP)

BAB IV HASIL DAN UJI COBA

BAB III ANALISA DAN PERANCANGAN SISTEM

BAB III METODE PENELITIAN / PERANCANGAN SISTEM. perancangan dan pembuatan program ini meliputi : dengan konversi notasi infix, prefix, dan postfix.

Penerapan Algoritma Greedy pada Intelegensia Buatan untuk Transfer Pemain dalam Permainan Simulasi Sepakbola

BAB 2 LANDASAN TEORI

Struktur Kontrol. 1.Pemilihan (Selection) 2.Pengulangan (Repetition)

PENGGUNAAN ALGORITMA BACKTRACKING DALAM PENYELESAIAN PERMAINAN SUDOKU

Gambar 1. Tampilan Layar Sebuah Program Animasi

BAB 3 PE GEMBA GA METODE DA ALGORITMA PEMESI A MULTI AXIS

PETUNJUK TEKNIS PENULISAN PROPOSAL DISERTASI DOKTOR (untuk Naskah Proposal Disertasi)

Aplikasi Algoritma Runut-balik untuk Penyelesaian Jenis Permainan Smart Mike pada Permainan Mike 2 in 1

Proses Perulangan (Looping) DASAR PROGRAMMING 1

Modul Praktikum Algoritma dan Struktur Data

Panduan Penggunaan Perintah Editor vi

PENCARIAN SOLUSI TTS ANGKA DENGAN ALGORITMA RUNUT BALIK BESERTA PENGEMBANGANNYA

Transkripsi:

1 BAB XIV OPERASI KARAKTER Operasi karakter diperlukan dalam beberapa bagian pengolahan. Sebenarnya terdapat banyak sekali macam operasi yang dapat dilakukan untuk manipulasi data tipe karakter. Sekalipun demikian, pembahasan pada bagian berikut ini hanya akan meninjau dua operasi yang berkaiatan dengan karakter, yaitu membalik kalimat dan mengecek kata Palindrom. 14.1. Membalik Kalimat Sebuah contoh permasalahan sederhana dalam operasi karakter yang dapat dikembangkan untuk menyelesaikan permasalahan serupa yang lebih komplek adalah membalik karakter-karakter dalam suatu kalimat. Dalam hal ini proses membalik kalimat yang dimaksud adalah dilakukan secara meyeluruh pada setiap karakter dalam kalimat tanpa mempedulikan penggalan kata atau spasi. Sebagai contoh, jika diketahui sebuah kalimat berikut ini : SAAT INI SAYA SEDANG BELAJAR ALGORITMA Setelah dibalik, maka kalimat di atas akan menjadi kalimat sebagai berikut ini : AMTIROGLA RAJALEB GNADES AYAS INI TAAS Untuk menyelesaikan permasalahan seperti ini, maka dapat dilakukan dengan cara berikut ini. Mula-mula dibaca kalimat yang akan dibalik dan dihitung cacah karakternya termasuk tanda spasi yang ada. Selanjutnya, pindahkan setiap lokasi setiap karakter dalam kalimat asal secara berurutan dimulai pada karakter ke-1 hingga terakhir. Karakter ke-1 dalam kalimat asal dipindahkan pada urutan terakhir dalam kalimat hasil, karakter ke-2 dipindahkan pada urutan ke-2 dari karakter terakhir dalam kalimat hasil, karakter ke-3 dipindahkan pada urutan ke-3

2 dari karakter terakhir dalam kalimat hasil, dan seterusnya hingga semua karakter selesai dipindahkan. Dengan demikian, karakter pertama dalam kalimat asal akan menempati pada alokasi terakhir dalam kalimat hasil. Karakter terakhir dalam kalilmat asal akan menempati lokasi pertama dalam kalimat hasil. Sedangkan karakter-karakter di tengah akan menempati lokasi pada urutan yang terbalik pada kalimat hasil. Sehingga secara keseluruhan akhirnya kalimat hasil merupakan kalimat baru yang merupakan hasil kebalikan dari kalimat asal. Jika N adalah menyatakan panjang kalimat asal yang akan dibalik termasuk tanda spasi, KALIMAT menyatakan karakter-karakter pada kalimat asal, TERBALIK menyatakan kalimat hasil operasi yang telah dibalik, serta I dan J sebagai variabel pencacah dalam proses perulangan dan sekaligus berfungsi sebagai indeks setiap karakter dalam KALIMAT. Dengan asumsi bahwa KALIMAT dan N telah diketahui, maka algoritma prosedur untuk membalik kalimat seperti dijelaskan di atas adalah dituliskan sebagai berikut ini. KALIMAT adalah kalimat asal yang akan dibalik N menyatakan cacah karakter. TERBALIK adalah kalimat hasil operasi dalam kondisi terbalik. 1. Mulai 2. Inisialiasi J = N 3. Poses berulang langkah-4 s/d langkah-5 FOR I = 1 to N 4. Membalik semua karakter dalam kalimat asal TERBALIK[I] = KALIMAT[J] 5. Tentukan J = J - 1 6. Cetak hasil 7. Selesai

3 Selanjutnya, flowchart prosedur untuk membalik kalimat sebagaimana algoritma prosedur di atas adalah ditunjukkan pada Gambar 14.1. Mulai Baca KALIMAT[I] J=N FOR I = I TO N TERBALIK[I]=KALIMAT[J] J=J-1 Cetak hasil KALIMAT[J] Selesai Gambar 14.1 : Flowchart prosedur membalik karakter dalam kalimat Dalam varian kasus yang lain, mungkin pembalikan kalimat harus dilakukan per kata, bukan seluruh karakter sekaligus. Operasi ini sebenarnya merupakan pengembangan dari operasi membalik kalimat di atas. Tentu saja perlu modifikasi prosedur untuk menyelesaikannya. Untuk melakukan operasi membalik kalimat per-kata perlu diketahui lokasi spasi dalam kalimat asal. Lokasi spasi tersebut akan menentukan cacah karakter per-kata yang akan dibalik dan cacah kata dalam kalimat. Sehingga tanda spasi akan memberikan tanda batas ketika proses membalik kalimat dilakukan. Tanda spasi adalah berada pada lokasi dimana karakternya sama dengan blank atau atau karakter kosong. Selanjutnya prosedur pembalikan kalimat dilakukan per kata. Setiap dijumpai

4 tanda spasi dalam kalimat, maka proses membalik kalimat akan dimulai dari awal dan karakter setelah tanda spasi dianggap sebagai karakter pertama yang harus dibalik. Sebagai contoh, jika ada kalilmat sebagai berikut ; MEMBALIK KALIMAT PER-KATA BUKAN HAL YANG SULIT Kalimat di atas jika dibalik per-kata akan menjadi sebagai berikut ini : KILABMEM TAMILAK ATAK-REP NAKUB LAH GNAY TILUS Salah satu alternatif prosedur yang dapat dikembangkan untuk menyelesaikan permasalahan di atas adalah dengan cara sebagai berikut ini. Mula-mula dicari lokasi spasi dan sekaligus dihitung cacah kata dalam kalimat. Informasi tersebut, selanjutnya dapat dilakukan pembalikan kalimat per-kata yang ditandai oleh tanda spasi. Prosedur pembalikan kalimat per-kata dapat dilakukan sama dengan pembalikan kalimat sebagaimana dijelaskan pada sub Bab 14.1. Dalam hal ini setiap kata dapat dianggap sebagai sebuah kalimat pada pembahasan yang lebih dulu. Sehingga perbedaan hanyalah terletak pada bagaimana menentukan batas pembalikan setiap kata, hal ini dilakukan dengan menambahkan prosedur tambahan. 14.2. Mengetes Kata Palindrom Tanpa disadari, kita sering bermain-main dengan kata Palindrom. Kata palindrom adalah kata-kata yang mempunyai bunyi yang sama persis jika dibaca dari depan dan dari belakang. Dalam kalimat lain, sebuah kata disebut sebagai kata Palindrom jika karakter-karakter dalam kata tersebut dibalik akan menghasilkan kata-kata yang yang sama persis sebagaimana sebelumnya. Beberapa contoh kata Palindrom adalah sebagai berikut :

5 KATAK dibalik menjadi KATAK KAKAK dibalik menjadi KAKAK TAAT dibalik menjadi TAAT MALAM dibalik menjadi MALAM Untuk mengetes apakah suatu kata termasuk kata Palindrom atau bukan kata Palindrom dapat dilakukan dengan cara sebagai berikut ini. Mula-mula dibaca kata yang akan dites, sekaligus dihitung cacah karakter dalam kata tersebut. Selanjutnya, bandingkan karakter pada posisi paling kiri dengan karakter pada posisi paling kanan. Jika sama berarti pencocokan perlu dilanjutkan pada karakter ke-2 dari kiri dengan karakter ke-2 dari kanan. Jika masih sama, maka proses seperti ini akan diulang terus-menerus hingga seluruh karakter selesai dicocokkan. Sebaliknya, jika karakter paling kiri tidak sama dengan karakter paling kanan, maka bukan merupakan kata Palindrom dan proses dapat dihentikan. Berikut ini adalah algoritma prosedur untuk mengecek kata Palindrom sebagaimana telah dijelaskan di atas. KATA adalah kata yang akan dicek. N adalah cacah karakter pada kata yang akan dites. 1. Mulai 2. Inisialiasi KIRI = 1 KANAN = N 3. Proses berulang langkah-4 WHILE KIRI <= KANAN 4. Cek kesamaan karakter IF KATA[KIRI] = KATA[KANAN] Jika ya, tentukan KIRI = KIRI +1 KANAN = KANAN -1 Jika tidak, cetak Pesan (KATA, bukan kata Palindrom )

6 5. Cetak hasil KATA 6. Selesai Selanjutnya, flowchart prosedur untuk mengecek kata Palindrom sebagaimana algoritma prosedur di atas adalah ditunjukkan pada Gambar 14.2. Mulai Baca KALIMAT[I] KIRI=1, KANAN=N TIDAK WHILE KIRI<=KANAN YA TIDAK KATA[KIRI] = KATA[KANAN] YA Bukan kata Palindrom KIRI = KIRI +1 KANAN = KANAN -1 Cetak KATA[I] Selesai Gambar 14.2 : Flowchart prosedur mengecek kata Palindrom