Here is how we handle it. It is VERY natural for it to be hard to say sorry for kids (and adults), which is WHY it is so important NOT to let them get in the habit of avoiding it. It's VERY important that they do it, and it's very easy to allow them to slack when they are so resistant-good work knowing it's not OK. The person who bumps into others on a crowded sidewalk and doesn't say sorry (even if they don't mean it) is the less classy person.
First rule: No tantrums. 4 years old. Too old. Freaking out should not be an option for her when she is displeased with you. EVER. She's only doing that because she gets away with it (whatever you're using for discipline on that is something she has decided she doesn't mind, or she wouldn't be having the fits). I would seriously address that first.
Second. She has to say sorry. One warning, and a consequence right away if she refuses. EVERY time. It will become a habit when she learns she never gets away with it, then she will feel comfortable doing it on her own as she matures. If this has been a contention point already, she really doesn't need more explaining about why it's polite. Keep it brief and firm. It would be nice if you could get her to sympathize enough to "want" to say it, but that doesn't work for most kids-or discipline would never be necessary for anyone. It will become her character in time, but you must enforce it at first. This is normal. The firmer, the quicker.
My kids sometimes still need the reminder but would not dare to refuse. They tried that before they knew better, and learned it got them nowhere. It did not take much repetition, since they already knew we were consistent about everything major, this was just one more important "rule" they wouldn't get away with breaking (they don't have many, but this is a biggy) You have to say sorry. And refusing to do so is a double offense because you're being defiant as well as not saying sorry. Total no no. Firm discipline follows. Now they are always courteous and say it, even if occasionally they "forget" they say it right away if I remind them. At the store the other day, my daughter (5) bumped an elderly lady behind us in line, and before I knew what happened she had said, "I'm sorry, are you OK?" Like a little adult. I was so proud, the firmness is all worth it.
And no tantrums!
Also, if you're not careful, kids tend to think respectful things like this are "battles they will lose". You need to keep a positive spin on it. Like, "This is what polite people do. I know you are a nice person, and that is why you respect people. We do this, and it is important. It's my job to make sure you are nice. I know you are." This will not be enough to replace your need to enforce, but the message that its good for her is better than: "You have to because I said so" Though that should suffice as well. :)
Once I saw a kid who refused to say yes ma'am and yes sir, and he was at a boot camp for troubled teens, and the family hosting him had a decorated Navy officer (the kid wanted to be in the Navy) come talk to him and he explained, "You are not lowering yourself by saying yes ma'am and yes sir, you are raising yourself." It's such an important message! Set her high expectations and enforce them.
A perfect book for her age is this one-check the site to see if it's in line with your parenting philosophy:
www.backtobasicsdiscipline.com