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. Ruang Lingkup Penelitian ini terdiri atas dua bagian yakni: mendaftarkan kode struktur serta menghitung jumlah isomer senyawa dan konversi kode SMILES menjadi nama IUPAC. Pembentukan kode senyawa dilakukan oleh perangkat lunak garuna.py (generator alkana dan turunannya) sedangkan hiaruna.py (penghitung isomer alkana dan turunannya) hanya menghitung jumlah isomer senyawa. Konversi kode SMILES menjadi nama IUPAC dilakukan oleh nu.py (nama IUPAC). Tabel 1 Cara penggabungan kode alkil untuk membentuk kode senyawa Homolog Penggabungan kode Alkil [C](R2)(R3)R1 Alkana R2C(R3)(R4)R1 Alkena R2=R1 Alkuna R2C#CR1 Alkohol OR Eter O(R2)R1 Aldehida O=CR Keton O=C(R2)R1 Asam karboksilat O=C(O)R Ester O=C(OR2)R1 Algoritma garuna Pembentukan kode senyawa dimulai dengan menentukan homolog rumus molekul yang dimasukkan. Hal ini dilakukan dengan membandingkan jumlah atom karbon, hidrogen, dan oksigen dalam rumus molekul yang dimasukkan dengan rumus molekul homolog. Selanjutnya garuna membuat kode alkil yang diperlukan sesuai senyawa yang akan dibuat. Gugus fungsi diperlakukan sebagai pusat sehingga kode senyawa dibuat dengan menggabungkan kode alkil-alkil dengan kode gugus fungsi seperti terlihat pada Tabel 1. Kode dengan warna merah adalah pusat senyawa. Setelah selesai membuat kode senyawa garuna dapat menyimpan kode tersebut dalam berkas. Penentuan Waktu Perhitungan Garuna Waktu perhitungan garuna adalah selang waktu antara proses mulai dijalankan hingga garuna selesai membuat semua struktur yang mungkin. Penentuan waktu perhitungan garuna dilakukan dengan menjalankan garuna.py dengan bantuan cmd.exe. Garuna dijalankan dengan perintah garuna.py [rumus molekul]. Perintah ini akan menjalankan python.exe yang bertugas mengerjakan perintah dalam garuna.py. Homolog, jumlah atom karbon, jumlah isomer, dan waktu proses yang diperoleh garuna dicatat dalam berkas log.txt. Algoritma Hiaruna Cara kerja hiaruna mirip dengan garuna, pertama perangkat lunak akan menentukan homolog rumus molekul yang dimasukkan. Selanjutnya hiaruna akan memuat data jumlah isomer alkil. Data tersebut akan dimanfaatkan untuk menghitung jumlah isomer senyawa yang dicari berdasarkan cara penggabungan alkil-alkil untuk membentuk senyawa tersebut. Algoritma Nu (Konversi Kode SMILES Menjadi Nama IUPAC) Konversi kode SMILES menjadi nama IUPAC diawali dengan mencari kode yang menjadi pusat dari kode yang dimasukkan. Berdasarkan kode tersebut perangkat lunak akan menentukan homolog dan memecah kode menjadi kode alkil-alkil pembangunnya. Selanjutnya perangkat lunak menentukan panjang, cabang dan posisi cabang tiap alkil. Parameter tersebut berguna untuk menentukan urutan prioritas alkil. Alkil yang lebih panjang akan memiliki prioritas lebih tinggi. Jika panjang alkil sama maka alkil dengan jumlah cabang lebih banyak akan memiliki prioritas lebih tinggi. Jika jumlah cabangnya sama maka alkil dengan jumlah posisi lebih sedikit akan memiliki prioritas lebih tinggi. Rantai utama dibentuk dari dua alkil dengan prioritas tertinggi. Alkil lainnya diperlakukan sebagai cabang. Posisi cabang yang dimiliki alkil yang membentuk rantai utama akan disesuaikan berdasarkan posisinya pada rantai utama. Berdasarkan nama cabang dan nama rantai utama yang diperoleh, nama IUPAC senyawa disusun. HASIL DAN PEMBAHASAN Pembentukan Kode Struktur Senyawa Alkil yang dibutuhkan untuk membentuk senyawa tergantung pada homolog senyawa yang dicari. Berdasarkan cara penggabungan kode alkil pada Tabel 1, alkil yang dibutuhkan untuk membuat senyawa dengan n atom karbon ditampilkan pada Tabel 2. Misalkan untuk membuat kode struktur CnH2n-2 alkil