OPTIMASI EFISIENSI KOLOM  DALAM KROMATOGRAFI MENGGUNAKAN VISUAL BASIC 2008
Harry S.J. Koleangan 1)
1) Program Studi Kimia FMIPA Universitas Sam Ratulangi Jl. Kampus Unsrat, Manado 95115 e-mail: koleanganharry@yahoo.com

## ABSTRAK
Telah  dibuat  sebuah  program  aplikasi  yang  ditujukan  untuk  optimasi  efisiensi  kolom  yang digunakan  dalam  pemisahan  secara  kromatografi.  Parameter-parameter  untuk  optimasi  ini dianalisis  menggunakan  metode  eliminasi  Gauss  dalam  bentuk  program  komputer  yang  ditulis menggunakan bahasa pemrograman Visual Basic 2008 Express Edition. Penggunaan program ini terhadap  suatu  data  sekunder  memberikan  hasil  efisiensi  kolom  optimum,  yang  dinyatakan sebagai  tinggi  plat  teoritis  (H)  terkecil,  sebesar  0,0223  cm  yang  dicapai  pada  laju  alir  optimum 20,6 cm/det.
Kata kunci : Efisiensi kolom, eliminasi Gauss, persamaan van Deemter, Visual Basic 2008

## OPTIMIZATION OF COLUMN EFFICIENY IN CHROMATOGRAPHY USING VISUAL BASIC 2008

## ABSTRACT
An application  program to  optimize  column efficiency  in chromatographic separation had been developed.  Optimization  parameters  were  analyzed  using  Gauss  elimination  method  which  was written in the form of a computer program using Visual Basic 2008 Express Edition programming language. Application of the program on the secondary data gave the optimum column efficiency, which  was  represented  as  height  equivalent  to  a  theoritical  plate  (H),  of  0,0223  cm  which  was achieved at optimum flow rate of 20,6 cm/det
Keywords : Column efficiency, Gauss elimination, van Deemter equation, Visual Basic 2008

## PENDAHULUAN
Efisiensi  kolom  merupakan  elemen penting  dalam  melakukan  pemisahan  secara kromatografi karena keterpisahan komponen- komponen sampel dalam kromatografi sangat ditentukan  oleh  efisiensi  kolom.  Efisiensi kolom  dinyatakan  sebagai  tinggi  plat  teoritis ( Height Equivalent to a Theoritical Plate/HETP) dan  diberi  simbol H ,  di  mana nilai H yang  kecil  menunjukkan  efisiensi kolom  yang  tinggi.  Faktor-faktor  yang mempengaruhi  efisiensi  kolom  adalah  difusi Eddy,  difusi  longitudinal,  dan  perbedaan kecepatan  transfer  massa  yang  terjadi  di dalam  kolom  kromatografi  selama  proses pemisahan  berlangsung.  Pengaruh  ketiga parameter  ini  terhadap  tinggi  plat  teoritis dirumuskan  dalam  persamaan  van  Deemter, yaitu
C B A H      (1)
di  mana A adalah  difusi  Eddy, B /  adalah difusi  longitudinal,  C adalah  pengaruh transfer  massa,  dan  adalah  laju  alir  fasa gerak.
Dari  persamaan  ini  terlihat  bahwa difusi longitudinal berbanding terbalik dengan laju alir sedangkan pengaruh transfer massa  berbanding  lurus  dengan  laju  alir, sehingga  untuk  mendapatkan  efisiensi  kolom tertinggi  (yaitu, H minimum)  maka  harus dicari laju alir optimum dan nilai A , B , dan C harus  diketahui.  Laju  alir  optimum  dapat diperoleh  dengan  cara  mendiferensialkan persamaan (1) terhadap laju alir (  ) sehingga diperoleh
C B opt   (2)
Dari  persamaan  (2)  nampak  bahwa  untuk menemukan laju alir optimum maka parameter B dan C harus  diketahui, sedangkan  untuk  menentukan  parameter- parameter  van  Deemter  ini  dibutuhkan  tiga persamaan linear simultan.
Penyelesaian persamaan linear simultan membutuhkan jumlah operasi aritmetika  yang  cukup  banyak,  berulang  dan memerlukan  ketelitian  yang  tinggi  sehingga apabila  dilakukan  secara  manual  akan membutuhkan  waktu  yang  cukup  lama  dan seringkali  menjemukan.  Dengan  sebuah program komputer, maka penyelesaian tersebut  dapat  dilakukan  dengan  waktu  yang sangat  singkat  dan  dengan  tingkat  akurasi yang  tinggi.  Tujuan  penelitian  ini  adalah membuat sebuah program komputer
menggunakan  bahasa  pemrograman  Visual
Basic 6 yang dapat digunakan untuk mencari laju  alir  yang  menghasilkan  efisiensi  kolom tertinggi.

## METODOLOGI PENELITIAN

## Data dan Cara Perhitungan
Data  penelitian  ini  merupakan  data sekunder yang diambil dari textbook Analytical Chemistry: Principles tulisan John H.  Kennedy  (1990),  dengan  rincian  sebagai berikut: sebuah kolom kromatografi gas (GC) yang  memiliki  panjang  150  cm  dan  diisi dengan  partikel-partikel  berukuran  50  m hendak  dioptimumkan  efisiensi  kolomnya. Hasil  eksperimental  untuk  elusi  satu  analit disajikan dalam tabel di bawah ini.
Percobaan u (cm/s) t R (s) W (s) 1 10 450 24 2 30 150 7,5 3 50 90 5 di mana : t R = waktu retensi W = lebar pita Dari  data  waktu  retensi  dan  lebar pita,  jumlah  plat  teoritis  ( N )  untuk  masing- masing  laju  alir  dihitung  melalui  persamaan berikut:
2 4        W t N R (3)
di  mana  hasil  yang  diperoleh  selanjutnya digunakan  untuk  menentukan  tinggi  plat teoritis  untuk  setiap  laju  alir  dengan menggunakan persamaan
N L H  (4)
di  mana L adalah  panjang  kolom  yang digunakan.  Dengan  menggunakan  data  dari tiga  percobaan  di  atas  maka  diperoleh  tiga tinggi  plat  teoritis  ( H )  sehingga  didapatkan persamaan linear simultan sebagai berikut:
C B A H 10 10 1    (5) C B A H 30 30 2    (6) C B A H 50 50 3    (7)
Perhitungan selengkapnya untuk menentukan N dan H dilakukan  melalui  program komputer yang dibuat.

## Algoritma Program
Ada  tiga  tahapan  utama  untuk menyelesaikan suatu persamaan linear simultan  sebagaimana  dalam  persamaan  van Deemter. Untuk mempermudah
pemrograman,  setiap  tahapan  ini  dijadikan prosedur  pemrograman  tersendiri.  Ketiga prosedur  tersebut  adalah: MasukkanData untuk  memasukkan  data, Eliminasi untuk melakukan  eliminasi,  dan SubstitusiBalik untuk melakukan substitusi balik.
Algoritma  pemasukkan  data  adalah sebagai berikut:
Masukkan panjang kolom For  i = 0 to 2 Masukkan data laju alir ke-(i) Masukkan data waktu retensi ke-(i) Masukkan data lebar pita ke-(i) Hitung jumlah plat teoritis ke-(i)
Hitung tinggi plat teoritis ke-(i) Next i Proses eliminasi dilakukan menggunakan metode Gauss. Untuk mempermudah  penyajian  algoritma  untuk proses eliminasi, maka algoritmanya dituliskan  dalam  bentuk flowchart sebagai berikut:
For i = 0 to 2 For k = i + 1 to 2 Pengali = Data(k,i)/Data(i,i) For j = i + 1 to 2 Data(k,j)= Data(k,j) – Pengali * Data(i,j) Next j H(k) = H(k) – Pengali * H(i) Data(k,i) = 0 Next k Next i end Dari prosedur masukkan data
Gambar 1. Flowchart Proses Eliminasi
Gauss
Selanjutnya, algoritma dari proses substitusi balik dalam bentuk flowchart terlihat pada gambar 2.

## Kode Program
Kode  program  selengkapnya  dapat dilihat pada lampiran.
Dari proses eliminasi For i = 2 to 0 step -1 s = H(i) For j = i + 1 to 2 s = s - Data(i,j) * X(j) Next j X(i) = s / Data(i,i) Next i end
Gambar 2. Flowchart Proses Substitusi Balik

## HASIL DAN PEMBAHASAN
Program  yang  telah  dibuat  diuji menggunakan data yang ada. Ketika pertama kali  dijalankan,  program  meminta  masukkan data.  Dengan  memasukkan  data  yang  ada maka diperoleh tampilan sebagaimana disajikan dalam Gambar 3.
Gambar 3. Tampilan Setelah Data Dimasukkan Data yang telah dimasukkan
selanjutnya diproses untuk menghasilkan laju alir  optimum  dan H minimum.  Hal  ini dilakukan  dengan  menekan  tombol Laju Optimum  &  H  minimum sehingga  diperoleh tampilan seperti dalam Gambar 4.
Gambar 4. Tampilan Setelah Tombol Laju Alir Optimum & H Minimum Ditekan
Hasil  perhitungan  di  atas  diperoleh melalui  tiga  prosedur  program.  Prosedur pertama  untuk  memasukkan  data  dan menghitung N dan H ,  dan  dua  prosedur lainnya  berfungsi  untuk  menghitung A , B , dan C .
Kode  program  untuk  prosedur  yang bertugas  untuk  memasukkan  data  dan menghitung nilai N dan H adalah: 'subrutin untuk memasukkan data Private Sub MasukkanData() Panjang = CDbl(txtPanjang.Text) 'ulangan pertama DataMentah(0, 0) = CDbl(txtLajuAlir1.Text) DataMentah(0, 1) = CDbl(txtWaktuRetensi1.Text)
DataMentah(0, 2) =
CDbl(txtLebarPita1.Text)
'ulangan kedua DataMentah(1, 0) = CDbl(txtLajuAlir2.Text) DataMentah(1, 1) = CDbl(txtWaktuRetensi2.Text) DataMentah(1, 2) = CDbl(txtLebarPita2.Text) 'ulangan ketiga DataMentah(2, 0) = CDbl(txtLajuAlir3.Text) DataMentah(2, 1) = CDbl(txtWaktuRetensi3.Text)
DataMentah(2, 2) = CDbl(txtLebarPita3.Text) End Sub
'subrutin untuk menghitung koefisien dari A, B, C dan nilai N dan H dalam pers VD
Private Sub KoefABC() Dim i, j As Integer     'i=banyaknya baris, j=banyaknya kolom
For i = 0 To 2 N(i) = (4 * DataMentah(i, 1) / DataMentah(i, 2)) ^ 2 H(i) = Panjang / N(i) For j = 0 To 3 Select Case j Case 0 Data(i, j) = 1 Case 1 Data(i, j) = 1 / DataMentah(i, 0)
Case 2 Data(i, j) = DataMentah(i, 0)
Case 3 Data(i, j) = H(i) End Select
Next Next End Sub
Setelah  data  dimasukkan,  maka proses  selanjutnya  adalah  eliminasi.  Kode program untuk melakukan hal ini adalah 'subrutin untuk melakukan eliminasi Private Sub Eliminasi() Dim i, j, k As Integer Dim Pengali As Double For i = 0 To 2 For k = i + 1 To 2
Pengali = Data(k, i) / Data(i, i)
For j = i + 1 To 2 Data(k, j) = Data(k, j) - Pengali * Data(i, j)
Next H(k) = H(k) - Pengali * H(i)
Data(k, i) = 0 Next Next
End Sub
Kode  program  ini  akan  melakukan perhitungan  dalam  beberapa  tahap.  Pertama, program  akan  mengeliminasi A dalam persamaan  5  sampai  7,  sehingga  dihasilkan dua  persamaan  yang  hanya  mengandung B dan C . Selanjutnya program akan mengeliminasi B ,  sehingga  dihasilkan  satu persamaan yang mengandung C .
Setelah  diperoleh  satu  persamaan yang  mengandung  satu  variabel C ,  maka proses selanjutnya adalah melakukan substitusi  balik.  Kode  program  untuk melakukan hal ini adalah 'subrutin untuk melakukan substitusi balik Private Sub SubstitusiBalik() Dim i, j As Integer Dim s As Double For i = 2 To 0 Step -1 s = H(i) For j = i + 1 To 2 s = s - Data(i, j) * X(j)
Next
X(i) = s / Data(i, i)
Next A = X(0) B = X(1) C = X(2)
End Sub
Dalam kode program di atas, variabel A , B , dan C dihitung oleh persamaan X(i), di mana  yang  dihitung  lebih  dulu  adalah C , kemudian B ,  dan  terakhir A .  Karena  proses substitusi  ini  dimulai  dari  penentuan C kemudian mundur sampai ke A , maka proses ini disebut substitusi balik. Setelah A , B , dan C diketahui,  maka  program  selanjutnya melakukan perhitungan laju alir optimum dan
H minimum  dengan  hasil  sebagaimana disajikan dalam Gambar 6.

## KESIMPULAN
Berdasarkan  uji  program  di  atas maka  dapat  disimpulkan  bahwa  program yang dibuat dapat digunakan untuk menentukan  tinggi  plat  teoritis  dan  laju  alir optimum dari fasa gerak dalam kromatografi. Keuntungan menggunakan program ini dibandingkan  menggunakan  metode  manual adalah  perhitungan  dapat  dilakukan  dengan lebih  cepat  dengan  tingkat  ketilitian  tinggi dan tidak mengenal lelah.

## DAFTAR PUSTAKA
Chapra,  S.  C.  and  R.  P.  Canale.  2006. Numerical  Methods  for  Engineers.  5 th Ed. ,  McGraw-Hill,  New  York,  NY 10020.
Conte,  S.  D.  and  Carl  de  Boer.  1980. Elementary  Numerical  Analysis.  An
Algorithmic Approach. 3 rd Ed. McGraw-Hill, New York.
Dewobroto,  W.  2004. Aplikasi  Sain  dan Teknik  dengan  Visual  Basic  6.0 .  P.T. Elex Media Komputindo. Jakarta
Kennedy,  J.  H.  1990. Analytical  Chemistry: Principles .  Second  Edition.  Saunders College Publishing.
Munadi,  S.  1995.  Perhitungan  Matriks dengan  Quick  Basic.  Andi  Offset. Yogyakarta. Petroutsos, E., M. Ridgeway. 2008.
Mastering  Visual  2008 ,  SYBEX  Inc.,
1151 Marina
Press,  W.  H.,  S.  A.  Teukolsky,  W.  T. Vetterling,  B.  P.  Flannery.  2007. Numerical Recipes. The Art of Scientific Computing. 3 rd Ed ., Cambridge University Press.

## Lampiran Kode Program
Public Class Data '****************************************************************** 'Program untuk menentukan laju alir optimum & H minimum 'Dibuat oleh: Ir. Harry S. J. Koleangan, M.Si. 'Jurusan Kimia, FMIPA Unsrat, Manado '******************************************************************
Dim Panjang As Double Public Shared DataMentah(2, 2) As Double        'DataMentah(baris,kolom)
Dim Data(2, 3), N(2), H(2), X(2) As Double      'X(0)=A, X(1)=B, X(2)=C Public Shared A, B, C As Double Dim LajuAlirOptimumForm As New LajuAlirOptimum
'subrutin untuk mengoreksi data (textbox) yang kosong Private Sub Koreksi(ByVal Kotak As TextBox) Kotak.Focus() Kotak.SelectAll() End Sub
'subrutin untuk memberikan komentar terhadap data kosong Private Sub Komen(ByVal m As Integer, ByVal Keterangan As String) MsgBox("Data " & Keterangan & " ulangan ke " & m + 1 & " tidak diisi dengan benar", , "Data Salah") End Sub
'subrutin untuk memasukkan data Private Sub MasukkanData() Panjang = CDbl(txtPanjang.Text) 'ulangan pertama DataMentah(0, 0) = CDbl(txtLajuAlir1.Text) DataMentah(0, 1) = CDbl(txtWaktuRetensi1.Text) DataMentah(0, 2) = CDbl(txtLebarPita1.Text) 'ulangan kedua DataMentah(1, 0) = CDbl(txtLajuAlir2.Text) DataMentah(1, 1) = CDbl(txtWaktuRetensi2.Text) DataMentah(1, 2) = CDbl(txtLebarPita2.Text) 'ulangan ketiga DataMentah(2, 0) = CDbl(txtLajuAlir3.Text) DataMentah(2, 1) = CDbl(txtWaktuRetensi3.Text) DataMentah(2, 2) = CDbl(txtLebarPita3.Text) End Sub
'subrutin untuk validasi data Private Sub ValidasiData() Dim i, j As Integer If Panjang <= 0 Then MsgBox("Data panjang kolom tidak diisi dengan benar", , "Data Salah") Koreksi(txtPanjang) Exit Sub End If For i = 0 To 2 For j = 0 To 2 If DataMentah(i, j) <= 0 Then If j = 0 Then Komen(i, "Laju Alir") If i = 0 Then Koreksi(txtLajuAlir1) Exit Sub End If If i = 1 Then Koreksi(txtLajuAlir2) Exit Sub End If If i = 2 Then Koreksi(txtLajuAlir3) Exit Sub End If End If If j = 1 Then Komen(i + 1, "Waktu Retensi") If i = 0 Then Koreksi(txtWaktuRetensi1) Exit Sub End If If i = 1 Then Koreksi(txtWaktuRetensi2) Exit Sub End If If i = 2 Then Koreksi(txtWaktuRetensi3) Exit Sub End If End If If j = 2 Then Komen(i + 1, "Lebar Pita") If i = 0 Then
Koreksi(txtLebarPita1) Exit Sub End If If i = 1 Then Koreksi(txtLebarPita2) Exit Sub End If If i = 2 Then Koreksi(txtLebarPita3) Exit Sub End If End If End If Next Next End Sub
'subrutin untuk menghitung koefisien dari A, B, C dan nilai N dan H dalam pers VD Private Sub KoefABC() Dim i, j As Integer     'i=banyaknya baris, j=banyaknya kolom For i = 0 To 2 N(i) = (4 * DataMentah(i, 1) / DataMentah(i, 2)) ^ 2 H(i) = Panjang / N(i) For j = 0 To 3 Select Case j Case 0 Data(i, j) = 1 Case 1 Data(i, j) = 1 / DataMentah(i, 0) Case 2 Data(i, j) = DataMentah(i, 0) Case 3 Data(i, j) = H(i) End Select Next Next End Sub
'subrutin untuk melakukan eliminasi Private Sub Eliminasi() Dim i, j, k As Integer Dim Pengali As Double For i = 0 To 2 For k = i + 1 To 2 Pengali = Data(k, i) / Data(i, i) For j = i + 1 To 2 Data(k, j) = Data(k, j) - Pengali * Data(i, j) Next H(k) = H(k) - Pengali * H(i) Data(k, i) = 0 Next Next End Sub
'subrutin untuk melakukan substitusi balik Private Sub SubstitusiBalik() Dim i, j As Integer Dim s As Double For i = 2 To 0 Step -1 s = H(i) For j = i + 1 To 2 s = s - Data(i, j) * X(j) Next X(i) = s / Data(i, i) Next A = X(0) B = X(1) C = X(2) End Sub
Private Sub btExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btExit.Click Me.Close() End Sub
'subrutin untuk menghitung laju alir optimum dan H minimum Dim lajuOptimum As Double
Dim hMin As Double Public Sub lajuAlirOptimum() Dim i, j As Integer MasukkanData() ValidasiData() If Panjang <= 0 Then Exit Sub For i = 0 To 2 For j = 0 To 2 If DataMentah(i, j) <= 0 Then Exit Sub Next Next 'perhitungan MasukkanData() KoefABC() Eliminasi() SubstitusiBalik() lajuOptimum = (B / C) ^ 0.5 hMin = A + B / lajuOptimum + C * lajuOptimum End Sub
Private Sub btLajuAlir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btLajuAlir.Click lajuAlirOptimum() With LajuAlirOptimumForm .lajuAlir.Text = Format(lajuOptimum, "#0.0000") .TinggiPlat.Text = Format(hMin, "#0.0000") .CancelButton = btExit .Show() End With End Sub End Class