Tuesday, December 4, 2012

Collections 2

=============================================
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. tiba-tiba.
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.


=============================================
HasilSearch (Abstract Class)
=============================================

using System.Collections.Generic;

namespace SearchProject
{
    abstract class HasilSearch
    {
        public string keyword { get; set; }
        public int jumlahHasil = 0;

        public List<string> hasil;
        public HasilSearch()
        {
            this.keyword = "";
            hasil = new List<string>();
        }

        protected abstract List<string> getHasil(string source);
    }
}



=============================================
HasilSearchRegex (Inherit)
=============================================
using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;

namespace SearchProject
{
    class HasilSearchRegex: HasilSearch
    {
        protected 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());
            }

            jumlahHasil = m1.Count;

            return hasil;
        }

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

            hasil = getHasil(source);
            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 source)
        {
            string teks = "";

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

=============================================
RegexTest
=============================================

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)";
            objSearch.getConsoleResult(teksSumber);
            //

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



No comments:

Post a Comment