Monday, December 3, 2012

Collections

============================================================
HasilSearch.cs

============================================================


using System.Collections.Generic;

namespace SearchProject
{
    abstract class HasilSearch
    {
        public string keyword { get; set; }
        public List<string> hasil;
        public HasilSearch()
        {
            this.keyword = "";
            hasil = new List<string>();
        }

        public abstract List<string> getHasil();
    }
}

============================================================
HasilSearchRegex

============================================================


using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;

namespace SearchProject
{
    class HasilSearchRegex: HasilSearch
    {
        public override List<string>
            getHasil(string source)
        {
            hasil = new List<string>();
            MatchCollection m1 =
                Regex.Matches(source, this.keyword);
            foreach (Match m2 in m1)
            {
                hasil.Add(m2.ToString());
            }

            return hasil;
        }

        public string getHTMLTable()
        {
            string teks = "";

            teks = "<table><tr><td>Hasil</td></tr>";
            foreach (var item in hasil)
            {
                teks +=
                    "<tr><td>"
                    + item.ToString()
                    + "</td></tr>";
            }
            teks += "</table>";
            return teks;
        }

        public string getConsoleResult()
        {
            string teks = "";

            teks = "Hasil\n";
            teks += "================\n";
            foreach (var item in hasil)
            {
                teks += item.ToString() + "\n";
            }
            teks += "================\n";
            return teks;
        }
    }
}




============================================================
RegexTest.cs
============================================================
using System;

using System.IO;
using System.Collections.Generic;

namespace SearchProject
{
    class RegexTest
    {
        static string bacaFile(string namaFile)
        {
            String teksSumber = String.Empty;

            if (File.Exists(namaFile))
                teksSumber =
                    File.ReadAllText(namaFile);
            else
                Console.WriteLine("File tidak ditemukan");
            return teksSumber;
        }

        static void Main(string[] args)
        {
            String namaFile = Directory.GetCurrentDirectory() +
                     @"\..\..\Cerita Kancil.txt";

            String teksSumber = bacaFile(namaFile);

            //Penggunaan Objek
            HasilSearchRegex objSearch = new HasilSearchRegex();
            objSearch.keyword = @"(?i)([a-z]+)-\1";
            //objSearch.keyword = @"(?i)(kancil|harimau)";
            List<string> hasil =
                objSearch.getHasil(teksSumber);
            //

            Console.WriteLine(objSearch.getConsoleResult());
            Console.ReadLine();
        }
    }
}



============================================================
Contoh Teks untuk Search (buat dalam file Cerita Kancil.txt)
============================================================
Cerita Kancil
Alkisah, ada seekor kancil yang sedang berteduh di tepi sungai dengan rindang pohon-pohon teduh disana.
Tiba-tiba si kancil mencium adanya mara bahaya, yaitu seekor harimau yang sedang menuju ke arahnya dari kejauhan.
Melihat keadaan tersebut si kancil mendekat ke kolam yang kotor dengan tanah liat, melumuri badannya dengan bau-bau bangkai
ikan yang terdapat di sekitarnya. Setelah itu tiduran dengan berpura-pura mengeluarkan banyak busa di mulutnya.
Si Harimau akhirnya mendekat dan menyeringai ke Si Kancil...
"Wah, ini hari keberuntungan saya. Seekor kancil yang akan menjadi sarapanku !", kata si Harimau
"Oh Harimau... sahabatku, tolonglah daku yang sedang keracunan ini.... ", lirih Sang Kancil
"Hah ?? Buat apa saya bantu kau... Dan, kamu keracunan apakah sampai sekarat begini ?", si Harimau menjadi ragu
"Oh Harimau, akibat keteledoran saya meminum air buangan manusia disana, perut saya menjadi sangat sakit dan panas...
Banyak ikan mati disana, mungkin keracunan air yang sama. Ajalku segera dekat... Tolonglah aku Harimau... ", lirih Sang
Kancil menjadi-jadi
Sang Harimau akhirnya pergi tanpa mempedulikan Si Kancil karena takut jika menyantap Si Kancil, racunnya juga akan
masuk ke badannya.
Sang Kancil memperhatikan sampai si Harimau pergi jauh, dan kemudian lari ke tempat yang tenang dengan ceria
karena telah terhindar dari bahaya.














No comments:

Post a Comment