PENDAHULUAN Menghitung isomer senyawa organik telah dilakukan sejak 1857 dan orang pertama yang melakukannya adalah Arthur Cayley. Ia menghitung jumlah isomer alkana hingga C13H28 tetapi hasil perhitungannya hanya tepat hingga C11H24 (Trinastjic 1992). Orang pertama yang menghitung isomer senyawa organik dengan komputer adalah Joshua Lederberg. Ia adalah seorang ahli biologi antariksa dan sering kali harus menentukan struktur senyawa dari luar angkasa. Ia menginginkan sebuah sistem yang dapat membantunya melakukan hal tersebut. Untuk membuat sistem impiannya, Lederberg bekerja sama dengan kimiawan Carl Djerassi, programer Edward Feigenbaum dan pakar kecerdasan buatan Bruce Buchanan. Tahun 1968 mereka berhasil menyelesaikan sistem tersebut dan menamainya DENDRAL (Lindsay et al. 1980). Cara kerja DENDRAL adalah sebagai berikut: pertama DENDRAL mengolah rumus empiris dan data pengamatan, seperti spektrum massa senyawa yang diteliti, untuk mendapatkan rumus molekulnya. Rumus molekul tersebut digunakan oleh generator untuk membuat struktur molekul yang mungkin. Struktur molekul yang dihasilkan dinyatakan dengan kode struktur. Setelah itu DENDRAL menganalisis setiap kode struktur yang dihasilkan dan membanding hasilnya dengan data pengamatan. Kode struktur yang sesuai dengan data pengamatan ditampilkan sebagai hasil proses tersebut (Lindsay et al. 1980). DENDRAL versi pertama hanya memiliki generator asiklik sehingga hanya menghasilkan struktur tanpa cincin. Untuk mengatasi kelemahan tersebut Masinter membuat generator siklik yang disebut CONGEN (Lindsay et al. 1993). CONGEN dibuat dengan memodifikasi algoritma generator asiklik, akibatnya kedua generator tersebut memiliki kelemahan yang sama yakni memerlukan waktu proses yang panjang. (Ballard 2003). Tahun 2003 Ballard menghitung isomer alkana dengan membuat generator struktur untuk homolog tersebut. Perangkat lunak tersebut menghasilkan 7200 isomer alkana per detik tetapi menghasilkan perulangan kode struktur mulai C19H40 (Ballard 2003). Aringheiri menulis beberapa perangkat lunak untuk menghitung jumlah isomer alkana. Cara kerja perangkat lunak tersebut adalah dengan menghitung jumlah kode struktur yang dihasilkan. Perangkat lunak yang mereka buat berhasil menghitung jumlah isomer alkana hingga C27H56 dan yang paling cepat adalah perangkat lunak yang menggunakan algoritma Kvasnička-Pospichal (KP) (Aringhieri et al. 2003). Penelitian ini bertujuan mendaftarkan kode struktur dan menghitung jumlah isomer senyawa alkana dan senyawa yang memiliki rumus molekul CnH2n+2, CnH2n+2O, CnH2n, CnH2nO, CnH2nO2, dan CnH2n-2 dengan algoritma KP. Kode struktur akan dinyatakan dalam kode simplified molecular input line entry specification (SMILES). Kode ini dipilih karena sudah didukung oleh banyak perangkat lunak, namun belum ada perangkat lunak berdiri sendiri yang dapat mengkonversi kode SMILES menjadi nama IUPAC. Oleh karena itu dalam penelitian ini juga dibuat perangkat lunak untuk mengkonversi kode SMILES menjadi nama International Union of Pure and Applied Chemistry (IUPAC) agar kode yang dihasilkan bisa dimengerti. TINJAUAN PUSTAKA Alkana dan Beberapa Senyawa Satu Gugus Fungsi Alkana adalah senyawa hidrokarbon jenuh sehingga hanya memiliki ikatan sigma dan rumus molekulnya adalah CnH2n+2. Alkena dan alkuna adalah hidrokarbon yang setidaknya memiliki satu ikatan rangkap dua atau tiga (Carey 2004). Karena ada ikatan rangkap tersebut maka alkena dan alkuna yang memiliki satu gugus fungsi akan memiliki rumus molekul CnH2n dan CnH2n-2. Alkil merupakan gugus alkana yang kehilangan satu atom hidrogen sehingga rumus molekulnya menjadi CnH2n+1 (Carey 2004). Gugus alkil biasanya dilambangkan dengan huruf R (McMurry 2000). Alkohol dan eter dapat dianggap sebagai turunan air dengan mengganti satu atau dua atom hidrogen dengan gugus alkil. Keduanya bersifat polar dan larut dalam air tetapi kelarutan eter lebih rendah (Pine et al. 1988). Alkohol dan eter yang memiliki satu gugus fungsi akan memiliki rumus molekul CnH2n+2O. Aldehida dan keton merupakan senyawa karbonil. Aldehida memiliki gugus karbonil yang selalu berada di urutan pertama sedangkan gugus karbonil keton tidak pernah berada di ujung rantai utama. Oleh karena itu 2 aldehida dapat dioksidasi menjadi asam karboksilat (Pine et al. 1988). Aldehida dan keton yang memiliki satu gugus fungsi akan memiliki rumus molekul CnH2nO2. Asam karboksilat dan ester juga tergolong senyawa karbonil. Asam karboksilat bersifat polar dan bisa mengalami reaksi subtitusi. Reaksi asam karboksilat dengan alkohol menghasilkan ester. Ester biasa digunakan sebagai citarasa buah pada produk makanan (Fessenden RJ & Fessenden JS (b) 1986). Asam karboksilat dan ester yang memiliki satu gugus fungsi akan memiliki rumus molekul CnH2nO2. Tata Nama IUPAC Prosedur untuk memberi nama IUPAC suatu alkana adalah sebagai berikut: (1) Carilah rantai terpanjang dengan cabang terbanyak sebagai rantai induk. (2) Nomori atom karbon pada rantai induk dimulai dari ujung yang paling dekat dengan cabang. Jika kedua ujung memiliki jarak yang sama dengan cabang terdekat maka penomoran dimulai dari ujung yang paling dekat dengan cabang selanjutnya. (3) Namai cabang dan posisinya. (4) Nama ditulis sebagai satu kata (McMurry 2000). Prosedur penentuan nama IUPAC untuk senyawa selain alkana mirip dengan prosedur penentuan nama alkana. Bedanya adalah rantai utama harus melalui gugus fungsi senyawa tersebut dan mendapat posisi terendah. Nama alkena dan alkuna diperoleh dengan mengganti akhiran -ana dengan -ena atau -una. Nama alkohol, aldehida, keton, dan asam karboksilat diperoleh dengan mengganti huruf 'a' terakhir dari nama alkana dengan akhiran -ol, -al, -on, atau asam ...-oat. Nama eter dan ester sedikit berbeda. Untuk eter, akhiran -il pada alkil yang pendek diganti dengan akhiran -oksi dan digabungkan dengan nama alkana dari alkil yang panjang. Untuk ester, akhiran -il alkil yang terikat pada atom oksigen diganti dengan -oksi lalu digabungkan dengan nama asam karboksilat tanpa kata asam. (Fessenden RJ & Fessenden JS (a) 1986). Kombinatorial Kombinatorial adalah cabang matematika yang mempelajari penyusunan objek-objek. Hasil yang diinginkan adalah jumlah susunan yang mungkin untuk menyusun objek tertentu dalam himpunannya. Jika ada n tempat dan masing-masing memiliki a1, a2, a3, …, an cara pengisian yang mungkin, maka ada a1 × a2 × a3 × … × an susunan yang mungkin untuk mengisi n tempat tersebut. Jika ada m objek yang akan mengisi n tempat, dengan m ≥ n serta urutan tidak diperhatikan maka jumlah susunan yang mungkin dibentuk adalah (Iqbal 2008). Jika b1 ≥ b2 ≥ … ≥ bk ≥ 1 adalah bilangan bulat sehingga b1 + b2 + … + bk = n maka rangkaian bilangan (a1, a2, …, ak) disebut partisi bilangan bulat dari n (Deo 2004). Selanjutnya partisi bilangan bulat akan disebut dengan partisi. Algoritma KP Algoritma adalah prosedur untuk mengerjakan suatu tugas (Skiena 1997). Prosedur praktikum dan resep masakan adalah contoh algoritma. Gambar 1 Ilustrasi enumerasi dengan algoritma KP. Algoritma KP disebut juga algoritma pembentukkan, hal ini disebabkan oleh hasil pengamatan bahwa sebuah rantai alkana dapat diuraikan menjadi alkil-alkil yang lebih kecil. Oleh karena itu alkana dengan n atom karbon dapat dienumerasi dengan menggabungkan dua alkil atau lebih dengan atom karbon pusat sehingga jumlah atom karbonnya sama dengan n. Gambar 1 mengilustrasikan enumerasi dengan algoritma KP. Bulatan merah menunjukkan atom karbon pusat sedangkan garis merah menunjukkan ikatan pusat (Aringhieri et al. 2003). Algoritma KP diturunkan dari teorema Jordan. Aturan dalam teorema Jordan menjamin setiap struktur yang dibangun bersifat unik. Teorema Jordan menetapkan jika sebuah alkana memiliki n buah atom karbon, ada tiga kondisi yang mungkin, yakni: (1) jika n = 2k + 1, ada sebuah atom karbon pusat sehingga alkil-alkil yang berikatan dengannya tidak ada yang memiliki atom karbon lebih banyak dari k, (2) jika n = 2k, ada sebuah atom karbon pusat sehingga alkilalkil yang berikatan dengannya tidak ada yang memiliki atom karbon lebih banyak dari k-1, (3) jika n = 2k, ada sebuah ikatan pusat C―C ketiga. Jumlah ikatan yang dapat dibentuk atom karbon adalah empat sehingga jumlah alkil yang dapat diikat oleh atom karbon pusat adalah dua hingga empat. Untuk membangun CnH2n+2 sebanyak n atau n-1 atom karbon harus dibagi dalam dua hingga empat alkil. Permasalahan tersebut dapat diatasi dengan menggunakan membuat partisi dari n atau n-1. klorida berturut-turut dilambangkan dengan [Pb], [CH4], dan [HCl]. (2) Atom-atom yang berikatan tunggal cukup ditulis bersebelahan sedangkan ikatan rangkap dua dan rangkap tiga dilambangkan dengan = dan #. Oleh karena itu metanol, metanal dan asam sianida dilambangkan dengan CO, C=O, dan C#N. (3) Cabang ditulis di dalam tanda kurung. Contohnya 2,2-dimetilpropana dilambangkan dengan CC(C)(C)C, 2-propanon dilambangkan dengan O=C(C)C dan metiletanoat dilambangkan dengan O=C(OC)C (Blue Obelisk 2009). Python Gambar 2 Ilustrasi teorema Jordan. Alkil yang diperlukan harus sudah tersedia sebelum membuat alkana. Oleh karena itu pembentukan alkil didahulukan. Alkil dibuat dengan menggabungkan alkil-alkil yang lebih kecil dengan atom karbon yang memiliki satu elektron tidak berpasangan sehingga atom tersebut hanya dapat mengikat satu hingga tiga alkil. Python adalah bahasa pemrograman yang sederhana, mudah dipelajari, efisien, memiliki struktur data tingkat tinggi, dan menggunakan pendekatan pemrograman berorientasi objek dan dinamis. Laju eksekusi Python relatif lambat dibandingkan bahasa pemrograman seperti Pascal tetapi siklus pengembangannya yang lebih singkat (Indrajit & Pamungkas 2003). Kegunaan Generator Struktur Gambar 3 Contoh pembentukan alkil dengan algoritma KP. SMILES SMILES adalah notasi kimia yang dirancang untuk digunakan kimiawan pada komputer. SMILES merupakan rangkaian karakter yang diakhiri dengan spasi atau akhir baris. Atom hidrogen boleh dituliskan tetapi boleh juga tidak. SMILES dirancang agar mudah dipelajari, bersifat machine-friendly dan dapat digunakan pada sistem operasi apa pun (Weininger 1988). Saat ini ada dua standar penulisan kode SMILES. Kode SMILES dalam karya ini ditulis mengikuti standar openSMILES. Berikut adalah beberapa aturan dalam standar openSMILES. (1) Sebuah atom diwakili dengan simbolnya yang dituliskan di antara tanda kurung siku. Jika ada lebih dari satu atom yang sama, jumlah atom ditulis setelah simbol atom. Unsur-unsur yang biasa digunakan dalam senyawa organik dapat dituliskan tanpa tanda kurung siku. Oleh karena itu atom timbal, metana dan asam Kegunaan utama generator struktur adalah untuk menentukan struktur molekul suatu senyawa berdasarkan data NMR, MS atau IR. Kegunaan lainnya adalah untuk mendisain molekul. Disain molekul dilakukan untuk mengoptimalkan sifat fisik, kimia atau biologi suatu senyawa. Untuk mendisain molekul ada dua tahap yang harus dilakukan. Pertama menghitung nilai molecular descriptor dari sifat yang diinginkan menggunakan quantitative-structure activity relationship (QSAR). Selanjutnya generator membuat semua struktur yang memiliki nilai molecular descriptor yang sama (Faulon et al. 2004). BAHAN DAN METODE Alat dan Bahan Alat-alat yang digunakan dalam penelitian ini adalah komputer dengan spesifikasi prosesor Intel® Pentium® 4 2.8 GHz Hypertrading, memori RAM DDR 504 MB, sistem operasi Windows XP SP 2, hard disk 40 GB 7200 rpm, memori virtual 1531 MB, bahasa pemrograman dan interpreter Python. Bahan yang digunakan pada penelitian ini adalah data jumlah isomer alkana, alkena, alkuna, alkil, eter, dan ester.