If using slick2d, you can make use of the Vector2d class to do most stuff for you. Have a velocity variable (of the type vector2f) in your entity class.
Then you can do something like this:
//During creation of the entity
entity.position = new Vector2f(0, 0);
entity.velocity = new Vector2f(1, 0);
entity.velocity.setTheta(angle);
//During update of the entity
float speed = 0.1f;
entity.position.add(entity.velocity.copy().scale(speed * d));
Basically what you do is create a vector, that represents the direction in which the entity is moving. By using new Vector(1, 0), the ray of the vector is 1 "unit" long.
During each update, you take this vector (I make a copy, so the initial value is not changed) and multiply it by delta and by speed. Now you can add this multiplied vector to the position vector.
If you want to change the move speed, simple adjust the speed value (smaller values result in smaller speeds).
EDIT: Just for clarification, as I don't know your knowledge with slick:
Vector2d is a class, that holds a x and an y value. Vectors support some basic mathematical operations, like addition, subtraction, multiplication (scale).
In addition, Vector2f has some nice helper methods, like setTheta and getTheta (keep the length of the vector the same, but change the angle) or normalise (keep the angle, but change the vector length to 1).
If you have two vectors, vecA and vecB, consider this behavior identical:
Multiplication:
//This:
vecA.x = vecA.x * vecB.x
vecA.y = vecA.y * vecB.y
//is the same as this:
vecA.scale(vecB);
And in the case of the scale with a float value
float scale = 0.1f;
vecA.x = vecA.x * scale;
vecA.y = vecA.y * scale;
//Is the same as:
vecA.scale(scale);