Perancangan Sistem Perancangan Fungsi

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