How can I remove the Force on the Character?

Hello you guys, I am newbie on Unity and trying to make a platformer game with the new 2D feature of Unity.
The problem is, I am stuck with the Jumping movement, I want to make the Player move without accelerate on the plan but still have accelerate when jumping. Everything work just fine except that the Force has created when Jumping make the Player continue moving even when he meet the ground, he keep moving. How can I remove the Force that still exist inside my character?
Or, can you guys teach how to do the movement with the better way?
Thanks for reading.
This is the code:
using UnityEngine;
using System.Collections;

public class PlayerController : MonoBehaviour {
	public float dx,dy,maxJumpY;
	public bool isAction,isJump;

	void Start () {
		isJump = false;
	}
	void OnCollisionEnter2D(Collision2D col){
		if (col.gameObject.tag == "Ground")
						isJump = false;
	}
	void Update () {
			if (Input.GetButton ("Horizontal")) {
					if (Input.GetAxis ("Horizontal") > 0) {
							if (!isJump) transform.Translate (dx, 0, 0);
							else rigidbody2D.AddForce (Vector3.right * dx * 50);
					}
					else if (Input.GetAxis ("Horizontal") < 0) {
							if (!isJump) transform.Translate (-dx, 0, 0);
							else rigidbody2D.AddForce (Vector3.right * -dx * 50);
					}
			}
		if (Input.GetButtonDown ("Jump")&&!isJump) {
			rigidbody2D.AddForce(Vector2.up * dy);
			isJump = true;
		}
	}
}

Creating a character controller in a physics-simulated environment is alot trickier than one might think. But to answer your question: I think what you want to do is simply set velocity to 0 when you first hit the ground. Something like this should work:

void OnCollisionEnter2D(Collision2D col)
{
    if(col.gameObject.tag == "Ground")
    {
        if(isJump)
        {
            rigidbody2D.velocity = Vector2.zero;
        }
        isJump = false;
    }
}