Simple RC Car Programming Issue

How would you make it that when you press the button (LED turns and stays on) and then when you let go of the button (LED goes off)?

UPDATED CODE:

int ir_pin = 2;				
int led_pin = 13;

int ledLEFT = 12;
int ledFORWARD = 11;
int ledBACK = 10;
int ledRIGHT = 8;
				
int debug = 1;				  
int start_bit = 2000;			
int bin_1 = 1000;				
int bin_0 = 400;				   


void setup() {
 pinMode(led_pin, OUTPUT);		
 pinMode(ir_pin, INPUT);
 
 pinMode(ledLEFT, OUTPUT);
 pinMode(ledFORWARD, OUTPUT);
 pinMode(ledBACK, OUTPUT);
 pinMode(ledRIGHT, OUTPUT);
 
 digitalWrite(led_pin, LOW);	
 
 Serial.begin(9600);
}

void loop() {
 int key = getIRKey();	 
 if (key != -1) {
   Serial.print("Key Received: ");
   Serial.println(key);
 }
 
  if (key == 16) {                           //To go left + forward.
   digitalWrite(ledLEFT, HIGH);
   digitalWrite(ledFORWARD, HIGH);
   digitalWrite(ledBACK, LOW);
   digitalWrite(ledRIGHT, LOW);
   delay(100);
   digitalWrite(ledFORWARD, LOW);
  }
  
  if (key == xxxx) {                         //To go forward.                         
   digitalWrite(ledLEFT, LOW);
   digitalWrite(ledFORWARD, HIGH); 
   digitalWrite(ledBACK, LOW);
   digitalWrite(ledRIGHT, LOW);
   delay(100);
   digitalWrite(ledFORWARD, LOW);
  }
  
  if (key == 1040) {                         //To go right + forward.
   digitalWrite(ledLEFT, LOW);
   digitalWrite(ledFORWARD, HIGH);
   digitalWrite(ledBACK, LOW); 
   digitalWrite(ledRIGHT, HIGH);
   delay(100);
   digitalWrite(ledFORWARD, LOW);
  }
  
  if (key == 2064) {                         //To go left + back.                         
   digitalWrite(ledLEFT, HIGH);
   digitalWrite(ledFORWARD, LOW); 
   digitalWrite(ledBACK, HIGH);
   digitalWrite(ledRIGHT, LOW);
   delay(100);
   digitalWrite(ledBACK, LOW);
  }
  
  if (key == 528) {                          //To go back. 
   digitalWrite(ledLEFT, LOW);
   digitalWrite(ledFORWARD, LOW); 
   digitalWrite(ledBACK, HIGH);
   digitalWrite(ledRIGHT, LOW);
   delay(100);
   digitalWrite(ledBACK, LOW);
  }
  
  if (key == xxxx) {                         //To go right + back. 
   digitalWrite(ledLEFT, LOW);
   digitalWrite(ledFORWARD, LOW); 
   digitalWrite(ledBACK, HIGH);
   digitalWrite(ledRIGHT, HIGH);
   delay(100);
   digitalWrite(ledBACK, LOW);
  }
  
  if (key == xxxx) {                         //To stop. 
   digitalWrite(ledLEFT, LOW);
   digitalWrite(ledFORWARD, LOW); 
   digitalWrite(ledBACK, LOW);
   digitalWrite(ledRIGHT, LOW);
   delay(100);
  }

}


int getIRKey() {
 int data[12];

 digitalWrite(led_pin, HIGH);     
 while(pulseIn(ir_pin, LOW) < 2200) { 
 }
 
 data[0] = pulseIn(ir_pin, LOW);	 
 data[1] = pulseIn(ir_pin, LOW);
 data[2] = pulseIn(ir_pin, LOW);
 data[3] = pulseIn(ir_pin, LOW);
 data[4] = pulseIn(ir_pin, LOW);
 data[5] = pulseIn(ir_pin, LOW);
 data[6] = pulseIn(ir_pin, LOW);
 data[7] = pulseIn(ir_pin, LOW);
 data[8] = pulseIn(ir_pin, LOW);
 data[9] = pulseIn(ir_pin, LOW);
 data[10] = pulseIn(ir_pin, LOW);
 data[11] = pulseIn(ir_pin, LOW);
 
 digitalWrite(led_pin, LOW);

 if(debug == 1) {
 }
 
 for(int i=0;i<=11;i++) {		    
   if (debug == 1) {  
   }
   
   if(data[i] > bin_1) {		    
	 data[i] = 1;
   } else {
	 if(data[i] > bin_0) {	     
	   data[i] = 0;
	 } else {
	  data[i] = 2;			  
	 }
   }
 }

 for(int i=0;i<=11;i++) {		     
   if(data[i] > 1) {
	 return -1;				
   }
 }

 int result = 0;
 int seed = 1;
 for(int i=11;i>=0;i--) {		  
   if(data[i] == 1) {
	 result += seed;
   }
   seed = seed * 2;
 }
  
 return result;				  
}