dengan melakukan parsing per kata dari hasil fungsi ubah 1D menjadi 2D. Sebaliknya, matriks transpose juga melakukan hal yang serupa dalam fungsi ubah
array of char 2D ke array of string 1D yang nantinya untuk memudahkan pencarian proses palindrom. Setelah itu, mencari data-data palindrome, dan akan
menampilkan hasil kata-kata palindrome tersebut.
3.4. Perancangan Sistem
Proses perancangan merupakan deskripsi dari kebutuhan yang
direpresentasikan ke dalam perangkat lunak sehingga dapat diperkirakan kualitasnya sebelum dimulai pembuatan code atau coding. Aplikasi Palindrome
ini terdiri dari 5 kelas yaitu : Ubah teks dalam bentuk array of string, Ubah array of string 1D ke array of char 2D, Matrik transpose, Ubah array of char 2D
ke array of string 1D, dan Pemeriksaan Palindrome.
3.5. Perancangan Fungsi
Agar proses mendeteksi sebuah kata pada palindrome dapat berlangsung perlu di buat fungsi untuk koneksi. Fungsi untuk ubah teks dalam bentuk array of
string seperti di bawah ini :
Fungsi Ubah teks dalam bentuk array of string :
Set nilai awal str sesuai dengan jumlah baris Set nilai n sesuai dengan jumlah huruf dalam kalimat
Set nilai j sama dengan nol
for int i=0; ijumlahBaris; i++ str[i] =
while j n char ch = strAsal.charAtj;
j++ if ch = char32 ch = char127 then
str[i] += ch else break
set variabel terbanyak = str[0].length; for int i=1; istr.length; i++
if str[i].length terbanyak then terbanyak = str[i].length; for int i=0; istr.length; i++
n = str[i].length for j=0; jterbanyak-n; j++
str[i] += return str;
Pada penjelasan fungsi di atas menjelaskan bahwa pertama kali sistem akan menghitung jumlah baris dalam file teks yang akan dibaca kemudian
mengalokasikan memori pada variabel yang akan dipergunakan untuk operasi manipulasi karakter dalam kalimat tersebut.
Pemeriksaan karakter dilakukan untuk mengetahui apakah karakter tersebut spasi kode ascii 32 ataukah karakter escape kode ascii 127, jika ya
karakter tersebut tidak disimpan ke dalam array, jika bukan, maka akan disimpan ke dalam array. Proses penyimpanan ke dalam array dilakukan sekaligus dengan
mencatat panjang tiap kata dalam kalimat yang diperiksa.
Fungsi ubah array of string 1D ke array of char 2 :
Set jumlahBaris sama dengan panjang string asal Set jumlahKolom sama dengan panjang string asal indeks ke nol
Set Array dataHasil 2D dengan panjang baris sama dengan nilai pada variabel jumlahBaris] dan banyaknya kolom sama dengan nilai pada variabel
jumlahKolom. for int i=0; ijumlahBaris; i++
dataHasil[i] = strAsal[i].toCharArray return dataHasil;
Pada penjelasan fungsi di atas menjelaskan bahwa proses pengubahan array of string 1D ke bentuk array of char 2D dilakukan dengan cara
mendeklarasikan terlebih dahulu variabel untuk menentukan jumlah baris dan jumlah kolom. Setelah itu mengalokasikan variabel bertipe array of char 2D
dengan jumlah baris dan kolom mengikuti nilai variabel jumlahBaris dan jumlahKolom. Kemudian dilakukan proses pemindahan karakter secara iteratif ke
dalam variabel penampung.
Fungsi transpose matrik :
Set alokasi variabel dataHasil dengan jumlah baris sama dengan nilai variabel dataSumber dengan indeks 0 dan jumlah kolom sama dengan panjang pada
variabel dataSumber for int i=0; idataSumber.length; i++
for int j=0; jdataSumber[i].length; j++ dataHasil[j][i] = dataSumber[i][j] return dataHasil
Pada penjelasan fungsi di atas menjelaskan bahwa cara kerja algorithma transpose matrik adalah dengan mendeklarasikan terlebih dahulu variabel array
2D untuk menampung hasil pemindahan nilai dari matrik sumber. Proses ini dilakukan secara iteratif dengan memindah nilai kolom matrik sumber ke nilai
baris matrik hasil dan nilai baris matrik sumber ke nilai kolom matrik hasil secara satu per satu hingga seluruh nilai telah dipindahkan.
Fungsi ubah array of char 2D ke array of string 1D :
Alokasikan variabel dataHasil sesuai dengan panjang variabel sumber for int i=0; icharSumber.length; i++
dataHasil[i] = new StringcharSumber[i] return dataHasil
Pada penjelasan fungsi di atas menjelaskan bahwa pengubahan array of char 2D ke array of string 1D dilakukan dengan mendeklarasikan terlebih dahulu
variabel dataHasil sesuai dengan panjang data dari variabel sumber. Kemudian proses pengubahan dilakukan secara iteratif dari variabel sumber ke variabel hasil
hingga seluruh isi variabel sumber selesai dipindakan.
Fungsi pemeriksaan palindrome :
for int i=0; iteks.length; i++ do maxHuruf = teks[i].length
awalBaca = 0 while awalBaca maxHuruf do
cacahHuruf = jumChar akhirBaca = maxHuruf - awalBaca + 1
while cacahHuruf akhirBaca do str = teks[i].substringawalBaca, awalBaca+cacahHuruf
rev = StringBufferstr.reverse.toString lanjut = false
for int j=0; jstr.length; j++ do if str.charAtj = then
lanjut = true break;
if lanjut then for int j=i; jteks.length; j++ do
posisiPalindrom = teks[j].indexOfrev if posisiPalindrom = -1 then
if horisontal then dataHasil += Baris + i+1 + [ + str + ] -- Baris + j+1 +
[ + rev + ]\n else
dataHasil += Kolom + i+1 + [ + str + ] -- Kolom + j+1 + [ + rev + ]\n;
cacahHuruf++ awalBaca++
return dataHasil
Pada fungsi di atas menjelaskan bahwa dalam melakukan pemeriksaan palindrom, sistem akan mengalokasikan terlebih dahulu variabel penampung dan
mengisikan variabel penampung secara terbalik dengan data yang diperoleh variabel sumber. Kemudian sistem akan melakukan perbandingan isi kedua
variabel tersebut, apabila isinya sama, maka disebut palindrom. Sedangkan langkah untuk melakukan pemeriksaan palindrom vertikal
dan horizontal sedikit berbeda. Pada pemeriksaan palindrom vertikal dilakukan pemeriksaan kolom sedangkan pada palindrom horizontal dilakukan dengan
pemeriksaan pada baris.
3.6. Perancangan Antar Muka