Halo teman-teman, apa kabar? Kali ini saya ingin membahas sedikit tentang salah satu problem yang ada di web rosalind.info. Judulnya ialah "Finding a Spliced Motif". Sebagai acuan, teman-teman bisa cek dahulu problem yang akan kita bahas (disini).
Overview
Di problem ini kita akan disajikan 2 string dalam format FASTA, sebut saja s dan t. String pertama (atau s) mewakili urutan sebuah DNA, sedangkan string kedua (atau t) mewakili subsequence dari string s. Tugas kita ialah mencari index dari subsequence t tersebut pada string s. Sebagai contoh, index dari subsequence "ACG" di string "TATCCAG" ialah (2, 4, 7) dan (2, 5, 7).
Kode Pengerjaan
Berikut kode pengerjaannya dalam bahasa java :
- static void solve() {
- Scanner sc = new Scanner(System.in);
- String strand = "";
- String sample = "";
- boolean ganti = false;
- sc.next();
- while (sc.hasNext()) {
- String masuk = sc.next();
- if (masuk.charAt(0) == '>') {
- ganti = true; continue;
- }
- if (ganti) {
- sample += masuk;
- }
- else {
- strand += masuk;
- }
- }
- int pvt = 0;
- for (int i = 0; i < sample.length(); i++) {
- while (strand.charAt(pvt) != sample.charAt(i)) {
- pvt++;
- }
- out.print((pvt + 1) + " ");
- pvt++;
- }
- }
Input dan Output
Seperti yang teman-teman lihat, disini saya memakai fungsi next() (baris 8) untuk meng-input data string. Saya juga menggunakan hasNext() (baris 7) dikarenakan fungsi tersebut mampu meng-input data yang tidak diketahui jumlahnya. Fungsi tersebut sangat cocok jika dipakai untuk menangani input dengan format FASTA.
Sedangkan untuk output-nya saya memakai fungsi out.print() (baris 24). Fungsi tersebut adalah modifikasi dari fungsi System.out.print() yang merupakan fungsi default di java. Untuk lebih jelasnya, teman-teman bisa melihat kode tambahan untuk memodifikasi fungsi tersebut (input maupun output) di versi lengkap kode saya di github.
Sekian dari saya. Jika teman-teman ingin menanyakan sesuatu, teman-teman bisa menulisnya di kolom komentar. Semoga bermanfaat dan sampai jumpa di artikel berikutnya!
Referensi :
Sumber gambar 1: https://www.facebook.com/ProjectRosalind/
No comments:
Post a Comment